kernel/inc/drivers/fs/ustar.h

38 lines
1.1 KiB
C

// This file is part of noxos and licensed under the MIT open source license
#ifndef NOX_USTAR_H
#define NOX_USTAR_H
#include "utils/stdtypes.h"
typedef enum {
USTAR_FILE,
USTAR_LINK_HARD,
USTAR_LINK_SYM,
USTAR_CHAR_DEVICE,
USTAR_BLOCK_DEVICE,
USTAR_DIRECTORY,
USTAR_PIPE
} ustar_type_E;
typedef struct {
char name [100];
uint64_t mode;
uint64_t owner_id;
uint64_t group_id;
char size [12]; // octal based string (don't ask me why, the ustar standard is weird)
char last_modification [12]; // unix timestamp (octal)
uint64_t checksum;
uint8_t type;
char name_linked [100];
char indicator [6];
uint16_t version;
char owner_user_name [32];
char owner_group_name [32];
uint64_t device_major;
uint64_t device_minor;
char name_prefix [155];
}__attribute__((packed)) __attribute__((aligned(512))) ustar_header_T;
#endif //NOX_USTAR_H