summaryrefslogtreecommitdiffstats
path: root/src/include/win-mac.h
diff options
context:
space:
mode:
authorRichard Basch <probe@mit.edu>1997-02-06 02:19:29 +0000
committerRichard Basch <probe@mit.edu>1997-02-06 02:19:29 +0000
commit828b1bc0525660711016401cde44a2d8de010ed4 (patch)
tree7718fac2bff49eca2c26abfbea9861f8c94e2bc9 /src/include/win-mac.h
parente65dd0cb33454f886841a112da91ec0e8a02157c (diff)
downloadkrb5-828b1bc0525660711016401cde44a2d8de010ed4.tar.gz
krb5-828b1bc0525660711016401cde44a2d8de010ed4.tar.xz
krb5-828b1bc0525660711016401cde44a2d8de010ed4.zip
Windows/NT integration
krb5.hin k5-int.h: Functionalized the crypto layer and made the crypto structures private git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9785 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include/win-mac.h')
-rw-r--r--src/include/win-mac.h248
1 files changed, 248 insertions, 0 deletions
diff --git a/src/include/win-mac.h b/src/include/win-mac.h
new file mode 100644
index 0000000000..70d703b2af
--- /dev/null
+++ b/src/include/win-mac.h
@@ -0,0 +1,248 @@
+/*
+ * type functions split out of here to make things look nicer in the
+ * various include files which need these definitions, as well as in
+ * the util/ directories.
+ */
+
+#ifndef _KRB5_WIN_MAC_H
+#define _KRB5_WIN_MAC_H
+
+#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 KRB5_CALLCONV
+#define KRB5_CALLCONV __far __export __pascal
+#define KRB5_CALLCONV_C __far __export __cdecl
+#define KRB5_EXPORTVAR __far __export
+#define KRB5_DLLIMP
+#endif /* !KRB5_CALLCONV */
+
+#include <windows.h>
+
+/*
+ * The following defines are needed to make <windows.h> work
+ * in stdc mode (/Za flag). Winsock.h needs <windows.h>.
+ */
+#ifndef FAR
+#define FAR __far
+#define NEAR __near
+#endif
+
+#ifndef _far
+#define _far __far
+#define _near __near
+#define _pascal __pascal
+#define _cdecl __cdecl
+#define _huge __huge
+#endif
+
+#else
+ /* Windows 32 specific */
+#define SIZEOF_INT 4
+#define SIZEOF_SHORT 2
+#define SIZEOF_LONG 4
+
+#include <windows.h> /* always include this here, to get correct FAR and NEAR */
+
+#define HAS_LABS
+
+#ifndef KRB5_CALLCONV
+#ifdef _MSC_VER
+# ifdef KRB5_DLL_FILE
+# define KRB5_DLLIMP __declspec(dllexport)
+# else
+# define KRB5_DLLIMP __declspec(dllimport)
+# endif
+#else /* !_MSC_VER */
+# define KRB5_DLLIMP
+#endif
+#define KRB5_CALLCONV __stdcall
+#define KRB5_CALLCONV_C __cdecl
+#define KRB5_EXPORTVAR
+#endif /* !KRB5_CALLCONV */
+
+#endif /* _MSDOS */
+
+#ifndef _SIZE_T_DEFINED
+typedef unsigned int size_t;
+#define _SIZE_T_DEFINED
+#endif /* !_SIZE_T_DEFINED */
+#ifndef KRB5_SYSTYPES__
+#define KRB5_SYSTYPES__
+#include <sys/types.h>
+typedef unsigned long u_long; /* Not part of sys/types.h on the pc */
+typedef unsigned int u_int;
+typedef unsigned short u_short;
+typedef unsigned char u_char;
+#endif /* KRB5_SYSTYPES__ */
+
+#define MAXHOSTNAMELEN 512
+#define MAXPATHLEN 256 /* Also for Windows temp files */
+
+#define KRB5_USE_INET
+#define MSDOS_FILESYSTEM
+#define USE_STRING_H
+#define HAVE_SRAND
+#define HAVE_ERRNO
+#define HAS_STRDUP
+#define NO_USERID
+#define NO_PASSWORD
+#define WM_KERBEROS5_CHANGED "Kerberos5 Changed"
+
+#define HAS_ANSI_VOLATILE
+#define HAS_VOID_TYPE
+#define KRB5_PROVIDE_PROTOTYPES
+#define HAVE_STDARG_H
+#define HAVE_SYS_TYPES_H
+#define HAS_STDLIB_H
+
+/* This controls which encryption routines libcrypto will provide */
+#define PROVIDE_DES_CBC_MD5
+#define PROVIDE_DES_CBC_CRC
+#define PROVIDE_DES_CBC_RAW
+#define PROVIDE_DES_CBC_CKSUM
+#define PROVIDE_CRC32
+#define PROVIDE_RSA_MD4
+#define PROVIDE_RSA_MD5
+/* #define PROVIDE_DES3_CBC_SHA */
+/* #define PROVIDE_DES3_CBC_RAW */
+/* #define PROVIDE_NIST_SHA */
+
+/* Ugly. Microsoft, in stdc mode, doesn't support the low-level i/o
+ * routines directly. Rather, they only export the _<function> version.
+ * The following defines works around this problem.
+ */
+#include <sys\types.h>
+#include <sys\stat.h>
+#include <fcntl.h>
+#include <io.h>
+#include <process.h>
+#define THREEPARAMOPEN(x,y,z) open(x,y,z)
+#ifndef _WIN32
+#define O_RDONLY _O_RDONLY
+#define O_WRONLY _O_WRONLY
+#define O_RDWR _O_RDWR
+#define O_APPEND _O_APPEND
+#define O_CREAT _O_CREAT
+#define O_TRUNC _O_TRUNC
+#define O_EXCL _O_EXCL
+#define O_TEXT _O_TEXT
+#define O_BINARY _O_BINARY
+#define O_NOINHERIT _O_NOINHERIT
+#define stat _stat
+#define unlink _unlink
+#define lseek _lseek
+#define write _write
+#define open _open
+#define close _close
+#define read _read
+#define fstat _fstat
+#define mktemp _mktemp
+#define dup _dup
+
+#define getpid _getpid
+#endif
+
+#ifdef NEED_SYSERROR
+/* Only needed by util/et/error_message.c but let's keep the source clean */
+#define sys_nerr _sys_nerr
+#define sys_errlist _sys_errlist
+#endif
+
+/*
+ * Functions with slightly different names on the PC
+ */
+#define strcasecmp stricmp
+#define strncasecmp strnicmp
+
+#endif /* _MSDOS || _WIN32 */
+
+#ifndef KRB5_CALLCONV
+#define KRB5_CALLCONV
+#define KRB5_CALLCONV_C
+#define KRB5_DLLIMP
+#endif
+#ifndef FAR
+#define FAR
+#endif
+#ifndef NEAR
+#define NEAR
+#endif
+
+#ifdef _MACINTOSH
+#define SIZEOF_INT 4
+#define SIZEOF_SHORT 2
+#define HAVE_SRAND
+#define NO_PASSWORD
+#define HAS_LABS
+#define ENOMEM -1
+#define ANSI_STDIO
+#ifndef _SIZET
+typedef unsigned int size_t;
+#define _SIZET
+#endif
+#include <unix.h>
+#include <ctype.h>
+
+#ifdef NEED_LOWLEVEL_IO
+#include <fcntl.h>
+#endif
+
+/*
+ * Which encryption routines libcrypto will provide is controlled by
+ * mac/libraries/KerberosHeaders.h.
+ */
+
+/* there is no <stat.h> for mpw */
+typedef unsigned long mode_t;
+typedef unsigned long ino_t;
+typedef unsigned long dev_t;
+typedef short nlink_t;
+typedef unsigned long uid_t;
+typedef unsigned long gid_t;
+typedef long off_t;
+
+#ifndef __MWERKS__
+struct stat
+{
+ mode_t st_mode; /* File mode; see #define's below */
+ ino_t st_ino; /* File serial number */
+ dev_t st_dev; /* ID of device containing this file */
+ nlink_t st_nlink; /* Number of links */
+ uid_t st_uid; /* User ID of the file's owner */
+ gid_t st_gid; /* Group ID of the file's group */
+ dev_t st_rdev; /* Device type */
+ off_t st_size; /* File size in bytes */
+ unsigned long st_atime; /* Time of last access */
+ unsigned long st_mtime; /* Time of last data modification */
+ unsigned long st_ctime; /* Time of last file status change */
+ long st_blksize; /* Optimal blocksize */
+ long st_blocks; /* blocks allocated for file */
+};
+
+int stat(const char *path, struct stat *buf);
+#endif
+
+int fstat(int fildes, struct stat *buf);
+
+#define EFBIG 1000
+
+#define NOFCHMOD 1
+#define NOCHMOD 1
+#define _MACSOCKAPI_
+
+#define THREEPARAMOPEN(x,y,z) open(x,y)
+#else /* _MACINTOSH */
+#define THREEPARAMOPEN(x,y,z) open(x,y,z)
+#endif /* _MACINTOSH */
+
+#endif /* _KRB5_WIN_MAC_H */