X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Facess.h;h=ddf69cbac2fedc7fc1d92fd16b0e112cf60cbc3a;hb=c3d486ba13c6cd12558d4c0cf01d3fd93e797d64;hp=7bf2e4816921ac9077f8a63f0c5ee5d45683b2e0;hpb=c2adb8d03edd3bcf25eb2fd9a90ed74200ca78fe;p=tpg%2Facess2.git diff --git a/Kernel/include/acess.h b/Kernel/include/acess.h index 7bf2e481..ddf69cba 100644 --- a/Kernel/include/acess.h +++ b/Kernel/include/acess.h @@ -6,9 +6,19 @@ #define _COMMON_H #define NULL ((void*)0) +#define PACKED __attribute__ ((packed)) +#include #include #include +#include "errno.h" + +// --- Types --- +typedef int tPID; +typedef int tTID; +typedef Uint tUID; +typedef Uint tGID; +typedef Sint64 tTimestamp; // --- Helper Macros --- /** @@ -19,6 +29,8 @@ #define EXPAND_CONCAT(x,y) CONCAT(x,y) #define STR(x) #x #define EXPAND_STR(x) STR(x) + +#define VER2(major,minor) ((((major)&0xFF)<<8)|((minor)&0xFF)) /** * \} */ @@ -73,7 +85,7 @@ typedef void (*tThreadFunction)(void*); */ typedef struct sKernelSymbol { char *Name; - unsigned int Value; + Uint Value; } tKernelSymbol; #define EXPORT(_name) tKernelSymbol _kexp_##_name __attribute__((section ("KEXPORT"),unused))={#_name, (Uint)_name} #define EXPORTV(_name) tKernelSymbol _kexp_##_name __attribute__((section ("KEXPORT"),unused))={#_name, (Uint)&_name} @@ -103,6 +115,7 @@ extern void Debug_Enter(char *FuncName, char *ArgTypes, ...); extern void Debug_Log(char *FuncName, char *Fmt, ...); extern void Debug_Leave(char *FuncName, char RetType, ...); extern void Debug_HexDump(char *Header, void *Data, Uint Length); +#define UNIMPLEMENTED() Warning("'%s' unimplemented", __func__) #if DEBUG # define ENTER(_types...) Debug_Enter((char*)__func__, _types) # define LOG(_fmt...) Debug_Log((char*)__func__, _fmt) @@ -167,11 +180,11 @@ extern void MM_Deallocate(tVAddr VAddr); */ extern int MM_Map(tVAddr VAddr, tPAddr PAddr); /** - * \brief Get the physical address of \a VAddr - * \param VAddr Address of the page to get the physical address of - * \return Physical page mapped at \a VAddr + * \brief Get the physical address of \a Addr + * \param Addr Address of the page to get the physical address of + * \return Physical page mapped at \a Addr */ -extern tPAddr MM_GetPhysAddr(tVAddr VAddr); +extern tPAddr MM_GetPhysAddr(tVAddr Addr); /** * \brief Checks is a memory range is user accessable * \param VAddr Base address to check @@ -247,11 +260,11 @@ extern void MM_DerefPhys(tPAddr PAddr); * \name Memory Manipulation * \{ */ -extern int memcmp(const void *m1, const void *m2, Uint count); -extern void *memcpy(void *dest, const void *src, Uint count); -extern void *memcpyd(void *dest, const void *src, Uint count); -extern void *memset(void *dest, int val, Uint count); -extern void *memsetd(void *dest, Uint val, Uint count); +extern int memcmp(const void *m1, const void *m2, size_t count); +extern void *memcpy(void *dest, const void *src, size_t count); +extern void *memcpyd(void *dest, const void *src, size_t count); +extern void *memset(void *dest, int val, size_t count); +extern void *memsetd(void *dest, Uint32 val, size_t count); /** * \} */ @@ -283,6 +296,7 @@ extern Uint32 BigEndian32(Uint32 Val); * \name Strings * \{ */ +extern int sprintf(char *__s, const char *__format, ...); extern Uint strlen(const char *Str); extern char *strcpy(char *__dest, const char *__src); extern int strcmp(const char *__str1, const char *__str2); @@ -292,9 +306,11 @@ extern char *strdup(const char *Str); extern int strpos(const char *Str, char Ch); extern int strpos8(const char *str, Uint32 search); extern void itoa(char *buf, Uint num, int base, int minLength, char pad); +extern int atoi(const char *string); extern int ReadUTF8(Uint8 *str, Uint32 *Val); extern int WriteUTF8(Uint8 *str, Uint32 Val); -extern int LookupString(char **Array, char *Needle); +extern int ModUtil_SetIdent(char *Dest, char *Value); +extern int ModUtil_LookupString(char **Array, char *Needle); extern Uint8 ByteSum(void *Ptr, int Size); /** * \} @@ -354,8 +370,10 @@ extern int Proc_Spawn(char *Path); extern void Threads_Exit(); extern void Threads_Yield(); extern void Threads_Sleep(); -extern int Threads_GetUID(); -extern int Threads_GetGID(); +extern tPID Threads_GetPID(); +extern tTID Threads_GetTID(); +extern tUID Threads_GetUID(); +extern tGID Threads_GetGID(); extern int SpawnTask(tThreadFunction Function, void *Arg); extern Uint *Threads_GetCfgPtr(int Id); /**