60 lines
1.3 KiB
C
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
|