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