/* * * Run-time library string manipulation functions, per ANSI. */ #ifndef _STRING_H #define _STRING_H # ifdef __cplusplus extern "C" { # endif /* note: not the same as */ /* n.b.: no !defined(__STDC__) handling */ #ifndef _STDDEF_H #include /* get size_t, NULL */ #endif # define ___fdecl(_func,_arglist) _func _arglist __asm("decc$" #_func) size_t ___fdecl(strlen, (const char *__str)); char *___fdecl(strcpy, (char *__dst, const char *__src)); char *___fdecl(strcat, (char *__dst, const char *__src)); int ___fdecl(strcmp, (const char *__lft, const char *__rgt)); char *___fdecl(strncpy, (char *__dst, const char *__src, size_t __cnt)); char *___fdecl(strncat, (char *__dst, const char *__src, size_t __cnt)); int ___fdecl(strncmp, (const char *__lft, const char *__rgt, size_t __cnt)); char *___fdecl(strchr, (const char *__str, int __chr)); char *___fdecl(strrchr, (const char *__str, int __chr)); size_t ___fdecl(strspn, (const char *__str, const char *__set)); size_t ___fdecl(strcspn, (const char *__str, const char *__set)); char *___fdecl(strpbrk, (const char *__str, const char *__set)); char *___fdecl(strstr, (const char *__str, const char *__sub)); char *___fdecl(strtok, (char *__tkn, const char *__str)); /* defined in gcclib */ char *strdup (const char *__str); #define strerror decc$strerror #ifndef _STRERROR_P #define _STRERROR_P #if !defined(__STRICT_ANSI__) && !defined(__HIDE_FORBIDDEN_NAMES) char *strerror(int __err, ...); /* 2nd arg used iff 1st is EVMSERR */ #else char *strerror(int); #endif #endif void *___fdecl (memset, (void *__mem, int __val, size_t __cnt)); void *___fdecl (memcpy, (void *__dst, const void *__src, size_t __cnt)); void *___fdecl (memmove, (void *__dst, const void *__src, size_t __cnt)); int ___fdecl (memcmp, (const void *__lft, const void *__rgt, size_t __cnt)); void *___fdecl (memchr, (const void *__mem, int __trg, size_t __cnt)); #undef ___fdecl # ifdef __cplusplus } # endif #endif /*_STRING_H*/