📄 misc.c
字号:
/*
===============================================================================
| Copyright (C) 2004 RuanHaiShen, All rights reserved.
| SUMMARY:
| Miscellaneous functions.
|
| DESCRIPTION:
| See http://www.01s.org for documentation, latest information, license
| and contact details.
| email:ruanhaishen@01s.org
=============================================================================*/
/*===========================================================================*/
#include "arch/arch.h"
#include "inc/queue.h"
#include "inc/kernel.h"
#include "inc/memory.h"
#include "inc/ipc.h"
#include "inc/kapi.h"
struct regs_context
{
u16 es;
u16 di;
u16 si;
u16 bp;
u32 en_init;
u32 entry;
u32 exit;
u32 arg;
u16 earg;
};
typedef struct regs_context regs_t;
static void __entry_init(void)
{
ENABLE_IRQ;
}
sp_t __stack_init(entry_t entry, arg_t arg, sp_t stack_base)
{
regs_t* regs;
regs = (regs_t*)((u32)stack_base - sizeof(regs_t));
regs->es = (u16)0x0000;
regs->di = (u16)0x0000;
regs->si = (u16)0x0000;
regs->bp = (u16)0x0000;
regs->en_init = (u32)&__entry_init;
regs->entry = (u32)entry;
#if CFG_TASK_DEL_EN > 0
regs->exit = (u32)task_delete;
#endif
regs->arg = (u32)arg;
regs->earg = (u16)0xffff;
return (sp_t)regs;
}
/*===========================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -