# rpmio/rpmio_internal.h File Reference

`#include <rpmio.h>`
`#include <rpmurl.h>`
`#include <rpmpgp.h>`
`#include <rpmxar.h>`

Include dependency graph for rpmio_internal.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | _FDSTACK_s
struct | _FDDIGEST_s
struct | _FD_s
| The FD_t File Handle data structure. More...

## Defines

#define | _RPMPGP_INTERNAL
#define | RPMIO_DEBUG_IO 0x40000000
#define | RPMIO_DEBUG_REFS 0x20000000
#define | FDMAGIC 0x04463138
#define | FDDIGEST_MAX 4
#define | FDSANE(fd) assert(fd && fd->magic == FDMAGIC)
#define | DBG(_f, _m, _x)
#define | DBGIO(_f, _x) DBG((_f), RPMIO_DEBUG_IO, _x)
#define | DBGREFS(_f, _x) DBG((_f), RPMIO_DEBUG_REFS, _x)

## Typedefs

typedef struct _FDSTACK_s | FDSTACK_t
typedef enum fdOpX_e | fdOpX
| Identify per-desciptor I/O operation statistics.
struct {
struct rpmop_s ops [FDSTAT_MAX]
} | FDSTAT_t
| Cumulative statistics for a descriptor.
typedef struct _FDDIGEST_s * | FDDIGEST_t

## Enumerations

enum | fdOpX_e { FDSTAT_READ = 0, FDSTAT_WRITE = 1, FDSTAT_SEEK = 2, FDSTAT_CLOSE = 3, FDSTAT_DIGEST = 4, FDSTAT_MAX = 5 }
| Identify per-desciptor I/O operation statistics. More...

## Functions

int | fdFgets (FD_t fd, char *buf, size_t len)
FD_t | ftpOpen (const char *url, int flags, mode_t mode, urlinfo *uret)
int | ftpReq (FD_t data, const char *ftpCmd, const char *ftpArg)
int | ftpCmd (const char *cmd, const char *url, const char *arg2)
int | ufdClose (void *cookie)
static void | fdSetOpen (FD_t fd, const char *path, int flags, mode_t mode)
static const char * | fdGetOPath (FD_t fd)
static int | fdGetOFlags (FD_t fd)
static mode_t | fdGetOMode (FD_t fd)
static void | fdSetDig (FD_t fd, pgpDig dig)
static pgpDig | fdGetDig (FD_t fd)
static void | fdSetXAR (FD_t fd, rpmxar xar)
static rpmxar | fdGetXAR (FD_t fd)
static FDIO_t | fdGetIo (FD_t fd)
static void | fdSetIo (FD_t fd, FDIO_t io)
static FILE * | fdGetFILE (FD_t fd)
static void * | fdGetFp (FD_t fd)
static void | fdSetFp (FD_t fd, void *fp)
static int | fdGetFdno (FD_t fd)
static void | fdSetFdno (FD_t fd, int fdno)
static void | fdSetContentLength (FD_t fd, ssize_t contentLength)
static void | fdPush (FD_t fd, FDIO_t io, void *fp, int fdno)
static void | fdPop (FD_t fd)
static rpmop | fdstat_op (FD_t fd, fdOpX opx)
static void | fdstat_enter (FD_t fd, int opx)
static void | fdstat_exit (FD_t fd, int opx, ssize_t rc)
static void | fdstat_print (FD_t fd, const char *msg, FILE *fp)
static void | fdSetSyserrno (FD_t fd, int syserrno, const void *errcookie)
static int | fdGetRdTimeoutSecs (FD_t fd)
static unsigned long long | fdGetCpioPos (FD_t fd)
static void | fdSetCpioPos (FD_t fd, long int cpioPos)
static FD_t | c2f (void *cookie)
static void | fdInitDigest (FD_t fd, pgpHashAlgo hashalgo, int flags)
| Attach digest to fd.
static void | fdUpdateDigests (FD_t fd, const unsigned char *buf, ssize_t buflen)
| Update digest(s) attached to fd.
static void | fdFiniDigest (FD_t fd, pgpHashAlgo hashalgo, void *datap, size_t *lenp, int asAscii)
static void | fdStealDigest (FD_t fd, pgpDig dig)
static int | fdFileno (void *cookie)
int | rpmioSlurp (const char *fn, uint8_t **bp, ssize_t *blenp)
| Read an entire file into a buffer.

## Variables

int | _rpmio_debug
int | _av_debug
int | _ftp_debug
int | _dav_debug

## Detailed Description

Definition in file rpmio_internal.h.

## Define Documentation

#define _RPMPGP_INTERNAL

Definition at line 11 of file rpmio_internal.h.

#define DBG | ( | _f,
|  | _m,
|  | _x |  | ) |

Value:

    /*@-modfilesys@*/ \
        if ((_rpmio_debug | ((_f) ? ((FD_t)(_f))->flags : 0)) & (_m)) fprintf _x \

Definition at line 125 of file rpmio_internal.h.

#define DBGIO | ( | _f,
|  | _x |  | ) | DBG((_f), RPMIO_DEBUG_IO, _x)

Definition at line 134 of file rpmio_internal.h.

Referenced by __fdClose(), __fdOpen(), __fdRead(), __fdWrite(), Fclose(), fdDup(), Fdopen(), fdSeek(), fdSize(), Ferror(), Fileno(), Fread(), Fseek(), ftpAbort(), Fwrite(), lzdClose(), ufdCopy(), and ufdOpen().

#define DBGREFS | ( | _f,
|  | _x |  | ) | DBG((_f), RPMIO_DEBUG_REFS, _x)

Definition at line 135 of file rpmio_internal.h.

Referenced by XfdFree(), and XfdLink().

#define FDDIGEST_MAX 4

Definition at line 95 of file rpmio_internal.h.

Referenced by fdInitDigest().

#define FDMAGIC 0x04463138

Definition at line 62 of file rpmio_internal.h.

Referenced by XfdNew().

#define FDSANE | ( | fd |  | ) | assert(fd && fd->magic == FDMAGIC)

Definition at line 103 of file rpmio_internal.h.

Referenced by c2f(), Fclose(), fdGetCpioPos(), fdGetDig(), fdGetFdno(), fdGetFILE(), fdGetFp(), fdGetIo(), fdGetOFlags(), fdGetOMode(), fdGetOPath(), fdGetRdTimeoutSecs(), fdGetXAR(), Fdopen(), fdPop(), fdPush(), fdSeekNot(), fdSetContentLength(), fdSetCpioPos(), fdSetDig(), fdSetFdno(), fdSetFp(), fdSetIo(), fdSetOpen(), fdSetSyserrno(), fdSetXAR(), fdSize(), Fread(), Fseek(), Fstrerror(), Fwrite(), lzdFileno(), ufdGetFile(), ufdGetUrlinfo(), and XfdFree().

#define RPMIO_DEBUG_IO 0x40000000

Definition at line 59 of file rpmio_internal.h.

#define RPMIO_DEBUG_REFS 0x20000000

Definition at line 60 of file rpmio_internal.h.

## Function Documentation

int rpmioSlurp | ( | const char * | fn,
|  | uint8_t ** | bp,
|  | ssize_t * | blenp |
| ) |  |  |

Read an entire file into a buffer.

Parameters:

  | fn | file name to read

Return values:

  | *bp | (malloc'd) buffer address
  | *blenp | (malloc'd) buffer length

Returns:
  0 on success

Definition at line 3830 of file rpmio.c.

References Fclose(), fdSize(), Ferror(), Fopen(), Fread(), xmalloc(), and xrealloc().

Referenced by pgpReadPkts(), processMetadataFile(), rpmnsProbeSignature(), and rpmPlatform().

## Variable Documentation

int _av_debug

Definition at line 158 of file rpmio.c.

int _dav_debug

Definition at line 168 of file rpmio.c.

int _ftp_debug

Definition at line 163 of file rpmio.c.

int _rpmio_debug

Definition at line 153 of file rpmio.c.

struct rpmop_s ops[FDSTAT_MAX]

Cumulative statistics.

Definition at line 42 of file rpmio_internal.h.