diff --git a/PROTOCOL.md b/PROTOCOL.md index 3a107d68..9100f5c5 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -605,7 +605,7 @@ struct limine_framebuffer { uint64_t edid_size; void *edid; - /* Revision 1 */ + /* Response revision 1 */ uint64_t mode_count; struct limine_video_mode **modes; }; @@ -907,7 +907,7 @@ struct limine_module_request { uint64_t revision; struct limine_module_response *response; - /* Revision 1 */ + /* Request revision 1 */ uint64_t internal_module_count; struct limine_internal_module **internal_modules; }; @@ -917,6 +917,8 @@ struct limine_module_request { * `internal_modules` - Pointer to an array of `internal_module_count` pointers to `struct limine_internal_module` structures. +Note: Internal modules are honoured if the module response has revision >= 1. + As part of `struct limine_internal_module`: * `path` - Path to the module to load. This path is *relative* to the location of diff --git a/common/protos/limine.c b/common/protos/limine.c index 96558245..8da7d295 100644 --- a/common/protos/limine.c +++ b/common/protos/limine.c @@ -662,6 +662,8 @@ FEAT_START struct limine_module_response *module_response = ext_mem_alloc(sizeof(struct limine_module_response)); + module_response->revision = 1; + struct limine_file *modules = ext_mem_alloc(module_count * sizeof(struct limine_file)); size_t final_module_count = 0; diff --git a/limine.h b/limine.h index d7d6b108..a9afb7e9 100644 --- a/limine.h +++ b/limine.h @@ -380,7 +380,7 @@ struct limine_module_request { uint64_t revision; LIMINE_PTR(struct limine_module_response *) response; - /* Revision 1 */ + /* Request revision 1 */ uint64_t internal_module_count; LIMINE_PTR(struct limine_internal_module **) internal_modules; };