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  faHeader
struct  faFooter

Defines

#define FA_MAGIC   0x02050920

Functions

static ssize_t Pread (FD_t fd, void *buf, size_t count, _libio_off_t offset)
 pread(2) clone.
static ssize_t Pwrite (FD_t fd, const void *buf, size_t count, _libio_off_t offset)
 pwrite(2) clone.
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)
static 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

static struct 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

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

Definition at line 421 of file falloc.c.

static 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.

static 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.


Variable Documentation

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.


Generated on Mon Sep 28 03:22:14 2009 for rpm by  doxygen 1.5.9