modified some syscall code in rlibc, fs stuff
This commit is contained in:
36
kernel/initrd.h
Normal file
36
kernel/initrd.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#ifndef KINITRD_H
|
||||
#define KINITRD_H
|
||||
|
||||
#include <stdint.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];
|
||||
} cpio_header_t;
|
||||
|
||||
static inline uint32_t parse_hex(const char *s) {
|
||||
uint32_t val = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
val <<= 4;
|
||||
if (s[i] >= '0' && s[i] <= '9') val += (s[i] - '0');
|
||||
else if (s[i] >= 'A' && s[i] <= 'F') val += (s[i] - 'A' + 10);
|
||||
else if (s[i] >= 'a' && s[i] <= 'f') val += (s[i] - 'a' + 10);
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
void parse_cpio(void *initrd_start);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user