# DB1.

## Files

file | db1.c
file | falloc.c
| The entire file space is thus divided into blocks with a "struct fablock" at the header of each.

file | falloc.h
| File space allocation routines.

file | rpmdb.h
| Access RPM indices using Berkeley DB interface(s).

## Defines

#define | FA_MAGIC 0x02050920

## Functions

FD_t | fadOpen (const char *path, int flags, mode_t perms)
unsigned int | fadAlloc (FD_t fd, unsigned int size)

Parameters:

  | fd | file handle

void | fadFree (FD_t fd, unsigned int offset)

Parameters:

  | fd | file handle

int | fadFirstOffset (FD_t fd)

Parameters:

  | fd | file handle

int | fadNextOffset (FD_t fd, unsigned int lastoff)

Parameters:

  | fd | file handle

char * | db1basename (int rpmtag)
| Return base file name for db1 database (legacy).

## Variables

_dbiVec | db1vec

## Define Documentation

#define FA_MAGIC 0x02050920

Definition at line 23 of file falloc.c.

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

## Function Documentation

char* db1basename | ( | int | rpmtag | ) |

Return base file name for db1 database (legacy).

Parameters:

  | rpmtag | rpm tag

Returns:
  base file name of db1 database

Definition at line 2973 of file rpmdb.c.

References alloca(), RPMDBI_PACKAGES, RPMTAG_BASENAMES, RPMTAG_CONFLICTNAME, RPMTAG_GROUP, RPMTAG_NAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_TRIGGERNAME, stpcpy(), tagName(), and xstrdup().

Referenced by db1close(), db1open(), rpmdbMoveDatabase(), and rpmdbRemoveDatabase().

unsigned int fadAlloc | ( | FD_t | fd,
|  | unsigned int | size |
| ) |  |  |

Parameters:

  | fd | file handle

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, 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

Definition at line 334 of file falloc.c.

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

Referenced by db1cdel().

int fadNextOffset | ( | FD_t | fd,
|  | unsigned int | lastoff |
| ) |  |  |

Parameters:

  | fd | file handle

Returns:
  next offset, 0 to terminate

Definition at line 467 of file falloc.c.

References fadGetFileSize(), fadSanity(), and Pread().

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(), fadio, fadOpen(), fadSetFileSize(), fadSetFirstFree(), Fclose(), fdio, fdSetIo(), Ferror(), faFileHeader::firstFree, Fseek(), Fwrite(), faFileHeader::magic, Pread(), SEEK_END, and ufdio.

Referenced by db1open(), and fadOpen().

## Variable Documentation

struct _dbiVec db1vec

Initial value:

     {
         1 ,  85 ,  0 ,
        db1open, db1close, db1sync, db1copen, db1cclose, db1cdel, db1cget, db1cput,
        db1ccount, db1byteswapped, db1stat
    }

Definition at line 618 of file db1.c.

Referenced by db1open().