Windows: Direct IO Support for Service
[openafs.git] / src / WINNT / afsd / afsd.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  *
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #ifndef OPENAFS_WINNT_AFSD_AFSD_H
11 #define OPENAFS_WINNT_AFSD_AFSD_H 1
12
13 #define USE_BPLUS 1
14
15 #include <afsconfig.h>
16 #include <afs/param.h>
17
18 BOOL InitClass(HANDLE);
19 BOOL InitInstance(HANDLE, int);
20
21 LONG APIENTRY MainWndProc(HWND, unsigned int, unsigned int, long);
22 BOOL APIENTRY About(HWND, unsigned int, unsigned int, long);
23
24 #include <nb30.h>
25
26 #include "cm.h"
27 #include "cm_nls.h"
28
29 #include <osi.h>
30 #include <afs/vldbint.h>
31 #include <afs/afsint.h>
32 #define FSINT_COMMON_XG
33
34 #include <afs/prs_fs.h>
35
36 #include "cm_config.h"
37 #include "cm_user.h"
38 #include "cm_scache.h"
39 #include "cm_callback.h"
40 #ifdef DISKCACHE95
41 #include "cm_diskcache95.h"
42 #endif /* DISKCACHE95 */
43 #include "cm_conn.h"
44 #include "cm_cell.h"
45 #include "cm_aclent.h"
46 #include "cm_server.h"
47 #include "cm_volstat.h"
48 #include "cm_volume.h"
49 #include "cm_dcache.h"
50 #include "cm_direct.h"
51 #include "cm_access.h"
52 #include "cm_eacces.h"
53 #include "cm_dir.h"
54 #include "cm_utils.h"
55 #include "cm_vnodeops.h"
56 #include "cm_btree.h"
57 #include "cm_daemon.h"
58 #include "cm_ioctl.h"
59 #include "smb_iocons.h"
60 #include "cm_dnlc.h"
61 #include "cm_buf.h"
62 #include "cm_memmap.h"
63 #include "cm_freelance.h"
64 #include "cm_performance.h"
65 #include "cm_rdr.h"
66 #include "rawops.h"
67 #include "afsd_init.h"
68 #include "afsd_eventlog.h"
69
70
71 #define AFS_DAEMON_SERVICE_NAME AFSREG_CLT_SVC_NAME
72 #define AFS_DAEMON_EVENT_NAME   AFSREG_CLT_SW_NAME
73
74 void afs_exit();
75
76 extern void afsi_log(char *pattern, ...);
77
78 /* globals from the base afsd */
79
80 extern int cm_logChunkSize;
81 extern int cm_chunkSize;
82
83 extern cm_volume_t *cm_rootVolumep;
84
85 extern cm_cell_t *cm_rootCellp;
86
87 extern cm_fid_t cm_rootFid;
88
89 extern cm_scache_t *cm_rootSCachep;
90
91 extern osi_log_t *afsd_logp;
92
93 extern fschar_t cm_mountRoot[];
94 extern DWORD cm_mountRootLen;
95
96 extern clientchar_t cm_mountRootC[];
97 extern DWORD cm_mountRootCLen;
98
99 extern char cm_CachePath[];
100
101 extern BOOL isGateway;
102
103 extern BOOL reportSessionStartups;
104
105 #ifdef AFS_FREELANCE_CLIENT
106 extern char *cm_FakeRootDir;                            // the fake root.afs directory
107
108 extern int cm_fakeDirSize;                              // size (in bytes) of fake root.afs directory
109
110 extern int cm_fakeDirCallback;                          // state of the fake root.afs directory. indicates
111                                                         // if it needs to be refreshed
112
113 extern int cm_fakeGettingCallback;                      // 1 if currently updating the fake root.afs directory,
114                                                         // 0 otherwise
115 #endif /* AFS_FREELANCE_CLIENT */
116
117 extern int cm_dnsEnabled;
118 extern int cm_readonlyVolumeVersioning;
119 extern int cm_shortNames;
120 extern int cm_directIO;
121
122 extern long rx_mtu;
123
124 extern HANDLE WaitToTerminate;
125
126 extern int RDR_Initialized;
127
128 extern afs_uint32 smb_Enabled;
129
130 extern int cm_virtualCache;
131
132 extern afs_int32 cm_verifyData;
133
134 #define DFS_SUPPORT 1
135 #define LOG_PACKET 1
136 #undef  NOTSERVICE
137 #define LOCK_TESTING 1
138
139 #define WORKER_THREADS 10
140
141 #define AFSD_HOOK_DLL  "afsdhook.dll"
142 #define AFSD_INIT_HOOK "AfsdInitHook"
143 typedef BOOL ( APIENTRY * AfsdInitHook )(void);
144 #define AFSD_RX_STARTED_HOOK "AfsdRxStartedHook"
145 typedef BOOL ( APIENTRY * AfsdRxStartedHook )(void);
146 #define AFSD_SMB_STARTED_HOOK "AfsdSmbStartedHook"
147 typedef BOOL ( APIENTRY * AfsdSmbStartedHook )(void);
148 #define AFSD_STARTED_HOOK "AfsdStartedHook"
149 typedef BOOL ( APIENTRY * AfsdStartedHook )(void);
150 #define AFSD_DAEMON_HOOK "AfsdDaemonHook"
151 typedef BOOL ( APIENTRY * AfsdDaemonHook )(void);
152 #define AFSD_STOPPING_HOOK "AfsdStoppingHook"
153 typedef BOOL ( APIENTRY * AfsdStoppingHook )(void);
154 #define AFSD_STOPPED_HOOK "AfsdStoppedHook"
155 typedef BOOL ( APIENTRY * AfsdStoppedHook )(void);
156
157 #define SERVICE_CONTROL_CUSTOM_DUMP 128
158 #endif /* OPENAFS_WINNT_AFSD_AFSD_H */