rpm  4.5
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
cpio.h File Reference

Structures used to handle cpio payloads within rpm packages. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  cpioCrcPhysicalHeader
 Cpio archive header information. More...
 

Macros

#define CPIOERR_CHECK_ERRNO   0x00008000
 
#define CPIO_NEWC_MAGIC   "070701"
 
#define CPIO_CRC_MAGIC   "070702"
 
#define CPIO_TRAILER   "TRAILER!!!"
 
#define PHYS_HDR_SIZE   110 /* Don't depend on sizeof(struct) */
 

Typedefs

typedef enum cpioMapFlags_e cpioMapFlags
 

Enumerations

enum  cpioErrorReturns {
  CPIOERR_BAD_MAGIC = (2 ), CPIOERR_BAD_HEADER = (3 ), CPIOERR_OPEN_FAILED = (4 | 0x00008000 ), CPIOERR_CHMOD_FAILED = (5 | 0x00008000 ),
  CPIOERR_CHOWN_FAILED = (6 | 0x00008000 ), CPIOERR_WRITE_FAILED = (7 | 0x00008000 ), CPIOERR_UTIME_FAILED = (8 | 0x00008000 ), CPIOERR_UNLINK_FAILED = (9 | 0x00008000 ),
  CPIOERR_RENAME_FAILED = (10 | 0x00008000 ), CPIOERR_SYMLINK_FAILED = (11 | 0x00008000 ), CPIOERR_STAT_FAILED = (12 | 0x00008000 ), CPIOERR_LSTAT_FAILED = (13 | 0x00008000 ),
  CPIOERR_MKDIR_FAILED = (14 | 0x00008000 ), CPIOERR_RMDIR_FAILED = (15 | 0x00008000 ), CPIOERR_MKNOD_FAILED = (16 | 0x00008000 ), CPIOERR_MKFIFO_FAILED = (17 | 0x00008000 ),
  CPIOERR_LINK_FAILED = (18 | 0x00008000 ), CPIOERR_READLINK_FAILED = (19 | 0x00008000 ), CPIOERR_READ_FAILED = (20 | 0x00008000 ), CPIOERR_COPY_FAILED = (21 | 0x00008000 ),
  CPIOERR_LSETFCON_FAILED = (22 | 0x00008000 ), CPIOERR_HDR_SIZE = (23 ), CPIOERR_HDR_TRAILER = (24 ), CPIOERR_UNKNOWN_FILETYPE = (25 ),
  CPIOERR_MISSING_HARDLINK = (26 ), CPIOERR_DIGEST_MISMATCH = (27 ), CPIOERR_INTERNAL = (28 ), CPIOERR_UNMAPPED_FILE = (29 ),
  CPIOERR_ENOENT = (30 ), CPIOERR_ENOTEMPTY = (31 )
}
 
enum  cpioMapFlags_e {
  CPIO_MAP_PATH = (1 << 0), CPIO_MAP_MODE = (1 << 1), CPIO_MAP_UID = (1 << 2), CPIO_MAP_GID = (1 << 3),
  CPIO_FOLLOW_SYMLINKS = (1 << 4), CPIO_MAP_ABSOLUTE = (1 << 5), CPIO_MAP_ADDDOT = (1 << 6), CPIO_ALL_HARDLINKS = (1 << 7),
  CPIO_MAP_TYPE = (1 << 8), CPIO_SBIT_CHECK = (1 << 9), CPIO_PAYLOAD_LIST = (1 << 10), CPIO_PAYLOAD_EXTRACT = (1 << 11),
  CPIO_PAYLOAD_CREATE = (1 << 12)
}
 

Functions

int cpioTrailerWrite (FSM_t fsm)
 Write cpio trailer.
 
int cpioHeaderWrite (FSM_t fsm, struct stat *st)
 Write cpio header.
 
int cpioHeaderRead (FSM_t fsm, struct stat *st)
 Read cpio header.
 
const char * cpioStrerror (int rc)
 Return formatted error message on payload handling failure.
 

Variables

int _cpio_debug
 

Detailed Description

Structures used to handle cpio payloads within rpm packages.

Warning
Rpm's cpio implementation may be different than standard cpio. The implementation is pretty close, but it has some behaviors which are more to RPM's liking. I tried to document the differing behavior in cpio.c, but I may have missed some (ewt).

Definition in file cpio.h.

Macro Definition Documentation

#define CPIO_CRC_MAGIC   "070702"

Definition at line 75 of file cpio.h.

Referenced by cpioHeaderRead().

#define CPIO_NEWC_MAGIC   "070701"

Definition at line 74 of file cpio.h.

Referenced by cpioHeaderRead(), cpioHeaderWrite(), and cpioTrailerWrite().

#define CPIO_TRAILER   "TRAILER!!!"

Definition at line 76 of file cpio.h.

Referenced by cpioTrailerWrite(), and fsmStage().

#define PHYS_HDR_SIZE   110 /* Don't depend on sizeof(struct) */

Definition at line 98 of file cpio.h.

Referenced by cpioHeaderRead(), cpioHeaderWrite(), and cpioTrailerWrite().

Function Documentation

int cpioHeaderRead ( FSM_t  fsm,
struct stat *  st 
)
int cpioHeaderWrite ( FSM_t  fsm,
struct stat *  st 
)
int cpioTrailerWrite ( FSM_t  fsm)

Write cpio trailer.

Return values
fsmfile path and stat info
Returns
0 on success

Definition at line 67 of file cpio.c.

References CPIO_NEWC_MAGIC, CPIO_TRAILER, FSM_DWRITE, FSM_PAD, fsmNext(), cpioCrcPhysicalHeader::magic, cpioCrcPhysicalHeader::namesize, cpioCrcPhysicalHeader::nlink, PHYS_HDR_SIZE, fsm_s::rdbuf, and fsm_s::rdnb.

Referenced by fsmSetup().

Variable Documentation

int _cpio_debug

Definition at line 24 of file cpio.c.