/* */
/* */
/* */
-/* (C) 1998-2004 Ullrich von Bassewitz */
-/* Römerstrasse 52 */
-/* D-70794 Filderstadt */
-/* EMail: uz@cc65.org */
+/* (C) 1998-2009, Ullrich von Bassewitz */
+/* Roemerstrasse 52 */
+/* D-70794 Filderstadt */
+/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
int quot;
} div_t;
+/* Return type of the ldiv function (which currently doesn't exist) */
+typedef struct {
+ long rem;
+ long quot;
+} ldiv_t;
+
/* Memory management */
void* __fastcall__ malloc (size_t size);
void* __fastcall__ calloc (size_t count, size_t size);
/* Non standard memory management functions */
+#if __CC65_STD__ == __CC65_STD_CC65__
+int __fastcall__ posix_memalign (void** memptr, size_t alignment, size_t size);
+/* Allocate a block of memory with the given "size", which is aligned to a
+ * memory address that is a multiple of "alignment". "alignment" MUST NOT be
+ * zero, and MUST be a power of two; otherwise, this function will return
+ * EINVAL. The function returns ENOMEM if not enough memory is available
+ * to satisfy the request. "memptr" must point to a variable; that variable
+ * will return the address of the allocated memory. Use free() to release that
+ * allocated block.
+ */
+#endif
+
void __fastcall__ _heapadd (void* mem, size_t size);
/* Add a block to the heap */
char* __fastcall__ getenv (const char* name);
void __fastcall__ qsort (void* base, size_t count, size_t size,
int (*compare) (const void*, const void*));
-int system (const char* s);
+long __fastcall__ strtol (const char* nptr, char** endptr, int base);
+unsigned long __fastcall__ strtoul (const char* nptr, char** endptr, int base);
+int __fastcall__ system (const char* s);
/* Non-ANSI functions */
void __fastcall__ _swap (void* p, void* q, size_t size);
char* __fastcall__ utoa (unsigned val, char* buf, int radix);
char* __fastcall__ ltoa (long val, char* buf, int radix);
char* __fastcall__ ultoa (unsigned long val, char* buf, int radix);
+int __fastcall__ putenv (char* s);
#endif