MEMHEADER
{
- MEMHEADER _xdata * next;
- MEMHEADER _xdata * prev;
+ MEMHEADER xdata * next;
+ MEMHEADER xdata * prev;
unsigned int len;
unsigned char mem[1];
};
typedef unsigned char jmp_buf[3];
-int setjmp (unsigned char _generic *);
-int longjmp(unsigned char _generic *,int);
+int setjmp (unsigned char *);
+int longjmp(unsigned char *, int);
#endif
#elif defined(SDCC_USE_XSTACK)
typedef unsigned char _pdata * va_list ;
-#define va_arg(marker,type) *((type _data *)(marker -= sizeof(type)))
+#define va_arg(marker,type) *((type data *)(marker -= sizeof(type)))
#define va_start(marker,first) { marker = (va_list)((char _pdata *)&first); }
#else
-typedef unsigned char _data * va_list ;
-#define va_arg(marker,type) *((type _data * )(marker -= sizeof(type)))
-#define va_start(marker,first) { marker = (va_list) ((char _data * )&first); }
+typedef unsigned char data * va_list ;
+#define va_arg(marker,type) *((type data * )(marker -= sizeof(type)))
+#define va_start(marker,first) { marker = (va_list) ((char data * )&first); }
#endif
#define __SDC51_STRING_H 1
#ifndef SDCC_mcs51
-#define _generic
#define reentrant
#endif
#warning Make sure you recompiled _str*.c and _mem*.c library functions as 'reentrant'
#endif
-extern char _generic *strcpy (char _generic *, char _generic *) reentrant ;
-extern char _generic *strncpy(char _generic *, char _generic *,int ) reentrant ;
-extern char _generic *strcat (char _generic *, char _generic *) reentrant ;
-extern char _generic *strncat(char _generic *, char _generic *,int ) reentrant ;
-extern int strcmp (char _generic *, char _generic *) reentrant ;
-extern int strncmp(char _generic *, char _generic *,int ) reentrant ;
-extern char _generic *strchr (char _generic *, char ) reentrant ;
-extern char _generic *strrchr(char _generic *, char ) reentrant ;
-extern int strspn (char _generic *, char _generic *) reentrant ;
-extern int strcspn(char _generic *, char _generic *) reentrant ;
-extern char _generic *strpbrk(char _generic *, char _generic *) reentrant ;
-extern char _generic *strstr (char _generic *, char _generic *) reentrant ;
-extern int strlen (char _generic * ) reentrant ;
-extern char _generic *strtok (char _generic *, char _generic *) reentrant ;
-extern void _generic *memcpy (void _generic *, void _generic *, int ) reentrant ;
-extern int memcmp (void _generic *, void _generic *, int ) reentrant ;
-extern void _generic *memset (void _generic *, unsigned char , int ) reentrant ;
+extern char *strcpy (char *, char *) reentrant ;
+extern char *strncpy(char *, char *,int ) reentrant ;
+extern char *strcat (char *, char *) reentrant ;
+extern char *strncat(char *, char *,int ) reentrant ;
+extern int strcmp (char *, char *) reentrant ;
+extern int strncmp(char *, char *,int ) reentrant ;
+extern char *strchr (char *, char ) reentrant ;
+extern char *strrchr(char *, char ) reentrant ;
+extern int strspn (char *, char *) reentrant ;
+extern int strcspn(char *, char *) reentrant ;
+extern char *strpbrk(char *, char *) reentrant ;
+extern char *strstr (char *, char *) reentrant ;
+extern int strlen (char * ) reentrant ;
+extern char *strtok (char *, char *) reentrant ;
+extern void *memcpy (void *, void *, int ) reentrant ;
+extern int memcmp (void *, void *, int ) reentrant ;
+extern void *memset (void *, unsigned char , int ) reentrant ;
#else
-extern char _generic *strcpy (char _generic *, char _generic *) ;
-extern char _generic *strncpy(char _generic *, char _generic *,int ) ;
-extern char _generic *strcat (char _generic *, char _generic *) ;
-extern char _generic *strncat(char _generic *, char _generic *,int ) ;
-extern int strcmp (char _generic *, char _generic *) ;
-extern int strncmp(char _generic *, char _generic *,int ) ;
-extern char _generic *strchr (char _generic *, char ) ;
-extern char _generic *strrchr(char _generic *, char ) ;
-extern int strspn (char _generic *, char _generic *) ;
-extern int strcspn(char _generic *, char _generic *) ;
-extern char _generic *strpbrk(char _generic *, char _generic *) ;
-extern char _generic *strstr (char _generic *, char _generic *) ;
-extern int strlen (char _generic * ) ;
-extern char _generic *strtok (char _generic *, char _generic *) ;
-extern void _generic *memcpy (void _generic *, void _generic *, int ) ;
-extern int memcmp (void _generic *, void _generic *, int ) ;
-extern void _generic *memset (void _generic *, unsigned char , int ) ;
+extern char *strcpy (char *, char *) ;
+extern char *strncpy(char *, char *,int ) ;
+extern char *strcat (char *, char *) ;
+extern char *strncat(char *, char *,int ) ;
+extern int strcmp (char *, char *) ;
+extern int strncmp(char *, char *,int ) ;
+extern char *strchr (char *, char ) ;
+extern char *strrchr(char *, char ) ;
+extern int strspn (char *, char *) ;
+extern int strcspn(char *, char *) ;
+extern char *strpbrk(char *, char *) ;
+extern char *strstr (char *, char *) ;
+extern int strlen (char * ) ;
+extern char *strtok (char *, char *) ;
+extern void *memcpy (void *, void *, int ) ;
+extern int memcmp (void *, void *, int ) ;
+extern void *memset (void *, unsigned char , int ) ;
#if SDCC_ds390
-extern void _xdata *memcpyx(void _xdata *, void _xdata *, int) _naked;
+extern void xdata * memcpyx(void xdata *, void xdata *, int) _naked;
#endif
#endif
#define NULL (void *)0
int memcmp (
- void _generic * buf1,
- void _generic * buf2,
+ void * buf1,
+ void * buf2,
int count
)
{
if (!count)
return(0);
- while ( --count && *((char _generic *)buf1) == *((char _generic *)buf2) ) {
- buf1 = (char _generic *)buf1 + 1;
- buf2 = (char _generic *)buf2 + 1;
+ while ( --count && *((char *)buf1) == *((char *)buf2) ) {
+ buf1 = (char *)buf1 + 1;
+ buf2 = (char *)buf2 + 1;
}
- return( *((unsigned char _generic *)buf1) - *((unsigned char _generic *)buf2) );
+ return( *((unsigned char *)buf1) - *((unsigned char *)buf2) );
}
#define NULL (void *)0
-void _generic * memcpy (
- void _generic * dst,
- void _generic * src,
+void * memcpy (
+ void * dst,
+ void * src,
int acount
)
{
#pragma NOINDUCTION
- char _generic * d = dst;
- char _generic * s = src;
+ char * d = dst;
+ char * s = src;
int count = -acount;
count /= 4;
}
return dst;
#else
- void _generic * ret = dst;
- char _generic * d = dst;
- char _generic * s = src;
+ void * ret = dst;
+ char * d = dst;
+ char * s = src;
/*
* copy from lower addresses to higher addresses
#include "string.h"
#define NULL (void *)0
-void _generic *memset (
- void _generic * buf,
- unsigned char ch ,
- int count
- )
+void * memset (
+ void * buf,
+ unsigned char ch ,
+ int count)
{
- register unsigned char _generic *ret = buf;
+ register unsigned char * ret = buf;
while (count--) {
- *(unsigned char _generic *) ret = ch;
- ret = ((unsigned char _generic *) ret) + 1;
+ *(unsigned char *) ret = ch;
+ ret = ((unsigned char *) ret) + 1;
}
return buf ;
_muluint (unsigned int a, unsigned int b) // in future: _mulint
{
#ifdef SDCC_MODEL_LARGE // still needed for large + stack-auto
- union uu _xdata *x;
- union uu _xdata *y;
+ union uu xdata *x;
+ union uu xdata *y;
union uu t;
- x = (union uu _xdata *)&a;
- y = (union uu _xdata *)&b;
+ x = (union uu xdata *)&a;
+ y = (union uu xdata *)&b;
#else
register union uu *x;
register union uu *y;
struct { unsigned char b0; unsigned int i12; unsigned char b3;} bi;
} ;
#if defined(SDCC_MODEL_LARGE) || defined (SDCC_ds390)
-#define bcast(x) ((union bil _xdata *)&(x))
+#define bcast(x) ((union bil xdata *)&(x))
#elif defined(__z80) || defined(__gbz80)
#define bcast(x) ((union bil *)&(x))
#else
-#define bcast(x) ((union bil _near *)&(x))
+#define bcast(x) ((union bil near *)&(x))
#endif
/*
struct { unsigned char b0; unsigned int i12; unsigned char b3;} bi;
} ;
#if defined(SDCC_MODEL_LARGE) || defined (SDCC_ds390)
-#define bcast(x) ((union bil _xdata *)&(x))
+#define bcast(x) ((union bil xdata *)&(x))
#elif defined(__z80) || defined(__gbz80)
#define bcast(x) ((union bil *)&(x))
#else
-#define bcast(x) ((union bil _near *)&(x))
+#define bcast(x) ((union bil near *)&(x))
#endif
/*
-int longjmp (unsigned char _generic *bp, int rv)
+int longjmp (unsigned char *bp, int rv)
{
unsigned char lsp;
lsp = *(bp+2);
return rv;
}
-int setjmp( unsigned char _generic *bp) {
-
+int setjmp (unsigned char *bp)
+{
/* registers would have been saved on the
stack anyway so we need to save SP
and the return address */
*bp++ = *((unsigned char data *)SP - 1);
*bp = SP;
return 0;
-
}
-------------------------------------------------------------------------*/
#include "string.h"
#define NULL (void *)0
-char _generic * strcat (
- char _generic * dst,
- char _generic * src
+char * strcat (
+ char * dst,
+ char * src
)
{
- char _generic * cp = dst;
+ char * cp = dst;
while( *cp )
cp++; /* find end of dst */
#include "string.h"
#define NULL (void *)0
-char _generic * strchr (
- char _generic * string,
+char * strchr (
+ char * string,
char ch
)
{
#define NULL (void *)0
int strcmp (
- char _generic *asrc,
- char _generic *adst
+ char * asrc,
+ char * adst
)
{
#if _SDCC_Z80_STYLE_LIB_OPT
#pragma NOINDUCTION
char ret = 0 ;
- char _generic *src = asrc;
- char _generic *dst = adst;
+ char * src = asrc;
+ char * dst = adst;
while( ! (*src - *dst) && *dst)
++src, ++dst;
#define NULL (void *)0
-char _generic *strcpy (
- char _generic *d,
- char _generic *s)
+char * strcpy (
+ char * d,
+ char * s)
{
#if _SDCC_Z80_STYLE_LIB_OPT
- register char _generic *to = d;
- register char _generic *from = s;
+ register char * to = d;
+ register char * from = s;
while (*to++ = *from++) ;
return d;
#else
- register char _generic *d1 = d;
+ register char * d1 = d;
while (*d1++ = *s++) ;
#define NULL (void *)0
int strcspn (
- char _generic * string ,
- char _generic * control
+ char * string ,
+ char * control
)
{
register int count = 0 ;
#include "string.h"
#define NULL (void *)0
-int strlen ( char _generic *str )
+int strlen ( char * str )
{
register int i = 0 ;
#include "string.h"
#define NULL (void *)0
-char _generic * strncat (
- char _generic * front,
- char _generic * back,
+char * strncat (
+ char * front,
+ char * back,
int count
)
{
- char _generic *start = front;
+ char *start = front;
while (*front++);
#define NULL (void *)0
int strncmp (
- char _generic * first,
- char _generic * last,
+ char * first,
+ char * last,
int count
)
{
#include "string.h"
#define NULL (void *)0
-char _generic *strncpy (
- char _generic *d ,
- char _generic *s ,
- int n )
+char *strncpy (
+ char * d,
+ char * s,
+ int n )
{
- register char _generic *d1 = d;
+ register char * d1 = d;
while ( n-- )
*d++ = *s++ ;
#include "string.h"
#define NULL (void *)0
-char _generic *strpbrk (
- char _generic *string ,
- char _generic *control
+char * strpbrk (
+ char * string ,
+ char * control
)
{
register char ch ;
#include "string.h"
#define NULL (void *)0
-char _generic * strrchr (
- char _generic * string,
+char * strrchr (
+ char * string,
char ch
)
{
- char _generic *start = string;
+ char * start = string;
while (*string++) /* find end of string */
;
;
if (*string == ch) /* char found ? */
- return( (char _generic *)string );
+ return( (char *)string );
return (NULL) ;
}
#define NULL (void *)0
int strspn (
- char _generic * string,
- char _generic * control
+ char * string,
+ char * control
)
{
register int count = 0;
#include "string.h"
#define NULL (void *)0
-char _generic * strstr (
- char _generic * str1,
- char _generic * str2
+char * strstr (
+ char * str1,
+ char * str2
)
{
- char _generic *cp = str1;
- char _generic *s1;
- char _generic *s2;
+ char * cp = str1;
+ char * s1;
+ char * s2;
if ( !*str2 )
return str1;
#pragma NOINVARIANT
#endif
-char _generic *strtok (
- char _generic *str ,
- char _generic *control
- )
+char * strtok (
+ char * str,
+ char * control )
{
- static char _generic *s ;
- register char _generic *s1 ;
+ static char * s;
+ register char * s1;
if ( str )
s = str ;
#include <string.h>
-void _xdata * memcpyx (
- void _xdata * dst,
- void _xdata * src,
+void xdata * memcpyx (
+ void xdata * dst,
+ void xdata * src,
int count
) _naked
{
MEMHEADER
{
- MEMHEADER _xdata * next;
- MEMHEADER _xdata * prev;
+ MEMHEADER xdata * next;
+ MEMHEADER xdata * prev;
unsigned int len;
unsigned char mem[1];
};
#define HEADER_SIZE (sizeof(MEMHEADER)-1)
- #define NULL (void _xdata * ) 0
+ #define NULL (void xdata * ) 0
//Static here means: can be accessed from this module only
- static MEMHEADER _xdata * FIRST_MEMORY_HEADER_PTR;
- void init_dynamic_memory(MEMHEADER _xdata * array, unsigned int size)
+ static MEMHEADER xdata * FIRST_MEMORY_HEADER_PTR;
+ void init_dynamic_memory(MEMHEADER xdata * array, unsigned int size)
{
//This function MUST be called after the RESET.
if ( !array ) /*Reserved memory starts on 0x0000 but it's NULL...*/
{ //So, we lost one byte!
- array = (MEMHEADER _xdata * )((char _xdata * ) array + 1) ;
+ array = (MEMHEADER xdata * )((char xdata * ) array + 1) ;
size --;
}
FIRST_MEMORY_HEADER_PTR = array;
//Reserve a mem for last header
- array->next = (MEMHEADER _xdata * )(((char _xdata * ) array) + size - HEADER_SIZE);
+ array->next = (MEMHEADER xdata * )(((char xdata * ) array) + size - HEADER_SIZE);
array->next->next = NULL; //And mark it as last
array->prev = NULL; //and mark first as first
array->len = 0; //Empty and ready.
}
- void _xdata * malloc (unsigned int size)
+ void xdata * malloc (unsigned int size)
{
- register MEMHEADER _xdata * current_header;
- register MEMHEADER _xdata * new_header;
+ register MEMHEADER xdata * current_header;
+ register MEMHEADER xdata * new_header;
if (size>(0xFFFF-HEADER_SIZE)) return NULL; //To prevent overflow in next line
size += HEADER_SIZE; //We need a memory for header too
current_header->len = size; //for first allocation
return (current_header->mem);
} //else create new header at the begin of spare
- new_header = (MEMHEADER _xdata * )((char _xdata *)current_header + current_header->len);
+ new_header = (MEMHEADER xdata * )((char xdata *)current_header + current_header->len);
new_header->next = current_header->next; //and plug it into the chain
new_header->prev = current_header;
current_header->next = new_header;
return (new_header->mem);
}
- void free (MEMHEADER _xdata * p)
+ void free (MEMHEADER xdata * p)
{
- register MEMHEADER _xdata * prev_header;
+ register MEMHEADER xdata * prev_header;
if ( p ) //For allocated pointers only!
{
- p = (MEMHEADER _xdata * )((char _xdata *) p - HEADER_SIZE); //to start of header
+ p = (MEMHEADER xdata * )((char xdata *) p - HEADER_SIZE); //to start of header
if ( p->prev ) // For the regular header
{
prev_header = p->prev;
/* print a string... just grab each byte with __gptrget */
- /* the user much pass a 24 bit _generic pointer */
+ /* the user much pass a 24 bit generic pointer */
printf_string:
push dph // save addr in fmt onto stack
push dpl
- mov b, @r0 // b has type of address (_generic *)
+ mov b, @r0 // b has type of address (generic *)
dec r0
mov dph, @r0
dec r0
%lo octal long
%ho octal char
%c character char
- %s character _generic pointer
+ %s character generic pointer
*/
#include <stdarg.h>
}
if (string_flag) {
- str = va_arg(ap, char _generic *);
+ str = va_arg(ap, char *);
while (*str) putchar(*str++);
continue ;
}
/****************************************************************************/
-typedef char _generic *ptr_t;
+typedef char * ptr_t;
#ifdef toupper
#undef toupper
long l;
unsigned long ul;
float f;
- char _generic *p;
+ char *p;
} value_t;