16 |
16 |
17 INTRSTRUCT(ObjList); |
17 INTRSTRUCT(ObjList); |
18 |
18 |
19 |
19 |
20 DECLSTRUCT(ObjList){ |
20 DECLSTRUCT(ObjList){ |
21 Watch watch; /* Must be kept at head of structure */ |
21 Watch watch; /* Must be kept at head of structure */ |
22 ObjList *next, *prev; |
22 ObjList *next, *prev; |
23 ObjList **list; |
23 ObjList **list; |
24 }; |
24 }; |
25 |
25 |
26 |
26 |
27 #define FOR_ALL_ON_OBJLIST(TYPE, VAR, LIST) \ |
27 #define FOR_ALL_ON_OBJLIST(TYPE, VAR, LIST) \ |
28 for((VAR)=(TYPE)objlist_init_iter(LIST); \ |
28 for((VAR)=(TYPE)objlist_init_iter(LIST); \ |
29 (VAR)!=NULL; \ |
29 (VAR)!=NULL; \ |
30 (VAR)=(TYPE)objlist_iter()) |
30 (VAR)=(TYPE)objlist_iter()) |
31 |
31 |
32 |
32 |
33 bool objlist_insert(ObjList **objlist, Obj *obj); |
33 bool objlist_insert(ObjList **objlist, Obj *obj); |
34 void objlist_remove(ObjList **objlist, Obj *obj); |
34 void objlist_remove(ObjList **objlist, Obj *obj); |
35 void objlist_clear(ObjList **objlist); |
35 void objlist_clear(ObjList **objlist); |