Added ordered_list driver and some parts of init ram disk
This commit is contained in:
29
kernel/drivers/initrd.h
Normal file
29
kernel/drivers/initrd.h
Normal file
@@ -0,0 +1,29 @@
|
||||
#ifndef INITRD_H
|
||||
#define INITRD_H
|
||||
/* Ramdisk is a file system that is loaded along with the kernel
|
||||
* and it usually contains configuration files or file system drivers.
|
||||
* It is used BEFORE partitions are being mounted*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include "../libc/string.h"
|
||||
#include "fs.h"
|
||||
|
||||
typedef struct {
|
||||
uint32_t nfiles; // Number of files in the ramdisk
|
||||
} initrd_header_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t magic; // Magic number for error checking
|
||||
int8_t name[64]; // Filename
|
||||
uint32_t offset;
|
||||
uint32_t length; // Length of the file
|
||||
} initrd_file_header_t;
|
||||
|
||||
// Function to initialize initrd, we'll pass the multiboot
|
||||
// module as parameter
|
||||
fs_node_t *init_ramdisk(uint32_t multiboot_location);
|
||||
static uint32_t initrd_read(fs_node_t *node, uint32_t offset, uint32_t size, uint8_t *buffer);
|
||||
static struct dirent *initrd_readdir(fs_node_t *node, uint32_t index);
|
||||
static fs_node_t *initrd_finddir(fs_node_t *node, uint8_t *name);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user