quinn-os/minix.h

60 lines
1.3 KiB
C

#ifndef __MINIX_H__
#define __MINIX_H__
struct minix_super_block {
unsigned int s_ninodes;
unsigned short s_pad0;
unsigned short s_imap_blocks;
unsigned short s_zmap_blocks;
unsigned short s_first_data_zone;
unsigned short s_log_zone_size;
unsigned short s_pad1;
unsigned int s_max_size;
unsigned int s_zones;
unsigned short s_magic;
unsigned short s_pad2;
unsigned short s_blocksize;
unsigned char s_disk_version;
}__attribute__((packed));
struct minix_inode {
unsigned short i_mode;
unsigned short i_nlinks;
unsigned short i_uid;
unsigned short i_gid;
unsigned int i_size;
unsigned int i_atime;
unsigned int i_mtime;
unsigned int i_ctime;
unsigned int i_zone[10];
}__attribute__((packed));
struct minix_dir_entry {
unsigned int inode;
char name[60];
}__attribute__((packed));
struct minix_file_info {
unsigned int inode;
unsigned int file_size;
unsigned char type;
unsigned int atime;
unsigned int ctime;
unsigned int mtime;
};
struct minix_data {
struct minix_super_block sb;
char *s_imap;
char *s_zmap;
int inode_table_start_block;
int first_data_block;
};
#define NO_ZONE 0
#define NO_BLOCK 0
extern int minix_get_dents(struct vfs_device_t *device, struct minix_file_info *info, char *buffer, int len, unsigned long long offset, int *newoffset);
#endif