rpm 5.3.7
Defines | Functions | Variables

rpmio/ar.c File Reference

Handle ar(1) archives. More...

#include "system.h"
#include <rpmio_internal.h>
#include <rpmmacro.h>
#include <ugid.h>
#include <ar.h>
#include <iosm.h>
#include "debug.h"
Include dependency graph for ar.c:

Go to the source code of this file.

Defines

#define _IOSM_INTERNAL
#define _IOSMRC(_rc)   if ((_rc) <= 0) return ((_rc) ? (int) -rc : IOSMERR_HDR_TRAILER)

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 arRead (void *_iosm, void *buf, size_t count)
int arHeaderRead (void *_iosm, struct stat *st)
 Read ar(1) header.
static ssize_t arWrite (void *_iosm, const void *buf, size_t count)
int arHeaderWrite (void *_iosm, struct stat *st)
 Write ar(1) header.
int arTrailerWrite (void *_iosm)
 Write ar(1) trailer.

Variables

int _ar_debug = 0

Detailed Description

Handle ar(1) archives.

Definition in file ar.c.


Define Documentation

#define _IOSM_INTERNAL

Definition at line 15 of file ar.c.

#define _IOSMRC (   _rc)    if ((_rc) <= 0) return ((_rc) ? (int) -rc : IOSMERR_HDR_TRAILER)

Definition at line 56 of file ar.c.

Referenced by arHeaderRead(), arHeaderWrite(), and arTrailerWrite().


Function Documentation

int arHeaderRead ( void *  _iosm,
struct stat *  st 
)

Read ar(1) header.

Return values:
_iosmfile path and stat info
st
Returns:
0 on success

Definition at line 92 of file ar.c.

References _ar_debug, _iosmNext, _IOSMRC, AR_MAGIC, AR_MARKER, arRead(), fdGetCpioPos(), IOSM_POS, strntoul(), xisdigit(), and xstrdup().

Referenced by fsmSetup(), and iosmSetup().

int arHeaderWrite ( void *  _iosm,
struct stat *  st 
)

Write ar(1) header.

Return values:
_iosmfile path and stat info
Parameters:
st
Returns:
0 on success

Definition at line 235 of file ar.c.

References _ar_debug, _iosmNext, _IOSMRC, AR_MAGIC, AR_MARKER, arWrite(), fdGetCpioPos(), arHeader_s::filesize, arHeader_s::gid, IOSM_PAD, arHeader_s::marker, arHeader_s::mode, arHeader_s::mtime, arHeader_s::name, snprintf(), and arHeader_s::uid.

Referenced by fsmSetup(), and iosmSetup().

static ssize_t arRead ( void *  _iosm,
void *  buf,
size_t  count 
) [static]

Definition at line 59 of file ar.c.

References _ar_debug, _iosmNext, and IOSM_DREAD.

Referenced by arHeaderRead().

int arTrailerWrite ( void *  _iosm)

Write ar(1) trailer.

Return values:
_iosmfile path and stat info
Returns:
0 on success

Definition at line 309 of file ar.c.

References _ar_debug, _iosmNext, _IOSMRC, arWrite(), and IOSM_PAD.

Referenced by fsmSetup(), and iosmSetup().

static ssize_t arWrite ( void *  _iosm,
const void *  buf,
size_t  count 
) [static]

Definition at line 199 of file ar.c.

References _ar_debug, _iosmNext, IOSM_DWRITE, and IOSM_PAD.

Referenced by arHeaderWrite(), and arTrailerWrite().

static int strntoul ( const char *  str,
char **  endptr,
int  base,
size_t  num 
) [static]

Convert string to unsigned integer (with buffer size check).

Parameters:
strinput string
Return values:
*endptr1st character not processed
Parameters:
basenumerical conversion base
nummax no. of bytes to read
Returns:
converted integer

Definition at line 33 of file ar.c.

References alloca().

Referenced by arHeaderRead().


Variable Documentation

int _ar_debug = 0

Definition at line 23 of file ar.c.

Referenced by arHeaderRead(), arHeaderWrite(), arRead(), arTrailerWrite(), and arWrite().