Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1065 → Rev 1066

/kernel/branches/kolibri_pe/include/core.h
4,7 → 4,7
#define LOAD_BASE 0x00100000
 
 
#define page_tabs 0xDDC00000
#define page_tabs 0xDD800000
 
#define master_tab (page_tabs+(page_tabs>>10))
 
20,6 → 20,10
#define sel_srv_stack 0x39
 
 
 
#define __export __attribute__ ((dllexport))
 
 
void printf (const char *format, ...);
 
#define CALLER ((addr_t) __builtin_return_address(0))
74,11 → 78,10
asm volatile (
"pushl %0\n\t"
"popfl\n"
: : "r" (efl)
);
: : "r" (efl));
}
 
static inline count_t fnzb(u32_t arg)
static inline index_t fnzb(u32_t arg)
{
count_t n;
asm volatile (
88,7 → 91,7
return n;
}
 
static inline count_t _bsf(u32_t arg)
static inline index_t _bsf(u32_t arg)
{
count_t n;
asm volatile (
201,7 → 204,7
}ioctl_t;
 
 
typedef struct
typedef struct __attribute__ ((packed))
{
u32_t code;
union
214,7 → 217,7
u16_t x; /* cursor x */
u16_t y; /* cursor y */
u32_t unused;
}__attribute__ ((packed));
};
 
struct /* realtime io */
{
237,6 → 240,7
}event_t;
 
 
void __fastcall dump_file(addr_t addr, size_t size);
 
 
 
/kernel/branches/kolibri_pe/include/mm.h
1,13 → 1,24
 
typedef struct
{
link_t link;
addr_t base;
size_t size;
addr_t pte[0];
 
}mmap_t;
 
 
typedef struct
{
link_t buddy_link; /**< link to the next free block inside one order */
count_t refcount; /**< tracking of shared frames */
u32_t buddy_order; /**< buddy system block order */
u16_t refcount; /**< tracking of shared frames */
u16_t buddy_order; /**< buddy system block order */
void *parent; /**< If allocated by slab, this points there */
} frame_t;
 
typedef struct {
typedef struct
{
SPINLOCK_DECLARE(lock); /**< this lock protects everything below */
pfn_t base; /**< frame_no of the first frame in the frames array */
count_t count; /**< Size of zone */
44,11 → 55,9
 
 
#define PAGE_SIZE 4096
#define FRAME_WIDTH 12
#define PAGE_WIDTH 12
 
#define BUDDY_SYSTEM_INNER_BLOCK 0xff
 
 
# define PA2KA(x) (((addr_t) (x)) + OS_BASE)
# define KA2PA(x) (((addr_t) (x)) - OS_BASE)
 
56,39 → 65,39
{
if (!size)
return 0;
return (count_t) ((size - 1) >> FRAME_WIDTH) + 1;
return (count_t) ((size - 1) >> PAGE_WIDTH) + 1;
}
 
static inline addr_t PFN2ADDR(pfn_t frame)
{
return (addr_t) (frame << FRAME_WIDTH);
return (addr_t) (frame << PAGE_WIDTH);
}
 
static inline pfn_t ADDR2PFN(addr_t addr)
{
return (pfn_t) (addr >> FRAME_WIDTH);
return (pfn_t) (addr >> PAGE_WIDTH);
};
 
void init_mm();
void init_pg_slab();
 
void* __fastcall frame_get_parent(pfn_t pfn);
void __fastcall frame_set_parent(pfn_t pfn, void *data);
 
void frame_free(pfn_t frame);
 
 
addr_t __fastcall core_alloc(u32_t order);
void __fastcall core_free(addr_t frame);
 
pfn_t alloc_page() __attribute__ ((deprecated));
 
addr_t alloc_page(void);
 
#define __export __attribute__ ((dllexport))
 
 
md_t* __fastcall md_alloc(size_t size, u32_t flags) ;
void __fastcall md_free(md_t *md);
 
void* __fastcall __export mem_alloc(size_t size, u32_t flags) asm ("MemAlloc");
void __fastcall __export mem_free(void *mem) asm ("MemFree");
addr_t __fastcall __export mem_alloc(size_t size, u32_t flags) asm ("MemAlloc");
void __fastcall __export mem_free(addr_t mem) asm ("MemFree");
 
addr_t __fastcall frame_alloc(size_t size);
size_t __fastcall frame_free(addr_t addr);
 
/kernel/branches/kolibri_pe/include/pe.h
201,7 → 201,7
dll_t * find_dll(link_t *list, const char *name);
 
 
md_t* __fastcall load_image(const char *path);
addr_t __fastcall load_image(const char *path);
 
void create_image(addr_t img_base, addr_t raw, bool force_clear) asm ("CreateImage");