home *** CD-ROM | disk | FTP | other *** search
- #define MINILIBC_INTERNAL
-
- #include "minilibc.h"
-
- int atexit (void (*__func) (void)) {
- return 0;
- }
-
- void exit() {
- }
-
- char ** _environ = NULL;
- int errno = 0;
-
- void _init (int __status) {
- }
-
- void __libc_init_first (int __status) {
- }
-
- void _fini (int __status) {
- }
-
- inline int socket(int a, int b, int c) {
- unsigned long args[] = { a, b, c };
-
- return socketcall(SYS_SOCKET, args);
- }
-
- inline int bind(int a, void * b, int c) {
- unsigned long args[] = { a, (long) b, c };
-
- return socketcall(SYS_BIND, args);
- }
-
- inline int listen(int a, int b) {
- unsigned long args[] = { a, b, 0 };
-
- return socketcall(SYS_LISTEN, args);
- }
-
- inline int accept(int a, void * addr, void * addr2) {
- unsigned long args[] = { a, (long) addr, (long) addr2 };
-
- return socketcall(SYS_ACCEPT, args);
- }
-
- int strlen(const char * string) {
- int i = 0;
-
- while (*string++) i++;
-
- return i;
- }
-
- char * strncpy(char * dst, const char * src, int len) {
- char * chptr = dst;
- int i = 0;
-
- while (*src && i < len) *dst++ = *src++, i++;
- if (i < len) *dst = '\0';
-
- return chptr;
- }
-
- char * strcpy(char * dst, const char * src) {
- char * chptr = dst;
-
- while (*src) *dst++ = *src++;
- *dst = '\0';
-
- return chptr;
- }
-
- void * memcpy(void * dst, const void * src, int count) {
- char * a = dst;
- const char * b = src;
-
- while (count--)
- *a++ = *b++;
-
- return dst;
- }
-
- void sleep(int secs) {
- struct timeval tv;
-
- tv.tv_sec = secs;
- tv.tv_usec = 0;
-
- select(0, NULL, NULL, NULL, &tv);
- }
-
- int strcmp(const char * a, const char * b) {
- int i, j;
-
- i = strlen(a); j = strlen(b);
- if (i < j)
- return -1;
- else if (j < i)
- return 1;
-
- while (*a && (*a == *b)) a++, b++;
-
- if (!*a) return 0;
-
- if (*a < *b)
- return -1;
- else
- return 1;
- }
-
- int strncmp(const char * a, const char * b, int len) {
- char buf1[1000], buf2[1000];
-
- strncpy(buf1, a, len);
- strncpy(buf2, b, len);
- buf1[len] = '\0';
- buf2[len] = '\0';
-
- return strcmp(buf1, buf2);
- }
-
- void printint(int i) {
- char buf[10];
- char * chptr = buf + 9;
- int j = 0;
-
- if (i < 0) {
- write(1, "-", 1);
- i = -1 * i;
- }
-
- while (i) {
- *chptr-- = '0' + (i % 10);
- j++;
- i = i / 10;
- }
-
- write(1, chptr + 1, j);
- }
-
- char * strchr(char * str, int ch) {
- char * chptr;
-
- chptr = str;
- while (*chptr) {
- if (*chptr == ch) return chptr;
- chptr++;
- }
-
- return NULL;
- }
-
- void printf(char * fmt, ...) {
- char buf[2048];
- char * start = buf;
- char * chptr = buf;
- va_list args;
- char * strarg;
- int numarg;
-
- strcpy(buf, fmt);
- va_start(args, fmt);
-
- while (start) {
- while (*chptr != '%' && *chptr) chptr++;
-
- if (*chptr == '%') {
- *chptr++ = '\0';
- printstr(start);
-
- switch (*chptr++) {
- case 's':
- strarg = va_arg(args, char *);
- printstr(strarg);
- break;
-
- case 'd':
- numarg = va_arg(args, int);
- printint(numarg);
- break;
- }
-
- start = chptr;
- } else {
- printstr(start);
- start = NULL;
- }
- }
- }
-