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 | hardLink_s |
struct | fsmIterator_s |
struct | fsm_s |
RPMTS | |
typedef fsmIterator_s * | FSMI_t |
typedef fsm_s * | FSM_t |
Defines | |
#define | CPIOERR_CHECK_ERRNO 0x00008000 |
Typedefs | |
typedef enum cpioMapFlags_e | cpioMapFlags |
typedef 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) |
|
Definition at line 23 of file cpio.h. Referenced by cpioStrerror(). |
|
|
|
Directory name iterator. Referenced by dnlCount(), dnlFreeIterator(), dnlIndex(), dnlInitIterator(), and dnlNextIterator(). |
|
File state machine data. Definition at line 1240 of file rpmlib.h. Referenced by cpioHeaderRead(), cpioHeaderWrite(), cpioTrailerWrite(), dnlInitIterator(), expandRegular(), freeFSM(), fsmCommitLinks(), fsmFsPath(), fsmGetFi(), fsmGetTs(), fsmMakeLinks(), fsmMapAttrs(), fsmMapPath(), fsmMkdirs(), fsmRmdirs(), fsmSetup(), fsmStage(), fsmTeardown(), newFSM(), saveHardLink(), writeFile(), and writeLinkedFile(). |
|
Iterator across package file info, forward on install, backward on erase. Definition at line 1235 of file rpmlib.h. Referenced by fsmGetFi(), fsmGetTs(), mapFind(), mapInitIterator(), and mapNextIterator(). |
|
|
|
|
Definition at line 138 of file fsm.c. Referenced by mapFind(). |
|
Return formatted error message on payload handling failure.
Definition at line 180 of file cpio.c. References _, CPIOERR_BAD_HEADER, CPIOERR_BAD_MAGIC, CPIOERR_CHECK_ERRNO, CPIOERR_CHMOD_FAILED, CPIOERR_CHOWN_FAILED, CPIOERR_COPY_FAILED, CPIOERR_HDR_SIZE, CPIOERR_INTERNAL, CPIOERR_LINK_FAILED, CPIOERR_LSTAT_FAILED, CPIOERR_MD5SUM_MISMATCH, CPIOERR_MISSING_HARDLINK, CPIOERR_MKDIR_FAILED, CPIOERR_MKFIFO_FAILED, CPIOERR_MKNOD_FAILED, CPIOERR_OPEN_FAILED, CPIOERR_READ_FAILED, CPIOERR_READLINK_FAILED, CPIOERR_RENAME_FAILED, CPIOERR_RMDIR_FAILED, CPIOERR_STAT_FAILED, CPIOERR_SYMLINK_FAILED, CPIOERR_UNKNOWN_FILETYPE, CPIOERR_UNLINK_FAILED, CPIOERR_UNMAPPED_FILE, CPIOERR_UTIME_FAILED, CPIOERR_WRITE_FAILED, errno, and strerror(). Referenced by cpio_doio(), and psmStage(). |
|
Definition at line 210 of file fsm.c. References transactionFileInfo_s::dc, DNLI_t, and dnli_s::fi. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Destroy directory name iterator.
Definition at line 198 of file fsm.c. References _free(), dnli_s::active, and DNLI_t. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Definition at line 218 of file fsm.c. References DNLI_t, and dnli_s::isave. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Create directory name iterator.
Definition at line 230 of file fsm.c. References _, transactionFileInfo_s::actions, transactionFileInfo_s::bnl, transactionFileInfo_s::dc, transactionFileInfo_s::dil, transactionFileInfo_s::dnl, DNLI_t, transactionFileInfo_s::fc, transactionFileInfo_s::fmodes, FSM_t, fsmGetFi(), RPMMESS_DEBUG, rpmMessage, TFI_t, xcalloc(), and XFA_SKIPPING. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Return next directory name (from file info).
Definition at line 306 of file fsm.c. References dnli_s::active, transactionFileInfo_s::dc, transactionFileInfo_s::dnl, DNLI_t, dnli_s::fi, dnli_s::i, dnli_s::isave, dnli_s::reverse, and TFI_t. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Create file from payload stream.
Definition at line 670 of file fsm.c. References _free(), CPIOERR_MD5SUM_MISMATCH, fdFiniDigest(), fdInitDigest(), Fflush(), fsm_s::fmd5sum, FSM_DREAD, FSM_NOTIFY, FSM_t, FSM_WCLOSE, FSM_WOPEN, FSM_WRITE, fsmStage(), PGPHASHALGO_MD5, fsm_s::sb, fsm_s::wfd, fsm_s::wrlen, fsm_s::wrnb, and fsm_s::wrsize. Referenced by fsmStage(). |
|
Destroy set of hard links.
Definition at line 422 of file fsm.c. References _free(), hardLink_s::filex, and hardLink_s::nsuffix. Referenced by freeFSM(), and fsmStage(). |
|
Commit hard linked file set atomically.
Definition at line 978 of file fsm.c. References _free(), fsm_s::action, hardLink_s::filex, FSM_COMMIT, FSM_MAP, FSM_t, fsmStage(), fsm_s::ix, fsm_s::li, fsm_s::links, hardLink_s::next, hardLink_s::nlink, fsm_s::nsuffix, fsm_s::path, hardLink_s::sb, fsm_s::sb, and XFA_SKIPPING. Referenced by fsmStage(). |
|
Build path to file from file info, ornamented with subdir and suffix.
Definition at line 55 of file fsm.c. References fsm_s::baseName, fsm_s::dirName, FSM_t, stpcpy(), and xmalloc(). Referenced by fsmMapPath(), and fsmStage(). |
|
Create pending hard links to existing file.
Definition at line 920 of file fsm.c. References _free(), fsm_s::action, CPIOERR_LSTAT_FAILED, hardLink_s::createdPath, fsm_s::failedFile, hardLink_s::filex, FSM_LINK, FSM_MAP, FSM_t, FSM_VERIFY, fsmStage(), fsm_s::ix, fsm_s::li, hardLink_s::linksLeft, hardLink_s::nlink, fsm_s::nsuffix, fsm_s::opath, fsm_s::path, XFA_SKIPPING, and xstrdup(). Referenced by fsmStage(). |
|
Locate archive path in file info.
Definition at line 161 of file fsm.c. References transactionFileInfo_s::apath, cpioStrCmp(), transactionFileInfo_s::fc, fsmIterator_s::fi, FSMI_t, fsmIterator_s::i, mapNextIterator(), and TFI_t. Referenced by fsmStage(). |
|
Destroy file info iterator.
Definition at line 88 of file fsm.c. References _free(). Referenced by freeFSM(), and fsmTeardown(). |
|
Create file info iterator.
Definition at line 100 of file fsm.c. References transactionFileInfo_s::action, FA_COPYOUT, transactionFileInfo_s::fc, FSMI_t, rpmTransactionSet, TFI_t, transactionFileInfo_s::type, and xcalloc(). Referenced by fsmSetup(). |
|
Return next index into file info.
Definition at line 122 of file fsm.c. References transactionFileInfo_s::fc, fsmIterator_s::fi, FSMI_t, fsmIterator_s::i, fsmIterator_s::isave, fsmIterator_s::reverse, and TFI_t. Referenced by fsmStage(), and mapFind(). |
|
Save hard link in chain.
Definition at line 335 of file fsm.c. References _free(), transactionFileInfo_s::actions, hardLink_s::createdPath, hardLink_s::filex, FSM_MAP, FSM_PKGBUILD, FSM_PKGINSTALL, FSM_t, fsmGetFi(), fsmStage(), fsm_s::goal, fsm_s::ix, fsm_s::li, hardLink_s::linkIndex, fsm_s::links, hardLink_s::linksLeft, hardLink_s::next, hardLink_s::nlink, fsm_s::nsuffix, hardLink_s::nsuffix, fsm_s::path, hardLink_s::sb, fsm_s::sb, TFI_t, xcalloc(), and XFA_SKIPPING. Referenced by fsmStage(). |
|
Write next item to payload stream.
Definition at line 734 of file fsm.c. References alloca(), alloca_strdup, transactionFileInfo_s::ap, transactionFileInfo_s::apath, fsm_s::baseName, transactionFileInfo_s::bnl, fsm_s::cfd, CPIO_MAP_ABSOLUTE, CPIO_MAP_ADDDOT, CPIO_MAP_PATH, fsm_s::dirName, fdGetCpioPos(), Fileno(), FSM_DWRITE, FSM_HWRITE, FSM_PAD, FSM_RCLOSE, FSM_READ, FSM_READLINK, FSM_ROPEN, FSM_t, fsmGetFi(), fsmGetTs(), fsmStage(), transactionFileInfo_s::h, fsm_s::ix, availablePackage::key, fsm_s::mapFlags, rpmTransactionSet_s::notify, rpmTransactionSet_s::notifyData, fsm_s::opath, fsm_s::osb, fsm_s::path, fsm_s::rdbuf, fsm_s::rdlen, fsm_s::rdnb, fsm_s::rdsize, fsm_s::rfd, RPMCALLBACK_INST_PROGRESS, rpmTransactionSet, S_ISLNK, fsm_s::sb, stpcpy(), transactionFileInfo_s::striplen, TFI_t, and fsm_s::wrnb. Referenced by fsmStage(), and writeLinkedFile(). |
|
Write set of linked files to payload stream.
Definition at line 876 of file fsm.c. References _free(), fsm_s::failedFile, hardLink_s::filex, FSM_MAP, FSM_t, fsmStage(), fsm_s::ix, fsm_s::li, hardLink_s::nlink, fsm_s::nsuffix, fsm_s::path, writeFile(), and xstrdup(). Referenced by fsmStage(). |