Home | History | Annotate | Download | only in loader

Lines Matching refs:DIR

24 struct DIR {
31 DIR *opendir(const char *name) {
32 DIR *dir = 0;
39 if ((dir = (DIR *)loader_instance_tls_heap_alloc(sizeof *dir)) != 0 &&
40 (dir->name = (char *)loader_instance_tls_heap_alloc(
42 strcat(strcpy(dir->name, name), all);
44 if ((dir->handle =
45 (handle_type)_findfirst(dir->name, &dir->info)) != -1) {
46 dir->result.d_name = 0;
49 loader_instance_tls_heap_free(dir->name);
50 loader_instance_tls_heap_free(dir);
51 dir = 0;
55 loader_instance_tls_heap_free(dir);
56 dir = 0;
63 return dir;
66 int closedir(DIR *dir) {
69 if (dir) {
70 if (dir->handle != -1) {
71 result = _findclose(dir->handle);
74 loader_instance_tls_heap_free(dir->name);
75 loader_instance_tls_heap_free(dir);
86 struct dirent *readdir(DIR *dir) {
89 if (dir && dir->handle != -1) {
90 if (!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1) {
91 result = &dir->result;
92 result->d_name = dir->info.name;
101 void rewinddir(DIR *dir) {
102 if (dir && dir->handle != -1) {
103 _findclose(dir->handle);
104 dir->handle = (handle_type)_findfirst(dir->name, &dir->info);
105 dir->result.d_name = 0;