19b37d1bfSrsc #include "user.h" 29b37d1bfSrsc 3c41f1de5Srtm int 4c41f1de5Srtm puts(char *s) 5c41f1de5Srtm { 617a85657Srtm return write(1, s, strlen(s)); 7c41f1de5Srtm } 8c41f1de5Srtm 9b75c11b2Srsc char* 10b75c11b2Srsc strcpy(char *s, char *t) 11b75c11b2Srsc { 12b75c11b2Srsc char *os; 13b75c11b2Srsc 14b75c11b2Srsc os = s; 15b75c11b2Srsc while((*s++ = *t++) != 0) 16b75c11b2Srsc ; 17b75c11b2Srsc return os; 18b75c11b2Srsc } 1917a85657Srtm 2017a85657Srtm unsigned int 2117a85657Srtm strlen(char *s) 2217a85657Srtm { 2317a85657Srtm int n = 0; 2417a85657Srtm for(n = 0; s[n]; n++) 2517a85657Srtm ; 2617a85657Srtm return n; 2717a85657Srtm } 2817a85657Srtm 29*43572072Srtm void * 30*43572072Srtm memset(void *dst, int c, unsigned int n) 31*43572072Srtm { 32*43572072Srtm char *d = (char *) dst; 33*43572072Srtm 34*43572072Srtm while(n-- > 0) 35*43572072Srtm *d++ = c; 36*43572072Srtm 37*43572072Srtm return dst; 38*43572072Srtm } 39*43572072Srtm 4017a85657Srtm char * 4117a85657Srtm gets(char *buf, int max) 4217a85657Srtm { 4317a85657Srtm int i = 0, cc; 4417a85657Srtm char c; 4517a85657Srtm 4617a85657Srtm while(i+1 < max){ 4717a85657Srtm cc = read(0, &c, 1); 4817a85657Srtm if(cc < 1) 4917a85657Srtm break; 5017a85657Srtm if(c == '\n' || c == '\r') 5117a85657Srtm break; 5217a85657Srtm buf[i++] = c; 5317a85657Srtm } 5417a85657Srtm buf[i] = '\0'; 5517a85657Srtm return buf; 5617a85657Srtm } 57