summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/ChangeLog5
-rw-r--r--src/include/k5-int.h70
-rw-r--r--src/include/krb5.hin35
3 files changed, 80 insertions, 30 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog
index f66c8ec27e..2f842b9694 100644
--- a/src/include/ChangeLog
+++ b/src/include/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jun 7 18:13:33 1996 Theodore Y. Ts'o <tytso@mit.edu>
+
+ * krb5.hin:
+ * k5-int.h: Beginnings of Win-32 support.
+
Thu Jun 6 14:14:28 1996 Theodore Y. Ts'o <tytso@mit.edu>
* krb5.hin (krb5_cc_get_type): Remove extraneous '*' from definition.
diff --git a/src/include/k5-int.h b/src/include/k5-int.h
index 825a49b6ea..99d23fd5a8 100644
--- a/src/include/k5-int.h
+++ b/src/include/k5-int.h
@@ -54,21 +54,61 @@
#ifndef KRB5_CONFIG__
#define KRB5_CONFIG__
-#ifdef _MSDOS
+#if (defined(_MSDOS) || defined(_WIN32))
/*
* Machine-type definitions: PC Clone 386 running Microloss Windows
*/
+#if defined(_MSDOS)
+ /* Windows 16 specific */
+#define BITS16
+#define SIZEOF_INT 2
+#define SIZEOF_SHORT 2
+#define SIZEOF_LONG 4
+
+#ifndef INTERFACE
+#define INTERFACE __far __export __pascal
+#define INTERFACE_C __far __export __cdecl
+#endif
+
+/*
+ * The following defines are needed to make <windows.h> work
+ * in stdc mode (/Za flag). Winsock.h needs <windows.h>.
+ */
+#define FAR _far
+#define NEAR _near
+#define _far __far
+#define _near __near
+#define _pascal __pascal
+#define _cdecl __cdecl
+#define _huge __huge
+
+#ifdef NEED_WINDOWS
+#include <windows.h>
+#endif
+
+#else
+ /* Windows 32 specific */
+#define SIZEOF_INT 4
+#define SIZEOF_SHORT 2
+#define SIZEOF_LONG 4
+
+#ifndef INTERFACE
+#define INTERFACE __declspec(__dllexport) __stdcall
+#define INTERFACE_C __declspec(__dllexport) __cdecl
+#endif
+
+#define FAR
+#define NEAR
+
+#endif
+
/* Kerberos Windows initialization file */
#define KERBEROS_INI "kerberos.ini"
#define INI_FILES "Files"
#define INI_KRB_CCACHE "krb5cc" /* Location of the ccache */
#define INI_KRB5_CONF "krb5.ini" /* Location of krb5.conf file */
-#define BITS16
-#define SIZEOF_INT 2
-#define SIZEOF_SHORT 2
-#define SIZEOF_LONG 4
#define MAXHOSTNAMELEN 512
#define MAXPATHLEN 256 /* Also for Windows temp files */
@@ -116,26 +156,6 @@ typedef unsigned short u_short;
typedef unsigned char u_char;
#endif /* KRB5_SYSTYPES__ */
-#ifndef INTERFACE
-#define INTERFACE __far __export __pascal
-#define INTERFACE_C __far __export __cdecl
-#endif
-
-/*
- * The following defines are needed to make <windows.h> work
- * in stdc mode (/Za flag). Winsock.h needs <windows.h>.
- */
-#define FAR _far
-#define NEAR _near
-#define _far __far
-#define _near __near
-#define _pascal __pascal
-#define _cdecl __cdecl
-#define _huge __huge
-
-#ifdef NEED_WINDOWS
-#include <windows.h>
-#endif
#ifdef NEED_LOWLEVEL_IO
/* Ugly. Microsoft, in stdc mode, doesn't support the low-level i/o
diff --git a/src/include/krb5.hin b/src/include/krb5.hin
index b99807e2ac..e89f96c744 100644
--- a/src/include/krb5.hin
+++ b/src/include/krb5.hin
@@ -27,21 +27,46 @@
#ifndef KRB5_GENERAL__
#define KRB5_GENERAL__
-#ifdef _MSDOS
+#if (defined(_MSDOS) || defined(_WIN32))
+#if defined(_MSDOS) /* Win 16 vs. Win32 */
+
+ /* Windows 16 specific */
#define SIZEOF_INT 2
#define SIZEOF_LONG 4
-#ifndef KRB5_CONFIG__
-#define KRB5_PROVIDE_PROTOTYPES
-#define HAS_VOID_TYPE
-#define HAVE_STDARG_H
#ifndef INTERFACE
#define INTERFACE __far __export __pascal
#define INTERFACE_C __far __export __cdecl
#endif /* !INTERFACE */
+
#define FAR _far
#define NEAR _near
+
+#else /* Windows 32 specific */
+
+#define SIZEOF_INT 4
+#define SIZEOF_LONG 4
+
+/*
+ * If the interface functions haven't been defined, then we
+ * must be *importing* them as a consumer, not *exporting* them
+ * as a DLL function.
+ */
+#ifndef INTERFACE
+#define INTERFACE __declspec(__dllimport) __stdcall
+#define INTERFACE_C __declspec(__dllimport) __cdecl
+#endif
+
+#define FAR
+#define NEAR
+
+#endif /* Win 16 vs Win32 */
+
+#ifndef KRB5_CONFIG__
+#define KRB5_PROVIDE_PROTOTYPES
+#define HAS_VOID_TYPE
+#define HAVE_STDARG_H
#ifndef _SIZE_T_DEFINED
typedef unsigned int size_t;
#define _SIZE_T_DEFINED