X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Facess.h;h=6373cec51b3717520e0ed74fce3fdb528238907c;hb=7c5a60c8be053f65ecceb47be773ea21a050b186;hp=f046a11ff67cfda9e619f89c8fe2145b98aa7ab1;hpb=df1d534cfe822903fc38e1cc13c4b18941c91908;p=tpg%2Facess2.git diff --git a/Kernel/include/acess.h b/Kernel/include/acess.h index f046a11f..6373cec5 100644 --- a/Kernel/include/acess.h +++ b/Kernel/include/acess.h @@ -39,7 +39,7 @@ typedef struct sShortSpinlock tShortSpinlock; */ /** - * \name Per-Process Configuration Settings + * \name Per-Thread Configuration Settings * \{ */ enum eConfigTypes { @@ -52,10 +52,13 @@ enum eConfigs { CFG_VFS_CWD, CFG_VFS_MAXFILES, CFG_VFS_CHROOT, + CFG_ERRNO, NUM_CFG_ENTRIES }; #define CFGINT(id) (*Threads_GetCfgPtr(id)) #define CFGPTR(id) (*(void**)Threads_GetCfgPtr(id)) + +#define errno (CFGINT(CFG_ERRNO)) /** * \} */ @@ -100,6 +103,7 @@ typedef struct sKernelSymbol { // === FUNCTIONS === // --- IRQs --- extern int IRQ_AddHandler(int Num, void (*Callback)(int)); +extern void IRQ_RemHandler(int Handle); // --- Logging --- extern void Log_KernelPanic(const char *Ident, const char *Message, ...); @@ -275,6 +279,24 @@ extern void MM_DerefPhys(tPAddr PAddr); * \return Reference count for the page */ extern int MM_GetRefCount(tPAddr PAddr); +/** + * \brief Set the node associated with a page + * \param PAddr Physical address of page + * \param Node Node pointer (tVFS_Node) + * \return Boolean failure + * \retval 0 Success + * \retval 1 Page not allocated + */ +extern int MM_SetPageNode(tPAddr PAddr, void *Node); +/** + * \brief Get the node associated with a page + * \param PAddr Physical address of page + * \param Node Node pointer (tVFS_Node) destination + * \return Boolean failure + * \retval 0 Success + * \retval 1 Page not allocated + */ +extern int MM_GetPageNode(tPAddr PAddr, void **Node); /** * \} */ @@ -307,7 +329,7 @@ extern int CheckMem(const void *Mem, int Num); * \name Endianness Swapping * \{ */ -#if __ENDIAN == BIG_ENDIAN +#ifdef __BIG_ENDIAN__ #define LittleEndian16(_val) SwapEndian16(_val) #define LittleEndian32(_val) SwapEndian32(_val) #define BigEndian16(_val) (_val) @@ -334,6 +356,8 @@ extern int sprintf(char *__s, const char *__format, ...); extern size_t strlen(const char *Str); extern char *strcpy(char *__dest, const char *__src); extern char *strncpy(char *__dest, const char *__src, size_t max); +extern char *strcat(char *__dest, const char *__src); +extern char *strncat(char *__dest, const char *__src, size_t n); extern int strcmp(const char *__str1, const char *__str2); extern int strncmp(const char *Str1, const char *Str2, size_t num); extern int strucmp(const char *Str1, const char *Str2); @@ -415,7 +439,7 @@ extern void Time_Delay(int Delay); * \{ */ extern int Proc_SpawnWorker(void); -extern int Proc_Spawn(char *Path); +extern int Proc_Spawn(const char *Path); extern void Threads_Exit(int TID, int Status); extern void Threads_Yield(void); extern void Threads_Sleep(void); @@ -436,7 +460,6 @@ extern int DivUp(int num, int dem); #include #include -#include #include #endif