Subversion Repositories HelenOS-historic

Rev

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) {