X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Finclude%2Facess.h;h=d5b96b2455f73ee1d71e33b8d59d8bc5f681c0c5;hb=819ea8133d95cd688c47b4f688c2503db9a9bccd;hp=27dbb2a60355dd8da7706589fa2363dded957697;hpb=510431249326d5a44fc502ed5cf798b79a442ce8;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/include/acess.h b/KernelLand/Kernel/include/acess.h index 27dbb2a6..d5b96b24 100644 --- a/KernelLand/Kernel/include/acess.h +++ b/KernelLand/Kernel/include/acess.h @@ -9,10 +9,9 @@ * \brief Acess2 Kernel API Core */ +#include #include -//! NULL Pointer -#define NULL ((void*)0) //! Pack a structure #define PACKED __attribute__((packed)) //! Mark a function as not returning @@ -23,8 +22,6 @@ #define DEPRECATED __attribute__((deprecated)) //! Mark a parameter as unused #define UNUSED(x) UNUSED_##x __attribute__((unused)) -//! Get the offset of a member in a structure -#define offsetof(st, m) ((Uint)((char *)&((st *)(0))->m - (char *)0 )) /** * \name Boolean constants @@ -149,14 +146,14 @@ extern void IRQ_RemHandler(int Handle); // --- IO --- #if NO_IO_BUS -#define inb(a) (Log_Panic("Arch", STR(ARCHDIR)" does not support in*/out* (%s:%i)", __FILE__, __LINE__),0) +#define inb(a) (Log_Panic("Arch", STR(ARCHDIR)" does not support in* (%s:%i)", __FILE__, __LINE__),0) #define inw(a) inb(a) #define ind(a) inb(a) #define inq(a) inb(a) -#define outb(a,b) inb(a) -#define outw(a,b) inb(a) -#define outd(a,b) inb(a) -#define outq(a,b) inb(a) +#define outb(a,b) (Log_Panic("Arch", STR(ARCHDIR)" does not support out* (%s:%i)", __FILE__, __LINE__),(void)(b)) +#define outw(a,b) outb(a,b) +#define outd(a,b) outb(a,b) +#define outq(a,b) outb(a,b) #else /** * \name I/O Memory Access @@ -203,7 +200,7 @@ extern int MM_Map(tVAddr VAddr, tPAddr PAddr); * \param Addr Address of the page to get the physical address of * \return Physical page mapped at \a Addr */ -extern tPAddr MM_GetPhysAddr(const void *Addr); +extern tPAddr MM_GetPhysAddr(volatile const void *Addr); /** * \brief Set the access flags on a page * \param VAddr Virtual address of the page @@ -222,7 +219,7 @@ extern Uint MM_GetFlags(tVAddr VAddr); * \param VAddr Base address to check * \return 1 if the memory is all user-accessable, 0 otherwise */ -#define MM_IsUser(VAddr) (!(MM_GetFlags((VAddr))&MM_PFLAG_KERNEL)) +#define MM_IsUser(VAddr) (!(MM_GetFlags((tVAddr)(VAddr))&MM_PFLAG_KERNEL)) /** * \brief Temporarily map a page into the address space * \param PAddr Physical addres to map @@ -232,7 +229,7 @@ extern Uint MM_GetFlags(tVAddr VAddr); extern void *MM_MapTemp(tPAddr PAddr); /** * \brief Free a temporarily mapped page - * \param VAddr Allocate virtual addres of page + * \param Ptr Pointer to page base */ extern void MM_FreeTemp(void *Ptr); /** @@ -240,7 +237,7 @@ extern void MM_FreeTemp(void *Ptr); * \param PAddr Physical address to map in * \param Number Number of pages to map */ -extern tVAddr MM_MapHWPages(tPAddr PAddr, Uint Number); +extern void *MM_MapHWPages(tPAddr PAddr, Uint Number); /** * \brief Allocates DMA physical memory * \param Pages Number of pages required @@ -248,7 +245,7 @@ extern tVAddr MM_MapHWPages(tPAddr PAddr, Uint Number); * \param PhysAddr Pointer to the location to place the physical address allocated * \return Virtual address allocate */ -extern tVAddr MM_AllocDMA(int Pages, int MaxBits, tPAddr *PhysAddr); +extern void *MM_AllocDMA(int Pages, int MaxBits, tPAddr *PhysAddr); /** * \brief Unmaps an allocated hardware range * \param VAddr Virtual address allocate by ::MM_MapHWPages or ::MM_AllocDMA @@ -357,42 +354,7 @@ extern Uint64 SwapEndian64(Uint64 Val); */ // --- Strings --- -/** - * \name Strings - * \{ - */ -extern int vsnprintf(char *__s, size_t __maxlen, const char *__format, va_list args); -extern int snprintf(char *__s, size_t __n, const char *__format, ...); -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); -// strdup macro is defined in heap.h -extern char *_strdup(const char *File, int Line, const char *Str); -extern char **str_split(const char *__str, char __ch); -extern char *strchr(const char *__s, int __c); -extern char *strrchr(const char *__s, int __c); -extern int strpos(const char *Str, char Ch); -extern int strpos8(const char *str, Uint32 search); -extern void itoa(char *buf, Uint64 num, int base, int minLength, char pad); -extern int atoi(const char *string); -extern int ParseInt(const char *string, int *Val); -extern int ReadUTF8(const Uint8 *str, Uint32 *Val); -extern int WriteUTF8(Uint8 *str, Uint32 Val); -extern int ModUtil_SetIdent(char *Dest, const char *Value); -extern int ModUtil_LookupString(const char **Array, const char *Needle); - -extern Uint8 ByteSum(const void *Ptr, int Size); -extern int Hex(char *Dest, size_t Size, const Uint8 *SourceData); -extern int UnHex(Uint8 *Dest, size_t DestSize, const char *SourceString); -/** - * \} - */ +#include #include