Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

PAYLOAD.


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

Data Structures

struct  cpioCrcPhysicalHeader
struct  dnli_s
struct  fsm_s
struct  fsmIterator_s
struct  hardLink_s

RPMTS

typedef struct fsmIterator_sFSMI_t
typedef struct fsm_sFSM_t

Defines

#define CPIOERR_CHECK_ERRNO   0x00008000

Typedefs

typedef enum cpioMapFlags_e  cpioMapFlags
typedef struct dnli_s *  DNLI_t

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)
const char* fsmFsPath (const FSM_t fsm, const struct stat *st, const char *subdir, const char *suffix)
void* mapFreeIterator (const void *p)
void* mapInitIterator (const void *a, const void *b)
int mapNextIterator (void *a)
int cpioStrCmp (const void *a, const void *b)
int mapFind (void *a, const char *fsmPath)
void* dnlFreeIterator (const void *a)
int dnlCount (const DNLI_t dnli)
int dnlIndex (const DNLI_t dnli)
void* dnlInitIterator (const FSM_t fsm, int reverse)
const char* dnlNextIterator (DNLI_t dnli)
int saveHardLink (FSM_t fsm)
void* freeHardLink (struct hardLink_s *li)
int expandRegular (FSM_t fsm)
int writeFile (FSM_t fsm, int writeData)
int writeLinkedFile (FSM_t fsm)
int fsmMakeLinks (FSM_t fsm)
int fsmCommitLinks (FSM_t fsm)

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 fsmIterator_s * FSMI_t
 

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

Definition at line 1225 of file rpmlib.h.

typedef struct fsm_s * FSM_t
 

File state machine data.

Definition at line 1230 of file rpmlib.h.

typedef enum cpioMapFlags_e cpioMapFlags
 


Enumeration Type Documentation

enum cpioErrorReturns
 

Enumeration values:
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.

enum cpioMapFlags_e
 

Enumeration values:
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

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.

Referenced by PHYS_HDR_SIZE(), cpio_doio(), and psmStage().

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

Definition at line 210 of file fsm.c.

Referenced by fsmMkdirs(), and fsmRmdirs().

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.

Referenced by fsmMkdirs(), and fsmRmdirs().

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

Definition at line 218 of file fsm.c.

Referenced by fsmMkdirs(), and fsmRmdirs().

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.

Referenced by fsmMkdirs(), and fsmRmdirs().

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.

Referenced by fsmMkdirs(), and fsmRmdirs().

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.

Referenced by fsmStage().

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.

Referenced by freeFSM(), and fsmStage().

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.

Referenced by fsmStage().

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.

Referenced by fsmMapPath(), and fsmStage().

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.

Referenced by fsmStage().

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.

Referenced by fsmStage().

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.

Referenced by freeFSM(), and fsmTeardown().

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.

Referenced by fsmSetup().

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.

Referenced by fsmStage(), and mapFind().

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.

Referenced by fsmStage().

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.

Referenced by fsmStage(), and writeLinkedFile().

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.

Referenced by fsmStage().


Generated at Tue Dec 23 04:54:15 2003 for rpm by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001