Cthulhu  0.2.10
Cthulhu compiler collection
dir.c
Go to the documentation of this file.
1 // SPDX-License-Identifier: LGPL-3.0-only
2 
3 #include "os/os.h"
4 #include "os_common.h"
5 #include "core/macros.h"
6 
8 {
9  CT_UNUSED(inode);
10 
11  return opendir(path);
12 }
13 
15 {
16  struct dirent *ent = readdir(impl);
17  *inode = ent;
18  return ent != NULL;
19 }
20 
22 {
23  return closedir(impl) == 0;
24 }
25 
26 CT_LOCAL const char *impl_inode_name(const os_inode_impl_t *inode)
27 {
28  struct dirent *ent = *inode;
29  return ent->d_name;
30 }
31 
33 {
34  struct dirent *ent = *inode;
35  return ent->d_type == DT_DIR ? eOsNodeDir : eOsNodeFile;
36 }
os_dirent_t
directory entry type
Definition: core.h:56
#define CT_LOCAL
Definition: compiler.h:166
#define CT_UNUSED(x)
mark a variable as unused
Definition: macros.h:46
CT_LOCAL os_dirent_t impl_inode_type(const os_inode_impl_t *inode)
Definition: dir.c:32
CT_LOCAL bool impl_iter_close(os_iter_impl_t impl)
Definition: dir.c:21
CT_LOCAL bool impl_iter_next(os_iter_impl_t impl, os_inode_impl_t *inode)
Definition: dir.c:14
CT_LOCAL os_iter_impl_t impl_iter_open(const char *path, os_inode_impl_t *inode)
Definition: dir.c:7
CT_LOCAL const char * impl_inode_name(const os_inode_impl_t *inode)
Definition: dir.c:26
DIR * os_iter_impl_t
Definition: posix.h:13
struct dirent * os_inode_impl_t
Definition: posix.h:12