Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1313 → Rev 1312

/kernel/trunk/const.inc
449,11 → 449,6
.base dd ? ;allocated memory
.hot_x dd ? ;hotspot coords
.hot_y dd ?
 
.list_next dd ? ;next cursor in cursor list
.list_prev dd ? ;prev cursor in cursor list
.dev_obj dd ? ;device depended data
 
.sizeof:
}
virtual at 0
460,6 → 455,7
CURSOR CURSOR
end virtual
 
CURSOR_SIZE equ 32
 
struc EVENT
{
/kernel/trunk/video/cursors.inc
300,7 → 300,7
push ebx
 
mov ebx, eax
mov eax, CURSOR.sizeof
mov eax, CURSOR_SIZE
call create_kernel_object
test eax, eax
jz .fail
/kernel/branches/kolibri_pe/core/heap.c
338,25 → 338,13
addr_t *pte = &((addr_t*)page_tabs)[heap >> PAGE_WIDTH];
addr_t *mpte = &map->pte[0];
 
mem = heap;
 
#if 0
if( flags & PG_MAP )
{
page = PG_DEMAND | (flags & 0xFFF);
 
#ifdef ALLOC_IMM
 
while( pages )
mem = heap;
while(pages--)
{
u32_t order;
addr_t page_frame;
 
asm volatile ("bsr %0, %1":"=&r"(order):"r"(tmp):"cc");
asm volatile ("btr %0, %1" :"=r"(tmp):"r"(order):"cc");
 
page_frame = frame_alloc(1 << order) | (flags & 0xFFF);
 
for(i = 0; i < 1 << order; i++)
{
*pte++ = 0; //page;
*mpte++ = page;
 
363,33 → 351,24
asm volatile ( "invlpg (%0)" ::"r" (mem) );
mem+= 4096;
};
}
#else
mem = heap;
 
page = PG_DEMAND | (flags & 0xFFF);
 
while(pages--)
{
if( flags & PG_MAP )
page = alloc_page();
 
page |= flags & 0xFFF;
 
*pte++ = 0;
*mpte++ = page;
 
asm volatile ( "invlpg (%0)" ::"r" (mem) );
mem+= 4096;
};
#endif
}
else
{
while(pages--)
{
*pte++ = 0; //page;
*mpte++ = 0;
 
asm volatile ( "invlpg (%0)" ::"r" (mem) );
mem+= 4096;
};
}
 
#endif
DBG("%s %x size %d order %d\n", __FUNCTION__, heap, size, order);
 
return heap;
450,10 → 429,8
spinlock_unlock(&z_heap.lock);
safe_sti(efl);
 
for( i = 0; i < (map->size >> PAGE_WIDTH); )
{
i+= frame_free(map->pte[i]);
}
for( i = 0; i < (map->size >> PAGE_WIDTH); i++)
frame_free(map->pte[i]);
 
frame_free( KA2PA(map) );
}
464,6 → 441,7
};
};
 
 
void __fastcall heap_fault(addr_t faddr, u32_t code)
{
index_t idx;
488,6 → 466,7
 
if( page != 0)
{
#if 0
if( page & PG_DEMAND)
{
page &= ~PG_DEMAND;
495,6 → 474,7
 
map->pte[idx] = page;
};
#endif
((addr_t*)page_tabs)[faddr >> PAGE_WIDTH] = page;
};
};