* device/include/asm/pic16/features.h,
[fw/sdcc] / device / include / pic16 / stdlib.h
index fa9d166ef1d79dbcfbe5c32a9d6f9a7056fe9ec8..d6f1c4b738060da289c76dcf4267bbe1cf0eacde 100644 (file)
 ** $Id$
 */
 
-#ifndef __PIC16_STDLIB_H
-#define __PIC16_STDLIB_H 1
+#ifndef __STDLIB_H__
+#define __STDLIB_H__ 1
 
 #pragma library c
 
+#include <stdint.h>
+
+
 #ifndef NULL
 # define NULL (void *)0
 #endif
 
-//#include <malloc.h>
+#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 *);
 
-extern float atof (char *);
-extern int atoi (char *);
-extern 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 void uitoa(unsigned int, data char *, unsigned char);
-extern 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 void ultoa(unsigned long, data unsigned char *, unsigned char);
-extern void ltoa(long, data unsigned char*, unsigned char);
+/* helper functions: convert a float to ASCII string */
+extern char x_ftoa(float, __data char *, unsigned char, unsigned char);
 
-extern char x_ftoa(float, data char *, unsigned char, unsigned char);
+/* George M. Gallant's version of ftoa() */
+extern void g_ftoa(__data char *, float, char);
 
-extern void g_ftoa(data char *, float, char);
 
-#endif /* __PIC16_STDLIB_H */
+#endif /* __STDLIB_H__ */