diff options
Diffstat (limited to 'roms/openbios/include/libc')
-rw-r--r-- | roms/openbios/include/libc/byteorder.h | 61 | ||||
-rw-r--r-- | roms/openbios/include/libc/diskio.h | 33 | ||||
-rw-r--r-- | roms/openbios/include/libc/stdlib.h | 26 | ||||
-rw-r--r-- | roms/openbios/include/libc/string.h | 105 | ||||
-rw-r--r-- | roms/openbios/include/libc/vsprintf.h | 35 |
5 files changed, 260 insertions, 0 deletions
diff --git a/roms/openbios/include/libc/byteorder.h b/roms/openbios/include/libc/byteorder.h new file mode 100644 index 000000000..4ac9562f4 --- /dev/null +++ b/roms/openbios/include/libc/byteorder.h @@ -0,0 +1,61 @@ +/* tag: byteorder prototypes + * + * Copyright (C) 2004 Stefan Reinauer + * + * see the file "COPYING" for further information about + * the copyright and warranty status of this work. + */ +#ifndef __BYTEORDER_H +#define __BYTEORDER_H + +#define __bswap32(x) \ + ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \ + (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) + +#define __bswap16(x) ((((x) & 0xff00) >> 8) | (((x) & 0x00ff) << 8)) + +#define __bswap64(x) ( (__bswap32( (x) >> 32)) | \ + (__bswap32((x) & 0xffffffff) << 32) ) + +#ifdef CONFIG_LITTLE_ENDIAN +#define __cpu_to_le64(x) ((u64) (x)) +#define __le64_to_cpu(x) ((u64) (x)) +#define __cpu_to_le32(x) ((u32) (x)) +#define __le32_to_cpu(x) ((u32) (x)) +#define __cpu_to_le16(x) ((u16) (x)) +#define __le16_to_cpu(x) ((u16) (x)) +#define __cpu_to_be64(x) (__bswap64((u64) (x))) +#define __be64_to_cpu(x) (__bswap64((u64) (x))) +#define __cpu_to_be32(x) (__bswap32((u32) (x))) +#define __be32_to_cpu(x) (__bswap32((u32) (x))) +#define __cpu_to_be16(x) (__bswap16((u16) (x))) +#define __be16_to_cpu(x) (__bswap16((u16) (x))) +#endif +#ifdef CONFIG_BIG_ENDIAN +#define __cpu_to_le64(x) (__bswap64((u64) (x))) +#define __le64_to_cpu(x) (__bswap64((u64) (x))) +#define __cpu_to_le32(x) (__bswap32((u32) (x))) +#define __le32_to_cpu(x) (__bswap32((u32) (x))) +#define __cpu_to_le16(x) (__bswap16((u16) (x))) +#define __le16_to_cpu(x) (__bswap16((u16) (x))) +#define __cpu_to_be64(x) ((u64) (x)) +#define __be64_to_cpu(x) ((u64) (x)) +#define __cpu_to_be32(x) ((u32) (x)) +#define __be32_to_cpu(x) ((u32) (x)) +#define __cpu_to_be16(x) ((u16) (x)) +#define __be16_to_cpu(x) ((u16) (x)) +#endif + +#if BITS==32 +#define __becell_to_cpu(x) (__be32_to_cpu(x)) +#define __lecell_to_cpu(x) (__le32_to_cpu(x)) +#define __cpu_to_becell(x) (__cpu_to_be32(x)) +#define __cpu_to_lecell(x) (__cpu_to_le32(x)) +#else +#define __becell_to_cpu(x) (__be64_to_cpu(x)) +#define __lecell_to_cpu(x) (__le64_to_cpu(x)) +#define __cpu_to_becell(x) (__cpu_to_be64(x)) +#define __cpu_to_lecell(x) (__cpu_to_le64(x)) +#endif + +#endif diff --git a/roms/openbios/include/libc/diskio.h b/roms/openbios/include/libc/diskio.h new file mode 100644 index 000000000..3a5abb658 --- /dev/null +++ b/roms/openbios/include/libc/diskio.h @@ -0,0 +1,33 @@ +/* + * Creation Date: <2003/12/20 00:57:01 samuel> + * Time-stamp: <2004/01/07 19:32:29 samuel> + * + * <diskio.h> + * + * + * + * Copyright (C) 2003, 2004 Samuel Rydh (samuel@ibrium.se) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 + * + */ + +#ifndef _H_DISKIO +#define _H_DISKIO + +extern int open_ih( ihandle_t ih ); +extern int open_io( const char *spec ); +extern int close_io( int fd ); +extern int read_io( int fd, void *buf, size_t cnt ); +extern int seek_io( int fd, long long offs ); +extern long long tell( int fd ); +extern int reopen( int fd, const char *filename ); +extern int reopen_nwrom( int fd ); +extern ihandle_t get_ih_from_fd( int fd ); +const char *get_file_path( int fd ); +const char *get_fstype( int fd ); +const char *get_volume_name( int fd ); + +#endif /* _H_DISKIO */ diff --git a/roms/openbios/include/libc/stdlib.h b/roms/openbios/include/libc/stdlib.h new file mode 100644 index 000000000..ef08838d6 --- /dev/null +++ b/roms/openbios/include/libc/stdlib.h @@ -0,0 +1,26 @@ +/* + * Creation Date: <2003/12/19 18:52:20 samuel> + * Time-stamp: <2003/12/19 18:52:21 samuel> + * + * <stdlib.h> + * + * + * Copyright (C) 2003 Samuel Rydh (samuel@ibrium.se) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 + * + */ + +#ifndef _H_STDLIB +#define _H_STDLIB + +extern void *malloc( int size ); +extern void free( void *ptr ); +extern void *realloc( void *ptr, size_t size ); + +/* should perhaps go somewhere else... */ +extern void qsort( void *base, size_t nmemb, size_t size, int (*compar)(const void*, const void*)); + +#endif /* _H_STDLIB */ diff --git a/roms/openbios/include/libc/string.h b/roms/openbios/include/libc/string.h new file mode 100644 index 000000000..0e72f8d73 --- /dev/null +++ b/roms/openbios/include/libc/string.h @@ -0,0 +1,105 @@ +/* + * Creation Date: <2002/10/12 20:41:57 samuel> + * Time-stamp: <2003/10/25 12:51:22 samuel> + * + * <string.h> + * + * string library functions + * + * Copyright (C) 2002, 2003 Samuel Rydh (samuel@ibrium.se) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation + * + */ + +#ifndef _H_STRING +#define _H_STRING + +#include "config.h" + +#define bzero(s,n) memset( s, 0, n ) +#define atol(nptr) strtol(nptr, NULL, 10 ) + +extern long strtol( const char *nptr, char **endptr, int base ); +extern long long int strtoll( const char *nptr, char **endptr, int base ); + + +extern int strnicmp(const char *s1, const char *s2, size_t len); +extern char *strcpy(char * dest,const char *src); +extern char *strncpy(char * dest,const char *src,size_t count); +extern char *strcat(char * dest, const char * src); +extern char *strncat(char *dest, const char *src, size_t count); +extern int strcmp(const char * cs,const char * ct); +extern int strncmp(const char * cs,const char * ct,size_t count); +extern char *strchr(const char * s, int c); +extern char *strrchr(const char * s, int c); +extern size_t strlen(const char * s); +extern size_t strnlen(const char * s, size_t count); +extern char *strpbrk(const char * cs,const char * ct); +extern char *strsep(char **s, const char *ct); +extern void *memset(void * s,int c,size_t count); +extern void *memcpy(void * dest,const void *src,size_t count); +extern void *memmove(void * dest,const void *src,size_t count); +extern int memcmp(const void * cs,const void * ct,size_t count); + +extern char *strdup( const char *str ); +extern int strcasecmp( const char *cs, const char *ct ); +extern int strncasecmp( const char *cs, const char *ct, size_t count ); + +extern char *strncpy_nopad( char *dest, const char *src, size_t n ); + +#define _U 0x01 /* upper */ +#define _L 0x02 /* lower */ +#define _D 0x04 /* digit */ +#define _C 0x08 /* cntrl */ +#define _P 0x10 /* punct */ +#define _S 0x20 /* white space (space/lf/tab) */ +#define _X 0x40 /* hex digit */ +#define _SP 0x80 /* hard space (0x20) */ + +extern const unsigned char _ctype[]; + +#define __ismask(x) (_ctype[(int)(unsigned char)(x)]) + +#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0) +#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0) +#define iscntrl(c) ((__ismask(c)&(_C)) != 0) +#define isdigit(c) ((__ismask(c)&(_D)) != 0) +#define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0) +#define islower(c) ((__ismask(c)&(_L)) != 0) +#define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0) +#define ispunct(c) ((__ismask(c)&(_P)) != 0) +#define isspace(c) ((__ismask(c)&(_S)) != 0) +#define isupper(c) ((__ismask(c)&(_U)) != 0) +#define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0) + +#define isascii(c) (((unsigned char)(c))<=0x7f) +#define toascii(c) (((unsigned char)(c))&0x7f) + + +static inline unsigned char __tolower(unsigned char c) { + if (isupper(c)) + c -= 'A'-'a'; + return c; +} + +static inline unsigned char __toupper(unsigned char c) { + if (islower(c)) + c -= 'a'-'A'; + return c; +} + +#define tolower(c) __tolower(c) +#define toupper(c) __toupper(c) + +extern int errno_int; + +// Propolice support +extern long __guard[8]; + +void __stack_smash_handler(const char *func, int damaged); +void __stack_chk_fail(void); + +#endif /* _H_STRING */ diff --git a/roms/openbios/include/libc/vsprintf.h b/roms/openbios/include/libc/vsprintf.h new file mode 100644 index 000000000..4852274fc --- /dev/null +++ b/roms/openbios/include/libc/vsprintf.h @@ -0,0 +1,35 @@ +/* + * Creation Date: <2003/12/20 01:51:22 samuel> + * Time-stamp: <2004/01/07 19:02:17 samuel> + * + * <vsprintf.h> + * + * + * + * Copyright (C) 2003, 2004 Samuel Rydh (samuel@ibrium.se) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 + * + */ + +#ifndef _H_VSPRINTF +#define _H_VSPRINTF + +#include <stdarg.h> +#include "config.h" + +int vsprintf(char *buf, const char *fmt, va_list args) + __attribute__((__format__(__printf__, 2, 0))); +int sprintf(char * buf, const char *fmt, ...) + __attribute__((__format__(__printf__, 2, 3))); +int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) + __attribute__((__format__(__printf__, 3, 0))); +int snprintf(char * buf, size_t size, const char *fmt, ...) + __attribute__((__format__(__printf__, 3, 4))); + +int forth_printf(const char *fmt, ...) + __attribute__((__format__(__printf__, 1, 2))); + +#endif /* _H_VSPRINTF */ |