DiskdIOStrategy.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 /* DEBUG: section 79 Squid-side DISKD I/O functions. */
10 
11 #ifndef SQUID_SRC_DISKIO_DISKDAEMON_DISKDIOSTRATEGY_H
12 #define SQUID_SRC_DISKIO_DISKDAEMON_DISKDIOSTRATEGY_H
13 
14 struct diomsg;
15 
18 {
19 
20 public:
21  void put(ssize_t);
22  void *get(ssize_t *);
23  void init(int ikey, int magic2);
24  SharedMemory() : nbufs(0), buf(nullptr), inuse_map(nullptr), id(0) {}
25 
26  int nbufs;
27  char *buf;
28  char *inuse_map;
29  int id;
30 };
31 
32 #include "DiskIO/DiskIOStrategy.h"
33 #include "StoreIOState.h"
34 
35 class DiskFile;
36 
37 class DiskdFile;
38 class Lock;
39 class ReadRequest;
40 
43 {
44 
45 public:
47  bool shedLoad() override;
48  int load() override;
49  RefCount<DiskFile> newFile(char const *path) override;
50  bool unlinkdUseful() const override;
51  void unlinkFile (char const *) override;
52  ConfigOption *getOptionTree() const override;
53  void init() override;
54  void sync() override;
55  int callback() override;
56  void statfs(StoreEntry & sentry) const override;
57  int send(int mtype, int id, DiskdFile *theFile, size_t size, off_t offset, ssize_t shm_offset, Lock *requestor);
58 
61 
62 private:
63  static size_t newInstance();
64  static size_t nextInstanceID;
65  void openFailed();
66  bool optionQ1Parse(char const *option, const char *value, int reconfiguring);
67  void optionQ1Dump(StoreEntry * e) const;
68  bool optionQ2Parse(char const *option, const char *value, int reconfiguring);
69  void optionQ2Dump(StoreEntry * e) const;
70  int send(int mtype, int id, RefCount<StoreIOState> sio, size_t size, off_t offset, ssize_t shm_offset);
71  int SEND(diomsg * M, int mtype, int id, size_t size, off_t offset, ssize_t shm_offset);
72  void handle(diomsg * M);
73  void unlinkDone(diomsg * M);
74 
79  int magic1;
80 
87  int magic2;
88 
89  int away;
90  int smsgid;
91  int rmsgid;
92  int wfd;
93  size_t instanceID;
94 };
95 
97 #define SHMBUF_BLKSZ SM_PAGE_SIZE
98 
103  int max_away;
108  int sio_id;
109 
110  struct {
111  int ops;
112  int success;
113  int fail;
114  }
115 
117 };
118 
121 
122 #endif /* SQUID_SRC_DISKIO_DISKDAEMON_DISKDIOSTRATEGY_H */
123 
struct diskd_stats_t::@41 open
struct diskd_stats_t::@41 read
void unlinkFile(char const *) override
static size_t newInstance()
void unlinkDone(diomsg *M)
struct diskd_stats_t::@41 unlink
int SEND(diomsg *M, int mtype, int id, size_t size, off_t offset, ssize_t shm_offset)
SharedMemory shm
void init(int ikey, int magic2)
void optionQ2Dump(StoreEntry *e) const
ConfigOption * getOptionTree() const override
int size
Definition: ModDevPoll.cc:69
static size_t nextInstanceID
void init() override
void * get(ssize_t *)
int callback() override
int reconfiguring
void statfs(StoreEntry &sentry) const override
diskd_stats_t diskd_stats
int load() override
void handle(diomsg *M)
bool optionQ2Parse(char const *option, const char *value, int reconfiguring)
void put(ssize_t)
int send(int mtype, int id, DiskdFile *theFile, size_t size, off_t offset, ssize_t shm_offset, Lock *requestor)
bool unlinkdUseful() const override
struct diskd_stats_t::@41 create
void sync() override
RefCount< DiskFile > newFile(char const *path) override
Definition: diomsg.h:30
struct diskd_stats_t::@41 write
bool shedLoad() override
struct diskd_stats_t::@41 close
void optionQ1Dump(StoreEntry *e) const
bool optionQ1Parse(char const *option, const char *value, int reconfiguring)
Definition: Lock.h:25

 

Introduction

Documentation

Support

Miscellaneous