]>
Commit | Line | Data |
---|---|---|
cd748f27 | 1 | #ifndef __COSS_H__ |
2 | #define __COSS_H__ | |
3 | ||
4 | #ifndef COSS_MEMBUF_SZ | |
5 | #define COSS_MEMBUF_SZ 1048576 | |
6 | #endif | |
7 | ||
8 | #define COSS_ALLOC_NOTIFY 0 | |
9 | #define COSS_ALLOC_ALLOCATE 1 | |
10 | #define COSS_ALLOC_REALLOC 2 | |
11 | ||
12 | struct _cossmembuf { | |
13 | size_t diskstart; | |
14 | size_t diskend; | |
15 | SwapDir *SD; | |
16 | int lockcount; | |
17 | char buffer[COSS_MEMBUF_SZ]; | |
18 | struct _cossmembuf_flags { | |
a4b8110e | 19 | unsigned int full:1; |
20 | unsigned int writing:1; | |
cd748f27 | 21 | } flags; |
22 | struct _cossmembuf *next; | |
23 | }; | |
24 | ||
25 | ||
26 | /* Per-storedir info */ | |
27 | struct _cossinfo { | |
28 | struct _cossmembuf *membufs; | |
29 | struct _cossmembuf *current_membuf; | |
30 | size_t current_offset; | |
31 | int fd; | |
32 | int swaplog_fd; | |
33 | int numcollisions; | |
34 | }; | |
35 | ||
36 | ||
37 | /* Per-storeiostate info */ | |
38 | struct _cossstate { | |
39 | char *readbuffer; | |
40 | char *requestbuf; | |
41 | size_t requestlen; | |
42 | size_t requestoffset; | |
43 | sfileno reqdiskoffset; | |
44 | struct { | |
a4b8110e | 45 | unsigned int reading:1; |
46 | unsigned int writing:1; | |
cd748f27 | 47 | } flags; |
48 | }; | |
49 | ||
50 | typedef struct _cossmembuf CossMemBuf; | |
51 | typedef struct _cossinfo CossInfo; | |
52 | typedef struct _cossstate CossState; | |
53 | ||
54 | /* Whether the coss system has been setup or not */ | |
55 | extern int coss_initialised; | |
a4b8110e | 56 | extern MemPool *coss_membuf_pool; |
57 | extern MemPool *coss_state_pool; | |
cd748f27 | 58 | |
59 | ||
60 | /* | |
61 | * Store IO stuff | |
62 | */ | |
63 | extern STOBJCREATE storeCossCreate; | |
64 | extern STOBJOPEN storeCossOpen; | |
65 | extern STOBJCLOSE storeCossClose; | |
66 | extern STOBJREAD storeCossRead; | |
67 | extern STOBJWRITE storeCossWrite; | |
68 | extern STOBJUNLINK storeCossUnlink; | |
69 | ||
a4b8110e | 70 | extern off_t storeCossAllocate(SwapDir * SD, const StoreEntry * e, int which); |
71 | extern void storeCossFree(StoreEntry * e); | |
72 | extern void storeCossMaintainSwapSpace(SwapDir * SD); | |
cd748f27 | 73 | extern void storeCossDirStats(SwapDir *, StoreEntry *); |
a4b8110e | 74 | extern void storeCossDirDump(StoreEntry * entry, const char *name, SwapDir * s); |
cd748f27 | 75 | extern void storeCossDirFree(SwapDir *); |
76 | extern SwapDir *storeCossDirPick(void); | |
77 | ||
78 | void storeFsSetup_ufs(storefs_entry_t *); | |
79 | ||
80 | ||
81 | ||
82 | #endif |