Main Page   Modules   Compound List   File List   Compound Members   File Members   Related Pages  

lib/transaction.c File Reference

More...

#include "system.h"
#include <rpmlib.h>
#include <rpmmacro.h>
#include "depends.h"
#include "fprint.h"
#include "hash.h"
#include "install.h"
#include "md5.h"
#include "misc.h"
#include "rpmdb.h"
#include "debug.h"

Go to the source code of this file.

Compounds

struct  diskspaceInfo
struct  transactionFileInfo

Defines

#define adj_fs_blocks(_nb)    (((_nb) * 21) / 20)
#define BLOCK_ROUND(size, block)    (((size) + (block) - 1) / (block))
#define XSTRCMP(a, b)    ((!(a) && !(b)) || ((a) && (b) && !strcmp((a), (b))))
#define XFA_SKIPPING(_a)
#define alloca_strdup(_s)    strcpy(alloca(strlen(_s)+1), (_s))
#define NOTIFY(_ts, _al)    if ((_ts)->notify) (void) (_ts)->notify _al

Typedefs

typedef struct transactionFileInfo  TFI_t

Functions

void freeFi (TFI_t *fi)
void freeFl (rpmTransactionSet ts, TFI_t *flList)
rpmProblemSet psCreate (void)
void psAppend (rpmProblemSet probs, rpmProblemType type, const void * key, Header h, const char * dn, const char *bn, Header altH, unsigned long ulong1)
int archOkay (Header h)
int osOkay (Header h)
const char* const ftstring (enum fileTypes ft)
enum fileTypes whatis (uint_16 mode)
Header relocateFileList (const rpmTransactionSet ts, struct availablePackage * alp, Header origH, enum fileActions * actions)
 Relocate files in header. More...

int psTrim (rpmProblemSet filter, rpmProblemSet target)
int sharedCmp (const void * one, const void * two)
enum fileActions decideFileFate (const char * dirName, const char * baseName, short dbMode, const char * dbMd5, const char * dbLink, short newMode, const char * newMd5, const char * newLink, int newFlags, int brokenMd5, rpmtransFlags transFlags)
int filecmp (short mode1, const char * md51, const char * link1, short mode2, const char * md52, const char * link2)
int handleInstInstalledFiles (TFI_t * fi, rpmdb db, struct sharedFileInfo * shared, int sharedCount, int reportConflicts, rpmProblemSet probs, rpmtransFlags transFlags)
int handleRmvdInstalledFiles (TFI_t * fi, rpmdb db, struct sharedFileInfo * shared, int sharedCount)
void handleOverlappedFiles (TFI_t * fi, hashTable ht, rpmProblemSet probs, struct diskspaceInfo * dsl)
 Update disk space needs on each partition for this package. More...

int ensureOlder ( rpmdb rpmdb, Header new, Header old, rpmProblemSet probs, const void * key)
void skipFiles (TFI_t * fi, int noDocs)


Detailed Description

Definition in file transaction.c.


Define Documentation

#define BLOCK_ROUND( size, block )   (((size) + (block) - 1) / (block))
 

Definition at line 85 of file transaction.c.

Referenced by handleOverlappedFiles().

#define NOTIFY( _ts, _al )   if ((_ts)->notify) (void) (_ts)->notify _al
 

Definition at line 1337 of file transaction.c.

Referenced by rpmRunTransactions().

#define XFA_SKIPPING( _a )
 

Initializer:

\
    ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPMULTILIB)

Definition at line 89 of file transaction.c.

Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmRunTransactions(), and skipFiles().

#define XSTRCMP( a, b )   ((!(a) && !(b)) || ((a) && (b) && !strcmp((a), (b))))
 

Definition at line 87 of file transaction.c.

Referenced by psTrim().

#define adj_fs_blocks( _nb )   (((_nb) * 21) / 20)
 

Definition at line 81 of file transaction.c.

Referenced by rpmRunTransactions().

#define alloca_strdup( _s )   strcpy(alloca(strlen(_s)+1), (_s))
 

Definition at line 345 of file transaction.c.


Typedef Documentation

typedef struct transactionFileInfo TFI_t
 


Function Documentation

int archOkay ( Header h ) [static]
 

Definition at line 252 of file transaction.c.

Referenced by rpmRunTransactions().

enum fileActions decideFileFate ( const char * dirName,
const char * baseName,
short dbMode,
const char * dbMd5,
const char * dbLink,
short newMode,
const char * newMd5,
const char * newLink,
int newFlags,
int brokenMd5,
rpmtransFlags transFlags ) [static]
 

Definition at line 777 of file transaction.c.

Referenced by handleInstInstalledFiles().

int ensureOlder ( rpmdb rpmdb,
Header new,
Header old,
rpmProblemSet probs,
const void * key ) [static]
 

Definition at line 1221 of file transaction.c.

Referenced by rpmRunTransactions().

int filecmp ( short mode1,
const char * md51,
const char * link1,
short mode2,
const char * md52,
const char * link2 ) [static]
 

Definition at line 873 of file transaction.c.

Referenced by handleInstInstalledFiles(), and handleOverlappedFiles().

void freeFi ( TFI_t * fi ) [static]
 

Definition at line 92 of file transaction.c.

Referenced by freeFl().

void freeFl ( rpmTransactionSet ts,
TFI_t * flList ) [static]
 

Definition at line 140 of file transaction.c.

Referenced by rpmRunTransactions().

const char *const ftstring ( enum fileTypes ft ) [static]
 

Definition at line 320 of file transaction.c.

Referenced by relocateFileList().

int handleInstInstalledFiles ( TFI_t * fi,
rpmdb db,
struct sharedFileInfo * shared,
int sharedCount,
int reportConflicts,
rpmProblemSet probs,
rpmtransFlags transFlags ) [static]
 

Definition at line 889 of file transaction.c.

Referenced by rpmRunTransactions().

void handleOverlappedFiles ( TFI_t * fi,
hashTable ht,
rpmProblemSet probs,
struct diskspaceInfo * dsl ) [static]
 

Update disk space needs on each partition for this package.

Definition at line 1025 of file transaction.c.

Referenced by rpmRunTransactions().

int handleRmvdInstalledFiles ( TFI_t * fi,
rpmdb db,
struct sharedFileInfo * shared,
int sharedCount ) [static]
 

Definition at line 986 of file transaction.c.

Referenced by rpmRunTransactions().

int osOkay ( Header h ) [static]
 

Definition at line 282 of file transaction.c.

Referenced by rpmRunTransactions().

void psAppend ( rpmProblemSet probs,
rpmProblemType type,
const void * key,
Header h,
const char * dn,
const char * bn,
Header altH,
unsigned long ulong1 ) [static]
 

Definition at line 192 of file transaction.c.

Referenced by ensureOlder(), handleInstInstalledFiles(), handleOverlappedFiles(), relocateFileList(), and rpmRunTransactions().

rpmProblemSet psCreate ( void ) [static]
 

Definition at line 181 of file transaction.c.

Referenced by rpmRunTransactions().

int psTrim ( rpmProblemSet filter,
rpmProblemSet target ) [static]
 

Definition at line 730 of file transaction.c.

Referenced by rpmRunTransactions().

Header relocateFileList ( const rpmTransactionSet ts,
struct availablePackage * alp,
Header origH,
enum fileActions * actions ) [static]
 

Relocate files in header.

Todo:
multilib file dispositions need to be checked.
Parameters:
ts   transaction set
alp   available package
origH   package header
actions   file dispositions
Returns:
header with relocated files

Definition at line 356 of file transaction.c.

Referenced by rpmRunTransactions().

int sharedCmp ( const void * one,
const void * two ) [static]
 

Definition at line 764 of file transaction.c.

void skipFiles ( TFI_t * fi,
int noDocs ) [static]
 

Definition at line 1239 of file transaction.c.

Referenced by rpmRunTransactions().

enum fileTypes whatis ( uint_16 mode ) [static]
 

Definition at line 334 of file transaction.c.

Referenced by decideFileFate(), filecmp(), and relocateFileList().


Generated at Sun Apr 8 18:43:04 2001 for rpm by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000