1*c9945492SAndroid Build Coastguard Worker #define _GNU_SOURCE 2*c9945492SAndroid Build Coastguard Worker #include <dirent.h> 3*c9945492SAndroid Build Coastguard Worker #include <fcntl.h> 4*c9945492SAndroid Build Coastguard Worker #include <stdlib.h> 5*c9945492SAndroid Build Coastguard Worker #include "__dirent.h" 6*c9945492SAndroid Build Coastguard Worker #include "syscall.h" 7*c9945492SAndroid Build Coastguard Worker opendir(const char * name)8*c9945492SAndroid Build Coastguard WorkerDIR *opendir(const char *name) 9*c9945492SAndroid Build Coastguard Worker { 10*c9945492SAndroid Build Coastguard Worker int fd; 11*c9945492SAndroid Build Coastguard Worker DIR *dir; 12*c9945492SAndroid Build Coastguard Worker 13*c9945492SAndroid Build Coastguard Worker if ((fd = open(name, O_RDONLY|O_DIRECTORY|O_CLOEXEC)) < 0) 14*c9945492SAndroid Build Coastguard Worker return 0; 15*c9945492SAndroid Build Coastguard Worker if (!(dir = calloc(1, sizeof *dir))) { 16*c9945492SAndroid Build Coastguard Worker __syscall(SYS_close, fd); 17*c9945492SAndroid Build Coastguard Worker return 0; 18*c9945492SAndroid Build Coastguard Worker } 19*c9945492SAndroid Build Coastguard Worker dir->fd = fd; 20*c9945492SAndroid Build Coastguard Worker return dir; 21*c9945492SAndroid Build Coastguard Worker } 22