X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Finclude%2Fcommon.h;h=16d089d23e3c2e24f7571570e02d4a72f0e6f7e4;hb=b6c3b3cf61caafbd91bbf3acc81995e472656a5b;hp=8b8d5a5e87bfd8681cfada9980b46d22cd0fca43;hpb=d7801bfc828d3328ac9a0172db8a71b8f33c4a19;p=tpg%2Facess2.git diff --git a/Kernel/include/common.h b/Kernel/include/common.h index 8b8d5a5e..16d089d2 100644 --- a/Kernel/include/common.h +++ b/Kernel/include/common.h @@ -10,13 +10,19 @@ #include #include +enum eConfigTypes { + CFGT_NULL, + CFGT_INT, + CFGT_HEAPSTR, + CFGT_PTR +}; enum eConfigs { CFG_VFS_CWD, CFG_VFS_MAXFILES, NUM_CFG_ENTRIES }; -#define CFGINT(_idx) (*(Uint*)(MM_PPD_CFG+(_idx)*sizeof(void*))) -#define CFGPTR(_idx) (*(void**)(MM_PPD_CFG+(_idx)*sizeof(void*))) +#define CFGINT(id) (*Threads_GetCfgPtr(id)) +#define CFGPTR(id) (*(void**)Threads_GetCfgPtr(id)) // === CONSTANTS === // --- Memory Flags -- @@ -37,19 +43,26 @@ typedef struct sKernelSymbol { // === FUNCTIONS === // --- Core --- extern void System_Init(char *ArgString); -extern int IRQ_AddHandler(int Num, void (*Callback)(void)); +extern int IRQ_AddHandler(int Num, void (*Callback)(int)); // --- Debug --- extern void Panic(char *Msg, ...); extern void Warning(char *Msg, ...); extern void Log(char *Fmt, ...); extern void LogV(char *Fmt, va_list Args); +extern void LogF(char *Fmt, ...); 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 ENTER(_types...) Debug_Enter((char*)__func__, _types) -#define LOG(_fmt...) Debug_Log((char*)__func__, _fmt) -#define LEAVE(_t...) Debug_Leave((char*)__func__, _t) +#if DEBUG +# define ENTER(_types...) Debug_Enter((char*)__func__, _types) +# define LOG(_fmt...) Debug_Log((char*)__func__, _fmt) +# define LEAVE(_t...) Debug_Leave((char*)__func__, _t) +#else +# define ENTER(...) +# define LOG(...) +# define LEAVE(...) +#endif // --- IO --- extern void outb(Uint16 Port, Uint8 Data); extern void outw(Uint16 Port, Uint16 Data); @@ -72,19 +85,20 @@ extern void MM_UnmapHWPage(Uint VAddr, Uint Number); extern tPAddr MM_AllocPhys(); extern void MM_RefPhys(tPAddr Addr); extern void MM_DerefPhys(tPAddr Addr); -extern void *memcpy(void *dest, void *src, Uint count); -extern void *memcpyd(void *dest, void *src, Uint count); +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); // --- Strings --- -extern Uint strlen(char *Str); -extern char *strcpy(char *__dest, char *__src); -extern int strcmp(char *__dest, char *__src); -extern int strncmp(char *Str1, char *Str2, size_t num); -extern int strucmp(char *Str1, char *Str2); -extern char *strdup(char *__str); -extern int strpos(char *Str, char Ch); -extern int strpos8(char *str, Uint32 search); +extern Uint strlen(const char *Str); +extern char *strcpy(char *__dest, const char *__src); +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); +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 ReadUTF8(Uint8 *str, Uint32 *Val); extern int WriteUTF8(Uint8 *str, Uint32 Val); @@ -100,15 +114,21 @@ extern int Module_LoadFile(char *Path, char *ArgStr); // --- Timing --- extern Sint64 timestamp(int sec, int mins, int hrs, int day, int month, int year); extern Sint64 now(); +extern int Time_CreateTimer(int Delta, void *Callback, void *Argument); +extern void Time_RemoveTimer(int ID); +extern void Time_Delay(int Delay); // --- Threads --- +extern int Proc_SpawnWorker(); extern int Proc_Spawn(char *Path); extern void Threads_Exit(); extern void Threads_Yield(); extern void Threads_Sleep(); -extern int Threads_GetCfg(int Index); extern int Threads_GetUID(); extern int Threads_GetGID(); extern int SpawnTask(tThreadFunction Function, void *Arg); +extern Uint *Threads_GetCfgPtr(int Id); +// --- Simple Math --- +extern int DivUp(int num, int dem); #include #include