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

rpmdb/falloc.h File Reference

File space allocation routines. More...

Go to the source code of this file.

Functions

long int fadGetFileSize (FD_t fd)
void fadSetFileSize (FD_t fd, long int fileSize)
unsigned int fadGetFirstFree (FD_t fd)
void fadSetFirstFree (FD_t fd, unsigned int firstFree)
FD_t fadOpen (const char *path, int flags, mode_t perms)
unsigned int fadAlloc (FD_t fd, unsigned int size)
void fadFree (FD_t fd, unsigned int offset)
int fadFirstOffset (FD_t fd)
int fadNextOffset (FD_t fd, unsigned int lastoff)


Detailed Description

File space allocation routines.

Best fit allocation is used, free blocks are compacted. Minimal fragmentation is more important then speed. This uses 32 bit offsets on all platforms and should be byte order independent.

Definition in file falloc.h.


Function Documentation

unsigned int fadAlloc FD_t    fd,
unsigned int    size
 

Parameters:
fd  file handle
size 
Returns:
0 on failure

Definition at line 144 of file falloc.c.

References _, alloca(), EXIT_FAILURE, FA_MAGIC, fadGetFileSize(), fadGetFirstFree(), fadSetFileSize(), fadSetFirstFree(), faFileHeader::firstFree, faHeader::freeNext, faHeader::freePrev, faFooter::isFree, faHeader::isFree, faFileHeader::magic, Pread(), Pwrite(), RPMERR_FREELIST, rpmError, faFooter::size, and faHeader::size.

Referenced by db1cget().

int fadFirstOffset FD_t    fd
 

Parameters:
fd  file handle

Definition at line 462 of file falloc.c.

References fadNextOffset().

Referenced by db1cget().

void fadFree FD_t    fd,
unsigned int    offset
 

Parameters:
fd  file handle
offset 

Definition at line 334 of file falloc.c.

References FA_MAGIC, fadGetFirstFree(), fadSetFirstFree(), faFileHeader::firstFree, faHeader::freeNext, faHeader::freePrev, faFooter::isFree, faHeader::isFree, faFileHeader::magic, Pread(), Pwrite(), and faHeader::size.

Referenced by db1cdel().

long int fadGetFileSize FD_t    fd [inline, static]
 

Definition at line 19 of file falloc.h.

References _FD_s::fileSize.

Referenced by doGetRecord(), fadAlloc(), fadNextOffset(), and fadOpen().

unsigned int fadGetFirstFree FD_t    fd [inline, static]
 

Definition at line 29 of file falloc.h.

References _FD_s::firstFree.

Referenced by fadAlloc(), and fadFree().

int fadNextOffset FD_t    fd,
unsigned int    lastoff
 

Parameters:
fd  file handle
lastoff 
Returns:
next offset, 0 to terminate

Definition at line 467 of file falloc.c.

References fadGetFileSize(), fadSanity(), faHeader::isFree, Pread(), and faHeader::size.

Referenced by db1cget(), doGetRecord(), and fadFirstOffset().

FD_t fadOpen const char *    path,
int    flags,
mode_t    perms
 

Definition at line 85 of file falloc.c.

References FDIO_s::_open, FA_MAGIC, fadGetFileSize(), fadSetFileSize(), fadSetFirstFree(), Fclose(), fdSetIo(), Ferror(), faFileHeader::firstFree, Fseek(), Fwrite(), faFileHeader::magic, Pread(), and SEEK_END.

Referenced by db1open().

void fadSetFileSize FD_t    fd,
long int    fileSize
[inline, static]
 

Definition at line 23 of file falloc.h.

References _FD_s::fileSize.

Referenced by fadAlloc(), and fadOpen().

void fadSetFirstFree FD_t    fd,
unsigned int    firstFree
[inline, static]
 

Definition at line 33 of file falloc.h.

References _FD_s::firstFree.

Referenced by fadAlloc(), fadFree(), and fadOpen().


Generated on Sun Feb 2 23:32:10 2003 for rpm by doxygen1.2.18