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 |
In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not. | |
Data Structures | |
struct | cpioCrcPhysicalHeader |
struct | dnli_s |
struct | fsm_s |
struct | fsmIterator_s |
struct | hardLink_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 ), CPIOERR_ENOENT = (29 ), CPIOERR_ENOTEMPTY = (30 ) } |
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) } |
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 (void *p) |
void * | mapInitIterator (rpmts ts, rpmfi fi) |
int | mapNextIterator (void *a) |
int | cpioStrCmp (const void *a, const void *b) |
int | mapFind (FSMI_t iter, 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 18 of file cpio.h. Referenced by cpioStrerror(). |
|
|
|
Directory name iterator. |
|
File state machine data. |
|
Iterator across package file info, forward on install, backward on erase. |
|
|
|
|
Definition at line 161 of file fsm.c. Referenced by mapFind(). |
|
Return formatted error message on payload handling failure.
Definition at line 196 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(). |
|
Definition at line 246 of file fsm.c. References dnli_s::fi. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Destroy directory name iterator.
Definition at line 234 of file fsm.c. References _free(), and dnli_s::active. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Definition at line 254 of file fsm.c. References dnli_s::isave. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Create directory name iterator.
Definition at line 268 of file fsm.c. References _, dnli_s::active, dnli_s::fi, fsmGetFi(), dnli_s::i, dnli_s::reverse, rpmfi, RPMMESS_DEBUG, rpmMessage, xcalloc(), and XFA_SKIPPING. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Return next directory name (from file info).
Definition at line 357 of file fsm.c. References dnli_s::active, dnli_s::fi, dnli_s::i, dnli_s::isave, dnli_s::reverse, and rpmfi. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Create file from payload stream.
Definition at line 743 of file fsm.c. References _free(), CPIOERR_MD5SUM_MISMATCH, fdFiniDigest(), fdInitDigest(), Fflush(), fsm_s::fmd5sum, FSM_DREAD, FSM_NOTIFY, FSM_WCLOSE, FSM_WOPEN, FSM_WRITE, fsmStage(), fsm_s::md5sum, 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 482 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 1062 of file fsm.c. References _free(), fsm_s::action, hardLink_s::filex, FSM_COMMIT, FSM_MAP, 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 68 of file fsm.c. References fsm_s::baseName, fsm_s::dirName, stpcpy(), and xmalloc(). Referenced by fsmMapPath(), and fsmStage(). |
|
Create pending hard links to existing file.
Definition at line 998 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_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 192 of file fsm.c. References cpioStrCmp(), fsmIterator_s::fi, fsmIterator_s::i, mapNextIterator(), and rpmfi. Referenced by fsmStage(). |
|
Destroy file info iterator.
Definition at line 102 of file fsm.c. References _free(), fsmIterator_s::fi, rpmfiUnlink, rpmtsFree(), and fsmIterator_s::ts. Referenced by freeFSM(), and fsmTeardown(). |
|
Create file info iterator.
Definition at line 121 of file fsm.c. References FA_COPYOUT, fsmIterator_s::fi, fsmIterator_s::i, fsmIterator_s::isave, fsmIterator_s::reverse, rpmfi, rpmfiLink, rpmteType(), rpmts, rpmtsLink, TR_REMOVED, fsmIterator_s::ts, and xcalloc(). Referenced by fsmSetup(). |
|
Return next index into file info.
Definition at line 140 of file fsm.c. References fsmIterator_s::fi, fsmIterator_s::i, fsmIterator_s::isave, fsmIterator_s::reverse, and rpmfi. Referenced by fsmStage(), and mapFind(). |
|
Save hard link in chain.
Definition at line 387 of file fsm.c. References _free(), hardLink_s::createdPath, hardLink_s::filex, FSM_MAP, FSM_PKGBUILD, FSM_PKGINSTALL, 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, rpmfi, hardLink_s::sb, fsm_s::sb, xcalloc(), and XFA_SKIPPING. Referenced by fsmStage(). |
|
Write next item to payload stream.
Definition at line 810 of file fsm.c. References alloca(), alloca_strdup, fsm_s::baseName, CPIO_MAP_ABSOLUTE, CPIO_MAP_ADDDOT, CPIO_MAP_PATH, fsm_s::dirName, FSM_DWRITE, FSM_HWRITE, FSM_PAD, FSM_RCLOSE, FSM_READ, FSM_READLINK, FSM_ROPEN, fsmGetFi(), fsmStage(), fsm_s::ix, fsm_s::mapFlags, fsm_s::opath, fsm_s::osb, fsm_s::path, fsm_s::rdbuf, fsm_s::rdlen, fsm_s::rdnb, fsm_s::rdsize, fsm_s::rfd, rpmfi, S_ISLNK, fsm_s::sb, stpcpy(), and fsm_s::wrnb. Referenced by fsmStage(), and writeLinkedFile(). |
|
Write set of linked files to payload stream.
Definition at line 950 of file fsm.c. References _free(), fsm_s::failedFile, hardLink_s::filex, FSM_MAP, fsmStage(), fsm_s::ix, fsm_s::li, hardLink_s::nlink, fsm_s::nsuffix, fsm_s::path, writeFile(), and xstrdup(). Referenced by fsmStage(). |