ddk: alloca & chkstk

git-svn-id: svn://kolibrios.org@1872 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2011-02-17 11:21:25 +00:00
parent d01c2d2287
commit d06c2ff01e
3 changed files with 20 additions and 1 deletions

View File

@ -1,5 +1,4 @@
CC = gcc CC = gcc
AS = as AS = as
@ -17,6 +16,7 @@ CORE_SRC= core.S
NAME_SRCS:= \ NAME_SRCS:= \
debug/dbglog.c \ debug/dbglog.c \
debug/chkstk.S \
io/create.c \ io/create.c \
io/finfo.c \ io/finfo.c \
io/ssize.c \ io/ssize.c \

View File

@ -22,6 +22,7 @@
.global _GetPgAddr .global _GetPgAddr
.global _GetService .global _GetService
.global _GetTimerTicks .global _GetTimerTicks
.global _GetStackBase
.global _KernelAlloc .global _KernelAlloc
.global _KernelFree .global _KernelFree
@ -45,6 +46,8 @@
.global _RegService .global _RegService
.global _SetMouseData .global _SetMouseData
.global _SetKeyboardData
.global _SetScreen .global _SetScreen
.global _SysMsgBoardStr .global _SysMsgBoardStr
@ -70,6 +73,7 @@
.def _GetPgAddr; .scl 2; .type 32; .endef .def _GetPgAddr; .scl 2; .type 32; .endef
.def _GetService; .scl 2; .type 32; .endef .def _GetService; .scl 2; .type 32; .endef
.def _GetTimerTicks; .scl 2; .type 32; .endef .def _GetTimerTicks; .scl 2; .type 32; .endef
.def _GetStackBase; .scl 2; .type 32; .endef
.def _KernelAlloc; .scl 2; .type 32; .endef .def _KernelAlloc; .scl 2; .type 32; .endef
.def _KernelFree; .scl 2; .type 32; .endef .def _KernelFree; .scl 2; .type 32; .endef
@ -94,6 +98,7 @@
.def _SetScreen; .scl 2; .type 32; .endef .def _SetScreen; .scl 2; .type 32; .endef
.def _SetMouseData; .scl 2; .type 32; .endef .def _SetMouseData; .scl 2; .type 32; .endef
.def _SetKeyboardData; .scl 2; .type 32; .endef
.def _SysMsgBoardStr; .scl 2; .type 32; .endef .def _SysMsgBoardStr; .scl 2; .type 32; .endef
.def _WaitEvent; .scl 2; .type 32; .endef .def _WaitEvent; .scl 2; .type 32; .endef
@ -120,6 +125,7 @@ _GetEvent:
_GetPgAddr: _GetPgAddr:
_GetService: _GetService:
_GetTimerTicks: _GetTimerTicks:
_GetStackBase:
_KernelAlloc: _KernelAlloc:
_KernelFree: _KernelFree:
@ -142,6 +148,8 @@ _RaiseEvent:
_RegService: _RegService:
_SetMouseData: _SetMouseData:
_SetKeyboardData:
_SetScreen: _SetScreen:
_SysMsgBoardStr: _SysMsgBoardStr:
@ -171,6 +179,8 @@ _WaitEvent:
.ascii " -export:GetPgAddr" # stdcall .ascii " -export:GetPgAddr" # stdcall
.ascii " -export:GetService" # stdcall .ascii " -export:GetService" # stdcall
.ascii " -export:GetTimerTicks" # .ascii " -export:GetTimerTicks" #
.ascii " -export:GetStackBase" #
.ascii " -export:KernelAlloc" # stdcall .ascii " -export:KernelAlloc" # stdcall
.ascii " -export:KernelFree" # stdcall .ascii " -export:KernelFree" # stdcall
@ -194,6 +204,8 @@ _WaitEvent:
.ascii " -export:RegService" # stdcall .ascii " -export:RegService" # stdcall
.ascii " -export:SetMouseData" # stdcall .ascii " -export:SetMouseData" # stdcall
.ascii " -export:SetKeyboardData" # stdcall
.ascii " -export:SetScreen" # stdcall .ascii " -export:SetScreen" # stdcall
.ascii " -export:SysMsgBoardStr" # stdcall .ascii " -export:SysMsgBoardStr" # stdcall

View File

@ -18,6 +18,8 @@
#define CreateObject __CreateObject #define CreateObject __CreateObject
#define DestroyObject __DestroyObject #define DestroyObject __DestroyObject
#define _alloca(x) __builtin_alloca((x))
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -46,11 +48,16 @@ void FASTCALL MutexInit(struct mutex*)__asm__("MutexInit");
void FASTCALL MutexLock(struct mutex*)__asm__("MutexLock"); void FASTCALL MutexLock(struct mutex*)__asm__("MutexLock");
void FASTCALL MutexUnlock(struct mutex*)__asm__("MutexUnlock"); void FASTCALL MutexUnlock(struct mutex*)__asm__("MutexUnlock");
addr_t IMPORT GetStackBase(void)__asm__("GetStackBase");
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
void STDCALL SetMouseData(int btn, int x, int y, void STDCALL SetMouseData(int btn, int x, int y,
int z, int h)__asm__("SetMouseData"); int z, int h)__asm__("SetMouseData");
void FASTCALL SetKeyboardData(u32_t data)__asm__("SetKeyboardData");
u8_t STDCALL PciRead8 (u32_t bus, u32_t devfn, u32_t reg)__asm__("PciRead8"); u8_t STDCALL PciRead8 (u32_t bus, u32_t devfn, u32_t reg)__asm__("PciRead8");
u16_t STDCALL PciRead16(u32_t bus, u32_t devfn, u32_t reg)__asm__("PciRead16"); u16_t STDCALL PciRead16(u32_t bus, u32_t devfn, u32_t reg)__asm__("PciRead16");
u32_t STDCALL PciRead32(u32_t bus, u32_t devfn, u32_t reg)__asm__("PciRead32"); u32_t STDCALL PciRead32(u32_t bus, u32_t devfn, u32_t reg)__asm__("PciRead32");