65 lines
962 B
C
Raw Normal View History

2017-03-08 00:54:23 +08:00
#ifndef _CPIO_H_
#define _CPIO_H_
#include <stdint.h>
2017-07-02 21:36:09 +08:00
#include "list.h"
2017-03-08 00:54:23 +08:00
typedef struct cpio_file {
// uint32_t ino;
uint32_t mode;
uint32_t uid;
uint32_t gid;
// uint32_t nlink;
// uint32_t mtime;
uint32_t filesize;
// uint32_t devmajor;
// uint32_t devminor;
// uint32_t rdevmajor;
// uint32_t rdevminor;
uint32_t namesize;
// uint32_t check;
char *filename;
2017-03-10 04:08:17 +08:00
char *data;
2017-03-08 00:54:23 +08:00
int remove;
} cpio_file;
2017-07-02 21:36:09 +08:00
typedef struct line_list {
char *line;
int isNew;
struct list_head pos;
} line_list;
2017-03-08 00:54:23 +08:00
typedef struct cpio_newc_header {
char magic[6];
char ino[8];
char mode[8];
char uid[8];
char gid[8];
char nlink[8];
char mtime[8];
char filesize[8];
char devmajor[8];
char devminor[8];
char rdevmajor[8];
char rdevminor[8];
char namesize[8];
char check[8];
} cpio_newc_header;
2017-09-07 19:22:30 +08:00
typedef enum {
NONE,
RM,
MKDIR,
ADD,
2017-09-09 23:05:50 +08:00
MV,
2017-09-07 19:22:30 +08:00
EXTRACT,
TEST,
PATCH,
BACKUP,
RESTORE,
STOCKSHA1
} command_t;
2017-03-08 00:54:23 +08:00
#endif