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

# rpmdb/falloc.c File Reference

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

`#include "system.h"`
`#include <rpmio_internal.h>`
`#include <rpmmessages.h>`
`#include <rpmerr.h>`
`#include "falloc.h"`
`#include "debug.h"`

Go to the source code of this file.

## Data Structures

struct | faFileHeader
struct | faFooter
struct | faHeader

## Defines

#define | FA_MAGIC 0x02050920

## Functions

ssize_t | Pread (FD_t fd, void *buf, size_t count, _libio_off_t offset)
| pread(2) clone. More...
ssize_t | Pwrite (FD_t fd, const void *buf, size_t count, _libio_off_t offset)
| pwrite(2) clone. More...
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 | fadSanity (FD_t fd, int offset, const struct faHeader *fh, int printit)
int | fadFirstOffset (FD_t fd)
int | fadNextOffset (FD_t fd, unsigned int lastoff)

## Variables

FDIO_s | fadio_s
FDIO_t | fadio = &fadio_s

## Detailed Description

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

The size fields doubly link this block list.

There is an additional free list weaved through the block list, which keeps new allocations fast.

Much of this was inspired by Knuth vol 1.

Definition in file falloc.c.

## Function Documentation

int fadSanity | ( | FD_t | fd,
|  | int | offset,
|  | const struct faHeader * | fh,
|  | int | printit
| ) | `[static]`

| Definition at line 421 of file falloc.c. Referenced by fadNextOffset.

ssize_t Pread | ( | FD_t | fd,
|  | void * | buf,
|  | size_t | count,
|  | _libio_off_t | offset
| ) | `[static]`

| pread(2) clone. Definition at line 58 of file falloc.c. References _libio_off_t, Fread, Fseek, and SEEK_SET. Referenced by fadAlloc, fadFree, fadNextOffset, and fadOpen.

ssize_t Pwrite | ( | FD_t | fd,
|  | const void * | buf,
|  | size_t | count,
|  | _libio_off_t | offset
| ) | `[static]`

| pwrite(2) clone. Definition at line 73 of file falloc.c. References _libio_off_t, Fseek, Fwrite, and SEEK_SET. Referenced by fadAlloc, and fadFree.

## Variable Documentation

FDIO_t fadio = &fadio_s

| Definition at line 51 of file falloc.c.

struct FDIO_s fadio_s`[static]`

Initial value:

     {
      NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
      fadOpen, NULL, NULL,  NULL, NULL, NULL, NULL, NULL, NULL
    }

Definition at line 46 of file falloc.c.