diff options
author | Richard Basch <probe@mit.edu> | 1997-02-06 02:19:29 +0000 |
---|---|---|
committer | Richard Basch <probe@mit.edu> | 1997-02-06 02:19:29 +0000 |
commit | 828b1bc0525660711016401cde44a2d8de010ed4 (patch) | |
tree | 7718fac2bff49eca2c26abfbea9861f8c94e2bc9 /src/include/win-mac.h | |
parent | e65dd0cb33454f886841a112da91ec0e8a02157c (diff) | |
download | krb5-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.h | 248 |
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 */ |