38 lines
1.1 KiB
C
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
|