PAYLOAD. -
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.
struct cpioCrcPhysicalHeader
struct dnli_s
struct fsm_s
struct fsmIterator_s
struct hardLink_s
typedef fsmIterator_s * FSMI_t
typedef fsm_s * FSM_t
#define CPIOERR_CHECK_ERRNO 0x00008000
typedef enum cpioMapFlags_e cpioMapFlags
typedef dnli_s * DNLI_t
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) }
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)
Note: CPIO_CHECK_ERRNO bit is set only if errno is valid.
Definition at line 23 of file cpio.h.
File state machine data.
Definition at line 1230 of file rpmlib.h.
Iterator across package file info, forward on install, backward on erase.
Definition at line 1225 of file rpmlib.h.
Enumeration values:
Definition at line 27 of file cpio.h.
Enumeration values:
Definition at line 60 of file cpio.h.
Definition at line 138 of file fsm.c.
Return formatted error message on payload handling failure.
Parameters:
Returns: formatted error string
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, and errno.
Referenced by cpio_doio(), and psmStage().
Definition at line 210 of file fsm.c.
Referenced by fsmMkdirs(), and fsmRmdirs().
Destroy directory name iterator.
Parameters:
Return values:
Definition at line 198 of file fsm.c.
References _free(), and dnli_s::active.
Referenced by fsmMkdirs(), and fsmRmdirs().
Definition at line 218 of file fsm.c.
Referenced by fsmMkdirs(), and fsmRmdirs().
Create directory name iterator.
Parameters:
Returns: directory name iterator
Definition at line 230 of file fsm.c.
References _, transactionFileInfo_s::actions, dnli_s::active, transactionFileInfo_s::bnl, transactionFileInfo_s::dc, transactionFileInfo_s::dil, transactionFileInfo_s::dnl, transactionFileInfo_s::fc, dnli_s::fi, transactionFileInfo_s::fmodes, fsmGetFi(), dnli_s::i, dnli_s::reverse, RPMMESS_DEBUG, rpmMessage, xcalloc(), and XFA_SKIPPING.
Referenced by fsmMkdirs(), and fsmRmdirs().
Return next directory name (from file info).
Parameters:
Returns: next directory name
Definition at line 306 of file fsm.c.
References transactionFileInfo_s::dc, and transactionFileInfo_s::dnl.
Referenced by fsmMkdirs(), and fsmRmdirs().
Create file from payload stream.
Todo: Legacy: support brokenEndian MD5 checks?
Parameters:
Returns: 0 on success
Definition at line 670 of file fsm.c.
References _free(), CPIOERR_MD5SUM_MISMATCH, fdFiniDigest(), fdInitDigest(), Fflush(), FSM_DREAD, FSM_NOTIFY, FSM_WCLOSE, FSM_WOPEN, FSM_WRITE, fsmStage(), and PGPHASHALGO_MD5.
Destroy set of hard links.
Parameters:
Definition at line 422 of file fsm.c.
References _free().
Referenced by freeFSM(), and fsmStage().
Commit hard linked file set atomically.
Parameters:
Returns: 0 on success
Definition at line 978 of file fsm.c.
References _free(), FSM_COMMIT, FSM_MAP, fsmStage(), and XFA_SKIPPING.
Build path to file from file info, ornamented with subdir and suffix.
Parameters:
Return values:
Definition at line 55 of file fsm.c.
References stpcpy(), and xmalloc().
Referenced by fsmMapPath(), and fsmStage().
Create pending hard links to existing file.
Parameters:
Returns: 0 on success
Definition at line 920 of file fsm.c.
References _free(), CPIOERR_LSTAT_FAILED, FSM_LINK, FSM_MAP, FSM_VERIFY, fsmStage(), XFA_SKIPPING, and xstrdup().
Locate archive path in file info.
Parameters:
Returns: index into file info, -1 if archive path was not found
Definition at line 161 of file fsm.c.
References transactionFileInfo_s::apath, cpioStrCmp(), transactionFileInfo_s::fc, fsmIterator_s::fi, fsmIterator_s::i, and mapNextIterator().
Destroy file info iterator.
Parameters:
Return values:
Definition at line 88 of file fsm.c.
References _free().
Referenced by freeFSM(), and fsmTeardown().
Create file info iterator.
Parameters:
Returns: file info iterator
Definition at line 100 of file fsm.c.
References transactionFileInfo_s::action, FA_COPYOUT, transactionFileInfo_s::fc, fsmIterator_s::fi, fsmIterator_s::i, fsmIterator_s::isave, fsmIterator_s::reverse, fsmIterator_s::ts, transactionFileInfo_s::type, and xcalloc().
Return next index into file info.
Parameters:
Returns: next index, -1 on termination
Definition at line 122 of file fsm.c.
References transactionFileInfo_s::fc, fsmIterator_s::fi, fsmIterator_s::i, fsmIterator_s::isave, and fsmIterator_s::reverse.
Referenced by fsmStage(), and mapFind().
Save hard link in chain.
Parameters:
Returns: Is chain only partially filled?
Definition at line 335 of file fsm.c.
References _free(), transactionFileInfo_s::actions, FSM_MAP, FSM_PKGBUILD, FSM_PKGINSTALL, fsmGetFi(), fsmStage(), xcalloc(), and XFA_SKIPPING.
Write next item to payload stream.
Parameters:
Returns: 0 on success
Definition at line 734 of file fsm.c.
References alloca(), alloca_strdup, transactionFileInfo_s::ap, transactionFileInfo_s::apath, transactionFileInfo_s::bnl, CPIO_MAP_ABSOLUTE, CPIO_MAP_ADDDOT, CPIO_MAP_PATH, fdGetCpioPos(), FSM_DWRITE, FSM_HWRITE, FSM_PAD, FSM_RCLOSE, FSM_READ, FSM_READLINK, FSM_ROPEN, fsmGetFi(), fsmGetTs(), fsmStage(), transactionFileInfo_s::h, availablePackage::key, rpmTransactionSet_s::notify, rpmTransactionSet_s::notifyData, RPMCALLBACK_INST_PROGRESS, S_ISLNK, stpcpy(), and transactionFileInfo_s::striplen.
Referenced by fsmStage(), and writeLinkedFile().
Write set of linked files to payload stream.
Parameters:
Returns: 0 on success
Definition at line 876 of file fsm.c.
References _free(), FSM_MAP, fsmStage(), writeFile(), and xstrdup().
Referenced by fsmStage().
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |