1d15f0d10Skaashoek #include "types.h" 2d15f0d10Skaashoek #include "stat.h" 3d15f0d10Skaashoek #include "fcntl.h" 49b37d1bfSrsc #include "user.h" 59b37d1bfSrsc 6c41f1de5Srtm int 7c41f1de5Srtm puts(char *s) 8c41f1de5Srtm { 917a85657Srtm return write(1, s, strlen(s)); 10c41f1de5Srtm } 11c41f1de5Srtm 12b75c11b2Srsc char* 13b75c11b2Srsc strcpy(char *s, char *t) 14b75c11b2Srsc { 15b75c11b2Srsc char *os; 16b75c11b2Srsc 17b75c11b2Srsc os = s; 18b75c11b2Srsc while((*s++ = *t++) != 0) 19b75c11b2Srsc ; 20b75c11b2Srsc return os; 21b75c11b2Srsc } 2217a85657Srtm 238b58e810Skaashoek int 248b58e810Skaashoek strcmp(const char *p, const char *q) 258b58e810Skaashoek { 268b58e810Skaashoek while(*p && *p == *q) 278b58e810Skaashoek p++, q++; 288b58e810Skaashoek return (int) ((unsigned char) *p - (unsigned char) *q); 298b58e810Skaashoek } 308b58e810Skaashoek 3117a85657Srtm unsigned int 3217a85657Srtm strlen(char *s) 3317a85657Srtm { 3417a85657Srtm int n = 0; 3517a85657Srtm for(n = 0; s[n]; n++) 3617a85657Srtm ; 3717a85657Srtm return n; 3817a85657Srtm } 3917a85657Srtm 4043572072Srtm void* 4143572072Srtm memset(void *dst, int c, unsigned int n) 4243572072Srtm { 4343572072Srtm char *d = (char*) dst; 4443572072Srtm 4543572072Srtm while(n-- > 0) 4643572072Srtm *d++ = c; 4743572072Srtm 4843572072Srtm return dst; 4943572072Srtm } 5043572072Srtm 5117a85657Srtm char* 528b58e810Skaashoek strchr(const char *s, char c) 538b58e810Skaashoek { 548b58e810Skaashoek for(; *s; s++) 558b58e810Skaashoek if(*s == c) 568b58e810Skaashoek return (char*) s; 578b58e810Skaashoek return 0; 588b58e810Skaashoek } 598b58e810Skaashoek 608b58e810Skaashoek char* 6117a85657Srtm gets(char *buf, int max) 6217a85657Srtm { 6317a85657Srtm int i = 0, cc; 6417a85657Srtm char c; 6517a85657Srtm 6617a85657Srtm while(i+1 < max){ 6717a85657Srtm cc = read(0, &c, 1); 6817a85657Srtm if(cc < 1) 6917a85657Srtm break; 70*a059f025Srsc buf[i++] = c; 7117a85657Srtm if(c == '\n' || c == '\r') 7217a85657Srtm break; 7317a85657Srtm } 7417a85657Srtm buf[i] = '\0'; 7517a85657Srtm return buf; 7617a85657Srtm } 77d15f0d10Skaashoek 78d15f0d10Skaashoek int 79d15f0d10Skaashoek stat(char *n, struct stat *st) 80d15f0d10Skaashoek { 81bdb66433Skaashoek int fd; 82d15f0d10Skaashoek int r; 83d15f0d10Skaashoek 84bdb66433Skaashoek fd = open(n, O_RDONLY); 8548b82470Srsc if(fd < 0) 8648b82470Srsc return -1; 87d15f0d10Skaashoek r = fstat(fd, st); 88d15f0d10Skaashoek close(fd); 89d15f0d10Skaashoek return r; 90d15f0d10Skaashoek } 91