summaryrefslogtreecommitdiffhomepage
path: root/include/fd.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-28 09:30:38 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-28 09:30:38 +0100
commit7df7ed6d026c5e1f3b8111e3536af3771301c177 (patch)
treef87916ee645aec06971a84dc1e9e5f1267fbe755 /include/fd.h
parent176cf8f237745d658185a2fba8fff1401c1c2b5f (diff)
feat! firmware breaking changes on the API.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'include/fd.h')
-rw-r--r--include/fd.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/include/fd.h b/include/fd.h
new file mode 100644
index 0000000..c1dfff4
--- /dev/null
+++ b/include/fd.h
@@ -0,0 +1,30 @@
+// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org)
+// Distributed under the Apache Software License, Version 2.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.apache.org/licenses/LICENSE-2.0)
+// Official repository: https://github.com/nekernel-org/neboot
+
+#pragma once
+
+#include <include/boot.h>
+
+struct _nb_file_descriptor;
+
+/// @brief NeBoot file/device descriptor.
+/// @version 1
+typedef struct _nb_file_descriptor {
+ int32_t f_kind;
+ int32_t f_filesystem;
+
+ size_t (*f_write)(void* ptr, size_t size, size_t nitems, struct _nb_file_descriptor* self);
+ size_t (*f_read)(void* ptr, size_t size, size_t nitems, struct _nb_file_descriptor* self);
+ int (*f_seek)(struct _nb_file_descriptor* self, size_t off, int whence);
+ int (*f_tell)(struct _nb_file_descriptor* self);
+ int (*f_rewind)(struct _nb_file_descriptor* self);
+ int (*f_eof)(struct _nb_file_descriptor* self);
+ int (*f_close)(struct _nb_file_descriptor* self);
+} cb_file_descriptor_t;
+
+/// @brief Grabs a new device reference.
+/// @param path the device path.
+/// @return
+cb_file_descriptor_t* cb_grab_fd(const char* path);