summaryrefslogtreecommitdiffhomepage
path: root/lib/bootnet.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-03-28 20:29:16 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-03-28 20:29:38 +0100
commitfcc66b0fa04b25b206e702110ed652fd4c113823 (patch)
tree0ea6fca5769e5fd14ce199eaf2b37bfe7cab2ce6 /lib/bootnet.h
parent154b4163d7c19aa86d3e47a78de9111d37f7f307 (diff)
fw: replace netboot with bootnet.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'lib/bootnet.h')
-rw-r--r--lib/bootnet.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/bootnet.h b/lib/bootnet.h
new file mode 100644
index 0000000..3ce6763
--- /dev/null
+++ b/lib/bootnet.h
@@ -0,0 +1,30 @@
+/* -------------------------------------------
+
+ Copyright (C) 2025, Amlal EL Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <lib/boot.h>
+
+#define BOOTNET_INET_MAGIC "NETB"
+#define BOOTNET_INET_MAGIC_LEN 4
+
+/// @brief Netboot Internet Header
+/// Consists of 4 magic characters, and a set of fields describing the current patch that's being sent (if m_preflight = 0)
+/// @note Can be used to patch ROMs too (if m_implies_rom = 1)
+typedef struct bootnet_inet_header
+{
+ char m_nb1; /// magic char 1 'N'
+ char m_nb2; /// magic char 2 'E'
+ char m_nb3; /// magic char 3 'T'
+ char m_nb4; /// magic char 4 'B'
+
+ char m_patch_name[255]; /// example: ColdChoco
+ int32_t m_length; /// The patch's length.
+ char m_target[255]; /// The target file.
+ uint8_t m_implies_rom; /// does it imply an EEPROM program?
+ uint8_t m_preflight; /// Do we just check if this endpoint exists/is valid?
+ uint8_t m_blob[];
+} bootnet_inet_header;