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 2317a85657Srtm unsigned int 2417a85657Srtm strlen(char *s) 2517a85657Srtm { 2617a85657Srtm int n = 0; 2717a85657Srtm for(n = 0; s[n]; n++) 2817a85657Srtm ; 2917a85657Srtm return n; 3017a85657Srtm } 3117a85657Srtm 3243572072Srtm void * 3343572072Srtm memset(void *dst, int c, unsigned int n) 3443572072Srtm { 3543572072Srtm char *d = (char *) dst; 3643572072Srtm 3743572072Srtm while(n-- > 0) 3843572072Srtm *d++ = c; 3943572072Srtm 4043572072Srtm return dst; 4143572072Srtm } 4243572072Srtm 4317a85657Srtm char * 4417a85657Srtm gets(char *buf, int max) 4517a85657Srtm { 4617a85657Srtm int i = 0, cc; 4717a85657Srtm char c; 4817a85657Srtm 4917a85657Srtm while(i+1 < max){ 5017a85657Srtm cc = read(0, &c, 1); 5117a85657Srtm if(cc < 1) 5217a85657Srtm break; 5317a85657Srtm if(c == '\n' || c == '\r') 5417a85657Srtm break; 5517a85657Srtm buf[i++] = c; 5617a85657Srtm } 5717a85657Srtm buf[i] = '\0'; 5817a85657Srtm return buf; 5917a85657Srtm } 60d15f0d10Skaashoek 61d15f0d10Skaashoek int 62d15f0d10Skaashoek stat(char *n, struct stat *st) 63d15f0d10Skaashoek { 64*bdb66433Skaashoek int fd; 65d15f0d10Skaashoek int r; 66d15f0d10Skaashoek 67*bdb66433Skaashoek fd = open(n, O_RDONLY); 68d15f0d10Skaashoek if (fd < 0) return -1; 69d15f0d10Skaashoek r = fstat(fd, st); 70d15f0d10Skaashoek close(fd); 71d15f0d10Skaashoek return r; 72d15f0d10Skaashoek } 73