13e12c5d1SDavid du Colombier #include "lib.h" 23e12c5d1SDavid du Colombier #include <sys/stat.h> 33e12c5d1SDavid du Colombier #include <errno.h> 43e12c5d1SDavid du Colombier #include "sys9.h" 53e12c5d1SDavid du Colombier 63e12c5d1SDavid du Colombier /* 73e12c5d1SDavid du Colombier * BUG: errno mapping 83e12c5d1SDavid du Colombier */ 93e12c5d1SDavid du Colombier int mkdir(const char * name,mode_t mode)103e12c5d1SDavid du Colombiermkdir(const char *name, mode_t mode) 113e12c5d1SDavid du Colombier { 123e12c5d1SDavid du Colombier int n; 13*219b2ee8SDavid du Colombier struct stat st; 143e12c5d1SDavid du Colombier 15*219b2ee8SDavid du Colombier if(stat(name, &st)==0) { 16*219b2ee8SDavid du Colombier errno = EEXIST; 17*219b2ee8SDavid du Colombier return -1; 18*219b2ee8SDavid du Colombier } 193e12c5d1SDavid du Colombier n = _CREATE(name, 0, 0x80000000|(mode&0777)); 203e12c5d1SDavid du Colombier if(n < 0) 213e12c5d1SDavid du Colombier _syserrno(); 223e12c5d1SDavid du Colombier else{ 233e12c5d1SDavid du Colombier _CLOSE(n); 243e12c5d1SDavid du Colombier n = 0; 253e12c5d1SDavid du Colombier } 263e12c5d1SDavid du Colombier return n; 273e12c5d1SDavid du Colombier } 28