diff options
Diffstat (limited to 'src/initrd.c')
-rw-r--r-- | src/initrd.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/initrd.c b/src/initrd.c index 1534210..8b0c80b 100644 --- a/src/initrd.c +++ b/src/initrd.c @@ -23,6 +23,7 @@ */ #include <initrd.h> +#include <heap.h> #include <string.h> extern uint8_t _binary_initrd_img_start[]; @@ -50,6 +51,18 @@ char *initrd_getfile(uint32_t offset) return ptr; } +char *initrd_getname(uint32_t offset) +{ + char *file = initrd_getfile(offset); + if (file == 0) + return 0; + uint32_t len = *((uint32_t *)file); + char *buf = malloc(len + 1); + strncpy(buf, file + 4, len); + buf[len] = '\0'; + return buf; +} + char *initrd_readfile(const char *name) { char *ptr; |