1 /* --------------------------------------------------------------------------
2 * $Id: mkDerivedConstants.c,v 1.1 2001/10/03 13:57:42 simonmar Exp $
4 * (c) The GHC Team, 1992-1998
6 * Generate a header for the native code generator
8 * ------------------------------------------------------------------------*/
12 #define OFFSET(s_type, field) ((unsigned int)&(((s_type*)0)->field))
15 main(int argc, char *argv[])
17 printf("-- This file is created automatically. Do not edit by hand.\n\n");
19 printf("#define STD_HDR_SIZE %d\n", sizeofW(StgHeader));
20 printf("#define PROF_HDR_SIZE %d\n", sizeofW(StgProfHeader));
21 printf("#define GRAN_HDR_SIZE %d\n", sizeofW(StgGranHeader));
22 printf("#define PAR_HDR_SIZE %d\n", sizeofW(StgParHeader));
23 printf("#define TICKY_HDR_SIZE %d\n", sizeofW(StgTickyHeader));
25 printf("#define ARR_WORDS_HDR_SIZE %d\n",
26 sizeofW(StgArrWords) - sizeofW(StgHeader));
28 printf("#define ARR_PTRS_HDR_SIZE %d\n",
29 sizeofW(StgMutArrPtrs) - sizeofW(StgHeader));
31 printf("#define STD_ITBL_SIZE %d\n", sizeofW(StgInfoTable));
32 printf("#define PROF_ITBL_SIZE %d\n", sizeofW(StgProfInfo));
33 printf("#define GRAN_ITBL_SIZE %d\n", 0);
34 printf("#define PAR_ITBL_SIZE %d\n", sizeofW(StgParInfo));
35 printf("#define TICKY_ITBL_SIZE %d\n", sizeofW(StgTickyInfo));
37 printf("#define STD_UF_SIZE %d\n", sizeofW(StgUpdateFrame));
38 printf("#define GRAN_UF_SIZE %d\n",
39 sizeofW(StgUpdateFrame) + sizeofW(StgGranHeader));
40 printf("#define PROF_UF_SIZE %d\n",
41 sizeofW(StgUpdateFrame) + sizeofW(StgProfHeader));
43 printf("#define UF_RET %d\n",
44 OFFSET(StgUpdateFrame,header.info));
46 printf("#define UF_SU %d\n",
47 OFFSET(StgUpdateFrame,link) / sizeof(W_));
49 printf("#define UF_UPDATEE %d\n",
50 OFFSET(StgUpdateFrame,updatee) / sizeof(W_));
52 printf("#define STD_SEQ_FRAME_SIZE %d\n", sizeofW(StgSeqFrame));
53 printf("#define GRAN_SEQ_FRAME_SIZE %d\n",
54 sizeofW(StgSeqFrame) + sizeofW(StgGranHeader));
55 printf("#define PROF_SEQ_FRAME_SIZE %d\n",
56 sizeofW(StgSeqFrame) + sizeofW(StgProfHeader));
58 printf("#define BLOCK_SIZE %d\n", BLOCK_SIZE);
59 printf("#define MBLOCK_SIZE %d\n", MBLOCK_SIZE);