xref: /freebsd/crypto/krb5/src/lib/krb5/ccache/ccapi/winccld.h (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
1 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /*
3  * winccld.h -- the dynamic loaded version of the ccache DLL
4  */
5 
6 
7 #ifndef KRB5_WINCCLD_H_
8 #define KRB5_WINCCLD_H_
9 
10 #include <CredentialsCache.h>
11 
12 typedef CCACHE_API cc_int32 (*FP_cc_initialize) (
13     cc_context_t*           outContext,
14     cc_int32                inVersion,
15     cc_int32*               outSupportedVersion,
16     char const**            outVendor);
17 
18 #ifdef KRB5_WINCCLD_C_
19 typedef struct _FUNC_INFO {
20     void** func_ptr_var;
21     char* func_name;
22 } FUNC_INFO;
23 
24 #define DECL_FUNC_PTR(x) FP_##x p##x
25 #define MAKE_FUNC_INFO(x) { (void**) &p##x, #x }
26 #define END_FUNC_INFO { 0, 0 }
27 #else
28 #define DECL_FUNC_PTR(x) extern FP_##x p##x
29 #endif
30 
31 DECL_FUNC_PTR(cc_initialize);
32 
33 #ifdef KRB5_WINCCLD_C_
34 FUNC_INFO krbcc_fi[] = {
35     MAKE_FUNC_INFO(cc_initialize),
36     END_FUNC_INFO
37 };
38 #undef MAKE_FUNC_INFO
39 #undef END_FUNC_INFO
40 #else
41 
42 #define cc_initialize pcc_initialize
43 #endif
44 
45 #undef DECL_FUNC_PTR
46 
47 #endif /* KRB5_WINCCLD_H_ */
48