123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #include "types.h"
- #include "stat.h"
- #include "fcntl.h"
- #include "user.h"
- #include "arm.h"
- char*
- strcpy(char *s, char *t)
- {
- char *os;
- os = s;
- while((*s++ = *t++) != 0)
- ;
- return os;
- }
- int
- strcmp(const char *p, const char *q)
- {
- while(*p && *p == *q)
- p++, q++;
- return (uchar)*p - (uchar)*q;
- }
- uint
- strlen(char *s)
- {
- int n;
- for(n = 0; s[n]; n++)
- ;
- return n;
- }
- void*
- memset(void *dst, int c, uint n)
- {
- char *p=dst;
- u32 rc=n;
- while (rc-- > 0) *p++ = c;
- return (void *)p;
- }
- char*
- strchr(const char *s, char c)
- {
- for(; *s; s++)
- if(*s == c)
- return (char*)s;
- return 0;
- }
- char*
- gets(char *buf, int max)
- {
- int i, cc;
- char c;
- for(i=0; i+1 < max; ){
- cc = read(0, &c, 1);
- if(cc < 1)
- break;
- buf[i++] = c;
- if(c == '\n' || c == '\r')
- break;
- }
- buf[i] = '\0';
- return buf;
- }
- int
- stat(char *n, struct stat *st)
- {
- int fd;
- int r;
- fd = open(n, O_RDONLY);
- if(fd < 0)
- return -1;
- r = fstat(fd, st);
- close(fd);
- return r;
- }
- int
- atoi(const char *s)
- {
- int n;
- n = 0;
- while('0' <= *s && *s <= '9')
- n = n*10 + *s++ - '0';
- return n;
- }
- void*
- memmove(void *vdst, void *vsrc, int n)
- {
- char *dst, *src;
-
- dst = vdst;
- src = vsrc;
- while(n-- > 0)
- *dst++ = *src++;
- return vdst;
- }
|