Optimize XiZi_AIoT FS fd allocation.
This commit is contained in:
parent
16a53d4e80
commit
b6dd58c629
|
@ -57,7 +57,7 @@ static int InodeFreeRecursive(struct Inode* dp);
|
||||||
static char* PathElementExtract(char* path, char* name);
|
static char* PathElementExtract(char* path, char* name);
|
||||||
static uint32_t InodeBlockMapping(struct Inode* inode, uint32_t block_num);
|
static uint32_t InodeBlockMapping(struct Inode* inode, uint32_t block_num);
|
||||||
|
|
||||||
#define MAX_SUPPORT_FD 1024
|
#define MAX_SUPPORT_FD 2048
|
||||||
static struct FileDescriptor fd_table[MAX_SUPPORT_FD];
|
static struct FileDescriptor fd_table[MAX_SUPPORT_FD];
|
||||||
|
|
||||||
struct MemFsRange MemFsRange;
|
struct MemFsRange MemFsRange;
|
||||||
|
@ -486,7 +486,7 @@ void FreeFileDescriptor(int fd)
|
||||||
printf("fd invlid.\n");
|
printf("fd invlid.\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fd_table[fd].data = 0;
|
fd_table[fd].data = NULL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -495,8 +495,9 @@ int AllocFileDescriptor(void)
|
||||||
int free_idx = -1;
|
int free_idx = -1;
|
||||||
for (int i = 0; i < MAX_SUPPORT_FD; i++) {
|
for (int i = 0; i < MAX_SUPPORT_FD; i++) {
|
||||||
// found free fd
|
// found free fd
|
||||||
if (free_idx == -1 && fd_table[i].data == 0) {
|
if (free_idx == -1 && fd_table[i].data == NULL) {
|
||||||
free_idx = i;
|
free_idx = i;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (free_idx == -1) {
|
if (free_idx == -1) {
|
||||||
|
|
|
@ -23,7 +23,7 @@ struct CwdPair {
|
||||||
struct Inode* Inode;
|
struct Inode* Inode;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_SUPPORT_SESSION 1024
|
#define MAX_SUPPORT_SESSION 2048
|
||||||
static struct CwdPair session_cwd[MAX_SUPPORT_SESSION];
|
static struct CwdPair session_cwd[MAX_SUPPORT_SESSION];
|
||||||
|
|
||||||
static struct CwdPair* get_session_cwd(void)
|
static struct CwdPair* get_session_cwd(void)
|
||||||
|
|
|
@ -53,7 +53,7 @@ uintptr_t* _page_walk(uintptr_t* pgdir, uintptr_t vaddr, bool alloc)
|
||||||
pgtbl_vaddr = (uintptr_t*)P2V(pgtbl_paddr);
|
pgtbl_vaddr = (uintptr_t*)P2V(pgtbl_paddr);
|
||||||
} else {
|
} else {
|
||||||
if (!alloc || !(pgtbl_vaddr = (uintptr_t*)kalloc(sizeof(uintptr_t) * NUM_LEVEL4_PTE))) {
|
if (!alloc || !(pgtbl_vaddr = (uintptr_t*)kalloc(sizeof(uintptr_t) * NUM_LEVEL4_PTE))) {
|
||||||
return 0;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(pgtbl_vaddr, 0, sizeof(uintptr_t) * NUM_LEVEL4_PTE);
|
memset(pgtbl_vaddr, 0, sizeof(uintptr_t) * NUM_LEVEL4_PTE);
|
||||||
|
|
|
@ -41,7 +41,7 @@ Modification:
|
||||||
extern uint8_t _binary_fs_img_start[], _binary_fs_img_end[];
|
extern uint8_t _binary_fs_img_start[], _binary_fs_img_end[];
|
||||||
|
|
||||||
#define SHOWINFO_BORDER_LINE() LOG_PRINTF("******************************************************\n");
|
#define SHOWINFO_BORDER_LINE() LOG_PRINTF("******************************************************\n");
|
||||||
#define SHOWTASK_TASK_BASE_INFO(task) LOG_PRINTF(" %-4d %-16s %-4d 0x%x(%-d)\n", task->pid, task->name, task->priority, task->mem_size >> 10, task->mem_size >> 10)
|
#define SHOWTASK_TASK_BASE_INFO(task) LOG_PRINTF(" %-6d %-16s %-4d 0x%x(%-d)\n", task->pid, task->name, task->priority, task->mem_size >> 10, task->mem_size >> 10)
|
||||||
|
|
||||||
void show_tasks(void)
|
void show_tasks(void)
|
||||||
{
|
{
|
||||||
|
@ -51,7 +51,7 @@ void show_tasks(void)
|
||||||
LOG_PRINTF("CPU %-2d: %s\n", i, (global_cpus[i].task == NULL ? "NULL" : global_cpus[i].task->name));
|
LOG_PRINTF("CPU %-2d: %s\n", i, (global_cpus[i].task == NULL ? "NULL" : global_cpus[i].task->name));
|
||||||
}
|
}
|
||||||
SHOWINFO_BORDER_LINE();
|
SHOWINFO_BORDER_LINE();
|
||||||
LOG_PRINTF("%-8s %-4s %-16s %-4s %-8s\n", "STAT", "ID", "TASK", "PRI", "MEM(KB)");
|
LOG_PRINTF("%-8s %-6s %-16s %-4s %-8s\n", "STAT", "ID", "TASK", "PRI", "MEM(KB)");
|
||||||
DOUBLE_LIST_FOR_EACH_ENTRY(task, &xizi_task_manager.task_running_list_head, node)
|
DOUBLE_LIST_FOR_EACH_ENTRY(task, &xizi_task_manager.task_running_list_head, node)
|
||||||
{
|
{
|
||||||
LOG_PRINTF("%-8s", "RUNNING");
|
LOG_PRINTF("%-8s", "RUNNING");
|
||||||
|
|
Loading…
Reference in New Issue