rpm
5.4.10
|
Handle cpio(1) archives. More...
#include "system.h"
#include <rpmio.h>
#include <ugid.h>
#include <cpio.h>
#include <iosm.h>
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | _IOSM_INTERNAL |
#define | _IOSMRC(_rc) if ((_rc) <= 0) return ((_rc) ? (int) -rc : IOSMERR_HDR_TRAILER) |
#define | GET_NUM_FIELD(phys, log) |
#define | SET_NUM_FIELD(phys, val, space) |
Functions | |
static int | strntoul (const char *str, char **endptr, int base, size_t num) |
Convert string to unsigned integer (with buffer size check). | |
static ssize_t | cpioRead (void *_iosm, void *buf, size_t count) |
int | cpioHeaderRead (void *_iosm, struct stat *st) |
Read cpio header. | |
static ssize_t | cpioWrite (void *_iosm, const void *buf, size_t count) |
int | cpioHeaderWrite (void *_iosm, struct stat *st) |
Write cpio header. | |
int | cpioTrailerWrite (void *_iosm) |
Write cpio trailer. |
Variables | |
int | _cpio_debug = 0 |
Handle cpio(1) archives.
Definition in file cpio.c.
#define _IOSMRC | ( | _rc | ) | if ((_rc) <= 0) return ((_rc) ? (int) -rc : IOSMERR_HDR_TRAILER) |
Definition at line 55 of file cpio.c.
Referenced by cpioHeaderRead(), cpioHeaderWrite(), and cpioTrailerWrite().
#define GET_NUM_FIELD | ( | phys, | |
log | |||
) |
Definition at line 89 of file cpio.c.
Referenced by cpioHeaderRead().
#define SET_NUM_FIELD | ( | phys, | |
val, | |||
space | |||
) |
Definition at line 92 of file cpio.c.
Referenced by cpioHeaderWrite().
int cpioHeaderRead | ( | void * | _iosm, |
struct stat * | st | ||
) |
Read cpio header.
_iosm | file path and stat info |
st |
Definition at line 96 of file cpio.c.
References _cpio_debug, _free(), _iosmNext, _IOSMRC, CPIO_CRC_MAGIC, CPIO_NEWC_MAGIC, cpioRead(), cpioCrcPhysicalHeader_s::devMajor, cpioCrcPhysicalHeader_s::devMinor, cpioCrcPhysicalHeader_s::filesize, GET_NUM_FIELD, cpioCrcPhysicalHeader_s::gid, cpioCrcPhysicalHeader_s::inode, IOSM_POS, IOSMERR_BAD_HEADER, IOSMERR_BAD_MAGIC, iosm_s::lpath, cpioCrcPhysicalHeader_s::magic, major, Makedev, minor, cpioCrcPhysicalHeader_s::mode, cpioCrcPhysicalHeader_s::mtime, cpioCrcPhysicalHeader_s::namesize, cpioCrcPhysicalHeader_s::nlink, iosm_s::path, PHYS_HDR_SIZE, cpioCrcPhysicalHeader_s::rdevMajor, cpioCrcPhysicalHeader_s::rdevMinor, S_ISLNK, cpioCrcPhysicalHeader_s::uid, iosm_s::wrbuf, iosm_s::wrsize, and xmalloc.
Referenced by fsmSetup(), and iosmSetup().
int cpioHeaderWrite | ( | void * | _iosm, |
struct stat * | st | ||
) |
Write cpio header.
_iosm | file path and stat info |
st |
Definition at line 225 of file cpio.c.
References _cpio_debug, _iosmNext, _IOSMRC, cpioCrcPhysicalHeader_s::checksum, CPIO_NEWC_MAGIC, cpioWrite(), cpioCrcPhysicalHeader_s::devMajor, cpioCrcPhysicalHeader_s::devMinor, cpioCrcPhysicalHeader_s::filesize, cpioCrcPhysicalHeader_s::gid, cpioCrcPhysicalHeader_s::inode, IOSM_PAD, iosm_s::lpath, cpioCrcPhysicalHeader_s::magic, major, minor, cpioCrcPhysicalHeader_s::mode, cpioCrcPhysicalHeader_s::mtime, cpioCrcPhysicalHeader_s::namesize, cpioCrcPhysicalHeader_s::nlink, iosm_s::path, PHYS_HDR_SIZE, iosm_s::rdbuf, cpioCrcPhysicalHeader_s::rdevMajor, cpioCrcPhysicalHeader_s::rdevMinor, S_ISLNK, SET_NUM_FIELD, and cpioCrcPhysicalHeader_s::uid.
Referenced by fsmSetup(), and iosmSetup().
|
static |
Definition at line 58 of file cpio.c.
References _cpio_debug, _iosmNext, IOSM_DREAD, IOSMERR_READ_FAILED, iosm_s::rdnb, iosm_s::wrbuf, and iosm_s::wrlen.
Referenced by cpioHeaderRead().
int cpioTrailerWrite | ( | void * | _iosm | ) |
Write cpio trailer.
_iosm | file path and stat info |
Definition at line 280 of file cpio.c.
References _cpio_debug, _iosmNext, _IOSMRC, CPIO_NEWC_MAGIC, CPIO_TRAILER, cpioWrite(), IOSM_PAD, cpioCrcPhysicalHeader_s::magic, cpioCrcPhysicalHeader_s::namesize, cpioCrcPhysicalHeader_s::nlink, PHYS_HDR_SIZE, and iosm_s::rdbuf.
Referenced by fsmSetup(), and iosmSetup().
|
static |
Definition at line 189 of file cpio.c.
References _cpio_debug, _iosmNext, IOSM_DWRITE, IOSM_PAD, IOSMERR_WRITE_FAILED, iosm_s::rdbuf, iosm_s::rdnb, and iosm_s::wrnb.
Referenced by cpioHeaderWrite(), and cpioTrailerWrite().
|
static |
int _cpio_debug = 0 |
Definition at line 20 of file cpio.c.
Referenced by cpioHeaderRead(), cpioHeaderWrite(), cpioRead(), cpioTrailerWrite(), and cpioWrite().