X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Kernel%2Finclude%2Fcommon.h;h=398724da75b57d369958e95c03a5a62307412fa8;hb=391af300bd045791b8aaf50cf44b2d503c763213;hp=590295f574db7917224d049558b101b8e8eb865d;hpb=9d3800f60f2212432e550a4e003ae65b498a4d36;p=tpg%2Facess2.git diff --git a/Kernel/include/common.h b/Kernel/include/common.h index 590295f5..398724da 100644 --- a/Kernel/include/common.h +++ b/Kernel/include/common.h @@ -43,7 +43,7 @@ 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, ...); @@ -74,9 +74,10 @@ extern Uint32 ind(Uint16 Port); extern Uint64 inq(Uint16 Port); // --- Memory --- extern tPAddr MM_Allocate(Uint VAddr); -extern void MM_Deallocate(Uint VAddr); -extern int MM_Map(Uint VAddr, tPAddr PAddr); -extern tPAddr MM_GetPhysAddr(Uint VAddr); +extern void MM_Deallocate(Uint VAddr); //!< Deallocate a page +extern int MM_Map(Uint VAddr, tPAddr PAddr); //!< Map a page +extern tPAddr MM_GetPhysAddr(Uint VAddr); //!< Get the physical address of a page +extern int MM_IsUser(Uint VAddr, int Length); //!< Checks if a memory address is valid user memory extern void MM_SetFlags(Uint VAddr, Uint Flags, Uint Mask); extern Uint MM_MapTemp(tPAddr PAddr); extern void MM_FreeTemp(Uint PAddr); @@ -85,25 +86,31 @@ 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); +extern Uint16 LittleEndian16(Uint16 Val); +extern Uint16 BigEndian16(Uint16 Val); +extern Uint32 LittleEndian32(Uint32 Val); +extern Uint32 BigEndian32(Uint32 Val); // --- 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); extern Uint rand(); // --- Heap --- extern void *malloc(size_t size); +extern void *calloc(size_t num, size_t size); extern void *realloc(void *ptr, size_t size); extern void free(void *Ptr); extern int IsHeap(void *Ptr); @@ -117,6 +124,7 @@ 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(); @@ -125,6 +133,8 @@ 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