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(base_length + strlen(all) + 1)) != 0) {
41 strcat(strcpy(dir->name, name), all);
43 if ((dir->handle = (handle_type)_findfirst(dir->name, &dir->info)) != -1) {
44 dir->result.d_name = 0;
47 loader_instance_tls_heap_free(dir->name);
48 loader_instance_tls_heap_free(dir);
49 dir = 0;
53 loader_instance_tls_heap_free(dir);
54 dir = 0;
61 return dir;
64 int closedir(DIR *dir) {
67 if (dir) {
68 if (dir->handle != -1) {
69 result = _findclose(dir->handle);
72 loader_instance_tls_heap_free(dir->name);
73 loader_instance_tls_heap_free(dir);
84 struct dirent *readdir(DIR *dir) {
87 if (dir && dir->handle != -1) {
88 if (!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1) {
89 result = &dir->result;
90 result->d_name = dir->info.name;
99 void rewinddir(DIR *dir) {
100 if (dir && dir->handle != -1) {
101 _findclose(dir->handle);
102 dir->handle = (handle_type)_findfirst(dir->name, &dir->info);
103 dir->result.d_name = 0;