1/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
2
3#ifdef MZ_USE_FUTURES
4
5static int future_SIZE(void *p, struct NewGC *gc) {
6#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
7  gcBYTES_TO_WORDS(sizeof(future_t));
8#else
9  return 0;
10#endif
11}
12
13static int future_MARK(void *p, struct NewGC *gc) {
14#ifndef GC_NO_MARK_PROCEDURE_NEEDED
15  future_t *f = (future_t *)p;
16  gcMARK2(f->orig_lambda, gc);
17  gcMARK2(f->cust, gc);
18  gcMARK2(f->arg_s0, gc);
19  gcMARK2(f->arg_t0, gc);
20  gcMARK2(f->arg_S0, gc);
21  gcMARK2(f->arg_b0, gc);
22  gcMARK2(f->arg_n0, gc);
23  gcMARK2(f->arg_s1, gc);
24  gcMARK2(f->arg_t1, gc);
25  gcMARK2(f->arg_S1, gc);
26  gcMARK2(f->arg_s2, gc);
27  gcMARK2(f->arg_S2, gc);
28  gcMARK2(f->arg_S4, gc);
29  gcMARK2(f->retval_s, gc);
30  gcMARK2(f->retval, gc);
31  gcMARK2(f->multiple_array, gc);
32  gcMARK2(f->tail_rator, gc);
33  gcMARK2(f->tail_rands, gc);
34  gcMARK2(f->prev, gc);
35  gcMARK2(f->next, gc);
36  gcMARK2(f->next_waiting_atomic, gc);
37  gcMARK2(f->next_waiting_lwc, gc);
38  gcMARK2(f->next_waiting_touch, gc);
39  gcMARK2(f->suspended_lw, gc);
40  gcMARK2(f->suspended_lw_stack, gc);
41  gcMARK2(f->prev_in_fsema_queue, gc);
42  gcMARK2(f->next_in_fsema_queue, gc);
43  gcMARK2(f->touching, gc);
44# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
45  return 0;
46# else
47  return
48  gcBYTES_TO_WORDS(sizeof(future_t));
49# endif
50#endif
51}
52
53static int future_FIXUP(void *p, struct NewGC *gc) {
54#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
55  future_t *f = (future_t *)p;
56  gcFIXUP2(f->orig_lambda, gc);
57  gcFIXUP2(f->cust, gc);
58  gcFIXUP2(f->arg_s0, gc);
59  gcFIXUP2(f->arg_t0, gc);
60  gcFIXUP2(f->arg_S0, gc);
61  gcFIXUP2(f->arg_b0, gc);
62  gcFIXUP2(f->arg_n0, gc);
63  gcFIXUP2(f->arg_s1, gc);
64  gcFIXUP2(f->arg_t1, gc);
65  gcFIXUP2(f->arg_S1, gc);
66  gcFIXUP2(f->arg_s2, gc);
67  gcFIXUP2(f->arg_S2, gc);
68  gcFIXUP2(f->arg_S4, gc);
69  gcFIXUP2(f->retval_s, gc);
70  gcFIXUP2(f->retval, gc);
71  gcFIXUP2(f->multiple_array, gc);
72  gcFIXUP2(f->tail_rator, gc);
73  gcFIXUP2(f->tail_rands, gc);
74  gcFIXUP2(f->prev, gc);
75  gcFIXUP2(f->next, gc);
76  gcFIXUP2(f->next_waiting_atomic, gc);
77  gcFIXUP2(f->next_waiting_lwc, gc);
78  gcFIXUP2(f->next_waiting_touch, gc);
79  gcFIXUP2(f->suspended_lw, gc);
80  gcFIXUP2(f->suspended_lw_stack, gc);
81  gcFIXUP2(f->prev_in_fsema_queue, gc);
82  gcFIXUP2(f->next_in_fsema_queue, gc);
83  gcFIXUP2(f->touching, gc);
84# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
85  return 0;
86# else
87  return
88  gcBYTES_TO_WORDS(sizeof(future_t));
89# endif
90#endif
91}
92
93#define future_IS_ATOMIC 0
94#define future_IS_CONST_SIZE 1
95
96
97static int fsemaphore_SIZE(void *p, struct NewGC *gc) {
98#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
99    gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
100#else
101  return 0;
102#endif
103}
104
105static int fsemaphore_MARK(void *p, struct NewGC *gc) {
106#ifndef GC_NO_MARK_PROCEDURE_NEEDED
107    fsemaphore_t *s = (fsemaphore_t*)p;
108    gcMARK2(s->queue_front, gc);
109    gcMARK2(s->queue_end, gc);
110# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
111  return 0;
112# else
113  return
114    gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
115# endif
116#endif
117}
118
119static int fsemaphore_FIXUP(void *p, struct NewGC *gc) {
120#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
121    fsemaphore_t *s = (fsemaphore_t*)p;
122    gcFIXUP2(s->queue_front, gc);
123    gcFIXUP2(s->queue_end, gc);
124# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
125  return 0;
126# else
127  return
128    gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
129# endif
130#endif
131}
132
133#define fsemaphore_IS_ATOMIC 0
134#define fsemaphore_IS_CONST_SIZE 1
135
136
137#else
138
139static int sequential_future_SIZE(void *p, struct NewGC *gc) {
140#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
141  gcBYTES_TO_WORDS(sizeof(future_t));
142#else
143  return 0;
144#endif
145}
146
147static int sequential_future_MARK(void *p, struct NewGC *gc) {
148#ifndef GC_NO_MARK_PROCEDURE_NEEDED
149  future_t *f = (future_t *)p;
150  gcMARK2(f->orig_lambda, gc);
151  gcMARK2(f->running_sema, gc);
152  gcMARK2(f->retval, gc);
153  gcMARK2(f->multiple_array, gc);
154# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
155  return 0;
156# else
157  return
158  gcBYTES_TO_WORDS(sizeof(future_t));
159# endif
160#endif
161}
162
163static int sequential_future_FIXUP(void *p, struct NewGC *gc) {
164#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
165  future_t *f = (future_t *)p;
166  gcFIXUP2(f->orig_lambda, gc);
167  gcFIXUP2(f->running_sema, gc);
168  gcFIXUP2(f->retval, gc);
169  gcFIXUP2(f->multiple_array, gc);
170# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
171  return 0;
172# else
173  return
174  gcBYTES_TO_WORDS(sizeof(future_t));
175# endif
176#endif
177}
178
179#define sequential_future_IS_ATOMIC 0
180#define sequential_future_IS_CONST_SIZE 1
181
182
183static int sequential_fsemaphore_SIZE(void *p, struct NewGC *gc) {
184#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
185    gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
186#else
187  return 0;
188#endif
189}
190
191static int sequential_fsemaphore_MARK(void *p, struct NewGC *gc) {
192#ifndef GC_NO_MARK_PROCEDURE_NEEDED
193    fsemaphore_t *s = (fsemaphore_t*)p;
194    gcMARK2(s->sema, gc);
195# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
196  return 0;
197# else
198  return
199    gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
200# endif
201#endif
202}
203
204static int sequential_fsemaphore_FIXUP(void *p, struct NewGC *gc) {
205#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
206    fsemaphore_t *s = (fsemaphore_t*)p;
207    gcFIXUP2(s->sema, gc);
208# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
209  return 0;
210# else
211  return
212    gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
213# endif
214#endif
215}
216
217#define sequential_fsemaphore_IS_ATOMIC 0
218#define sequential_fsemaphore_IS_CONST_SIZE 1
219
220
221#endif
222
223
224
225