Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 855 → Rev 856

/shark/trunk/drivers/linuxc26/linuxcomp.c
388,25 → 388,35
 
}
 
void *kern_alloc_aligned(size_t size, DWORD flags,
int align_bits, DWORD align_ofs);
 
void * vmalloc_32(size_t size)
{
void *mem;
 
mem = kern_alloc_aligned(size, 0, 12, 0);
 
return mem;
unsigned long diff;
mem = malloc(size+12);
diff = (unsigned long)((((unsigned long)mem/4)+1)*4-(unsigned long)mem);
*(unsigned long *)(mem+diff) = (diff | 0x80000000);
return (mem+diff+4);
}
 
void vfree(void *addr) {
 
free(addr);
 
return;
 
if (addr == NULL || *(unsigned long *)(addr-4) == 0) return;
if ((*(unsigned long *)(addr-4) & 0x80000000) == 0x80000000) {
free(addr-(*(unsigned long *)(addr-4) & 0x7FFFFFFF)-4);
*(unsigned long *)(addr-4) = 0;
return;
}
free(addr);
return;
}
 
/* TODO */