]> git.ipfire.org Git - thirdparty/squid.git/blame - src/fs/coss/store_coss.h
DW:
[thirdparty/squid.git] / src / fs / coss / store_coss.h
CommitLineData
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
12struct _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 */
27struct _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 */
38struct _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
50typedef struct _cossmembuf CossMemBuf;
51typedef struct _cossinfo CossInfo;
52typedef struct _cossstate CossState;
53
54/* Whether the coss system has been setup or not */
55extern int coss_initialised;
a4b8110e 56extern MemPool *coss_membuf_pool;
57extern MemPool *coss_state_pool;
cd748f27 58
59
60/*
61 * Store IO stuff
62 */
63extern STOBJCREATE storeCossCreate;
64extern STOBJOPEN storeCossOpen;
65extern STOBJCLOSE storeCossClose;
66extern STOBJREAD storeCossRead;
67extern STOBJWRITE storeCossWrite;
68extern STOBJUNLINK storeCossUnlink;
69
a4b8110e 70extern off_t storeCossAllocate(SwapDir * SD, const StoreEntry * e, int which);
71extern void storeCossFree(StoreEntry * e);
72extern void storeCossMaintainSwapSpace(SwapDir * SD);
cd748f27 73extern void storeCossDirStats(SwapDir *, StoreEntry *);
a4b8110e 74extern void storeCossDirDump(StoreEntry * entry, const char *name, SwapDir * s);
cd748f27 75extern void storeCossDirFree(SwapDir *);
76extern SwapDir *storeCossDirPick(void);
77
78void storeFsSetup_ufs(storefs_entry_t *);
79
80
81
82#endif