CAP/applications/aufs/afpgc.h

49 lines
1.3 KiB
C

/*
* $Author: djh $ $Date: 91/02/15 21:07:27 $
* $Header: afpgc.h,v 2.1 91/02/15 21:07:27 djh Rel $
* $Revision: 2.1 $
*/
/*
* afpgc.c - Appletalk Filing Protocol General Cache Manager Definitions
*
* AppleTalk package for UNIX (4.2 BSD).
*
* Copyright (c) 1986, 1987 by The Trustees of Columbia University in the
* City of New York.
*
* Edit History:
*
*
* Apr 3, 1987 Schilit Created.
*
*/
/* GCHandle is the general cache manager's handle on a cache */
typedef char GCUData;
typedef struct {
int gch_clock; /* the current cache clock */
int gch_size; /* the size of the cache */
int (*gch_valid)(); /* valid function */
int (*gch_comp)(); /* compare function */
char *(*gch_load)(); /* load function */
void (*gch_purge)(); /* free function */
void (*gch_flush)(); /* write to disk function */
int *gch_lru; /* clocks for each entry */
GCUData **gch_ents; /* data for each entry */
} GCHandle;
/* given a pointer cache pointer and an index, returns an entry */
#define GCidx2ent(gch,idx) ((gch)->gch_ents[(idx)])
GCHandle *GCNew(); /* create a new cache */
GCUData *GCLocate(); /* locate an entry in the cache */
void GCFlush(); /* flush the cache */
GCUData *GCGet(); /* direct access get by index */
int GCAdd(); /* direct access add to cache */
#define NOGCIDX -1 /* NULL cache index */