summaryrefslogtreecommitdiff
path: root/LibC/dirent.h
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2018-10-24 12:43:52 +0200
committerAndreas Kling <awesomekling@gmail.com>2018-10-24 12:50:07 +0200
commitbca4b71bfa1e3db74aaa706a9849e36768282a95 (patch)
treef660e9b7f4db972af4cddf4767d5dd4fe84b481f /LibC/dirent.h
parent0c5bbac86e50bb5760a9424d77a0942345a2c9b3 (diff)
downloadserenity-bca4b71bfa1e3db74aaa706a9849e36768282a95.zip
Lots of hacking to make a very simple "ls" utility.
I added a dead-simple malloc that only allows allocations < 4096 bytes. It just forwards the request to mmap() every time. I also added simplified versions of opendir() and readdir().
Diffstat (limited to 'LibC/dirent.h')
-rw-r--r--LibC/dirent.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/LibC/dirent.h b/LibC/dirent.h
new file mode 100644
index 0000000000..be069d8133
--- /dev/null
+++ b/LibC/dirent.h
@@ -0,0 +1,27 @@
+#pragma once
+
+#include "types.h"
+
+extern "C" {
+
+struct dirent {
+ ino_t d_ino;
+ off_t d_off;
+ unsigned short d_reclen;
+ unsigned char d_type;
+ char d_name[256];
+};
+
+struct DIR {
+ int fd;
+ dirent cur_ent;
+ char* buffer;
+ size_t buffer_size;
+ char* nextptr;
+};
+
+DIR* opendir(const char* name);
+dirent* readdir(DIR* dirp);
+
+}
+