Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lib/transaction.c File Reference

More...

#include "system.h"
#include <rpmmacro.h>
#include "psm.h"
#include "rpmdb.h"
#include "fprint.h"
#include "rpmhash.h"
#include "misc.h"
#include "debug.h"

Go to the source code of this file.

Data Structures

struct  diskspaceInfo
struct  tsIterator_s
 Iterator across transaction elements, forward on install, backward on erase. More...


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 alloca_strdup(_s)   strcpy(alloca(strlen(_s)+1), (_s))
#define NOTIFY(_ts, _al)   if ((_ts)->notify) (void) (_ts)->notify _al

Functions

void* freeFl (rpmTransactionSet ts, TFI_t flList)
void rpmtransSetScriptFd (rpmTransactionSet ts, FD_t fd)
int rpmtransGetKeys (const rpmTransactionSet ts, const void ***ep, int *nep)
rpmProblemSet psCreate (void)
void psAppend (rpmProblemSet probs, rpmProblemType type, const struct availablePackage *alp, const char *dn, const char *bn, Header altH, unsigned long ulong1)
int archOkay (Header h)
int osOkay (Header h)
void rpmProblemSetFree (rpmProblemSet probs)
 Destroy problem set. More...

const char* const ftstring (fileTypes ft)
fileTypes whatis (uint_16 mode)
Header relocateFileList (const rpmTransactionSet ts, TFI_t fi, struct availablePackage *alp, Header origH, fileAction *actions)
 Relocate files in header. More...

int psTrim (rpmProblemSet filter, rpmProblemSet target)
int sharedCmp (const void *one, const void *two)
fileAction 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, 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 (struct availablePackage *alp, Header old, rpmProblemSet probs)
void skipFiles (const rpmTransactionSet ts, TFI_t fi)
int tsGetOc (void *a)
 Return transaction element order count. More...

struct availablePackagetsGetAlp (void *a)
 Return transaction element available package pointer. More...

void* tsFreeIterator (const void *a)
 Destroy transaction element iterator. More...

void* tsInitIterator (const void *a)
 Create transaction element iterator. More...

TFI_t tsNextIterator (void *a)
 Return next transaction element's file info. More...

int rpmRunTransactions (rpmTransactionSet ts, rpmCallbackFunction notify, rpmCallbackData notifyData, rpmProblemSet okProbs, rpmProblemSet *newProbs, rpmtransFlags transFlags, rpmprobFilterFlags ignoreSet)


Detailed Description

Definition in file transaction.c.


Define Documentation

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

Definition at line 66 of file transaction.c.

Referenced by handleOverlappedFiles().

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

Definition at line 1514 of file transaction.c.

Referenced by rpmRunTransactions().

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

Definition at line 68 of file transaction.c.

Referenced by psTrim().

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

Definition at line 62 of file transaction.c.

Referenced by rpmRunTransactions().

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

Definition at line 298 of file transaction.c.


Function Documentation

int archOkay ( Header h ) [static]
 

Definition at line 200 of file transaction.c.

Referenced by rpmRunTransactions().

fileAction 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,
rpmtransFlags transFlags ) [static]
 

Definition at line 785 of file transaction.c.

Referenced by handleInstInstalledFiles().

int ensureOlder ( struct availablePackage * alp,
Header old,
rpmProblemSet probs ) [static]
 

Definition at line 1231 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 878 of file transaction.c.

Referenced by handleInstInstalledFiles(), and handleOverlappedFiles().

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

Definition at line 70 of file transaction.c.

Referenced by rpmRunTransactions().

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

Definition at line 270 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 895 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 1032 of file transaction.c.

Referenced by rpmRunTransactions().

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

Definition at line 991 of file transaction.c.

Referenced by rpmRunTransactions().

int osOkay ( Header h ) [static]
 

Definition at line 231 of file transaction.c.

Referenced by rpmRunTransactions().

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

Definition at line 136 of file transaction.c.

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

rpmProblemSet psCreate ( void ) [static]
 

Definition at line 124 of file transaction.c.

Referenced by rpmRunTransactions().

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

Definition at line 734 of file transaction.c.

Referenced by rpmRunTransactions().

Header relocateFileList ( const rpmTransactionSet ts,
TFI_t fi,
struct availablePackage * alp,
Header origH,
fileAction * actions ) [static]
 

Relocate files in header.

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

Definition at line 310 of file transaction.c.

Referenced by rpmRunTransactions().

void rpmProblemSetFree ( rpmProblemSet probs )
 

Destroy problem set.

Parameters:
probs   problem set

Definition at line 256 of file transaction.c.

Referenced by rpmInstall(), rpmRollback(), and rpmtransRun().

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

Definition at line 771 of file transaction.c.

void skipFiles ( const rpmTransactionSet ts,
TFI_t fi ) [static]
 

Definition at line 1250 of file transaction.c.

Referenced by rpmRunTransactions().

void * tsFreeIterator ( const void * a ) [static]
 

Destroy transaction element iterator.

Parameters:
a   transaction element iterator
Returns:
NULL always

Definition at line 1465 of file transaction.c.

Referenced by rpmRunTransactions().

struct availablePackage * tsGetAlp ( void * a ) [static]
 

Return transaction element available package pointer.

Parameters:
a   transaction element iterator
Returns:
available package pointer

Definition at line 1444 of file transaction.c.

Referenced by rpmRunTransactions().

int tsGetOc ( void * a ) [static]
 

Return transaction element order count.

Parameters:
a   transaction element iterator
Returns:
element order count

Definition at line 1431 of file transaction.c.

Referenced by rpmRunTransactions().

void * tsInitIterator ( const void * a ) [static]
 

Create transaction element iterator.

Parameters:
a   transaction set
Returns:
transaction element iterator

Definition at line 1476 of file transaction.c.

Referenced by rpmRunTransactions().

TFI_t tsNextIterator ( void * a ) [static]
 

Return next transaction element's file info.

Parameters:
a   file info iterator
Returns:
next index, -1 on termination

Definition at line 1495 of file transaction.c.

Referenced by rpmRunTransactions().

fileTypes whatis ( uint_16 mode ) [static]
 

Definition at line 286 of file transaction.c.

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


Generated at Fri Feb 15 10:30:41 2002 for rpm by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001