forked from xuos/xiuos
Fix style.
This commit is contained in:
@@ -59,8 +59,8 @@ struct PagerRightGroup {
|
||||
struct XiziPageManager {
|
||||
bool (*new_pgdir)(struct TopLevelPageDirectory* pgdir);
|
||||
void (*free_user_pgdir)(struct TopLevelPageDirectory* pgdir);
|
||||
bool (*map_pages)(uintptr_t* pd_addr, uintptr_t vaddr, uintptr_t paddr, uintptr_t len, bool is_dev);
|
||||
bool (*unmap_pages)(uintptr_t* pd_addr, uintptr_t vaddr, uintptr_t len);
|
||||
bool (*map_pages)(uintptr_t* pd_addr, uintptr_t vaddr, uintptr_t paddr, int len, bool is_dev);
|
||||
bool (*unmap_pages)(uintptr_t* pd_addr, uintptr_t vaddr, int len);
|
||||
|
||||
uintptr_t (*resize_user_pgdir)(struct TopLevelPageDirectory* pgdir, uintptr_t old_size, uintptr_t new_size);
|
||||
uintptr_t (*address_translate)(struct TopLevelPageDirectory* pgdir, uintptr_t vaddr);
|
||||
|
||||
@@ -110,12 +110,11 @@ static void KBuddyPagesFree(struct KBuddy* pbuddy, struct KPage* page)
|
||||
{
|
||||
struct KPage* buddy = NULL;
|
||||
uintptr_t order = (page->order >= MAX_BUDDY_ORDER) ? 0 : page->order;
|
||||
uintptr_t buddy_idx = 0, new_buddy_idx = 0;
|
||||
uintptr_t page_idx = page - pbuddy->pages;
|
||||
|
||||
for (; order < MAX_BUDDY_ORDER - 1; order++) {
|
||||
// find and delete buddy to combine
|
||||
buddy_idx = BUDDY_PAGE_INDEX(page_idx, order);
|
||||
uintptr_t buddy_idx = BUDDY_PAGE_INDEX(page_idx, order);
|
||||
if (buddy_idx > pbuddy->n_pages - 1) {
|
||||
break;
|
||||
}
|
||||
@@ -128,7 +127,7 @@ static void KBuddyPagesFree(struct KBuddy* pbuddy, struct KPage* page)
|
||||
pbuddy->free_list[order].n_free_pages--;
|
||||
buddy->order = MAX_BUDDY_ORDER;
|
||||
// update page and page_idx after combined
|
||||
new_buddy_idx = COMBINED_PAGE_INDEX(page_idx, order);
|
||||
uintptr_t new_buddy_idx = COMBINED_PAGE_INDEX(page_idx, order);
|
||||
page = page + (new_buddy_idx - page_idx);
|
||||
page_idx = new_buddy_idx;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ struct KBuddy user_phy_freemem_buddy;
|
||||
extern uintptr_t kernel_data_end[];
|
||||
bool module_phymem_init()
|
||||
{
|
||||
uintptr_t kern_freemem_start = V2P(&kernel_data_end);
|
||||
uintptr_t kern_freemem_start = V2P(kernel_data_end);
|
||||
uintptr_t kern_freemem_end = PHY_USER_FREEMEM_BASE;
|
||||
uintptr_t user_freemem_start = PHY_USER_FREEMEM_BASE;
|
||||
uintptr_t user_freemem_end = PHY_MEM_STOP;
|
||||
|
||||
@@ -52,7 +52,7 @@ void slab_init(struct slab_allocator* const allocator, const size_t element_size
|
||||
if (allocator == NULL) {
|
||||
panic("init a NULL slab_allocator\n");
|
||||
}
|
||||
if (element_size <= 0 || element_size > ARENA_SIZE_PER_INCREASE) {
|
||||
if (element_size > ARENA_SIZE_PER_INCREASE) {
|
||||
panic("Not supported slab element size\n");
|
||||
}
|
||||
|
||||
|
||||
@@ -51,17 +51,15 @@ static bool _new_pgdir(struct TopLevelPageDirectory* pgdir)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool _map_pages(uintptr_t* pgdir, uintptr_t vaddr, uintptr_t paddr, uintptr_t len, uintptr_t attr)
|
||||
static bool _map_pages(uintptr_t* pgdir, uintptr_t vaddr, uintptr_t paddr, int len, uintptr_t attr)
|
||||
{
|
||||
if (len <= 0) {
|
||||
return false;
|
||||
}
|
||||
assert(len >= 0);
|
||||
vaddr = ALIGNDOWN(vaddr, LEVEL4_PTE_SIZE);
|
||||
paddr = ALIGNDOWN(paddr, LEVEL4_PTE_SIZE);
|
||||
uintptr_t vaddr_last = ALIGNDOWN(vaddr + len - 1, LEVEL4_PTE_SIZE);
|
||||
|
||||
uintptr_t* pte;
|
||||
while (true) {
|
||||
uintptr_t* pte = NULL;
|
||||
if ((pte = _page_walk(pgdir, vaddr, true)) == NULL) {
|
||||
ERROR("pte not found for vaddr %x.\n", vaddr);
|
||||
return false;
|
||||
@@ -86,16 +84,14 @@ static bool _map_pages(uintptr_t* pgdir, uintptr_t vaddr, uintptr_t paddr, uintp
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool _unmap_pages(uintptr_t* pgdir, uintptr_t vaddr, uintptr_t len)
|
||||
static bool _unmap_pages(uintptr_t* pgdir, uintptr_t vaddr, int len)
|
||||
{
|
||||
if (len <= 0) {
|
||||
return false;
|
||||
}
|
||||
assert(len >= 0);
|
||||
vaddr = ALIGNDOWN(vaddr, LEVEL4_PTE_SIZE);
|
||||
uintptr_t vaddr_last = ALIGNDOWN(vaddr + len - 1, LEVEL4_PTE_SIZE);
|
||||
|
||||
uintptr_t* pte;
|
||||
while (true) {
|
||||
uintptr_t* pte = NULL;
|
||||
if ((pte = _page_walk(pgdir, vaddr, false)) == NULL) {
|
||||
ERROR("pte not found for vaddr %x.\n", vaddr);
|
||||
return false;
|
||||
@@ -126,8 +122,11 @@ static bool _unmap_pages(uintptr_t* pgdir, uintptr_t vaddr, uintptr_t len)
|
||||
/// @param len
|
||||
/// @param is_dev
|
||||
/// @return
|
||||
static bool _map_user_pages(uintptr_t* pgdir, uintptr_t vaddr, uintptr_t paddr, uintptr_t len, bool is_dev)
|
||||
static bool _map_user_pages(uintptr_t* pgdir, uintptr_t vaddr, uintptr_t paddr, int len, bool is_dev)
|
||||
{
|
||||
if (len < 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (UNLIKELY(vaddr >= USER_MEM_TOP)) {
|
||||
ERROR("mapping kernel space.\n");
|
||||
|
||||
@@ -56,8 +56,8 @@ static struct slab_allocator* SessionAllocator()
|
||||
/// @return true if mem range is free, false if at least one page inside [vaddr, vaddr + nr_pages * PAGE_SIZE) is mapped
|
||||
static inline bool check_pages_unmapped(struct Thread* task, uintptr_t vaddr, int nr_pages)
|
||||
{
|
||||
static uintptr_t paddr = UINT32_MAX;
|
||||
for (uintptr_t i = 0; i < nr_pages; i++) {
|
||||
uintptr_t paddr = UINT32_MAX;
|
||||
if ((paddr = xizi_pager.address_translate(&task->memspace->pgdir, vaddr)) != (uintptr_t)NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ static void send_irq_to_user(int irq_num)
|
||||
|
||||
/* get message space and add session tail */
|
||||
void* session_kern_vaddr = P2V(xizi_pager.address_translate(&kernel_irq_proxy->memspace->pgdir, (uintptr_t)session->buf));
|
||||
struct IpcMsg* buf = session_kern_vaddr + session->tail;
|
||||
struct IpcMsg* buf = (struct IpcMsg*)((uintptr_t)session_kern_vaddr + session->tail);
|
||||
|
||||
/* check if server session is full */
|
||||
if (buf->header.magic == IPC_MSG_MAGIC && buf->header.done == 0) {
|
||||
|
||||
@@ -221,7 +221,7 @@ struct ThreadStackPointer load_user_stack(struct MemSpace* pmemspace, char** arg
|
||||
memset(user_stack_init, 0, sizeof(user_stack_init));
|
||||
uintptr_t argc = 0;
|
||||
uintptr_t copy_len = 0;
|
||||
for (argc = 0; argv != NULL && argc < MAX_SUPPORT_PARAMS && argv[argc] != NULL; argc++) {
|
||||
for (argc = 0; argv != NULL && argc < (MAX_SUPPORT_PARAMS - 1) && argv[argc] != NULL; argc++) {
|
||||
/// @todo handle with large number of parameters (more than 32)
|
||||
// copy param to user stack
|
||||
copy_len = strlen(argv[argc]) + 1;
|
||||
|
||||
@@ -99,7 +99,7 @@ static struct Thread* _alloc_task_cb()
|
||||
return task;
|
||||
}
|
||||
|
||||
int _task_retrieve_sys_resources(struct Thread* ptask)
|
||||
int _task_return_sys_resources(struct Thread* ptask)
|
||||
{
|
||||
assert(ptask != NULL);
|
||||
|
||||
@@ -152,7 +152,7 @@ static void _dealloc_task_cb(struct Thread* task)
|
||||
return;
|
||||
}
|
||||
|
||||
_task_retrieve_sys_resources(task);
|
||||
_task_return_sys_resources(task);
|
||||
|
||||
/* free thread's user stack */
|
||||
if (task->thread_context.user_stack_idx != -1) {
|
||||
|
||||
Reference in New Issue
Block a user