X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Finclude%2Fpic16%2Fstdlib.h;h=d6f1c4b738060da289c76dcf4267bbe1cf0eacde;hb=15e47104204a8eac41e3d9769d1493531a4c5906;hp=d5280bd3e459fe3025f2d278175612b44bc0c58b;hpb=f9ce822b3896bed665affc68b982fb6f94a1aea9;p=fw%2Fsdcc diff --git a/device/include/pic16/stdlib.h b/device/include/pic16/stdlib.h index d5280bd3..d6f1c4b7 100644 --- a/device/include/pic16/stdlib.h +++ b/device/include/pic16/stdlib.h @@ -28,23 +28,57 @@ ** $Id$ */ -#ifndef __PIC16_STDLIB_H -#define __PIC16_STDLIB_H 1 +#ifndef __STDLIB_H__ +#define __STDLIB_H__ 1 + +#pragma library c + +#include + #ifndef NULL # define NULL (void *)0 #endif -//#include +#define RAND_MAX 0x7fffffff + +/* initialize random seed */ +void srand(unsigned long seed); + +/* return a random number between 0 and RAND_MAX */ +long rand(void); + +/* reentrant version of rand() */ +long rand_r(unsigned long *ctx); + + +/* returns the CRC16 checksum of the data buffer, takes as + * last argument an old value of crc16 checksum */ +uint16_t crc16(uint8_t *, uint32_t, uint16_t); + + +/* convert a ASCII string to float */ +float atof (char *); + +/* convert a ASCII string to integer */ +int atoi (char *); + +/* convert a ASCII string to long */ +long atol (char *); + +/* convert an unsigned/signed integer to ASCII string */ +void uitoa(unsigned int, __data char *, unsigned char); +void itoa(int, __data char*, unsigned char); + +/* convert an unsigned/signed long integer to ASCII string */ +void ultoa(unsigned long, __data unsigned char *, unsigned char); +void ltoa(long, __data unsigned char*, unsigned char); -extern float atof (char *); -extern int atoi (char *); -extern long atol (char *); +/* helper functions: convert a float to ASCII string */ +extern char x_ftoa(float, __data char *, unsigned char, unsigned char); -extern void uitoa(unsigned int, char*, unsigned char); -extern void itoa(unsigned int, char*, unsigned char); +/* George M. Gallant's version of ftoa() */ +extern void g_ftoa(__data char *, float, char); -extern void ultoa(unsigned long, char*, unsigned char); -extern void ltoa(unsigned long, char*, unsigned char); -#endif /* __PIC16_STDLIB_H */ +#endif /* __STDLIB_H__ */