rpm  5.4.15
Data Structures | Macros | Typedefs | Enumerations | Functions
rpmio_internal.h File Reference
#include <rpmiotypes.h>
#include <rpmlog.h>
#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...
 

Macros

#define _RPMPGP_INTERNAL
 
#define RPMIO_DEBUG_IO   0x40000000
 
#define RPMIO_DEBUG_REFS   0x20000000
 
#define FDMAGIC   0x04463138
 
#define FDSANE(fd)   assert(fd != NULL && 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. More...
 
struct {
   struct rpmop_s   ops [FDSTAT_MAX]
 
FDSTAT_t
 Cumulative statistics for a descriptor. More...
 
typedef struct _FDDIGEST_sFDDIGEST_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

const char * fdbg (FD_t fd)
 
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. More...
 
static void fdInitHmac (FD_t fd, const void *key, size_t keylen)
 Attach digest to fd. More...
 
static void fdUpdateDigests (FD_t fd, const unsigned char *buf, ssize_t buflen)
 Update digest(s) attached to fd. More...
 
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)
 

Macro Definition Documentation

#define _RPMPGP_INTERNAL

Definition at line 13 of file rpmio_internal.h.

#define DBG (   _f,
  _m,
  _x 
)
Value:
/*@-modfilesys@*/ \
if ((_rpmio_debug | ((_f) ? ((FD_t)(_f))->flags : 0)) & (_m)) fprintf _x \
/*@=modfilesys@*/
The FD_t File Handle data structure.
const char const bson int mongo_write_concern int flags
Definition: mongo.h:485
int _rpmio_debug
Definition: rpmio.c:180

Definition at line 115 of file rpmio_internal.h.

#define DBGIO (   _f,
  _x 
)    DBG((_f), RPMIO_DEBUG_IO, _x)
#define DBGREFS (   _f,
  _x 
)    DBG((_f), RPMIO_DEBUG_REFS, _x)

Definition at line 125 of file rpmio_internal.h.

#define FDMAGIC   0x04463138

Definition at line 65 of file rpmio_internal.h.

Referenced by XfdNew().

#define FDSANE (   fd)    assert(fd != NULL && fd->magic == FDMAGIC)
#define RPMIO_DEBUG_IO   0x40000000

Definition at line 62 of file rpmio_internal.h.

#define RPMIO_DEBUG_REFS   0x20000000

Definition at line 63 of file rpmio_internal.h.

Typedef Documentation

typedef struct _FDDIGEST_s * FDDIGEST_t
typedef enum fdOpX_e fdOpX

Identify per-desciptor I/O operation statistics.

typedef struct _FDSTACK_s FDSTACK_t
typedef { ... } * FDSTAT_t

Cumulative statistics for a descriptor.

Enumeration Type Documentation

enum fdOpX_e

Identify per-desciptor I/O operation statistics.

Enumerator
FDSTAT_READ 

Read statistics index.

FDSTAT_WRITE 

Write statistics index.

FDSTAT_SEEK 

Seek statistics index.

FDSTAT_CLOSE 

Close statistics index

FDSTAT_DIGEST 

Digest statistics index.

FDSTAT_MAX 

Definition at line 34 of file rpmio_internal.h.

Function Documentation

static FD_t c2f ( void *  cookie)
inlinestatic
const char* fdbg ( FD_t  fd)
int fdFgets ( FD_t  fd,
char *  buf,
size_t  len 
)

Definition at line 687 of file rpmio.c.

References _rpmio_debug, errno, fdFileno(), fdRead, fdReadable(), _FD_s::rd_timeoutsecs, secs, and _FD_s::syserrno.

Referenced by checkResponse(), and ftpNLST().

static int fdFileno ( void *  cookie)
inlinestatic
static void fdFiniDigest ( FD_t  fd,
pgpHashAlgo  hashalgo,
void *  datap,
size_t *  lenp,
int  asAscii 
)
inlinestatic
static unsigned long long fdGetCpioPos ( FD_t  fd)
inlinestatic

Definition at line 493 of file rpmio_internal.h.

References _FD_s::fd_cpioPos, and FDSANE.

Referenced by arHeaderRead(), arHeaderWrite(), fsmSetup(), fsmStage(), iosmSetup(), and iosmStage().

static pgpDig fdGetDig ( FD_t  fd)
inlinestatic

Definition at line 231 of file rpmio_internal.h.

References _FD_s::dig, and FDSANE.

Referenced by readFile(), and rpmReadHeader().

static int fdGetFdno ( FD_t  fd)
inlinestatic

Definition at line 328 of file rpmio_internal.h.

References _FDSTACK_s::fdno, FDSANE, _FD_s::fps, and _FD_s::nfps.

Referenced by Fclose(), Fopen(), and ufdWrite().

static FILE* fdGetFILE ( FD_t  fd)
inlinestatic

Definition at line 292 of file rpmio_internal.h.

References FDSANE, _FDSTACK_s::fp, _FD_s::fps, and _FD_s::nfps.

static void* fdGetFp ( FD_t  fd)
inlinestatic
static FDIO_t fdGetIo ( FD_t  fd)
inlinestatic
static int fdGetOFlags ( FD_t  fd)
inlinestatic

Definition at line 197 of file rpmio_internal.h.

References FDSANE, and _FD_s::oflags.

static mode_t fdGetOMode ( FD_t  fd)
inlinestatic

Definition at line 207 of file rpmio_internal.h.

References FDSANE, and _FD_s::omode.

static const char* fdGetOPath ( FD_t  fd)
inlinestatic
static int fdGetRdTimeoutSecs ( FD_t  fd)
inlinestatic

Definition at line 483 of file rpmio_internal.h.

References FDSANE, and _FD_s::rd_timeoutsecs.

static rpmxar fdGetXAR ( FD_t  fd)
inlinestatic

Definition at line 256 of file rpmio_internal.h.

References FDSANE, and _FD_s::xar.

Referenced by rdLead(), rdSignature(), readFile(), rpmReadHeader(), and xarRead().

static void fdInitDigest ( FD_t  fd,
pgpHashAlgo  hashalgo,
int  _flags 
)
inlinestatic
static void fdInitHmac ( FD_t  fd,
const void *  key,
size_t  keylen 
)
inlinestatic

Attach digest to fd.

Definition at line 545 of file rpmio_internal.h.

References _FD_s::digests, _FD_s::ndigests, and rpmHmacInit().

Referenced by dodigest(), main(), and rpmdcInitFile().

static void fdPop ( FD_t  fd)
inlinestatic

Definition at line 373 of file rpmio_internal.h.

References FDSANE, fdSetFdno(), fdSetFp(), fdSetIo(), and _FD_s::nfps.

Referenced by Fclose().

static void fdPush ( FD_t  fd,
FDIO_t  io,
void *  fp,
int  fdno 
)
inlinestatic

Definition at line 358 of file rpmio_internal.h.

References FDSANE, fdSetFdno(), fdSetFp(), fdSetIo(), _FD_s::fps, and _FD_s::nfps.

Referenced by Fdopen(), Fopen(), and urlFini().

static void fdSetContentLength ( FD_t  fd,
ssize_t  contentLength 
)
inlinestatic

Definition at line 348 of file rpmio_internal.h.

References _FD_s::bytesRemain, _FD_s::contentLength, and FDSANE.

static void fdSetCpioPos ( FD_t  fd,
long int  cpioPos 
)
inlinestatic

Definition at line 503 of file rpmio_internal.h.

References _FD_s::fd_cpioPos, and FDSANE.

Referenced by fsmSetup(), iosmSetup(), and iosmStage().

static void fdSetDig ( FD_t  fd,
pgpDig  dig 
)
inlinestatic

Definition at line 217 of file rpmio_internal.h.

References _FD_s::dig, FDSANE, pgpDigFree(), and pgpDigLink().

Referenced by rpmReadHeader(), rpmReadPackageFile(), and rpmVerifySignatures().

static void fdSetFdno ( FD_t  fd,
int  fdno 
)
inlinestatic

Definition at line 338 of file rpmio_internal.h.

References _FDSTACK_s::fdno, FDSANE, _FD_s::fps, and _FD_s::nfps.

Referenced by __fdClose(), __fdOpen(), fdDup(), fdPop(), fdPush(), ftpReq(), and tcpConnect().

static void fdSetFp ( FD_t  fd,
void *  fp 
)
inlinestatic

Definition at line 315 of file rpmio_internal.h.

References FDSANE, _FDSTACK_s::fp, _FD_s::fps, and _FD_s::nfps.

Referenced by Fclose(), Fdopen(), fdPop(), fdPush(), and ufdClose().

static void fdSetIo ( FD_t  fd,
FDIO_t  io 
)
inlinestatic

Definition at line 279 of file rpmio_internal.h.

References FDSANE, _FD_s::fps, _FDSTACK_s::io, and _FD_s::nfps.

Referenced by fdPop(), fdPush(), ftpOpen(), httpOpen(), ufdOpen(), and urlConnect().

static void fdSetOpen ( FD_t  fd,
const char *  path,
int  flags,
mode_t  mode 
)
inlinestatic
static void fdSetSyserrno ( FD_t  fd,
int  syserrno,
const void *  errcookie 
)
inlinestatic

Definition at line 470 of file rpmio_internal.h.

References _FD_s::errcookie, FDSANE, and _FD_s::syserrno.

Referenced by ftpLogin(), ftpReq(), httpReq(), and tcpConnect().

static void fdSetXAR ( FD_t  fd,
rpmxar  xar 
)
inlinestatic

Definition at line 243 of file rpmio_internal.h.

References FDSANE, rpmxarLink(), and _FD_s::xar.

Referenced by rdLead().

static void fdstat_enter ( FD_t  fd,
int  opx 
)
inlinestatic
static void fdstat_exit ( FD_t  fd,
int  opx,
ssize_t  rc 
)
inlinestatic
static rpmop fdstat_op ( FD_t  fd,
fdOpX  opx 
)
inlinestatic
static void fdstat_print ( FD_t  fd,
const char *  msg,
FILE *  fp 
)
inlinestatic
static void fdStealDigest ( FD_t  fd,
pgpDig  dig 
)
inlinestatic
static void fdUpdateDigests ( FD_t  fd,
const unsigned char *  buf,
ssize_t  buflen 
)
inlinestatic

Update digest(s) attached to fd.

Definition at line 557 of file rpmio_internal.h.

References _FD_s::digests, FDSTAT_DIGEST, fdstat_enter(), fdstat_exit(), i, _FD_s::ndigests, and rpmDigestUpdate().

Referenced by __fdRead(), and __fdWrite().

int ftpCmd ( const char *  cmd,
const char *  url,
const char *  arg2 
)

Definition at line 1674 of file rpmio.c.

References urlinfo_s::ctrl, fdFree(), ftpCommand(), urlConnect(), and urlPath().

Referenced by ftpChdir(), ftpMkdir(), ftpRename(), ftpRmdir(), and ftpUnlink().

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 ufdClose ( void *  cookie)

Variable Documentation

struct rpmop_s ops[FDSTAT_MAX]

Cumulative statistics.

Definition at line 47 of file rpmio_internal.h.