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

RPMTS

typedef struct fsmIterator_sFSMI_t
typedef struct fsm_sFSM_t

Defines

#define CPIOERR_CHECK_ERRNO   0x00008000

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 )
}
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_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 *this)
void* mapInitIterator (const void *this, const void *that)
int mapNextIterator (void *this)
int cpioStrCmp (const void *a, const void *b)
int mapFind (void *this, const char *fsmPath)
void* dnlFreeIterator (const void *this)
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 *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 fsmIterator_s * FSMI_t
 

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

Definition at line 932 of file rpmlib.h.

typedef struct fsm_s * FSM_t
 

File state machine data.

Definition at line 937 of file rpmlib.h.


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  

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  
CPIO_MAP_ABSOLUTE  
CPIO_MAP_ADDDOT  
CPIO_MULTILIB  

Definition at line 59 of file cpio.h.


Function Documentation

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

Definition at line 131 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 185 of file cpio.c.

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

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

Definition at line 199 of file fsm.c.

Referenced by fsmMkdirs(), and fsmRmdirs().

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

Destroy directory name iterator.

Parameters:
this   file info iterator
Return values:
NULL   always

Definition at line 188 of file fsm.c.

Referenced by fsmMkdirs(), and fsmRmdirs().

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

Definition at line 205 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 215 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 288 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 613 of file fsm.c.

Referenced by fsmStage().

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

Destroy set of hard links.

Parameters:
li   set of hard links

Definition at line 397 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 895 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 53 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 843 of file fsm.c.

Referenced by fsmStage().

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

Locate archive path in file info.

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

Definition at line 153 of file fsm.c.

Referenced by fsmStage().

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

Destroy file info iterator.

Parameters:
this   file info iterator
Return values:
NULL   always

Definition at line 83 of file fsm.c.

Referenced by freeFSM(), and fsmTeardown().

void * mapInitIterator ( const void * this,
const void * that ) [static]
 

Create file info iterator.

Parameters:
this   transaction set
that   transaction element file info
Returns:
file info iterator

Definition at line 95 of file fsm.c.

Referenced by fsmSetup().

int mapNextIterator ( void * this ) [static]
 

Return next index into file info.

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

Definition at line 115 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 314 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 676 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 801 of file fsm.c.

Referenced by fsmStage().


Generated at Thu Apr 19 15:29:51 2001 for rpm by doxygen1.2.6-20010408 written by Dimitri van Heesch, © 1997-2001