PAYLOAD.


Data Structures

struct  cpioCrcPhysicalHeader
 Cpio archive header information. More...
struct  dnli_s
 Directory name iterator. More...
struct  hardLink_s
 Keeps track of the set of all hard links to a file in an archive. More...
struct  fsmIterator_s
 Iterator across package file info, forward on install, backward on erase. More...
struct  fsm_s
 File name and stat information. More...

Files

file  cpio.c
 Handle cpio payloads within rpm packages.
file  cpio.h
 Structures used to handle cpio payloads within rpm packages.
file  fsm.c
 File state machine to handle a payload from a package.
file  fsm.h
 File state machine to handle a payload within an rpm package.
file  psm.c
 Package state machine to handle a package from a transaction set.
file  psm.h
 Package state machine to handle a package from a transaction set.
file  rpmlib.h

Defines

#define CPIOERR_CHECK_ERRNO   0x00008000

Typedefs

typedef enum cpioMapFlags_e cpioMapFlags
typedef struct dnli_sDNLI_t
 Directory name iterator.

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_HDR_SIZE = (22 ), CPIOERR_HDR_TRAILER = (23 ), CPIOERR_UNKNOWN_FILETYPE = (24 ), CPIOERR_MISSING_HARDLINK = (25 ),
  CPIOERR_MD5SUM_MISMATCH = (26 ), CPIOERR_INTERNAL = (27 ), CPIOERR_UNMAPPED_FILE = (28 )
}
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_MULTILIB = (1 << 31)
}

Functions

const char *const cpioStrerror (int rc)
 Return formatted error message on payload handling failure.
static const char * fsmFsPath (const FSM_t fsm, const struct stat *st, const char *subdir, const char *suffix)
 Build path to file from file info, ornamented with subdir and suffix.
static void * mapFreeIterator (const void *p)
 Destroy file info iterator.
static void * mapInitIterator (const void *a, const void *b)
 Create file info iterator.
static int mapNextIterator (void *a)
 Return next index into file info.
static int cpioStrCmp (const void *a, const void *b)
static int mapFind (void *a, const char *fsmPath)
 Locate archive path in file info.
static void * dnlFreeIterator (const void *a)
 Destroy directory name iterator.
static int dnlCount (const DNLI_t dnli)
static int dnlIndex (const DNLI_t dnli)
static void * dnlInitIterator (const FSM_t fsm, int reverse)
 Create directory name iterator.
static const char * dnlNextIterator (DNLI_t dnli)
 Return next directory name (from file info).
static int saveHardLink (FSM_t fsm)
 Save hard link in chain.
static void * freeHardLink (struct hardLink_s *li)
 Destroy set of hard links.
static int expandRegular (FSM_t fsm)
 Create file from payload stream.
static int writeFile (FSM_t fsm, int writeData)
 Write next item to payload stream.
static int writeLinkedFile (FSM_t fsm)
 Write set of linked files to payload stream.
static int fsmMakeLinks (FSM_t fsm)
 Create pending hard links to existing file.
static int fsmCommitLinks (FSM_t fsm)
 Commit hard linked file set atomically.

RPMTS

typedef struct fsmIterator_sFSMI_t
 Iterator across package file info, forward on install, backward on erase.
typedef struct fsm_sFSM_t
 File state machine data.

Define Documentation

#define CPIOERR_CHECK_ERRNO   0x00008000

Note:
CPIO_CHECK_ERRNO bit is set only if errno is valid.

Definition at line 23 of file cpio.h.


Typedef Documentation

typedef struct dnli_s * DNLI_t

Directory name iterator.

typedef struct fsm_s* FSM_t

File state machine data.

Definition at line 1227 of file rpmlib.h.

typedef struct fsmIterator_s* FSMI_t

Iterator across package file info, forward on install, backward on erase.

Definition at line 1222 of file rpmlib.h.


Enumeration Type Documentation

Enumerator:
CPIOERR_BAD_MAGIC 
CPIOERR_BAD_HEADER 
CPIOERR_OPEN_FAILED 
CPIOERR_CHMOD_FAILED 
CPIOERR_CHOWN_FAILED 
CPIOERR_WRITE_FAILED 
CPIOERR_UTIME_FAILED 
CPIOERR_UNLINK_FAILED 
CPIOERR_RENAME_FAILED 
CPIOERR_SYMLINK_FAILED 
CPIOERR_STAT_FAILED 
CPIOERR_LSTAT_FAILED 
CPIOERR_MKDIR_FAILED 
CPIOERR_RMDIR_FAILED 
CPIOERR_MKNOD_FAILED 
CPIOERR_MKFIFO_FAILED 
CPIOERR_LINK_FAILED 
CPIOERR_READLINK_FAILED 
CPIOERR_READ_FAILED 
CPIOERR_COPY_FAILED 
CPIOERR_HDR_SIZE 
CPIOERR_HDR_TRAILER 
CPIOERR_UNKNOWN_FILETYPE 
CPIOERR_MISSING_HARDLINK 
CPIOERR_MD5SUM_MISMATCH 
CPIOERR_INTERNAL 
CPIOERR_UNMAPPED_FILE 

Definition at line 27 of file cpio.h.

Enumerator:
CPIO_MAP_PATH 
CPIO_MAP_MODE 
CPIO_MAP_UID 
CPIO_MAP_GID 
CPIO_FOLLOW_SYMLINKS  only for building.
CPIO_MAP_ABSOLUTE 
CPIO_MAP_ADDDOT 
CPIO_ALL_HARDLINKS  fail if hardlinks are missing.
CPIO_MAP_TYPE  only for building.
CPIO_MULTILIB  internal, only for building.

Definition at line 60 of file cpio.h.


Function Documentation

static int cpioStrCmp ( const void *  a,
const void *  b 
) [static]

Definition at line 138 of file fsm.c.

const char* const cpioStrerror ( int  rc  ) 

Return formatted error message on payload handling failure.

Parameters:
error code
Returns:
formatted error string

Definition at line 180 of file cpio.c.

static int dnlCount ( const DNLI_t  dnli  )  [inline, static]

Definition at line 210 of file fsm.c.

static void* dnlFreeIterator ( const void *  a  )  [static]

Destroy directory name iterator.

Parameters:
a directory name iterator
Return values:
NULL always

Definition at line 198 of file fsm.c.

static int dnlIndex ( const DNLI_t  dnli  )  [inline, static]

Definition at line 218 of file fsm.c.

static void* dnlInitIterator ( const FSM_t  fsm,
int  reverse 
) [static]

Create directory name iterator.

Parameters:
fsm file state machine data
reverse traverse directory names in reverse order?
Returns:
directory name iterator

Definition at line 230 of file fsm.c.

static const char* dnlNextIterator ( DNLI_t  dnli  )  [static]

Return next directory name (from file info).

Parameters:
dnli directory name iterator
Returns:
next directory name

Definition at line 306 of file fsm.c.

static int expandRegular ( FSM_t  fsm  )  [static]

Create file from payload stream.

Todo:
Legacy: support brokenEndian MD5 checks?
Parameters:
fsm file state machine data
Returns:
0 on success

Definition at line 670 of file fsm.c.

static void* freeHardLink ( struct hardLink_s li  )  [static]

Destroy set of hard links.

Parameters:
li set of hard links

Definition at line 422 of file fsm.c.

static int fsmCommitLinks ( FSM_t  fsm  )  [static]

Commit hard linked file set atomically.

Parameters:
fsm file state machine data
Returns:
0 on success

Definition at line 978 of file fsm.c.

static const char* fsmFsPath ( const FSM_t  fsm,
const struct stat *  st,
const char *  subdir,
const char *  suffix 
) [static]

Build path to file from file info, ornamented with subdir and suffix.

Parameters:
fsm file state machine data
st file stat info
subdir subdir to use (NULL disables)
suffix suffix to use (NULL disables)
Return values:
path to file

Definition at line 55 of file fsm.c.

static int fsmMakeLinks ( FSM_t  fsm  )  [static]

Create pending hard links to existing file.

Parameters:
fsm file state machine data
Returns:
0 on success

Definition at line 920 of file fsm.c.

static int mapFind ( void *  a,
const char *  fsmPath 
) [static]

Locate archive path in file info.

Parameters:
a file info iterator
fsmPath archive path
Returns:
index into file info, -1 if archive path was not found

Definition at line 161 of file fsm.c.

static void* mapFreeIterator ( const void *  p  )  [static]

Destroy file info iterator.

Parameters:
p file info iterator
Return values:
NULL always

Definition at line 88 of file fsm.c.

static void* mapInitIterator ( const void *  a,
const void *  b 
) [static]

Create file info iterator.

Parameters:
a transaction set
b transaction element file info
Returns:
file info iterator

Definition at line 100 of file fsm.c.

static int mapNextIterator ( void *  a  )  [static]

Return next index into file info.

Parameters:
a file info iterator
Returns:
next index, -1 on termination

Definition at line 122 of file fsm.c.

static int saveHardLink ( FSM_t  fsm  )  [static]

Save hard link in chain.

Parameters:
fsm file state machine data
Returns:
Is chain only partially filled?

Definition at line 335 of file fsm.c.

static int writeFile ( FSM_t  fsm,
int  writeData 
) [static]

Write next item to payload stream.

Parameters:
fsm file state machine data
writeData should data be written?
Returns:
0 on success

Definition at line 734 of file fsm.c.

static int writeLinkedFile ( FSM_t  fsm  )  [static]

Write set of linked files to payload stream.

Parameters:
fsm file state machine data
Returns:
0 on success

Definition at line 876 of file fsm.c.


Generated on Wed Oct 21 08:56:39 2009 for rpm by  doxygen 1.5.9