:: commit 93ce137a215a5a335ea30dcd0b308f21b0f4127b

mintsuki <mintsuki@protonmail.com> — 2022-04-14 23:28

parents: dae8927078

limine: Document Requests Section

diff --git a/PROTOCOL.md b/PROTOCOL.md
index 8251a30c..2e5e2e02 100644
--- a/PROTOCOL.md
+++ b/PROTOCOL.md
@@ -43,7 +43,7 @@ struct limine_example_request {
 bootloader will scan for inside the executable file to find requests. Requests
 may be located anywhere inside the executable as long as they are 8-byte
 aligned. There may only be 1 of the same request. The bootloader will refuse
-to boot an executable with multiple of the same request IDs.
+to boot an executable with multiple of the same request IDs. Alternatively, it is possible to provide a list of requests explicitly via an executable file section. See "Limine Requests Section".
 * `revision` - The revision of the request that the kernel provides. This is
 bumped whenever new members or functionality are added to the request structure.
 Bootloaders process requests in a backwards compatible manner, *always*. This
@@ -73,6 +73,13 @@ revisions do.
 This is all there is to features. For a list of official Limine features, read
 the "Feature List" section below.
 
+## Limine Requests Section
+
+If the executable kernel file contains a `.limine_reqs` section, the bootloader
+will, instead of scanning the executable for requests, fetch the requests
+from a NULL-terminated array of pointers to the provided requests, contained
+inside said section.
+
 ## Entry memory layout
 
 The protocol mandates kernels to load themselves at or above
tab: 248 wrap: offon