Rev 72 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 72 | Rev 102 | ||
---|---|---|---|
Line 40... | Line 40... | ||
40 | */ |
40 | */ |
41 | 41 | ||
42 | static chunk_t *chunk0; |
42 | static chunk_t *chunk0; |
43 | static spinlock_t heaplock; |
43 | static spinlock_t heaplock; |
44 | 44 | ||
45 | void heap_init(__address heap, __u32 size) |
45 | void heap_init(__address heap, size_t size) |
46 | { |
46 | { |
47 | spinlock_initialize(&heaplock); |
47 | spinlock_initialize(&heaplock); |
48 | memsetb(heap, size, 0); |
48 | memsetb(heap, size, 0); |
49 | chunk0 = (chunk_t *) heap; |
49 | chunk0 = (chunk_t *) heap; |
50 | chunk0->used = 0; |
50 | chunk0->used = 0; |
Line 60... | Line 60... | ||
60 | { |
60 | { |
61 | pri_t pri; |
61 | pri_t pri; |
62 | chunk_t *x, *y, *z; |
62 | chunk_t *x, *y, *z; |
63 | 63 | ||
64 | if (size == 0) |
64 | if (size == 0) |
65 | panic("malloc: zero-size allocation request"); |
65 | panic("zero-size allocation request"); |
66 | 66 | ||
67 | x = chunk0; |
67 | x = chunk0; |
68 | pri = cpu_priority_high(); |
68 | pri = cpu_priority_high(); |
69 | spinlock_lock(&heaplock); |
69 | spinlock_lock(&heaplock); |
70 | while (x) { |
70 | while (x) { |