|
|
1 # include "hash.h"
2 # include "swap.h"
3
4 struct _object_ {
5 hte chain; /* object name hash table */
6 char flags; /* object status */
7 eindex etabi; /* index in external table */
8 uindex cref; /* # clone references (sometimes) */
9 uindex prev; /* previous in issue list */
10 uindex index; /* index in object table */
11 Uint count; /* object creation count */
12 Uint update; /* object update count */
13 Uint ref; /* ref count (if master object) */
14 control *ctrl; /* control block (master object only) */
15 dataspace *data; /* dataspace block */
16 sector cfirst; /* first sector of control block */
17 sector dfirst; /* first sector of dataspace block */
18 };
19 # define u_ref ref
20 # define u_master ref
21
22 # define O_MASTER 0x01
23 # define O_AUTO 0x02
24 # define O_DRIVER 0x04
25 # define O_CREATED 0x08
26 # define O_USER 0x10
27 # define O_EDITOR 0x20
28 # define O_COMPILED 0x40
29 # define O_PENDIO 0x80
30
31 # define O_SPECIAL 0x30
32
33 # define OBJ_LAYOUT "xceuuuiiippdd"
34
35 # define OBJ(i) (&otable[i])
36 # define OBJR(i) ((BTST(ocmap, (i))) ? o_oread((i)) : &otable[i])
37 # define OBJW(i) ((!obase) ? o_owrite((i)) : &otable[i])
38 # define OBJF(i) OBJW(i)
39
40 # define O_UPGRADING(o) ((o)->cref > (o)->u_ref)
41 # define O_INHERITED(o) ((o)->u_ref - 1 != (o)->cref)
42
43 # define OACC_READ 0x00 /* read access */
44 # define OACC_REFCHANGE 0x01 /* modify refcount */
45 # define OACC_MODIFY 0x02 /* write access */
46
47 # define OBJ_NONE UINDEX_MAX
48
49 extern void o_init P((unsigned int));
50 extern object *o_oread P((unsigned int));
51 extern object *o_owrite P((unsigned int));
52 extern void o_new_plane P((void));
53 extern void o_commit_plane P((void));
54 extern void o_discard_plane P((void));
55
56 extern bool o_space P((void));
57 extern object *o_new P((char*, control*));
58 extern object *o_clone P((object*));
59 extern void o_upgrade P((object*, control*, frame*));
60 extern void o_upgraded P((object*, object*));
61 extern void o_del P((object*, frame*));
62
63 extern char *o_name P((char*, object*));
64 extern object *o_find P((char*, int));
65 extern control *o_control P((object*));
66 extern dataspace *o_dataspace P((object*));
67
68 extern void o_clean P((void));
69 extern uindex o_count P((void));
70 extern bool o_dump P((int));
71 extern void o_restore P((int));
72 extern void o_conv P((void));
73
74 extern object *otable;
75 extern char *ocmap;
76 extern bool obase;
77 extern Uint odcount;
78
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.