- split get_pairidx_for_regidx(), always called with constant parameter
[libfirm] / ir / be / test / fehler063.c
1 #include <string.h>
2 #include <stdlib.h>
3
4 #define ZONEID  0x1d4a11
5
6 typedef struct memblock_s {
7     int     size;           // including the header and possibly tiny fragments
8     int     tag;            // a tag of 0 is a free block
9     struct memblock_s       *next, *prev;
10     int     id;             // should be ZONEID
11 #ifdef ZONE_DEBUG
12     zonedebug_t d;
13 #endif
14 } memblock_t;
15
16 typedef struct {
17     int     size;           // total bytes malloced, including header
18     int     used;           // total bytes used
19     memblock_t  blocklist;  // start / end cap for linked list
20     memblock_t  *rover;
21 } memzone_t;
22
23 typedef char byte;
24
25 static void Z_ClearZone( memzone_t *zone, int size ) {
26     memblock_t  *block;
27
28     // set the entire zone to one free block
29
30     zone->blocklist.next = zone->blocklist.prev = block =
31         (memblock_t *)( (byte *)zone + sizeof(memzone_t) );
32 #if 0
33     zone->blocklist.tag = 1;    // in use block
34     zone->blocklist.id = 0;
35     zone->blocklist.size = 0;
36     zone->rover = block;
37     zone->size = size;
38     zone->used = 0;
39 #endif
40
41     block->prev = block->next = &zone->blocklist;
42     block->tag = 0;         // free block
43     block->id = ZONEID;
44     block->size = size - sizeof(memzone_t);
45 }
46
47 void Com_InitSmallZoneMemory( void ) {
48         int s_smallZoneTotal = 512 * 1024;
49         // bk001205 - was malloc
50         memzone_t *smallzone = calloc( s_smallZoneTotal, 1 );
51         if ( !smallzone ) {
52                 abort();
53         }
54         Z_ClearZone( smallzone, s_smallZoneTotal );
55
56         return;
57 }
58
59 int main(void)
60 {
61         Com_InitSmallZoneMemory();
62         return 0;
63 }