1/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */ 2 3static int native_closure_SIZE(void *p, struct NewGC *gc) { 4#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS 5 Scheme_Native_Closure *c = (Scheme_Native_Closure *)p; 6 int closure_size = ((Scheme_Native_Lambda *)GC_resolve2(c->code, gc))->closure_size; 7 8 if (closure_size < 0) { 9 closure_size = -(closure_size + 1); 10 } 11 12 gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure) 13 + (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *))); 14#else 15 return 0; 16#endif 17} 18 19static int native_closure_MARK(void *p, struct NewGC *gc) { 20#ifndef GC_NO_MARK_PROCEDURE_NEEDED 21 Scheme_Native_Closure *c = (Scheme_Native_Closure *)p; 22 int closure_size = ((Scheme_Native_Lambda *)GC_resolve2(c->code, gc))->closure_size; 23 24 if (closure_size < 0) { 25 closure_size = -(closure_size + 1); 26 } 27 28 { 29 int i = closure_size; 30# define CLOSURE_DATA_TYPE Scheme_Native_Lambda 31# include "mzclpf_decl.inc" 32 33 gcMARK2(c->code, gc); 34 35# include "mzclpf_pre.inc" 36 37 while (i--) 38 gcMARK2(c->vals[i], gc); 39 40# include "mzclpf_post.inc" 41# undef CLOSURE_DATA_TYPE 42 } 43 44# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS 45 return 0; 46# else 47 return 48 gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure) 49 + (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *))); 50# endif 51#endif 52} 53 54static int native_closure_FIXUP(void *p, struct NewGC *gc) { 55#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED 56 Scheme_Native_Closure *c = (Scheme_Native_Closure *)p; 57 int closure_size = ((Scheme_Native_Lambda *)GC_resolve2(c->code, gc))->closure_size; 58 59 if (closure_size < 0) { 60 closure_size = -(closure_size + 1); 61 } 62 63 { 64 int i = closure_size; 65 66 gcFIXUP2(c->code, gc); 67 68 69 while (i--) 70 gcFIXUP2(c->vals[i], gc); 71 72 } 73 74# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS 75 return 0; 76# else 77 return 78 gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure) 79 + (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *))); 80# endif 81#endif 82} 83 84#define native_closure_IS_ATOMIC 0 85#define native_closure_IS_CONST_SIZE 0 86 87 88static int mark_jit_state_SIZE(void *p, struct NewGC *gc) { 89#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS 90 gcBYTES_TO_WORDS(sizeof(mz_jit_state)); 91#else 92 return 0; 93#endif 94} 95 96static int mark_jit_state_MARK(void *p, struct NewGC *gc) { 97#ifndef GC_NO_MARK_PROCEDURE_NEEDED 98 mz_jit_state *j = (mz_jit_state *)p; 99 gcMARK2(j->mappings, gc); 100 gcMARK2(j->self_lam, gc); 101 gcMARK2(j->example_argv, gc); 102 gcMARK2(j->nc, gc); 103 gcMARK2(j->retaining_data, gc); 104 gcMARK2(j->patch_depth, gc); 105 106# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS 107 return 0; 108# else 109 return 110 gcBYTES_TO_WORDS(sizeof(mz_jit_state)); 111# endif 112#endif 113} 114 115static int mark_jit_state_FIXUP(void *p, struct NewGC *gc) { 116#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED 117 mz_jit_state *j = (mz_jit_state *)p; 118 gcFIXUP2(j->mappings, gc); 119 gcFIXUP2(j->self_lam, gc); 120 gcFIXUP2(j->example_argv, gc); 121 gcFIXUP2(j->nc, gc); 122 gcFIXUP2(j->retaining_data, gc); 123 gcFIXUP2(j->patch_depth, gc); 124 125# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS 126 return 0; 127# else 128 return 129 gcBYTES_TO_WORDS(sizeof(mz_jit_state)); 130# endif 131#endif 132} 133 134#define mark_jit_state_IS_ATOMIC 0 135#define mark_jit_state_IS_CONST_SIZE 1 136 137 138static int native_unclosed_proc_SIZE(void *p, struct NewGC *gc) { 139#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS 140 gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda)); 141#else 142 return 0; 143#endif 144} 145 146static int native_unclosed_proc_MARK(void *p, struct NewGC *gc) { 147#ifndef GC_NO_MARK_PROCEDURE_NEEDED 148 Scheme_Native_Lambda *d = (Scheme_Native_Lambda *)p; 149 int i; 150 151 gcMARK2(d->u2.name, gc); 152 if (d->retained) { 153 for (i = SCHEME_INT_VAL(d->retained[0]); i--; ) { 154 gcMARK2(d->retained[i], gc); 155 } 156 } 157 if (d->closure_size < 0) { 158 gcMARK2(d->u.arities, gc); 159 } 160 gcMARK2(d->tl_map, gc); 161 gcMARK2(d->eq_key, gc); 162 163# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS 164 return 0; 165# else 166 return 167 gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda)); 168# endif 169#endif 170} 171 172static int native_unclosed_proc_FIXUP(void *p, struct NewGC *gc) { 173#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED 174 Scheme_Native_Lambda *d = (Scheme_Native_Lambda *)p; 175 int i; 176 177 gcFIXUP2(d->u2.name, gc); 178 if (d->retained) { 179 for (i = SCHEME_INT_VAL(d->retained[0]); i--; ) { 180 gcFIXUP2(d->retained[i], gc); 181 } 182 } 183 if (d->closure_size < 0) { 184 gcFIXUP2(d->u.arities, gc); 185 } 186 gcFIXUP2(d->tl_map, gc); 187 gcFIXUP2(d->eq_key, gc); 188 189# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS 190 return 0; 191# else 192 return 193 gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda)); 194# endif 195#endif 196} 197 198#define native_unclosed_proc_IS_ATOMIC 0 199#define native_unclosed_proc_IS_CONST_SIZE 1 200 201 202static int native_unclosed_proc_plus_case_SIZE(void *p, struct NewGC *gc) { 203#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS 204 gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda_Plus_Case)); 205#else 206 return 0; 207#endif 208} 209 210static int native_unclosed_proc_plus_case_MARK(void *p, struct NewGC *gc) { 211#ifndef GC_NO_MARK_PROCEDURE_NEEDED 212 Scheme_Native_Lambda_Plus_Case *d = (Scheme_Native_Lambda_Plus_Case *)p; 213 214 native_unclosed_proc_MARK(p, gc); 215 gcMARK2(d->case_lam, gc); 216 217# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS 218 return 0; 219# else 220 return 221 gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda_Plus_Case)); 222# endif 223#endif 224} 225 226static int native_unclosed_proc_plus_case_FIXUP(void *p, struct NewGC *gc) { 227#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED 228 Scheme_Native_Lambda_Plus_Case *d = (Scheme_Native_Lambda_Plus_Case *)p; 229 230 native_unclosed_proc_FIXUP(p, gc); 231 gcFIXUP2(d->case_lam, gc); 232 233# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS 234 return 0; 235# else 236 return 237 gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda_Plus_Case)); 238# endif 239#endif 240} 241 242#define native_unclosed_proc_plus_case_IS_ATOMIC 0 243#define native_unclosed_proc_plus_case_IS_CONST_SIZE 1 244 245 246