Feat: lab 4
This commit is contained in:
55
kernel/include/initrd.h
Normal file
55
kernel/include/initrd.h
Normal file
@@ -0,0 +1,55 @@
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
#include <dtb.h>
|
||||
#include <vector.h>
|
||||
|
||||
typedef struct {
|
||||
char c_magic[6];
|
||||
char c_ino[8];
|
||||
char c_mode[8];
|
||||
char c_uid[8];
|
||||
char c_gid[8];
|
||||
char c_nlink[8];
|
||||
char c_mtime[8];
|
||||
char c_filesize[8];
|
||||
char c_devmajor[8];
|
||||
char c_devminor[8];
|
||||
char c_rdevmajor[8];
|
||||
char c_rdevminor[8];
|
||||
char c_namesize[8];
|
||||
char c_check[8];
|
||||
}__attribute__((packed)) cpio_newc_header_t;
|
||||
|
||||
typedef struct file_node {
|
||||
struct file_node *l, *r;
|
||||
int rand;
|
||||
int node_size;
|
||||
|
||||
int ino;
|
||||
int mode;
|
||||
int uid;
|
||||
int gid;
|
||||
int nlink;
|
||||
int mtime;
|
||||
int filesize;
|
||||
int devmajor;
|
||||
int devminor;
|
||||
int rdevmajor;
|
||||
int rdevminor;
|
||||
int namesize;
|
||||
|
||||
char *filename;
|
||||
uint8_t *filecontent;
|
||||
} file_node_t;
|
||||
|
||||
typedef void (*initrd_callback_func_t)(file_node_t *);
|
||||
|
||||
file_node_t *initrd_init(void);
|
||||
void initrd_fdt_callback(const vector_t *props);
|
||||
file_node_t *initrd_get(file_node_t *root, const char *filename);
|
||||
void initrd_traverse(file_node_t *tr, initrd_callback_func_t func);
|
||||
|
||||
extern fdt_callback_t initrd_dtb_cb;
|
||||
extern void *initrd_start;
|
||||
extern void *initrd_end;
|
||||
Reference in New Issue
Block a user