X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Finclude%2Fpic16%2Fstdlib.h;h=d6f1c4b738060da289c76dcf4267bbe1cf0eacde;hb=192a38bfafa3f31ffff65c59336261b1f3632543;hp=77ec060b209e3f0c053483fb97f98847598bf567;hpb=6474449850aeace128aebe2d7f387ac7c550bcc5;p=fw%2Fsdcc diff --git a/device/include/pic16/stdlib.h b/device/include/pic16/stdlib.h index 77ec060b..d6f1c4b7 100644 --- a/device/include/pic16/stdlib.h +++ b/device/include/pic16/stdlib.h @@ -28,27 +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); -extern float atof (char *); -extern int atoi (char *); -extern long atol (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 void uitoa(unsigned int, data char *, unsigned char); -extern void itoa(unsigned int, data char*, unsigned char); +/* helper functions: convert a float to ASCII string */ +extern char x_ftoa(float, __data char *, unsigned char, unsigned char); -extern void ultoa(unsigned long, data char *, unsigned char); -extern void ltoa(unsigned long, data char*, unsigned char); +/* George M. Gallant's version of ftoa() */ +extern void g_ftoa(__data char *, float, char); -extern char x_ftoa(float, data char *, unsigned char, unsigned char); -#endif /* __PIC16_STDLIB_H */ +#endif /* __STDLIB_H__ */