windows-kfw-sdk-20060921
[openafs.git] / src / WINNT / kfw / inc / krb5 / win-mac.h
1 /*
2  * This file is now only used on Windows
3  */
4
5 /*
6  * type functions split out of here to make things look nicer in the
7  * various include files which need these definitions, as well as in
8  * the util/ directories.
9  */
10
11 #ifndef _KRB5_WIN_MAC_H
12 #define _KRB5_WIN_MAC_H
13
14 #ifdef _WIN32
15
16 #define ID_READ_PWD_DIALOG  10000
17 #define ID_READ_PWD_PROMPT  10001
18 #define ID_READ_PWD_PROMPT2 10002
19 #define ID_READ_PWD_PWD     10003
20
21 #ifdef RES_ONLY
22
23 #define APSTUDIO_HIDDEN_SYMBOLS
24 #include <windows.h>
25
26 #else /* ! RES_ONLY */
27
28 /* To ensure backward compatibility of the ABI use 32-bit time_t on 
29  * 32-bit Windows. 
30  */
31 #ifdef _KRB5_INT_H
32 #ifdef KRB5_GENERAL__
33 #error krb5.h included before k5-int.h
34 #endif /* KRB5_GENERAL__ */
35 #if _INTEGRAL_MAX_BITS >= 64 && _MSC_VER >= 1400 && !defined(_WIN64) && !defined(_USE_32BIT_TIME_T)
36 #if defined(_TIME_T_DEFINED) || defined(_INC_IO) || defined(_INC_TIME) || defined(_INC_WCHAR)
37 #error time_t has been defined as a 64-bit integer which is incompatible with Kerberos on this platform.
38 #endif /* _TIME_T_DEFINED */
39 #define _USE_32BIT_TIME_T
40 #endif 
41 #endif
42
43 #define SIZEOF_INT      4
44 #define SIZEOF_SHORT    2
45 #define SIZEOF_LONG     4
46
47 #include <windows.h>
48 #include <limits.h>
49
50 #ifndef SIZE_MAX    /* in case Microsoft defines max size of size_t */
51 #ifdef  MAX_SIZE    /* Microsoft defines MAX_SIZE as max size of size_t */
52 #define SIZE_MAX MAX_SIZE
53 #else
54 #define SIZE_MAX UINT_MAX
55 #endif
56 #endif
57
58 #ifndef KRB5_CALLCONV
59 #  define KRB5_CALLCONV __stdcall
60 #  define KRB5_CALLCONV_C __cdecl
61
62 /*
63  * Use this to mark an incorrect calling convention that has been
64  * "immortalized" because it was incorrectly exported in a previous
65  * release.
66  */
67
68 #  define KRB5_CALLCONV_WRONG KRB5_CALLCONV_C
69
70 #endif /* !KRB5_CALLCONV */
71
72 #ifndef KRB5_SYSTYPES__
73 #define KRB5_SYSTYPES__
74 #include <sys/types.h>
75 typedef unsigned long    u_long;      /* Not part of sys/types.h on the pc */
76 typedef unsigned int     u_int;
77 typedef unsigned short   u_short;
78 typedef unsigned char    u_char;
79 typedef unsigned int     uint32_t;
80 typedef int              int32_t;
81 #if _INTEGRAL_MAX_BITS >= 64
82 typedef unsigned __int64 uint64_t;
83 typedef __int64          int64_t;
84 #endif
85 #endif /* KRB5_SYSTYPES__ */
86
87 #define MAXHOSTNAMELEN  512
88 #ifndef MAXPATHLEN
89 #define MAXPATHLEN      256            /* Also for Windows temp files */
90 #endif
91
92 #define HAVE_NETINET_IN_H
93 #define MSDOS_FILESYSTEM
94 #define HAVE_STRING_H 
95 #define HAVE_SRAND
96 #define HAVE_ERRNO
97 #define HAVE_STRDUP
98 #define HAVE_GETADDRINFO
99 #define HAVE_GETNAMEINFO
100 #define NO_USERID
101 #define NO_PASSWORD
102 #define HAVE_STRERROR
103 #define SYS_ERRLIST_DECLARED
104 /* if __STDC_VERSION__ >= 199901L this shouldn't be needed */
105 #define inline __inline
106 #define KRB5_USE_INET6
107 #define NEED_INSIXADDR_ANY
108 #define ENABLE_THREADS
109
110 #define WM_KERBEROS5_CHANGED "Kerberos5 Changed"
111 #ifdef KRB4
112 #define WM_KERBEROS_CHANGED "Kerberos Changed"
113 #endif
114
115 /* Kerberos Windows initialization file */
116 #define KERBEROS_INI    "kerberos.ini"
117 #ifdef CYGNUS
118 #define KERBEROS_HLP    "kerbnet.hlp"
119 #else
120 #define KERBEROS_HLP    "krb5clnt.hlp"
121 #endif
122 #define INI_DEFAULTS    "Defaults"
123 #define   INI_USER        "User"          /* Default user */
124 #define   INI_INSTANCE    "Instance"      /* Default instance */
125 #define   INI_REALM       "Realm"         /* Default realm */
126 #define   INI_POSITION    "Position"
127 #define   INI_OPTIONS     "Options"
128 #define   INI_DURATION    "Duration"   /* Ticket duration in minutes */
129 #define INI_EXPIRATION  "Expiration" /* Action on expiration (alert or beep) */
130 #define   INI_ALERT       "Alert"
131 #define   INI_BEEP        "Beep"
132 #define   INI_FILES       "Files"
133 #ifdef KRB4
134 #define   INI_KRB_CONF    "krb.conf"     /* Location of krb.conf file */
135 #define   DEF_KRB_CONF    "krb.conf"      /* Default name for krb.conf file */
136 #else
137 #define INI_KRB5_CONF   "krb5.ini"      /* From k5-config.h */
138 #define INI_KRB_CONF    INI_KRB5_CONF   /* Location of krb.conf file */
139 #define DEF_KRB_CONF    INI_KRB5_CONF   /* Default name for krb.conf file */
140 #define INI_TICKETOPTS  "TicketOptions" /* Ticket options */
141 #define   INI_FORWARDABLE  "Forwardable" /* get forwardable tickets */
142 #define INI_KRB_CCACHE  "krb5cc"        /* From k5-config.h */
143 #endif
144 #define INI_KRB_REALMS  "krb.realms"    /* Location of krb.realms file */
145 #define DEF_KRB_REALMS  "krb.realms"    /* Default name for krb.realms file */
146 #define INI_RECENT_LOGINS "Recent Logins"    
147 #define INI_LOGIN       "Login"
148
149 #define HAS_VOID_TYPE
150 #define HAVE_STDARG_H
151 #define HAVE_SYS_TYPES_H
152 #define HAVE_STDLIB_H
153
154 /* This controls which encryption routines libcrypto will provide */
155 #define PROVIDE_DES_CBC_MD5
156 #define PROVIDE_DES_CBC_CRC
157 #define PROVIDE_DES_CBC_RAW
158 #define PROVIDE_DES_CBC_CKSUM
159 #define PROVIDE_CRC32
160 #define PROVIDE_RSA_MD4
161 #define PROVIDE_RSA_MD5
162 /* #define PROVIDE_DES3_CBC_SHA */
163 /* #define PROVIDE_DES3_CBC_RAW */
164 /* #define PROVIDE_NIST_SHA */
165
166 /* Ugly. Microsoft, in stdc mode, doesn't support the low-level i/o
167  * routines directly. Rather, they only export the _<function> version.
168  * The following defines works around this problem. 
169  */
170 #include <sys\types.h>
171 #include <sys\stat.h>
172 #include <fcntl.h>
173 #include <io.h>
174 #include <process.h>
175
176 #ifdef NEED_SYSERROR
177 /* Only needed by util/et/error_message.c but let's keep the source clean */
178 #define sys_nerr        _sys_nerr
179 #define sys_errlist     _sys_errlist
180 #endif
181
182 /*
183  * Functions with slightly different names on the PC
184  */
185 #ifndef strcasecmp
186 #define strcasecmp   stricmp
187 #endif
188 #ifndef strncasecmp
189 #define strncasecmp  strnicmp
190 #endif
191
192 HINSTANCE get_lib_instance(void);
193
194 #define GETSOCKNAME_ARG2_TYPE   struct sockaddr
195 #define GETSOCKNAME_ARG3_TYPE   size_t
196 #define GETPEERNAME_ARG2_TYPE   GETSOCKNAME_ARG2_TYPE
197 #define GETPEERNAME_ARG3_TYPE   GETSOCKNAME_ARG3_TYPE
198
199 #endif /* !RES_ONLY */
200
201 #endif /* _WIN32 */
202
203 #define THREEPARAMOPEN(x,y,z) open(x,y,z)
204
205 #ifndef KRB5_CALLCONV
206 #define KRB5_CALLCONV
207 #endif
208
209 #ifndef KRB5_CALLCONV_C
210 #define KRB5_CALLCONV_C
211 #endif
212
213 #endif /* _KRB5_WIN_MAC_H */