diff options
author | Petteri Aimonen <jpa@git.mail.kapsi.fi> | 2013-11-17 19:20:04 +0200 |
---|---|---|
committer | Petteri Aimonen <jpa@git.mail.kapsi.fi> | 2013-12-29 20:26:57 +0200 |
commit | ef31774cd902a6f069b8f2b80b870167328f5acb (patch) | |
tree | 321c008c224a5e197925030e1ddafcc0a88536d6 /extra/pb_syshdr.h | |
parent | 480b39cc0adc749ad81183fad2bfce6548c56604 (diff) |
Moving files around
Renamed READMEs to README.txt to be more friendly for Windows users.
Diffstat (limited to 'extra/pb_syshdr.h')
-rw-r--r-- | extra/pb_syshdr.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/extra/pb_syshdr.h b/extra/pb_syshdr.h new file mode 100644 index 00000000..b9a97a4f --- /dev/null +++ b/extra/pb_syshdr.h @@ -0,0 +1,94 @@ +/* This is an example of a header file for platforms/compilers that do + * not come with stdint.h/stddef.h/stdbool.h/string.h. To use it, define + * PB_SYSTEM_HEADER as "pb_syshdr.h", including the quotes, and add the + * extra folder to your include path. + * + * It is very likely that you will need to customize this file to suit + * your platform. For any compiler that supports C99, this file should + * not be necessary. + */ + +#ifndef _PB_SYSHDR_H_ +#define _PB_SYSHDR_H_ + +/* stdint.h subset */ +#ifdef HAVE_STDINT_H +#include <stdint.h> +#else +/* You will need to modify these to match the word size of your platform. */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#endif + +/* stddef.h subset */ +#ifdef HAVE_STDDEF_H +#include <stddef.h> +#else + +typedef uint32_t size_t; +#define offsetof(st, m) ((size_t)(&((st *)0)->m)) + +#ifndef NULL +#define NULL 0 +#endif + +#endif + +/* stdbool.h subset */ +#ifdef HAVE_STDBOOL_H +#include <stdbool.h> +#else + +#ifndef __cplusplus +typedef int bool; +#define false 0 +#define true 1 +#endif + +#endif + +/* string.h subset */ +#ifdef HAVE_STRING_H +#include <string.h> +#else + +/* Implementations are from the Public Domain C Library (PDCLib). */ +static size_t strlen( const char * s ) +{ + size_t rc = 0; + while ( s[rc] ) + { + ++rc; + } + return rc; +} + +static void * memcpy( void *s1, const void *s2, size_t n ) +{ + char * dest = (char *) s1; + const char * src = (const char *) s2; + while ( n-- ) + { + *dest++ = *src++; + } + return s1; +} + +static void * memset( void * s, int c, size_t n ) +{ + unsigned char * p = (unsigned char *) s; + while ( n-- ) + { + *p++ = (unsigned char) c; + } + return s; +} +#endif + +#endif |