From aa178fa66dbb32abcb6e8ebc0e10ee0cfdc6bb0d Mon Sep 17 00:00:00 2001 From: Jim Norman Date: Fri, 21 Oct 2005 02:23:43 +0000 Subject: [PATCH] new files --- c_clientlogin/Makefile | 6 +- c_clientlogin/xplatincl/npackoff.h | 38 + c_clientlogin/xplatincl/npackon.h | 56 + c_clientlogin/xplatincl/ntypes.h | 1630 +++++++++++++++++++++++ c_clientlogin/xplatincl/nunicode.h | 62 + c_clientlogin/xplatincl/nwacct.h | 105 ++ c_clientlogin/xplatincl/nwadevnt.h | 778 +++++++++++ c_clientlogin/xplatincl/nwafp.h | 306 +++++ c_clientlogin/xplatincl/nwalias.h | 329 +++++ c_clientlogin/xplatincl/nwapidef.h | 60 + c_clientlogin/xplatincl/nwaudit.h | 560 ++++++++ c_clientlogin/xplatincl/nwbindry.h | 413 ++++++ c_clientlogin/xplatincl/nwcaldef.h | 190 +++ c_clientlogin/xplatincl/nwcalls.h | 127 ++ c_clientlogin/xplatincl/nwclxcon.h | 495 +++++++ c_clientlogin/xplatincl/nwconfig.h | 102 ++ c_clientlogin/xplatincl/nwconnec.h | 159 +++ c_clientlogin/xplatincl/nwdel.h | 161 +++ c_clientlogin/xplatincl/nwdentry.h | 316 +++++ c_clientlogin/xplatincl/nwdirect.h | 354 +++++ c_clientlogin/xplatincl/nwdpath.h | 302 +++++ c_clientlogin/xplatincl/nwdsacl.h | 71 + c_clientlogin/xplatincl/nwdsapi.h | 193 +++ c_clientlogin/xplatincl/nwdsasa.h | 181 +++ c_clientlogin/xplatincl/nwdsattr.h | 159 +++ c_clientlogin/xplatincl/nwdsaud.h | 51 + c_clientlogin/xplatincl/nwdsbuft.h | 385 ++++++ c_clientlogin/xplatincl/nwdsconn.h | 121 ++ c_clientlogin/xplatincl/nwdsdc.h | 176 +++ c_clientlogin/xplatincl/nwdsdefs.h | 486 +++++++ c_clientlogin/xplatincl/nwdsdsa.h | 471 +++++++ c_clientlogin/xplatincl/nwdserr.h | 417 ++++++ c_clientlogin/xplatincl/nwdsevnt.h | 705 ++++++++++ c_clientlogin/xplatincl/nwdsfilt.h | 151 +++ c_clientlogin/xplatincl/nwdsmisc.h | 284 ++++ c_clientlogin/xplatincl/nwdsname.h | 88 ++ c_clientlogin/xplatincl/nwdsnmtp.h | 497 +++++++ c_clientlogin/xplatincl/nwdspart.h | 174 +++ c_clientlogin/xplatincl/nwdssch.h | 124 ++ c_clientlogin/xplatincl/nwdstype.h | 55 + c_clientlogin/xplatincl/nwea.h | 256 ++++ c_clientlogin/xplatincl/nwerror.h | 659 ++++++++++ c_clientlogin/xplatincl/nwfile.h | 659 ++++++++++ c_clientlogin/xplatincl/nwfse.h | 1849 +++++++++++++++++++++++++++ c_clientlogin/xplatincl/nwitr.h | 119 ++ c_clientlogin/xplatincl/nwlocale.h | 490 +++++++ c_clientlogin/xplatincl/nwmigrat.h | 176 +++ c_clientlogin/xplatincl/nwmisc.h | 461 +++++++ c_clientlogin/xplatincl/nwmsg.h | 97 ++ c_clientlogin/xplatincl/nwnamspc.h | 987 ++++++++++++++ c_clientlogin/xplatincl/nwncpext.h | 184 +++ c_clientlogin/xplatincl/nwndscon.h | 70 + c_clientlogin/xplatincl/nwnet.h | 110 ++ c_clientlogin/xplatincl/nwprint.h | 503 ++++++++ c_clientlogin/xplatincl/nwqms.h | 502 ++++++++ c_clientlogin/xplatincl/nwredir.h | 115 ++ c_clientlogin/xplatincl/nwserver.h | 286 +++++ c_clientlogin/xplatincl/nwsm.h | 140 ++ c_clientlogin/xplatincl/nwssdefs.h | 202 +++ c_clientlogin/xplatincl/nwsync.h | 249 ++++ c_clientlogin/xplatincl/nwtts.h | 160 +++ c_clientlogin/xplatincl/nwvol.h | 290 +++++ c_clientlogin/xplatincl/unicode.h | 1025 +++++++++++++++ c_clientlogin/xplatlib/libclnlnx.so | Bin 0 -> 35677 bytes c_clientlogin/xplatlib/libnetlnx.so | Bin 0 -> 199993 bytes 65 files changed, 20924 insertions(+), 3 deletions(-) create mode 100644 c_clientlogin/xplatincl/npackoff.h create mode 100644 c_clientlogin/xplatincl/npackon.h create mode 100644 c_clientlogin/xplatincl/ntypes.h create mode 100644 c_clientlogin/xplatincl/nunicode.h create mode 100644 c_clientlogin/xplatincl/nwacct.h create mode 100644 c_clientlogin/xplatincl/nwadevnt.h create mode 100644 c_clientlogin/xplatincl/nwafp.h create mode 100644 c_clientlogin/xplatincl/nwalias.h create mode 100644 c_clientlogin/xplatincl/nwapidef.h create mode 100644 c_clientlogin/xplatincl/nwaudit.h create mode 100644 c_clientlogin/xplatincl/nwbindry.h create mode 100644 c_clientlogin/xplatincl/nwcaldef.h create mode 100644 c_clientlogin/xplatincl/nwcalls.h create mode 100644 c_clientlogin/xplatincl/nwclxcon.h create mode 100644 c_clientlogin/xplatincl/nwconfig.h create mode 100644 c_clientlogin/xplatincl/nwconnec.h create mode 100644 c_clientlogin/xplatincl/nwdel.h create mode 100644 c_clientlogin/xplatincl/nwdentry.h create mode 100644 c_clientlogin/xplatincl/nwdirect.h create mode 100644 c_clientlogin/xplatincl/nwdpath.h create mode 100644 c_clientlogin/xplatincl/nwdsacl.h create mode 100644 c_clientlogin/xplatincl/nwdsapi.h create mode 100644 c_clientlogin/xplatincl/nwdsasa.h create mode 100644 c_clientlogin/xplatincl/nwdsattr.h create mode 100644 c_clientlogin/xplatincl/nwdsaud.h create mode 100644 c_clientlogin/xplatincl/nwdsbuft.h create mode 100644 c_clientlogin/xplatincl/nwdsconn.h create mode 100644 c_clientlogin/xplatincl/nwdsdc.h create mode 100644 c_clientlogin/xplatincl/nwdsdefs.h create mode 100644 c_clientlogin/xplatincl/nwdsdsa.h create mode 100644 c_clientlogin/xplatincl/nwdserr.h create mode 100644 c_clientlogin/xplatincl/nwdsevnt.h create mode 100644 c_clientlogin/xplatincl/nwdsfilt.h create mode 100644 c_clientlogin/xplatincl/nwdsmisc.h create mode 100644 c_clientlogin/xplatincl/nwdsname.h create mode 100644 c_clientlogin/xplatincl/nwdsnmtp.h create mode 100644 c_clientlogin/xplatincl/nwdspart.h create mode 100644 c_clientlogin/xplatincl/nwdssch.h create mode 100644 c_clientlogin/xplatincl/nwdstype.h create mode 100644 c_clientlogin/xplatincl/nwea.h create mode 100644 c_clientlogin/xplatincl/nwerror.h create mode 100644 c_clientlogin/xplatincl/nwfile.h create mode 100644 c_clientlogin/xplatincl/nwfse.h create mode 100644 c_clientlogin/xplatincl/nwitr.h create mode 100644 c_clientlogin/xplatincl/nwlocale.h create mode 100644 c_clientlogin/xplatincl/nwmigrat.h create mode 100644 c_clientlogin/xplatincl/nwmisc.h create mode 100644 c_clientlogin/xplatincl/nwmsg.h create mode 100644 c_clientlogin/xplatincl/nwnamspc.h create mode 100644 c_clientlogin/xplatincl/nwncpext.h create mode 100644 c_clientlogin/xplatincl/nwndscon.h create mode 100644 c_clientlogin/xplatincl/nwnet.h create mode 100644 c_clientlogin/xplatincl/nwprint.h create mode 100644 c_clientlogin/xplatincl/nwqms.h create mode 100644 c_clientlogin/xplatincl/nwredir.h create mode 100644 c_clientlogin/xplatincl/nwserver.h create mode 100644 c_clientlogin/xplatincl/nwsm.h create mode 100644 c_clientlogin/xplatincl/nwssdefs.h create mode 100644 c_clientlogin/xplatincl/nwsync.h create mode 100644 c_clientlogin/xplatincl/nwtts.h create mode 100644 c_clientlogin/xplatincl/nwvol.h create mode 100644 c_clientlogin/xplatincl/unicode.h create mode 100644 c_clientlogin/xplatlib/libclnlnx.so create mode 100644 c_clientlogin/xplatlib/libnetlnx.so diff --git a/c_clientlogin/Makefile b/c_clientlogin/Makefile index 03a6d47b..10de22c9 100644 --- a/c_clientlogin/Makefile +++ b/c_clientlogin/Makefile @@ -44,13 +44,13 @@ FINAL_TARGET := $(FINAL_DIR)/$(APP_NAME) # build, lib NCP must be built first. lib NCP cannot be fully built until # until lib CLN has been built. Build order is NCP, CLN, NCP (or CLN, NCP, CLN) NWLIB_PATH := /opt/novell/lib -NWLIB_LIST := clxlnx callnx netlnx ncplnx clnlnx loclnx +NWLIB_LIST := clnlnx netlnx -EXTLIB_PATH := +EXTLIB_PATH := ./xplatlib EXTLIB_LIST := # Compiler specific include paths -INC_PATH = /opt/novell/include/xplat /opt/novell/CASA_devel/include +INC_PATH = ./xplatincl /opt/novell/CASA_devel/include # Compiler flagsEXTLIB_LIST CFLAGS := -Wall -O2 -D N_PLAT_UNIX -D N_USE_CRT -fshort-wchar \ diff --git a/c_clientlogin/xplatincl/npackoff.h b/c_clientlogin/xplatincl/npackoff.h new file mode 100644 index 00000000..9793f8d9 --- /dev/null +++ b/c_clientlogin/xplatincl/npackoff.h @@ -0,0 +1,38 @@ +/* this header sets packing back to default for different compilers */ + +#if defined (__BORLANDC__) +# if (__BORLANDC__ >= 0x500) +# pragma pack(pop) +# else +# pragma option -a. +# endif +#elif defined (__WATCOMC__) +# if (__WATCOMC__ >= 1050) +# pragma pack(pop) +# else +# pragma pack() +# endif +#elif defined (__MWERKS__) +# if (__MWERKS__ >= 0x2100) +# pragma pack(pop) +# else +# pragma pack() +# endif +#elif defined(__ECC__) || defined(__ECPP__) +# pragma pack(pop) +#elif defined (_MSC_VER) +# if (_MSC_VER >= 900) +# pragma pack(pop) +# else +# pragma pack() +# endif +#elif defined (N_PLAT_UNIX) +#else +# pragma pack() +#endif + + +#ifdef N_PACK_1 +#undef N_PACK_1 +#endif + diff --git a/c_clientlogin/xplatincl/npackon.h b/c_clientlogin/xplatincl/npackon.h new file mode 100644 index 00000000..a1021969 --- /dev/null +++ b/c_clientlogin/xplatincl/npackon.h @@ -0,0 +1,56 @@ +/* this header sets packing to 1 for different compilers */ + +#if defined (_MSC_VER) && !defined(__BORLANDC__) +# if (_MSC_VER > 600) +# pragma warning(disable:4103) +# endif +#elif defined (__BORLANDC__) +# if (__BORLANDC__ >= 0x500) +# pragma warn -pck +# endif +#endif + +#if defined (__BORLANDC__) +# if (__BORLANDC__ >= 0x500) +# pragma pack(push) +# endif +#elif defined (__WATCOMC__) +# if (__WATCOMC__ >= 1050) +# pragma pack(push) +# endif +#elif defined (__MWERKS__) +# if (__MWERKS__ >= 0x2100) +# pragma pack(push) +# endif +#elif defined(__ECC__) || defined(__ECPP__) +# pragma pack(push) +#elif defined (_MSC_VER) +# if (_MSC_VER >= 900) +# pragma pack(push) +# endif +#endif + +#if defined(N_PLAT_DOS)\ + || (defined(N_PLAT_MSW) && defined(N_ARCH_16) && !defined(N_PLAT_WNT))\ + || defined(N_PLAT_NLM)\ + || defined(N_PLAT_OS2)\ + || defined(N_PACK_1)\ + || defined(N_FORCE_INT_16) + +# if defined(__BORLANDC__) +# if (__BORLANDC__ < 0x500) +# pragma option -a- +# else +# pragma pack(1) +# endif +# else +# pragma pack(1) +# endif + +#elif defined(N_PLAT_UNIX) +/* let compiler decide per CPU type */ +#else + +# pragma pack(4) + +#endif diff --git a/c_clientlogin/xplatincl/ntypes.h b/c_clientlogin/xplatincl/ntypes.h new file mode 100644 index 00000000..0da0d639 --- /dev/null +++ b/c_clientlogin/xplatincl/ntypes.h @@ -0,0 +1,1630 @@ +/****************************************************************************** + Source module name: ntypes.h + Release Version: 1.08 + + %name: ntypes.h % + %version: 8 % + %date_modified: Fri Sep 16 17:08:06 2005 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + + +#if ! defined( NTYPES_H ) +#define NTYPES_H + +/* + For brief documentation, please refer to the associated ntypes.txt + with the same release version. For in-depth documentation, please + refer to the Portable API Definition Guide. +*/ + + +/* + Section 1: Automatic definitions + Section 1a: Platforms +*/ + +#if !defined(N_INC_NO_AUTO) + + #if defined NWOS2 + #if !defined N_PLAT_OS2 + #define N_PLAT_OS2 + #endif + #if !defined N_ARCH_16 + #define N_ARCH_16 + #endif + #elif defined(NWWIN) + #if !defined N_PLAT_MSW + #define N_PLAT_MSW + #endif + #if !defined N_ARCH_16 + #define N_ARCH_16 + #endif + #elif defined(NWDOS) + #if !defined N_PLAT_DOS + #define N_PLAT_DOS + #endif + #if !defined N_ARCH_16 + #define N_ARCH_16 + #endif + #elif defined(WIN32) + #if !defined N_PLAT_MSW + #define N_PLAT_MSW + #endif + #if !defined N_ARCH_32 + #define N_ARCH_32 + #endif + #endif + + #if defined(N_PLAT_WNT3) || defined(N_PLAT_WNT4) + #if !defined(N_PLAT_WNT) + #define N_PLAT_WNT + #endif + #if !defined(N_PLAT_MSW) + #define N_PLAT_MSW + #endif + #endif + + #if defined(N_PLAT_WNT) + #if !defined(N_PLAT_WNT3) && !defined(N_PLAT_WNT4) + #define N_PLAT_WNT3 + #endif + #if !defined(N_PLAT_MSW) + #define N_PLAT_MSW + #endif + #endif + + #if defined(N_PLAT_MSW3) || defined(N_PLAT_MSW4) + #if !defined(N_PLAT_MSW) + #define N_PLAT_MSW + #endif + #endif + + #if defined N_PLAT_MSW && !defined N_PLAT_WNT + #if !defined N_PLAT_MSW3 && !defined N_PLAT_MSW4 + #define N_PLAT_MSW3 + #endif + #endif + + #if defined N_PLAT_NLM + #if !defined N_IAPX386 && !defined N_PPC + #define N_IAPX386 + #endif + #if !defined N_PLAT_NETWARE && !defined N_PLAT_NIOS + #define N_PLAT_NETWARE + #endif + #endif + + #if defined N_PLAT_NIOS || defined N_PLAT_NETWARE + #if !defined N_PLAT_NLM + #define N_PLAT_NLM + #endif + #endif + + /* Set a default architecture size if none is set. Test order is important + * and must be elif'ed because N_PLAT_MSW can be set for various Windows + * platforms that have differing default int sizes. */ + #if !defined(N_ARCH_64) && !defined(N_ARCH_32) && !defined(N_ARCH_16) + #if defined(N_PLAT_DOS) + #define N_ARCH_16 + #elif defined(N_PLAT_WNT) + #define N_ARCH_32 + #elif defined(N_PLAT_OS2) && defined(_MSC_VER) + #define N_ARCH_16 + #elif defined(N_PLAT_MSW4) + #define N_ARCH_32 + #elif defined(N_PLAT_MSW) + #define N_ARCH_16 + #else + #define N_ARCH_32 + #endif + #endif + +#endif /* #if !defined(N_INC_NO_AUTO) */ + +/* + Section 1b: Compiler specific +*/ + +#if defined _MSC_VER + #if(_MSC_VER < 700) + #define N_MSC_OLD + #else + #define N_MSC + #endif +#endif + +/* + Section 1c: Resource compiler specific +*/ +#if defined( RC_INVOKED ) + #if !defined( N_RC_INVOKED ) + #define N_RC_INVOKED + #endif /* !defined( N_RC_INVOKED ) */ +#endif /* defined( RC_INVOKED ) */ + +/* + Section 2: Platform specific definitions +*/ +#if !defined( N_RC_INVOKED ) + + #if defined(N_ARCH_16) && defined(N_PLAT_MSW) + + #if !defined NWWIN + #define NWWIN + #endif + + #if defined(N_MSC_OLD) + #define N_NEAR near + #define N_FAR far + #define N_HUGE _huge + #define N_PASCAL pascal + #define N_CDECL cdecl + #define N_EXPORT _export + #else + #define N_NEAR __near + #define N_FAR __far + #define N_HUGE _huge + #define N_PASCAL __pascal + #define N_CDECL __cdecl + #define N_EXPORT _export + #endif + + #define N_API N_FAR N_PASCAL + #define N_API_VARARGS N_FAR N_CDECL + #define N_CALLBACK N_FAR N_PASCAL + #define N_CALLBACK_VARARGS N_FAR N_CDECL + + #undef N_INT_ENDIAN_HI_LO + #undef N_INT_STRICT_ALIGNMENT + + #elif defined(N_ARCH_32) && defined(N_PLAT_MSW) + + #if !defined WIN32 + #define WIN32 + #endif + + #define N_NEAR + #define N_FAR + #define N_HUGE + #define N_PASCAL + #define N_CDECL __cdecl + #define N_EXPORT + + #define N_API __stdcall + #define N_API_VARARGS N_CDECL + #define N_VARARGS N_CDECL + #define N_CALLBACK __stdcall + #define N_CALLBACK_VARARGS N_CDECL + + #undef N_INT_ENDIAN_HI_LO + #undef N_INT_STRICT_ALIGNMENT + + #elif defined(N_ARCH_16) && defined(N_PLAT_OS2) + + #if !defined NWOS2 + #define NWOS2 + #endif + + #if defined(N_MSC_OLD) + #define N_NEAR near + #define N_FAR far + #define N_HUGE _huge + #define N_PASCAL pascal + #define N_CDECL cdecl + #else + #define N_NEAR __near + #define N_FAR __far + #define N_HUGE _huge + #define N_PASCAL __pascal + #define N_CDECL __cdecl + #endif + + #define N_API N_FAR N_PASCAL + #define N_API_VARARGS N_FAR N_CDECL + #define N_CALLBACK N_FAR N_PASCAL + #define N_CALLBACK_VARARGS N_FAR N_CDECL + + #undef N_INT_ENDIAN_HI_LO + #undef N_INT_STRICT_ALIGNMENT + + #elif defined(N_ARCH_32) && defined(N_PLAT_OS2) + + #define N_NEAR + #define N_FAR + #define N_HUGE + #if defined __BORLANDC__ + #define N_PASCAL __pascal + #else + #define N_PASCAL _Pascal + #endif + #define N_CDECL + + #define N_API N_PASCAL + #define N_API_VARARGS N_CDECL + #define N_CALLBACK N_PASCAL + #define N_CALLBACK_VARARGS N_CDECL + + #undef N_INT_ENDIAN_HI_LO + #undef N_INT_STRICT_ALIGNMENT + + #elif defined(N_PLAT_DOS) + + #if !defined NWDOS + #define NWDOS + #endif + + #if defined(N_MSC_OLD) + #define N_NEAR near + #define N_FAR far + #define N_HUGE _huge + #define N_PASCAL pascal + #define N_CDECL cdecl + #else + #define N_NEAR __near + #define N_FAR __far + #define N_HUGE _huge + #define N_PASCAL __pascal + #define N_CDECL __cdecl + #endif + + #define N_API N_FAR N_PASCAL + #define N_API_VARARGS N_FAR N_CDECL + #define N_CALLBACK N_FAR N_PASCAL + #define N_CALLBACK_VARARGS N_FAR N_CDECL + + #undef N_INT_ENDIAN_HI_LO + #undef N_INT_STRICT_ALIGNMENT + + #elif defined(N_PLAT_NLM) + + #if defined(N_IAPX386) + + #undef N_INT_ENDIAN_HI_LO + #undef N_INT_STRICT_ALIGNMENT + + #elif defined(N_PPC) + + #define N_INT_ENDIAN_HI_LO + #define N_INT_STRICT_ALIGNMENT + + #else /* no machine type defined */ + + #error A machine type must be defined + + #endif + #define N_NEAR + #define N_FAR + #define N_HUGE + #define N_PASCAL pascal + #ifdef __WATCOMC__ + #define N_CDECL cdecl + #else + #define N_CDECL __cdecl + #endif + #define N_API + #define N_API_VARARGS + #define N_CALLBACK + #define N_CALLBACK_VARARGS + + #elif defined(N_PLAT_MAC) + + #define N_NEAR + #define N_FAR + #define N_HUGE + #define N_PASCAL pascal + #define N_CDECL + + #define N_API N_PASCAL + #define N_API_VARARGS N_CDECL + #define N_CALLBACK N_PASCAL + #define N_CALLBACK_VARARGS N_CDECL + + #define N_INT_ENDIAN_HI_LO + #if defined( mc68020 ) + #undef N_INT_STRICT_ALIGNMENT + #else + #define N_INT_STRICT_ALIGNMENT + #endif + + #elif defined(N_PLAT_UNIX) + #define N_NEAR + #define N_FAR + #define N_HUGE + #define N_PASCAL + #define N_CDECL + + #define N_API N_PASCAL + #define N_API_VARARGS N_CDECL + #define N_CALLBACK N_PASCAL + #define N_CALLBACK_VARARGS N_CDECL + + #if __GNUC__ + + #include + + #if (__BYTE_ORDER == __BIG_ENDIAN) + #define N_INT_ENDIAN_HI_LO + #elif (__BYTE_ORDER == __LITTLE_ENDIAN) + #else + #error Unknown byte order! + #endif + + /* For now, we assume strict alignment for all Unix platforms since it + is the worst case (safe); only optimize for Intel IA32 processor */ + + #if !defined(__i386__) + #define N_INT_STRICT_ALIGNMENT + #endif + + #else + #error Unknown compiler! + #endif + + #else /* no platform constant */ + + #error A platform must be defined + + #endif /* platforms */ + +#endif /* !defined( N_RC_INVOKED ) */ + +/* + Section 3: Other constants + Section 3a: NULL +*/ + +#if !defined(NULL) && defined(__cplusplus) + #define NULL 0 +#endif + +#if defined( N_RC_INVOKED ) + #define NULL 0 +#endif + +#if !defined NULL + #if defined N_MSC + #define NULL ((void *) 0) + #else + #if defined(M_I86S) || defined(M_I86SM) || defined(M_I86C) || \ + defined(M_I86CM) || \ + defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__) || \ + defined(N_PLAT_NLM) + + #define NULL 0 + #else + #define NULL 0L + #endif + #endif +#endif /* NULL */ + +/* + Section 3b: Standard constants +*/ + +#define N_ALWAYS 1 +#define N_SUCCESS 0 +#define N_FAILURE (-1) +#define N_YES 1 +#define N_NO 0 +#define N_FALSE 0 +#define N_TRUE 1 +#define N_UNKNOWN (N_TRUE + 1) + +/* + Section 3c: System constants +*/ + +#define N_SYS_USER 0 +#define N_SYS_NETWARE 1 +#define N_SYS_NAWF 2 +#define N_SYS_MAX_COUNT 20 +#define N_SYS_NAME_MAX_LEN 31 + +/* + Section 3d: Historical constant synonyms +*/ + +#if ! defined( N_INC_NO_OLD_CONSTANTS ) + + #if ! defined( TRUE ) + #define TRUE 1 + #endif + + #if ! defined( FALSE ) + #define FALSE 0 + #endif + +#endif + +/* + Section 3e: Miscellaneous constants +*/ + +/* N_BITSPERBYTE is currently only used internally */ +#if defined BITSPERBYTE + #define N_BITSPERBYTE BITSPERBYTE +#else + #define N_BITSPERBYTE 8 +#endif + +/* + Section 4: Types + Section 4a: Machine dependent types +*/ + +#if !defined(N_RC_INVOKED) + + typedef signed char nint8; + typedef unsigned char nuint8; + typedef signed short nint16; + typedef unsigned short nuint16; + #if defined (N_PLAT_UNIX) + #if __GNUC__ + #if (__WORDSIZE == 64) + typedef signed int nint32; + typedef unsigned int nuint32; + typedef signed long nint64; + typedef unsigned long nuint64; + #else + typedef signed int nint32; + typedef unsigned int nuint32; + __extension__ + typedef signed long long nint64; + __extension__ + typedef unsigned long long nuint64; + #endif + #endif + #elif defined(__alpha) + typedef signed int nint32; + typedef unsigned int nuint32; + typedef signed long nint64; + typedef unsigned long nuint64; + #define nint64_type + #else + typedef signed long nint32; + typedef unsigned long nuint32; + #if (defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS >= 64)) && defined __MWERKS__ + /* Metrowerks */ + typedef signed long long nint64; + typedef unsigned long long nuint64; + #define nint64_type + #elif (defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS >= 64)) || defined (__WATCOM_INT64__) + /* MS Visual C++ or WATCOM */ + typedef signed __int64 nint64; + typedef unsigned __int64 nuint64; + #define nint64_type + #endif + #endif + typedef float nreal32; + typedef double nreal64; + + #if !defined N_PLAT_MAC + + #if defined N_FORCE_INT_32 + typedef signed long nint; + typedef unsigned long nuint; + #elif defined N_FORCE_INT_16 + typedef signed short nint; + typedef unsigned short nuint; + #else + typedef signed int nint; + typedef unsigned int nuint; + #endif + + typedef unsigned int nbool; + #if !(defined N_PLAT_MSW && defined N_ARCH_32) + #if ! defined(__alpha) && ! defined(_AIX) + typedef long double nreal80; + #define nreal80_type + /* VC++ for NT does not support nreal80's by default. Check readme for + instructions on how to enable them */ + #endif + #endif + + typedef double nreal; + #else + typedef signed long nint; + typedef unsigned long nuint; + typedef unsigned char nbool; + + #if defined( powerc ) || defined( __powerc ) || defined( THINK_C ) + typedef long double nreal80; + typedef double nreal; + #else + typedef extended nreal80; + typedef extended nreal; + #endif + #define nreal80_type + #endif + +/* + Section 4b: Derived types +*/ + + #if defined(__alpha) + typedef nuint64 nparam; + #else + typedef nuint32 nparam; + #endif + typedef nparam nhdl; + typedef nparam nid; + typedef nuint8 nflag8; + typedef nuint16 nflag16; + typedef nuint32 nflag32; + + typedef nuint8 nbool8; + typedef nuint16 nbool16; + typedef nuint32 nbool32; + + typedef nint32 nfixed; + #if defined(N_USE_UNSIGNED_CHAR) + typedef nuint8 nstr8; + #else + typedef char nstr8; + #endif + typedef nuint16 nstr16; + #if defined(N_USE_STR_16) + typedef nstr16 nstr; + #else + typedef nstr8 nstr; + #endif + typedef nstr nchar; + typedef nstr8 nchar8; + typedef nstr16 nchar16; + typedef nchar16 nwchar; + + /* + Return code for functions that return status/errors. + */ + + #define NWRCODE nint32 + + + /* + Pointers to scalars. + */ + + typedef void N_FAR * nptr; + typedef void N_FAR * npproc; + + typedef nint8 N_FAR * pnint8; + typedef nuint8 N_FAR * pnuint8; + typedef nint16 N_FAR * pnint16; + typedef nuint16 N_FAR * pnuint16; + typedef nint32 N_FAR * pnint32; + typedef nuint32 N_FAR * pnuint32; + typedef nint64 N_FAR * pnint64; + typedef nuint64 N_FAR * pnuint64; + #if defined( nint64_type ) + typedef nint64 N_FAR * pnint64; + typedef nuint64 N_FAR * pnuint64; + #endif + typedef nint N_FAR * pnint; + typedef nuint N_FAR * pnuint; + typedef nflag8 N_FAR * pnflag8; + typedef nflag16 N_FAR * pnflag16; + typedef nflag32 N_FAR * pnflag32; + typedef nbool N_FAR * pnbool; + typedef nbool8 N_FAR * pnbool8; + typedef nbool16 N_FAR * pnbool16; + typedef nbool32 N_FAR * pnbool32; + typedef nfixed N_FAR * pnfixed; + typedef nstr N_FAR * pnstr; + typedef pnstr N_FAR * ppnstr; + typedef nstr16 N_FAR * pnstr16; + typedef pnstr16 N_FAR * ppnstr16; + typedef nstr8 N_FAR * pnstr8; + typedef pnstr8 N_FAR * ppnstr8; + typedef nchar N_FAR * pnchar; + typedef pnchar N_FAR * ppnchar; + typedef nchar16 N_FAR * pnchar16; + typedef pnchar16 N_FAR * ppnchar16; + typedef nchar8 N_FAR * pnchar8; + typedef pnchar8 N_FAR * ppnchar8; + typedef nwchar N_FAR * pnwchar; + typedef pnwchar N_FAR * ppnwchar; + typedef nreal N_FAR * pnreal; + typedef nreal32 N_FAR * pnreal32; + typedef nreal64 N_FAR * pnreal64; + #if defined( nreal80_type ) + typedef nreal80 N_FAR * pnreal80; + #endif + typedef nid N_FAR * pnid; + typedef nhdl N_FAR * pnhdl; + typedef nparam N_FAR * pnparam; + + /* + Pointers to pointers. + */ + typedef nptr N_FAR * pnptr; + typedef npproc N_FAR * pnpproc; + + typedef pnint8 N_FAR * ppnint8; + typedef pnuint8 N_FAR * ppnuint8; + typedef pnint16 N_FAR * ppnint16; + typedef pnuint16 N_FAR * ppnuint16; + typedef pnint32 N_FAR * ppnint32; + typedef pnuint32 N_FAR * ppnuint32; + #if defined( nint64_type ) + typedef pnint64 N_FAR * ppnint64; + typedef pnuint64 N_FAR * ppnuint64; + #endif + typedef pnint N_FAR * ppnint; + typedef pnuint N_FAR * ppnuint; + typedef pnflag8 N_FAR * ppnflag8; + typedef pnflag16 N_FAR * ppnflag16; + typedef pnflag32 N_FAR * ppnflag32; + typedef pnbool N_FAR * ppnbool; + typedef pnbool8 N_FAR * ppnbool8; + typedef pnbool16 N_FAR * ppnbool16; + typedef pnbool32 N_FAR * ppnbool32; + typedef pnfixed N_FAR * ppnfixed; + typedef ppnstr N_FAR * pppnstr; + typedef ppnstr16 N_FAR * pppnstr16; + typedef ppnstr8 N_FAR * pppnstr8; + typedef ppnchar N_FAR * pppnchar; + typedef ppnchar16 N_FAR * pppnchar16; + typedef ppnchar8 N_FAR * pppnchar8; + typedef ppnwchar N_FAR * pppnwchar; + typedef pnreal N_FAR * ppnreal; + typedef pnreal32 N_FAR * ppnreal32; + typedef pnreal64 N_FAR * ppnreal64; + #if defined( nreal80_type ) + typedef pnreal80 N_FAR * ppnreal80; + #endif + typedef pnid N_FAR * ppnid; + typedef pnhdl N_FAR * ppnhdl; + typedef pnparam N_FAR * ppnparam; + typedef pnptr N_FAR * ppnptr; + typedef pnpproc N_FAR * ppnpproc; + + /* + Section 4c: GUI structures - Removed + */ + + /* + Section 4d: Platform dependent types + */ + + #if defined( N_PLAT_MSW ) + + typedef unsigned char N_HUGE * neptr; + + #elif defined( N_PLAT_MAC ) + + typedef unsigned char N_HUGE * neptr; + + #elif defined( N_PLAT_UNIX ) + + typedef unsigned char N_HUGE * neptr; + + #elif defined( N_PLAT_OS2 ) + + typedef unsigned char N_HUGE * neptr; + + #elif defined( N_PLAT_DOS ) + + typedef unsigned char N_HUGE * neptr; + + #elif defined( N_PLAT_NLM ) + + /* We just need to include NLM in our thinking */ + typedef unsigned char N_HUGE * neptr; + + #else /* This should not be reached because it was already */ + /* tested earlier. */ + #error A platform must be defined + #endif /* MSW or MAC or UNIX or OS2 undefined */ + + /* + Pointers to scalars. + */ + + typedef neptr N_FAR * pneptr; + + /* + Section 5: Macros + */ + + #if defined( __cplusplus ) + + /* Special 'extern' for C++ to avoid name mangling... */ + + #define _N_EXTERN extern "C" + + #else + #define _N_EXTERN extern + #endif /* __cplusplus */ + + #define N_UNUSED_VAR( x ) x = x + + #define N_REG1 register + #define N_REG2 register + #define N_REG3 register + #define N_REG4 register + + #define N_STATIC_VAR static + #define N_INTERN_VAR static + #define N_GLOBAL_VAR + #define N_EXTERN_VAR extern + + #if defined( N_PLAT_MSW ) + #define N_INTERN_FUNC( retType ) static retType N_NEAR + #define N_INTERN_FUNC_C( retType ) static retType N_NEAR + #define N_INTERN_FUNC_PAS( retType ) static retType N_NEAR N_PASCAL + #define N_GLOBAL_FUNC( retType ) retType + #define N_EXTERN_FUNC( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_C( retType ) retType + #define N_EXTERN_FUNC_C( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_PAS( retType ) retType N_PASCAL + #define N_EXTERN_FUNC_PAS( retType ) _N_EXTERN retType N_PASCAL + #elif defined( N_PLAT_MAC ) + #define N_INTERN_FUNC( retType ) static retType + #define N_INTERN_FUNC_C( retType ) static retType + #define N_INTERN_FUNC_PAS( retType ) static N_PASCAL retType + #define N_GLOBAL_FUNC( retType ) retType + #define N_EXTERN_FUNC( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_C( retType ) retType + #define N_EXTERN_FUNC_C( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_PAS( retType ) N_PASCAL retType + #define N_EXTERN_FUNC_PAS( retType ) _N_EXTERN N_PASCAL retType + #elif defined( N_PLAT_UNIX ) + #define N_INTERN_FUNC( retType ) static retType + #define N_INTERN_FUNC_C( retType ) static retType + #define N_INTERN_FUNC_PAS( retType ) static retType + #define N_GLOBAL_FUNC( retType ) retType + #define N_EXTERN_FUNC( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_C( retType ) retType + #define N_EXTERN_FUNC_C( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_PAS( retType ) retType + #define N_EXTERN_FUNC_PAS( retType ) _N_EXTERN retType + #elif defined( N_PLAT_OS2 ) + #define N_INTERN_FUNC( retType ) static retType + #define N_INTERN_FUNC_C( retType ) static retType + #define N_INTERN_FUNC_PAS( retType ) static retType N_PASCAL + #define N_GLOBAL_FUNC( retType ) retType + #define N_EXTERN_FUNC( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_C( retType ) retType + #define N_EXTERN_FUNC_C( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_PAS( retType ) retType N_PASCAL + #define N_EXTERN_FUNC_PAS( retType ) _N_EXTERN retType N_PASCAL + #elif defined( N_PLAT_DOS ) + #define N_INTERN_FUNC( retType ) static retType N_NEAR + #define N_INTERN_FUNC_C( retType ) static retType N_NEAR + #define N_INTERN_FUNC_PAS( retType ) static retType N_NEAR N_PASCAL + #define N_GLOBAL_FUNC( retType ) retType + #define N_EXTERN_FUNC( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_C( retType ) retType + #define N_EXTERN_FUNC_C( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_PAS( retType ) retType N_PASCAL + #define N_EXTERN_FUNC_PAS( retType ) _N_EXTERN retType N_PASCAL + #elif defined( N_PLAT_NLM ) + #define N_INTERN_FUNC( retType ) static retType + #define N_INTERN_FUNC_C( retType ) static retType + #define N_INTERN_FUNC_PAS( retType ) static retType + #define N_GLOBAL_FUNC( retType ) retType + #define N_EXTERN_FUNC( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_C( retType ) retType + #define N_EXTERN_FUNC_C( retType ) _N_EXTERN retType + #define N_GLOBAL_FUNC_PAS( retType ) retType + #define N_EXTERN_FUNC_PAS( retType ) _N_EXTERN retType + #endif + + #if ! defined( N_PLAT_MAC ) + #define N_GLOBAL_LIBRARY( retType ) retType N_API + #define N_EXTERN_LIBRARY( retType ) _N_EXTERN retType N_API + #define N_GLOBAL_LIBRARY_C( retType ) retType N_API_VARARGS + #define N_EXTERN_LIBRARY_C( retType ) _N_EXTERN retType N_API_VARARGS + #else + #define N_GLOBAL_LIBRARY( retType ) N_PASCAL retType + #define N_EXTERN_LIBRARY( retType ) _N_EXTERN N_PASCAL retType + #define N_GLOBAL_LIBRARY_C( retType ) retType + #define N_EXTERN_LIBRARY_C( retType ) _N_EXTERN retType + #endif + + #if defined( N_PLAT_MSW ) + + #define N_GLOBAL_LIBRARY_PAS( retType ) \ + retType N_FAR N_PASCAL + #define N_EXTERN_LIBRARY_PAS( retType ) \ + _N_EXTERN retType N_FAR N_PASCAL + + #define N_GLOBAL_CALLBACK( retType ) \ + retType N_CALLBACK N_EXPORT + #define N_EXTERN_CALLBACK( retType ) \ + _N_EXTERN retType N_CALLBACK N_EXPORT + #define N_GLOBAL_CALLBACK_C( retType ) \ + retType N_FAR N_CDECL N_EXPORT + #define N_EXTERN_CALLBACK_C( retType ) \ + _N_EXTERN retType N_FAR N_CDECL N_EXPORT + #define N_GLOBAL_CALLBACK_PAS( retType ) \ + retType N_FAR N_PASCAL N_EXPORT + #define N_EXTERN_CALLBACK_PAS( retType ) \ + _N_EXTERN retType N_FAR N_PASCAL N_EXPORT + + #define N_TYPEDEF_FUNC( retType, typeName ) \ + typedef retType ( *typeName) + #define N_TYPEDEF_FUNC_C( retType, typeName ) \ + typedef retType (N_CDECL *typeName) + #define N_TYPEDEF_FUNC_PAS( retType, typeName ) \ + typedef retType (N_PASCAL *typeName) + #define N_TYPEDEF_LIBRARY( retType, typeName ) \ + typedef retType (N_FAR N_PASCAL *typeName) + #define N_TYPEDEF_LIBRARY_C( retType, typeName ) \ + typedef retType (N_FAR N_CDECL *typeName) + #define N_TYPEDEF_LIBRARY_PAS( retType, typeName ) \ + typedef retType (N_FAR N_PASCAL *typeName) + #define N_TYPEDEF_CALLBACK( retType, typeName ) \ + typedef retType (N_CALLBACK N_EXPORT *typeName) + + #define N_TYPEDEF_CALLBACK_C( retType, typeName ) \ + typedef retType (N_FAR N_CDECL N_EXPORT *typeName) + + #define N_TYPEDEF_CALLBACK_PAS( retType, typeName ) \ + typedef retType (N_FAR N_PASCAL N_EXPORT *typeName) + + #define N_TYPEDEF_INTERN_FUNC( retType, typeName ) \ + typedef retType (N_NEAR *typeName) + + #define N_TYPEDEF_INTERN_FUNC_C( retType, typeName ) \ + typedef retType (N_NEAR N_CDECL *typeName) + + #define N_TYPEDEF_INTERN_FUNC_PAS( retType, typeName ) \ + typedef retType (N_NEAR N_PASCAL *typeName) + + #elif defined( N_PLAT_MAC ) + + #define N_GLOBAL_LIBRARY_PAS( retType ) N_PASCAL retType + #define N_EXTERN_LIBRARY_PAS( retType ) _N_EXTERN N_PASCAL retType + + #define N_GLOBAL_CALLBACK( retType ) N_CALLBACK retType + #define N_EXTERN_CALLBACK( retType ) _N_EXTERN N_CALLBACK retType + #define N_GLOBAL_CALLBACK_C( retType ) N_CDECL retType + #define N_EXTERN_CALLBACK_C( retType ) _N_EXTERN N_CDECL retType + #define N_GLOBAL_CALLBACK_PAS( retType ) N_PASCAL retType + #define N_EXTERN_CALLBACK_PAS( retType ) _N_EXTERN N_PASCAL retType + + #define N_TYPEDEF_FUNC( retType, typeName ) \ + typedef retType (*typeName) + #define N_TYPEDEF_FUNC_C( retType, typeName ) \ + typedef N_CDECL retType (*typeName) + #define N_TYPEDEF_FUNC_PAS( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + #define N_TYPEDEF_LIBRARY( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + #define N_TYPEDEF_LIBRARY_C( retType, typeName ) \ + typedef N_CDECL retType (*typeName) + #define N_TYPEDEF_LIBRARY_PAS( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + #define N_TYPEDEF_CALLBACK( retType, typeName ) \ + typedef N_CALLBACK retType (*typeName) + #define N_TYPEDEF_CALLBACK_C( retType, typeName ) \ + typedef N_CDECL retType (*typeName) + #define N_TYPEDEF_CALLBACK_PAS( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + #define N_TYPEDEF_INTERN_FUNC( retType, typeName ) \ + typedef retType (*typeName) + #define N_TYPEDEF_INTERN_FUNC_C( retType, typeName ) \ + typedef N_CDECL retType (*typeName) + #define N_TYPEDEF_INTERN_FUNC_PAS( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + + #elif defined( N_PLAT_UNIX ) + + #define N_GLOBAL_LIBRARY_PAS( retType ) retType + #define N_EXTERN_LIBRARY_PAS( retType ) _N_EXTERN N_PASCAL retType + + #define N_GLOBAL_CALLBACK( retType ) N_CALLBACK retType + #define N_EXTERN_CALLBACK( retType ) _N_EXTERN N_CALLBACK retType + #define N_GLOBAL_CALLBACK_C( retType ) N_CDECL retType + #define N_EXTERN_CALLBACK_C( retType ) _N_EXTERN N_CDECL retType + #define N_GLOBAL_CALLBACK_PAS( retType ) N_PASCAL retType + #define N_EXTERN_CALLBACK_PAS( retType ) _N_EXTERN N_PASCAL retType + + #define N_TYPEDEF_FUNC( retType, typeName ) \ + typedef retType (*typeName) + #define N_TYPEDEF_FUNC_C( retType, typeName ) \ + typedef N_CDECL retType (*typeName) + #define N_TYPEDEF_FUNC_PAS( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + #define N_TYPEDEF_LIBRARY( retType, typeName ) \ + typedef retType (*typeName) + #define N_TYPEDEF_LIBRARY_C( retType, typeName ) \ + typedef N_CDECL retType (*typeName) + #define N_TYPEDEF_LIBRARY_PAS( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + #define N_TYPEDEF_CALLBACK( retType, typeName ) \ + typedef N_CALLBACK retType (*typeName) + #define N_TYPEDEF_CALLBACK_C( retType, typeName ) \ + typedef N_CDECL retType (*typeName) + #define N_TYPEDEF_CALLBACK_PAS( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + #define N_TYPEDEF_INTERN_FUNC( retType, typeName ) \ + typedef retType (*typeName) + #define N_TYPEDEF_INTERN_FUNC_C( retType, typeName ) \ + typedef N_CDECL retType (*typeName) + #define N_TYPEDEF_INTERN_FUNC_PAS( retType, typeName ) \ + typedef N_PASCAL retType (*typeName) + + #elif defined( N_PLAT_OS2) + + #define N_PRAGMA_ONCE + + #define N_GLOBAL_LIBRARY_PAS( retType ) retType N_PASCAL + #define N_EXTERN_LIBRARY_PAS( retType ) _N_EXTERN retType N_PASCAL + + #define N_GLOBAL_CALLBACK( retType ) retType N_CALLBACK _export + #define N_EXTERN_CALLBACK( retType ) _N_EXTERN retType N_CALLBACK + #define N_GLOBAL_CALLBACK_NATIVE( retType ) retType EXPENTRY _export + #define N_EXTERN_CALLBACK_NATIVE( retType ) _N_EXTERN retType EXPENTRY + #define N_GLOBAL_CALLBACK_C( retType ) retType N_CDECL _export + #define N_EXTERN_CALLBACK_C( retType ) _N_EXTERN retType N_CDECL + #define N_GLOBAL_CALLBACK_PAS( retType ) retType N_PASCAL _export + #define N_EXTERN_CALLBACK_PAS( retType ) _N_EXTERN retType N_PASCAL + + #define N_TYPEDEF_FUNC( retType, typeName ) \ + typedef retType ( *typeName) + + #define N_TYPEDEF_FUNC_C( retType, typeName ) \ + typedef retType ( N_CDECL *typeName) + + #define N_TYPEDEF_FUNC_PAS( retType, typeName ) \ + typedef retType ( N_PASCAL *typeName) + + #define N_TYPEDEF_LIBRARY( retType, typeName ) \ + typedef retType ( N_PASCAL *typeName) + + #define N_TYPEDEF_LIBRARY_C( retType, typeName ) \ + typedef retType ( N_CDECL *typeName) + + #define N_TYPEDEF_LIBRARY_PAS( retType, typeName ) \ + typedef retType ( N_PASCAL *typeName) + + #define N_TYPEDEF_CALLBACK( retType, typeName ) \ + typedef retType (_export N_CALLBACK *typeName) + + #define N_TYPEDEF_CALLBACK_NATIVE( retType, typeName ) \ + typedef retType (_export EXPENTRY *typeName) + + #define N_TYPEDEF_CALLBACK_C( retType, typeName ) \ + typedef retType (_export N_CDECL *typeName) + + #define N_TYPEDEF_CALLBACK_PAS( retType, typeName ) \ + typedef retType (_export N_PASCAL *typeName) + + #define N_TYPEDEF_INTERN_FUNC( retType, typeName ) \ + typedef retType ( *typeName) + + #define N_TYPEDEF_INTERN_FUNC_C( retType, typeName ) \ + typedef retType ( N_CDECL *typeName) + + #define N_TYPEDEF_INTERN_FUNC_PAS( retType, typeName ) \ + typedef retType ( N_PASCAL *typeName) + + #elif defined( N_PLAT_DOS ) + + #define N_GLOBAL_LIBRARY_PAS( retType ) retType N_FAR N_PASCAL + #define N_EXTERN_LIBRARY_PAS( retType ) \ + _N_EXTERN retType N_FAR N_PASCAL + #define N_GLOBAL_CALLBACK( retType ) retType N_FAR N_CALLBACK _export + #define N_EXTERN_CALLBACK( retType ) \ + _N_EXTERN retType N_FAR N_CALLBACK _export + #define N_GLOBAL_CALLBACK_C( retType ) retType N_FAR N_CDECL _export + #define N_EXTERN_CALLBACK_C( retType ) \ + _N_EXTERN retType N_FAR N_CDECL _export + #define N_GLOBAL_CALLBACK_PAS( retType ) retType N_FAR N_PASCAL _export + #define N_EXTERN_CALLBACK_PAS( retType ) \ + _N_EXTERN retType N_FAR N_PASCAL _export + + #define N_TYPEDEF_FUNC( retType, typeName ) \ + typedef retType ( *typeName) + + #define N_TYPEDEF_FUNC_C( retType, typeName ) \ + typedef retType ( N_CDECL *typeName) + + #define N_TYPEDEF_FUNC_PAS( retType, typeName ) \ + typedef retType ( N_PASCAL *typeName) + + #define N_TYPEDEF_LIBRARY( retType, typeName ) \ + typedef retType (N_FAR N_PASCAL *typeName) + + #define N_TYPEDEF_LIBRARY_C( retType, typeName ) \ + typedef retType (N_FAR *typeName) + + #define N_TYPEDEF_LIBRARY_PAS( retType, typeName ) \ + typedef retType (N_FAR N_PASCAL *typeName) + + #define N_TYPEDEF_CALLBACK( retType, typeName ) \ + typedef retType (N_FAR N_CALLBACK _export *typeName) + + #define N_TYPEDEF_CALLBACK_C( retType, typeName ) \ + typedef retType (N_FAR N_CDECL _export *typeName) + + #define N_TYPEDEF_CALLBACK_PAS( retType, typeName ) \ + typedef retType (N_FAR N_PASCAL _export *typeName) + + #define N_TYPEDEF_INTERN_FUNC( retType, typeName ) \ + typedef retType (N_NEAR *typeName) + + #define N_TYPEDEF_INTERN_FUNC_C( retType, typeName ) \ + typedef retType (N_NEAR N_CDECL *typeName) + + #define N_TYPEDEF_INTERN_FUNC_PAS( retType, typeName ) \ + typedef retType (N_NEAR N_PASCAL *typeName) + + #elif defined( N_PLAT_NLM ) + + #define N_GLOBAL_LIBRARY_PAS( retType ) \ + retType N_FAR N_PASCAL + #define N_EXTERN_LIBRARY_PAS( retType ) \ + _N_EXTERN retType N_FAR N_PASCAL + #define N_GLOBAL_CALLBACK( retType ) retType N_FAR + #define N_EXTERN_CALLBACK( retType ) \ + _N_EXTERN retType N_FAR + #define N_GLOBAL_CALLBACK_C( retType ) retType N_FAR N_CDECL + #define N_EXTERN_CALLBACK_C( retType ) \ + _N_EXTERN retType N_FAR N_CDECL + #define N_GLOBAL_CALLBACK_PASCAL( retType ) \ + retType N_FAR N_PASCAL + #define N_EXTERN_CALLBACK_PAS( retType ) \ + _N_EXTERN retType N_FAR N_PASCAL + + #define N_TYPEDEF_FUNC( retType, typeName ) \ + typedef retType ( *typeName) + #define N_TYPEDEF_FUNC_C( retType, typeName ) \ + typedef retType (N_CDECL *typeName) + #define N_TYPEDEF_FUNC_PAS( retType, typeName ) \ + typedef retType (N_PASCAL *typeName) + #define N_TYPEDEF_LIBRARY( retType, typeName ) \ + typedef retType ( *typeName) + #define N_TYPEDEF_LIBRARY_C( retType, typeName ) \ + typedef retType (N_CDECL *typeName) + #define N_TYPEDEF_LIBRARY_PAS( retType, typeName ) \ + typedef retType (N_PASCAL *typeName) + #define N_TYPEDEF_CALLBACK( retType, typeName ) \ + typedef retType (N_CALLBACK *typeName) + #define N_TYPEDEF_CALLBACK_C( retType, typeName ) \ + typedef retType (N_CDECL *typeName) + #define N_TYPEDEF_CALLBACK_PAS( retType, typeName ) \ + typedef retType (N_PASCAL *typeName) + #define N_TYPEDEF_INTERN_FUNC( retType, typeName ) \ + typedef retType ( *typeName) + #define N_TYPEDEF_INTERN_FUNC_C( retType, typeName ) \ + typedef retType (N_CDECL *typeName) + #define N_TYPEDEF_INTERN_FUNC_PAS( retType, typeName ) \ + typedef retType (N_PASCAL *typeName) + + #endif /* N_PLAT_NLM */ + + /* + Untyped logical macros. + */ + + #define NMin(a,b) ((a) < (b) ? (a) : (b)) + #define NMax(a,b) ((a) > (b) ? (a) : (b)) + + /* + Integer construction macros. + */ + + /* NMakePtrParam is defined here since it can't be used in a resource file */ + + #define NMakePtrParam(p) ((nparam) ((nptr) (p))) + +#endif /* ! defined(N_RC_INVOKED) */ + +#define NMake32(lo,hi) ((nuint32) (((nuint16)(lo)) | \ + (((nuint32)(nuint16)(hi)) << 16))) +#define NGetLo16(a32) ((nuint16)((nuint32)(a32) & 0xFFFF)) +#define NGetHi16(a32) ((nuint16)((nuint32)(a32) >> 16)) +#define NMake16(lo,hi) ((nuint16) (((nuint8)(lo)) | \ + (((nuint16)((nuint8)(hi))) << 8))) +#define NGetLo8(a16) ((nuint8)((nuint16)(a16) & 0xFF)) +#define NGetHi8(a16) ((nuint8)((nuint16)(a16) >> 8)) + + +#define NMakePair32 NMake32 +#define NGetFirst16(a) ((nint16) NGetLo16(a)) +#define NGetSecond16(a) ((nint16) NGetHi16(a)) + +#define NMakePair16 NMake16 +#define NGetFirst8(a) ((nint8) NGetLo8(a)) +#define NGetSecond8(a) ((nint8) NGetHi8(a)) + +#define NMakeFixed32(i,f) NMake32(f,i) +#define NGetFixedInt16(a) ((nint16) NGetHi16(a)) +#define NGetFixedFrac16(a) ((nint16) NGetLo16(a)) + +/* Swap, Copy, Get and Set macros */ + +#define NSwap64( x ) ((nuint32) \ + ((((nuint64)(x) & 0x00000000000000FFLL) << 56) | \ + (((nuint64)(x) & 0x000000000000FF00LL) << 40) | \ + (((nuint64)(x) & 0x0000000000FF0000LL) << 24) | \ + (((nuint64)(x) & 0x00000000FF000000LL) << 8) | \ + (((nuint64)(x) & 0x000000FF00000000LL) >> 8) | \ + (((nuint64)(x) & 0x0000FF0000000000LL) >> 24) | \ + (((nuint64)(x) & 0x00FF000000000000LL) >> 40) | \ + (((nuint64)(x) & 0xFF00000000000000LL) >> 56))) + +#define NSwap32( x ) ((nuint32) \ + ((((nuint32)(x) & 0x000000FFL) << 24) | \ + (((nuint32)(x) & 0x0000FF00L) << 8) | \ + (((nuint32)(x) & 0x00FF0000L) >> 8) | \ + (((nuint32)(x) & 0xFF000000L) >> 24))) + +#define NSwap16( x ) ((nuint16) \ + ((((nuint16)(x) & 0x00FF) << 8) | \ + (((nuint16)(x) & 0xFF00) >> 8))) + +#define NCopySwap64( pDest, pSrc ) \ + (((pnuint8) (pDest))[0] = ((pnuint8) (pSrc))[7], \ + ((pnuint8) (pDest))[1] = ((pnuint8) (pSrc))[6], \ + ((pnuint8) (pDest))[2] = ((pnuint8) (pSrc))[5], \ + ((pnuint8) (pDest))[3] = ((pnuint8) (pSrc))[4], \ + ((pnuint8) (pDest))[4] = ((pnuint8) (pSrc))[3], \ + ((pnuint8) (pDest))[5] = ((pnuint8) (pSrc))[2], \ + ((pnuint8) (pDest))[6] = ((pnuint8) (pSrc))[1], \ + ((pnuint8) (pDest))[7] = ((pnuint8) (pSrc))[0]) + +#define NCopySwap32( pDest, pSrc ) \ + (((pnuint8) (pDest))[0] = ((pnuint8) (pSrc))[3], \ + ((pnuint8) (pDest))[1] = ((pnuint8) (pSrc))[2], \ + ((pnuint8) (pDest))[2] = ((pnuint8) (pSrc))[1], \ + ((pnuint8) (pDest))[3] = ((pnuint8) (pSrc))[0]) + +#define NCopySwap16( pDest, pSrc ) \ + (((pnuint8) (pDest))[0] = ((pnuint8) (pSrc))[1], \ + ((pnuint8) (pDest))[1] = ((pnuint8) (pSrc))[0]) + +#if defined( N_INT_ENDIAN_HI_LO ) + + #define NSwapHiLo64( x ) ((nuint64) (x)) + #define NSwapHiLo32( x ) ((nuint32) (x)) + #define NSwapHiLo16( x ) ((nuint16) (x)) + #define NSwapLoHi64 NSwap64 + #define NSwapLoHi32 NSwap32 + #define NSwapLoHi16 NSwap16 + +#else + + #define NSwapHiLo64 NSwap64 + #define NSwapHiLo32 NSwap32 + #define NSwapHiLo16 NSwap16 + #define NSwapLoHi64( x ) ((nuint64) (x)) + #define NSwapLoHi32( x ) ((nuint32) (x)) + #define NSwapLoHi16( x ) ((nuint16) (x)) + +#endif + +#define NSwapToHiLo64 NSwapHiLo64 +#define NSwapToHiLo32 NSwapHiLo32 +#define NSwapToHiLo16 NSwapHiLo16 +#define NSwapToLoHi64 NSwapLoHi64 +#define NSwapToLoHi32 NSwapLoHi32 +#define NSwapToLoHi16 NSwapLoHi16 + +#define NSwapFromHiLo64 NSwapHiLo64 +#define NSwapFromHiLo32 NSwapHiLo32 +#define NSwapFromHiLo16 NSwapHiLo16 +#define NSwapFromLoHi64 NSwapLoHi64 +#define NSwapFromLoHi32 NSwapLoHi32 +#define NSwapFromLoHi16 NSwapLoHi16 + +#if defined( N_INT_STRICT_ALIGNMENT ) + + #define NCopy64( pDest, pSrc ) \ + (((pnuint8) (pDest))[0] = ((pnuint8) (pSrc))[0], \ + ((pnuint8) (pDest))[1] = ((pnuint8) (pSrc))[1], \ + ((pnuint8) (pDest))[2] = ((pnuint8) (pSrc))[2], \ + ((pnuint8) (pDest))[3] = ((pnuint8) (pSrc))[3], \ + ((pnuint8) (pDest))[4] = ((pnuint8) (pSrc))[4], \ + ((pnuint8) (pDest))[5] = ((pnuint8) (pSrc))[5], \ + ((pnuint8) (pDest))[6] = ((pnuint8) (pSrc))[6], \ + ((pnuint8) (pDest))[7] = ((pnuint8) (pSrc))[7]) + + #define NCopy32( pDest, pSrc ) \ + (((pnuint8) (pDest))[0] = ((pnuint8) (pSrc))[0], \ + ((pnuint8) (pDest))[1] = ((pnuint8) (pSrc))[1], \ + ((pnuint8) (pDest))[2] = ((pnuint8) (pSrc))[2], \ + ((pnuint8) (pDest))[3] = ((pnuint8) (pSrc))[3]) + + #define NCopy16( pDest, pSrc ) \ + (((pnuint8) (pDest))[0] = ((pnuint8) (pSrc))[0], \ + ((pnuint8) (pDest))[1] = ((pnuint8) (pSrc))[1]) + + #define NSet64( pDest, src ) NCopy64(pDest, &(src)) + + #define NSet32( pDest, src ) NCopy32(pDest, &(src)) + + #define NSet16( pDest, src ) NCopy16(pDest, &(src)) + + #if defined( N_INT_ENDIAN_HI_LO ) + + #define NGet64( pSrc ) \ + ((nuint64)(((pnuint8) (pSrc))[7]) | \ + ((nuint64)(((pnuint8) (pSrc))[6]) << 8) | \ + ((nuint64)(((pnuint8) (pSrc))[5]) << 16) | \ + ((nuint64)(((pnuint8) (pSrc))[4]) << 24) | \ + ((nuint64)(((pnuint8) (pSrc))[3]) << 32) | \ + ((nuint64)(((pnuint8) (pSrc))[2]) << 40) | \ + ((nuint64)(((pnuint8) (pSrc))[1]) << 48) | \ + ((nuint64)(((pnuint8) (pSrc))[0]) << 56)) + + #define NGet32( pSrc ) \ + ((nuint32)(((pnuint8) (pSrc))[3]) | \ + ((nuint32)(((pnuint8) (pSrc))[2]) << 8) | \ + ((nuint32)(((pnuint8) (pSrc))[1]) << 16) | \ + ((nuint32)(((pnuint8) (pSrc))[0]) << 24)) + + #define NGet16( pSrc ) \ + ((nuint16)(((pnuint8) (pSrc))[1]) | \ + ((nuint16)(((pnuint8) (pSrc))[0]) << 8)) + + #else + + #define NGet64( pSrc ) \ + ((nuint64)(((pnuint8) (pSrc))[0]) | \ + ((nuint64)(((pnuint8) (pSrc))[1]) << 8) | \ + ((nuint64)(((pnuint8) (pSrc))[2]) << 16) | \ + ((nuint64)(((pnuint8) (pSrc))[3]) << 24) | \ + ((nuint64)(((pnuint8) (pSrc))[4]) << 32) | \ + ((nuint64)(((pnuint8) (pSrc))[5]) << 40) | \ + ((nuint64)(((pnuint8) (pSrc))[6]) << 48) | \ + ((nuint64)(((pnuint8) (pSrc))[7]) << 56)) + + #define NGet32( pSrc ) \ + ((nuint32)(((pnuint8) (pSrc))[0]) | \ + ((nuint32)(((pnuint8) (pSrc))[1]) << 8) | \ + ((nuint32)(((pnuint8) (pSrc))[2]) << 16) | \ + ((nuint32)(((pnuint8) (pSrc))[3]) << 24)) + + #define NGet16( pSrc ) \ + ((nuint16)(((pnuint8) (pSrc))[0]) | \ + ((nuint16)(((pnuint8) (pSrc))[1]) << 8)) + + #endif + + #if defined( N_INT_ENDIAN_HI_LO ) + + #define NWrite64( dest, src ) \ + (((nuint8 *)(&(dest)))[0] = (nuint64)(src) >> 56, \ + ((nuint8 *)(&(dest)))[1] = (nuint64)(src) >> 48, \ + ((nuint8 *)(&(dest)))[2] = (nuint64)(src) >> 40, \ + ((nuint8 *)(&(dest)))[3] = (nuint64)(src) >> 32, \ + ((nuint8 *)(&(dest)))[4] = (nuint64)(src) >> 24, \ + ((nuint8 *)(&(dest)))[5] = (nuint64)(src) >> 16, \ + ((nuint8 *)(&(dest)))[6] = (nuint64)(src) >> 8, \ + ((nuint8 *)(&(dest)))[7] = (nuint64)(src)) + + #define NWrite32( dest, src ) \ + (((nuint8 *)(&(dest)))[0] = (nuint32)(src) >> 24, \ + ((nuint8 *)(&(dest)))[1] = (nuint32)(src) >> 16, \ + ((nuint8 *)(&(dest)))[2] = (nuint32)(src) >> 8, \ + ((nuint8 *)(&(dest)))[3] = (nuint32)(src)) + + #define NWrite16( dest, src ) \ + (((nuint8 *)(&(dest)))[0] = (nuint16)(src) >> 8, \ + ((nuint8 *)(&(dest)))[1] = (nuint16)(src)) + + #else + + #define NWrite64( dest, src ) \ + (((nuint8 *)(&(dest)))[7] = (nuint64)(src) >> 56, \ + ((nuint8 *)(&(dest)))[6] = (nuint64)(src) >> 48, \ + ((nuint8 *)(&(dest)))[5] = (nuint64)(src) >> 40, \ + ((nuint8 *)(&(dest)))[4] = (nuint64)(src) >> 32, \ + ((nuint8 *)(&(dest)))[3] = (nuint64)(src) >> 24, \ + ((nuint8 *)(&(dest)))[2] = (nuint64)(src) >> 16, \ + ((nuint8 *)(&(dest)))[1] = (nuint64)(src) >> 8, \ + ((nuint8 *)(&(dest)))[0] = (nuint64)(src)) + + #define NWrite32( dest, src ) \ + (((nuint8 *)(&(dest)))[3] = (nuint32)(src) >> 24, \ + ((nuint8 *)(&(dest)))[2] = (nuint32)(src) >> 16, \ + ((nuint8 *)(&(dest)))[1] = (nuint32)(src) >> 8, \ + ((nuint8 *)(&(dest)))[0] = (nuint32)(src)) + + #define NWrite16( dest, src ) \ + (((nuint8 *)(&(dest)))[1] = (nuint16)(src) >> 8, \ + ((nuint8 *)(&(dest)))[0] = ((nuint16)(src))) + + #endif + +#else /* if defined( N_INT_STRICT_ALIGNMENT ) */ + + #define NCopy64( pDest, pSrc ) \ + (*((pnuint64) (pDest)) = *((pnuint64) (pSrc))) + + #define NCopy32( pDest, pSrc ) \ + (*((pnuint32) (pDest)) = *((pnuint32) (pSrc))) + + #define NCopy16( pDest, pSrc ) \ + (*((pnuint16) (pDest)) = *((pnuint16) (pSrc))) + + #define NSet64( pDest, src ) \ + (*((pnuint64) (pDest)) = (nuint64)(src)) + + #define NSet32( pDest, src ) \ + (*((pnuint32) (pDest)) = (nuint32)(src)) + + #define NSet16( pDest, src ) \ + (*((pnuint16) (pDest)) = (nuint16)(src)) + + #define NGet64( pSrc ) \ + (*((pnuint64) (pSrc))) + + #define NGet32( pSrc ) \ + (*((pnuint32) (pSrc))) + + #define NGet16( pSrc ) \ + (*((pnuint16) (pSrc))) + + #define NWrite64( dest, src ) NSet64(&(dest), src) + + #define NWrite32( dest, src ) NSet32(&(dest), src) + + #define NWrite16( dest, src ) NSet16(&(dest), src) + +#endif /* if defined( N_INT_STRICT_ALIGNMENT ) */ + +#if defined( N_INT_ENDIAN_HI_LO ) + + #define NGetHiLo64 NGet64 + + #define NGetHiLo32 NGet32 + + #define NGetHiLo16 NGet16 + + #define NGetLoHi64( pSrc ) \ + (((pnuint8) (pSrc))[0] | \ + (((pnuint8) (pSrc))[1] << 8) | \ + (((pnuint8) (pSrc))[2] << 16) | \ + (((pnuint8) (pSrc))[3] << 24) | \ + (((pnuint8) (pSrc))[4] << 32) | \ + (((pnuint8) (pSrc))[5] << 40) | \ + (((pnuint8) (pSrc))[6] << 48) | \ + (((pnuint8) (pSrc))[7] << 56)) + + #define NGetLoHi32( pSrc ) \ + (((pnuint8) (pSrc))[0] | \ + (((pnuint8) (pSrc))[1] << 8) | \ + (((pnuint8) (pSrc))[2] << 16) | \ + (((pnuint8) (pSrc))[3] << 24)) + + #define NGetLoHi16( pSrc ) \ + (((pnuint8) (pSrc))[0] | \ + (((pnuint8) (pSrc))[1] << 8)) + +#else + + #define NGetHiLo64( pSrc ) \ + (((pnuint8) (pSrc))[7] | \ + (((pnuint8) (pSrc))[6] << 8) | \ + (((pnuint8) (pSrc))[5] << 16) | \ + (((pnuint8) (pSrc))[4] << 24) | \ + (((pnuint8) (pSrc))[3] << 32) | \ + (((pnuint8) (pSrc))[2] << 40) | \ + (((pnuint8) (pSrc))[1] << 48) | \ + (((pnuint8) (pSrc))[0] << 56)) + + #define NGetHiLo32( pSrc ) \ + (((pnuint8) (pSrc))[3] | \ + (((pnuint8) (pSrc))[2] << 8) | \ + (((pnuint8) (pSrc))[1] << 16) | \ + (((pnuint8) (pSrc))[0] << 24)) + + #define NGetHiLo16( pSrc ) \ + (((pnuint8) (pSrc))[1] | \ + (((pnuint8) (pSrc))[0] << 8)) + + #define NGetLoHi32 NGet32 + + #define NGetLoHi16 NGet16 + +#endif + +#if defined( N_INT_ENDIAN_HI_LO ) + + #define NSetHiLo64 NSet64 + + #define NSetHiLo32 NSet32 + + #define NSetHiLo16 NSet16 + + #define NSetLoHi64( pDest, src ) \ + (((nuint8 *)(pDest))[7] = (nuint64)(src) >> 56, \ + ((nuint8 *)(pDest))[6] = (nuint64)(src) >> 48, \ + ((nuint8 *)(pDest))[5] = (nuint64)(src) >> 40, \ + ((nuint8 *)(pDest))[4] = (nuint64)(src) >> 32, \ + ((nuint8 *)(pDest))[3] = (nuint64)(src) >> 24, \ + ((nuint8 *)(pDest))[2] = (nuint64)(src) >> 16, \ + ((nuint8 *)(pDest))[1] = (nuint64)(src) >> 8, \ + ((nuint8 *)(pDest))[0] = (nuint64)(src)) + + #define NSetLoHi32( pDest, src ) \ + (((nuint8 *)(pDest))[3] = (nuint32)(src) >> 24, \ + ((nuint8 *)(pDest))[2] = (nuint32)(src) >> 16, \ + ((nuint8 *)(pDest))[1] = (nuint32)(src) >> 8, \ + ((nuint8 *)(pDest))[0] = (nuint32)(src)) + + #define NSetLoHi16( pDest, src ) \ + (((nuint8 *)(pDest))[1] = (nuint16)(src) >> 8, \ + ((nuint8 *)(pDest))[0] = ((nuint16)(src))) + +#else + + #define NSetHiLo64( pDest, src ) \ + (((nuint8 *)(pDest))[0] = (nuint64)(src) >> 56, \ + ((nuint8 *)(pDest))[1] = (nuint64)(src) >> 48, \ + ((nuint8 *)(pDest))[2] = (nuint64)(src) >> 40, \ + ((nuint8 *)(pDest))[3] = (nuint64)(src) >> 32, \ + ((nuint8 *)(pDest))[4] = (nuint64)(src) >> 24, \ + ((nuint8 *)(pDest))[5] = (nuint64)(src) >> 16, \ + ((nuint8 *)(pDest))[6] = (nuint64)(src) >> 8, \ + ((nuint8 *)(pDest))[7] = (nuint64)(src)) + + #define NSetHiLo32( pDest, src ) \ + (((nuint8 *)(pDest))[0] = (nuint32)(src) >> 24, \ + ((nuint8 *)(pDest))[1] = (nuint32)(src) >> 16, \ + ((nuint8 *)(pDest))[2] = (nuint32)(src) >> 8, \ + ((nuint8 *)(pDest))[3] = (nuint32)(src)) + + #define NSetHiLo16( pDest, src ) \ + (((nuint8 *)(pDest))[0] = (nuint16)(src) >> 8, \ + ((nuint8 *)(pDest))[1] = ((nuint16)(src))) + + #define NSetLoHi64 NSet64 + + #define NSetLoHi32 NSet32 + + #define NSetLoHi16 NSet16 + +#endif + +#define NRead64( src ) NGet64(&(src)) + +#define NRead32( src ) NGet32(&(src)) + +#define NRead16( src ) NGet16(&(src)) + +#define NReadHiLo64( src ) NGetHiLo64(&(src)) + +#define NReadHiLo32( src ) NGetHiLo32(&(src)) + +#define NReadHiLo16( src ) NGetHiLo16(&(src)) + +#define NReadLoHi64( src ) NGetLoHi64(&(src)) + +#define NReadLoHi32( src ) NGetLoHi32(&(src)) + +#define NReadLoHi16( src ) NGetLoHi16(&(src)) + +#define NWriteHiLo64( dest, src ) NSetHiLo64(&(dest), src) + +#define NWriteHiLo32( dest, src ) NSetHiLo32(&(dest), src) + +#define NWriteHiLo16( dest, src ) NSetHiLo16(&(dest), src) + +#define NWriteLoHi64( dest, src ) NSetLoHi64(&(dest), src) + +#define NWriteLoHi32( dest, src ) NSetLoHi32(&(dest), src) + +#define NWriteLoHi16( dest, src ) NSetLoHi16(&(dest), src) + +#if defined( N_INT_ENDIAN_HI_LO ) + + /* Copy from native format to named format */ + #define NCopyHiLo64 NCopy64 + #define NCopyHiLo32 NCopy32 + #define NCopyHiLo16 NCopy16 + #define NCopyLoHi64 NCopySwap64 + #define NCopyLoHi32 NCopySwap32 + #define NCopyLoHi16 NCopySwap16 + +#else + + /* Copy from native format to named format */ + #define NCopyHiLo64 NCopySwap64 + #define NCopyHiLo32 NCopySwap32 + #define NCopyHiLo16 NCopySwap16 + #define NCopyLoHi64 NCopy64 + #define NCopyLoHi32 NCopy32 + #define NCopyLoHi16 NCopy16 + +#endif + +#define NCopyToHiLo64 NCopyHiLo64 +#define NCopyToHiLo32 NCopyHiLo32 +#define NCopyToHiLo16 NCopyHiLo16 +#define NCopyToLoHi64 NCopyLoHi64 +#define NCopyToLoHi32 NCopyLoHi32 +#define NCopyToLoHi16 NCopyLoHi16 + +/* Copy from named format to native format */ +#define NCopyFromHiLo64 NCopyHiLo64 +#define NCopyFromHiLo32 NCopyHiLo32 +#define NCopyFromHiLo16 NCopyHiLo16 +#define NCopyFromLoHi64 NCopyLoHi64 +#define NCopyFromLoHi32 NCopyLoHi32 +#define NCopyFromLoHi16 NCopyLoHi16 + +#define NPad64( src ) (((src) + 7) & ~7) +#define NPad32( src ) (((src) + 3) & ~3) +#define NPad16( src ) (((src) + 1) & ~1) + +#define NAlign64(src) *(src) = (void N_FAR *) (((nuint64)*(src) + 7) & ~7); +#define NAlign32(src) *(src) = (void N_FAR *) (((nuint32)*(src) + 3) & ~3); + +/* + Character and String macros. +*/ + +#if defined(N_USE_STR_16) + #define NText(a) L a +#else + #define NText(a) a +#endif + +#if defined( N_PLAT_MSW ) || defined( N_PLAT_OS2 ) || defined( N_PLAT_DOS ) + #define N_NEWLINE NText( "\r\n" ) +#elif defined( N_PLAT_MAC ) + #if defined( THINK_C ) || defined( __MWERKS__ ) + #define N_NEWLINE NText( "\r" ) + #else + #define N_NEWLINE NText( "\n" ) + #endif +#else + #define N_NEWLINE NText( "\n" ) +#endif + +/* + Historical macro synonyms. +*/ + +#if ! defined( N_INC_NO_OLD_MACROS ) + #if !defined( FAR ) + #define FAR N_FAR + #endif + #if !defined( NEAR ) + #define NEAR N_NEAR + #endif + #if !defined( MIN ) + #define MIN NMin + #endif + #if !defined( MAX ) + #define MAX NMax + #endif + #if !defined( MAKELONG ) + #define MAKELONG NMake32 + #endif + #if !defined( HIWORD ) + #define HIWORD NGetHi16 + #endif + #if !defined( LOWORD ) + #define LOWORD NGetLo16 + #endif + #if !defined( MAKEWORD ) + #define MAKEWORD NMake16 + #endif + #if !defined( HIBYTE ) + #define HIBYTE NGetHi8 + #endif + #if !defined( LOBYTE ) + #define LOBYTE NGetLo8 + #endif +#endif + +#endif /* ! defined( NTYPES_H ) */ diff --git a/c_clientlogin/xplatincl/nunicode.h b/c_clientlogin/xplatincl/nunicode.h new file mode 100644 index 00000000..c3a0330c --- /dev/null +++ b/c_clientlogin/xplatincl/nunicode.h @@ -0,0 +1,62 @@ +/****************************************************************************** + + %name: nunicode.h % + %version: 30 % + %date_modified: Mon May 1 10:11:11 2000 % + $Copyright: + + Copyright (c) 1989-1997 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if !defined(NUNICODE_H) +#define NUNICODE_H + + +#include + + /* For LIBC builds the XPlat libraries use the LIBC unicode and + * localization support. LIBC is the next generation of the c-runtime + * on NetWare. All other platforms will continue to use unicode.h + * NOTE: stddef.h in the LIBC sdk defines __NOVELL_LIBC__ + * + */ +#if defined(__NOVELL_LIBC__) + + #include "unilib.h" + + /* unilib.h doesn't define the following with are used significantly + * in the XPlat SDK. Define them for the XPlat SDK. + */ + + /* NOTE: LibC WinSock2 #defines "unicode" inside ws2defs.h. + * If LibC WinSock2 headers have been included, undefine unicode + * and typdef it the way XPlat SDK expects it. + */ + #if defined(unicode) + #undef unicode + #endif + + #ifndef UNICODE_TYPE_DEFINED + #define UNICODE_TYPE_DEFINED + typedef unicode_t unicode; /* use LibC's unicode_t type */ + #endif + + typedef unicode * punicode; + typedef unicode ** ppunicode; + +#else /* All non-LibC builds */ + + #include "unicode.h" + +#endif /* #if defined(__NOVELL_LIBC__) */ + + +#endif /* #if !defined(NUNICODE_H) */ diff --git a/c_clientlogin/xplatincl/nwacct.h b/c_clientlogin/xplatincl/nwacct.h new file mode 100644 index 00000000..23baa38c --- /dev/null +++ b/c_clientlogin/xplatincl/nwacct.h @@ -0,0 +1,105 @@ +/****************************************************************************** + + %name: nwacct.h % + %version: 4 % + %date_modified: Mon Oct 25 11:17:01 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWACCT_H ) +#define NWACCT_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + nuint32 objectID; + nint32 amount; +} HOLDS_INFO; + +typedef struct +{ + nuint16 holdsCount; + HOLDS_INFO holds[16]; +} HOLDS_STATUS; + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetAccountStatus +( + NWCONN_HANDLE conn, + nuint16 objType, + const nstr8 N_FAR * objName, + pnint32 balance, + pnint32 limit, + HOLDS_STATUS N_FAR * holds +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWQueryAccountingInstalled +( + NWCONN_HANDLE conn, + pnuint8 installed +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSubmitAccountCharge +( + NWCONN_HANDLE conn, + nuint16 objType, + const nstr8 N_FAR * objName, + nuint16 serviceType, + nint32 chargeAmt, + nint32 holdCancelAmt, + nuint16 noteType, + const nstr8 N_FAR * note +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSubmitAccountHold +( + NWCONN_HANDLE conn, + nuint16 objType, + const nstr8 N_FAR * objName, + nint32 holdAmt +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSubmitAccountNote +( + NWCONN_HANDLE conn, + nuint16 objType, + const nstr8 N_FAR * objName, + nuint16 serviceType, + nuint16 noteType, + const nstr8 N_FAR * note +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwadevnt.h b/c_clientlogin/xplatincl/nwadevnt.h new file mode 100644 index 00000000..820cda40 --- /dev/null +++ b/c_clientlogin/xplatincl/nwadevnt.h @@ -0,0 +1,778 @@ +/****************************************************************************** + + %name: nwadevnt.h % + %version: 4 % + %date_modified: Tue Dec 1 10:09:29 1998 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWADEVNT_H ) +#define NWADEVNT_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#include "npackon.h" + +/* Bit definitions for volume audit events used in bit map */ +enum auditBitMapIDs +{ + /* first 32 (0 - 31)bits reserved for dir service */ + A_BIT_BIND_CHG_OBJ_SECURITY = 32, + A_BIT_BIND_CHG_PROP_SECURITY, + A_BIT_BIND_CREATE_OBJ, + A_BIT_BIND_CREATE_PROPERTY, + A_BIT_BIND_DELETE_OBJ, + A_BIT_BIND_DELETE_PROPERTY, + A_BIT_CHANGE_DATE_TIME, + A_BIT_CHANGE_EQUIVALENCE, + A_BIT_CHANGE_SECURITY_GROUP, + A_BIT_UCLOSE_FILE, + A_BIT_CLOSE_BINDERY, + A_BIT_UCREATE_FILE, + A_BIT_CREATE_USER, + A_BIT_UDELETE_FILE, + A_BIT_DELETE_USER, + A_BIT_DIR_SPACE_RESTRICTIONS, + A_BIT_DISABLE_ACCOUNT, + A_BIT_DOWN_SERVER, + A_BIT_GRANT_TRUSTEE, + A_BIT_INTRUDER_LOCKOUT_CHANGE, + A_BIT_LOGIN_USER, + A_BIT_LOGIN_USER_FAILURE, + A_BIT_LOGOUT_USER, + A_BIT_NET_LOGIN, + A_BIT_UMODIFY_ENTRY, + A_BIT_OPEN_BINDERY, + A_BIT_UOPEN_FILE, + A_BIT_UREAD_FILE, + A_BIT_REMOVE_TRUSTEE, + A_BIT_URENAME_MOVE_FILE, + A_BIT_RENAME_USER, + A_BIT_USALVAGE_FILE, + A_BIT_STATION_RESTRICTIONS, + A_BIT_CHANGE_PASSWORD, + A_BIT_TERMINATE_CONNECTION, + A_BIT_UP_SERVER, + A_BIT_USER_CHANGE_PASSWORD, + A_BIT_USER_LOCKED, + A_BIT_USER_SPACE_RESTRICTIONS, + A_BIT_USER_UNLOCKED, + A_BIT_VOLUME_MOUNT, + A_BIT_VOLUME_DISMOUNT, + A_BIT_UWRITE_FILE, + A_BIT_GOPEN_FILE, + A_BIT_GCLOSE_FILE, + A_BIT_GCREATE_FILE, + A_BIT_GDELETE_FILE, + A_BIT_GREAD_FILE, + A_BIT_GWRITE_FILE, + A_BIT_GRENAME_MOVE_FILE, + A_BIT_GMODIFY_ENTRY, + A_BIT_IOPEN_FILE, + A_BIT_ICLOSE_FILE, + A_BIT_ICREATE_FILE, + A_BIT_IDELETE_FILE, + A_BIT_IREAD_FILE, + A_BIT_IWRITE_FILE, + A_BIT_IRENAME_MOVE_FILE, + A_BIT_IMODIFY_ENTRY, + A_BIT_Q_ATTACH_SERVER, + A_BIT_Q_CREATE, + A_BIT_Q_CREATE_JOB, + A_BIT_Q_DESTROY, + A_BIT_Q_DETACH_SERVER, + A_BIT_Q_EDIT_JOB, + A_BIT_Q_JOB_FINISH, + A_BIT_Q_JOB_SERVICE, + A_BIT_Q_JOB_SERVICE_ABORT, + A_BIT_Q_REMOVE_JOB, + A_BIT_Q_SET_JOB_PRIORITY, + A_BIT_Q_SET_STATUS, + A_BIT_Q_START_JOB, + A_BIT_Q_SWAP_RIGHTS, + A_BIT_NLM_ADD_RECORD, + A_BIT_NLM_ADD_ID_RECORD, + A_BIT_CLOSE_MODIFIED_FILE, + A_BIT_GCREATE_DIRECTORY, + A_BIT_ICREATE_DIRECTORY, + A_BIT_UCREATE_DIRECTORY, + A_BIT_GDELETE_DIRECTORY, + A_BIT_IDELETE_DIRECTORY, + A_BIT_UDELETE_DIRECTORY, /* 113 */ + /* Start of Trusted NetWare Auditing */ + A_BIT_GET_CURRENT_ACCNT_STATS, + A_BIT_SUBMIT_ACCOUNT_CHARGE, + A_BIT_SUBMIT_ACCOUNT_HOLD, + A_BIT_SUBMIT_ACCOUNT_NOTE, + A_BIT_DISABLE_BROADCASTS, + A_BIT_GET_BROADCAST_MESSAGE, + A_BIT_ENABLE_BROADCASTS, + A_BIT_BROADCAST_TO_CONSOLE, + A_BIT_SEND_BROADCAST_MESSAGE, + A_BIT_WRITE_EATTRIB, + A_BIT_READ_EATTRIB, + A_BIT_ENUM_EATTRIB, + A_BIT_SEE_FSO, /* not used */ + A_BIT_GET_FSO_RIGHTS, + A_BIT_PURGE_FILE, + A_BIT_SCAN_DELETED, + A_BIT_DUPLICATE_EATTRIB, + A_BIT_ALLOC_DIR_HANDLE, + A_BIT_SET_HANDLE, + A_BIT_SEARCH, + A_BIT_GEN_DIR_BASE_AND_VOL, + A_BIT_OBTAIN_FSO_INFO, + A_BIT_GET_REF_COUNT, + A_BIT_MODIFY_ENTRY_NO_SRCH, /* not used */ + A_BIT_SCAN_TRUSTEES, + A_BIT_GET_OBJ_EFFECTIVE_RTS, + A_BIT_PARSE_TREE, + A_BIT_SET_SPOOL_FILE_FLAGS, + A_BIT_RESTORE_Q_SERVER_RTS, + A_BIT_Q_JOB_SIZE, + A_BIT_Q_JOB_LIST, + A_BIT_Q_JOB_FROM_FORM_LIST, + A_BIT_READ_Q_JOB_ENTRY, + A_BIT_MOVE_Q_JOB, + A_BIT_READ_Q_STATUS, + A_BIT_READ_Q_SERVER_STATUS, + A_BIT_EXTENDED_SEARCH, + A_BIT_GET_DIR_ENTRY, + A_BIT_SCAN_VOL_USER_RESTR, + A_BIT_VERIFY_SERIAL, + A_BIT_GET_DISK_UTILIZATION, + A_BIT_LOG_FILE, + A_BIT_SET_COMP_FILE_SZ, + A_BIT_DISABLE_LOGIN, + A_BIT_ENABLE_LOGIN, + A_BIT_DISABLE_TTS, + A_BIT_ENABLE_TTS, + A_BIT_SEND_CONSOLE_BCAST, + A_BIT_GET_REMAIN_OBJ_DISK_SPC, + A_BIT_GET_CONN_TASKS, + A_BIT_GET_CONN_OPEN_FILES, + A_BIT_GET_CONN_USING_FILE, + A_BIT_GET_PHYS_REC_LOCKS_CONN, + A_BIT_GET_PHYS_REC_LOCKS_FILE, + A_BIT_GET_LOG_REC_BY_CONN, + A_BIT_GET_LOG_REC_INFO, + A_BIT_GET_CONN_SEMS, + A_BIT_GET_SEM_INFO, + A_BIT_MAP_DIR_TO_PATH, + A_BIT_CONVERT_PATH_TO_ENTRY, + A_BIT_DESTROY_SERVICE_CONN, + A_BIT_SET_Q_SERVER_STATUS, + A_BIT_CONSOLE_COMMAND, + A_BIT_REMOTE_ADD_NS, + A_BIT_REMOTE_DISMOUNT, + A_BIT_REMOTE_EXE, + A_BIT_REMOTE_LOAD, + A_BIT_REMOTE_MOUNT, + A_BIT_REMOTE_SET, + A_BIT_REMOTE_UNLOAD, + A_BIT_GET_CONN_RANGE, + A_BIT_GET_VOL_LABEL, + A_BIT_SET_VOL_LABEL, + A_BIT_FAILED_MASV_ACCESS +}; + +/* The following is used for Volume Auditing Events */ +typedef struct tagNWVolAuditRecord +{ + nuint16 eventTypeID; + nuint16 chkWord; + nuint32 connectionID; + nuint32 processUniqueID; + nuint32 successFailureStatusCode; + nuint16 dosDate; + nuint16 dosTime; +/* nuint8 extra[0]; start of 'union EventUnion' */ +}NWVolumeAuditRcd, N_FAR *pNWVolumeAuditRcd; + +/* auditing events that are returned in the AuditRecord eventTypeID field */ +enum auditedEventIDs +{ + A_EVENT_BIND_CHG_OBJ_SECURITY = 1, + A_EVENT_BIND_CHG_PROP_SECURITY = 2, + A_EVENT_BIND_CREATE_OBJ = 3, + A_EVENT_BIND_CREATE_PROPERTY = 4, + A_EVENT_BIND_DELETE_OBJ = 5, + A_EVENT_BIND_DELETE_PROPERTY = 6, + A_EVENT_CHANGE_DATE_TIME = 7, + A_EVENT_CHANGE_EQUIVALENCE = 8, + A_EVENT_CHANGE_SECURITY_GROUP = 9, + A_EVENT_CLOSE_FILE = 10, + A_EVENT_CLOSE_BINDERY = 11, + A_EVENT_CREATE_FILE = 12, + A_EVENT_CREATE_USER = 13, + A_EVENT_DELETE_FILE = 14, + A_EVENT_DELETE_USER = 15, + A_EVENT_DIR_SPACE_RESTRICTIONS = 16, + A_EVENT_DISABLE_ACCOUNT = 17, + A_EVENT_DOWN_SERVER = 18, + A_EVENT_GRANT_TRUSTEE = 19, + A_EVENT_INTRUDER_LOCKOUT_CHNG = 20, + A_EVENT_LOGIN_USER = 21, + A_EVENT_LOGIN_USER_FAILURE = 22, + A_EVENT_LOGOUT_USER = 23, + A_EVENT_NET_LOGIN = 24, + A_EVENT_MODIFY_ENTRY = 25, + A_EVENT_OPEN_BINDERY = 26, + A_EVENT_OPEN_FILE = 27, + A_EVENT_Q_ATTACH_SERVER = 28, + A_EVENT_Q_CREATE = 29, + A_EVENT_Q_CREATE_JOB = 30, + A_EVENT_Q_DESTROY = 31, + A_EVENT_Q_DETACH_SERVER = 32, + A_EVENT_Q_EDIT_JOB = 33, + A_EVENT_Q_JOB_FINISH = 34, + A_EVENT_Q_JOB_SERVICE = 35, + A_EVENT_Q_JOB_SERVICE_ABORT = 36, + A_EVENT_Q_REMOVE_JOB = 37, + A_EVENT_Q_SET_JOB_PRIORITY = 38, + A_EVENT_Q_SET_STATUS = 39, + A_EVENT_Q_START_JOB = 40, + A_EVENT_Q_SWAP_RIGHTS = 41, + A_EVENT_READ_FILE = 42, + A_EVENT_REMOVE_TRUSTEE = 43, + A_EVENT_RENAME_MOVE_FILE = 44, + A_EVENT_RENAME_USER = 45, + A_EVENT_SALVAGE_FILE = 46, + A_EVENT_STATION_RESTRICTIONS = 47, + A_EVENT_CHANGE_PASSWORD = 48, + A_EVENT_TERMINATE_CONNECTION = 49, + A_EVENT_UP_SERVER = 50, + A_EVENT_USER_CHANGE_PASSWORD = 51, + A_EVENT_USER_LOCKED = 52, + A_EVENT_USER_SPACE_RESTRICTION = 53, + A_EVENT_USER_UNLOCKED = 54, + A_EVENT_VOLUME_MOUNT = 55, + A_EVENT_VOLUME_DISMOUNT = 56, + A_EVENT_WRITE_FILE = 57, + A_ACTIVE_CONNECTION_RCD = 58, + A_ADD_AUDITOR_ACCESS = 59, + A_ADD_AUDIT_PROPERTY = 60, + A_CHANGE_AUDIT_PASSWORD = 61, + A_DELETE_AUDIT_PROPERTY = 62, + A_DISABLE_VOLUME_AUDIT = 63, + A_OPEN_FILE_HANDLE_RCD = 64, + A_ENABLE_VOLUME_AUDITING = 65, + A_REMOVE_AUDITOR_ACCESS = 66, + A_RESET_AUDIT_FILE = 67, + A_RESET_AUDIT_FILE2 = 68, + A_RESET_CONFIG_FILE = 69, + A_WRITE_AUDIT_BIT_MAP = 70, + A_WRITE_AUDIT_CONFIG_HDR = 71, + A_NLM_ADD_RECORD = 72, + A_ADD_NLM_ID_RECORD = 73, + A_CHANGE_AUDIT_PASSWORD2 = 74, + A_EVENT_CREATE_DIRECTORY = 75, + A_EVENT_DELETE_DIRECTORY = 76, + A_INTRUDER_DETECT = 77, + A_VOLUME_NAME_RCD = 78, + A_BEGIN_AUDIT_FILE_READ = 79, + A_VOLUME_NAME_RCD_2 = 80, + A_DELETE_OLD_AUDIT_FILE = 81, + A_QUERY_AUDIT_STATUS = 82, + + /* begin TNW changes */ + + A_EVENT_GET_CURRENT_ACNT_STATS = 200, + A_EVENT_SUBMIT_ACCOUNT_CHARGE = 201, + A_EVENT_SUBMIT_ACCOUNT_HOLD = 202, + A_EVENT_SUBMIT_ACCOUNT_NOTE = 203, + A_EVENT_DISABLE_BROADCASTS = 204, + A_EVENT_GET_BROADCAST_MESSAGE = 205, + A_EVENT_ENABLE_BROADCASTS = 206, + A_EVENT_BROADCAST_TO_CONSOLE = 207, + A_EVENT_SEND_BROADCAST_MESSAGE = 208, + A_EVENT_WRITE_EATTRIB = 209, + A_EVENT_READ_EATTRIB = 210, + A_EVENT_ENUM_EATTRIB = 211, + A_EVENT_SEE_FSO = 212, /* not used */ + A_EVENT_GET_FSO_RIGHTS = 213, + A_EVENT_PURGE_FILE = 214, + A_EVENT_SCAN_DELETED = 215, + A_EVENT_DUPLICATE_EATTRIB = 216, + A_EVENT_ALLOC_DIR_HANDLE = 217, + A_EVENT_SET_HANDLE = 218, + A_EVENT_SEARCH = 219, + A_EVENT_GEN_DIR_BASE_AND_VOL = 220, + A_EVENT_OBTAIN_FSO_INFO = 221, + A_EVENT_GET_REF_COUNT = 222, + A_EVENT_MODIFY_ENTRY_NO_SEARCH = 223, + A_EVENT_SCAN_TRUSTEES = 224, + A_EVENT_GET_OBJ_EFFECTIVE_RGHT = 225, + A_EVENT_PARSE_TREE = 226, + A_EVENT_SET_SPOOL_FILE_FLAGS = 227, + A_EVENT_RESTORE_Q_SERVER_RGHT = 228, + A_EVENT_Q_JOB_SIZE = 229, + A_EVENT_Q_JOB_LIST = 230, + A_EVENT_Q_JOB_FROM_FORM_LIST = 231, + A_EVENT_READ_Q_JOB_ENTRY = 232, + A_EVENT_MOVE_Q_JOB = 233, + A_EVENT_READ_Q_STATUS = 234, + A_EVENT_READ_Q_SERVER_STATUS = 235, + A_EVENT_EXTENDED_SEARCH = 236, + A_EVENT_GET_DIR_ENTRY = 237, + A_EVENT_SCAN_VOL_USER_RESTR = 238, + A_EVENT_VERIFY_SERIAL = 239, + A_EVENT_GET_DISK_UTILIZATION = 240, + A_EVENT_LOG_FILE = 241, + A_EVENT_SET_COMP_FILE_SZ = 242, + A_EVENT_DISABLE_LOGIN = 243, + A_EVENT_ENABLE_LOGIN = 244, + A_EVENT_DISABLE_TTS = 245, + A_EVENT_ENABLE_TTS = 246, + A_EVENT_SEND_CONSOLE_BROADCAST = 247, + A_EVENT_GET_REMAIN_OBJ_DISK_SPC = 248, + A_EVENT_GET_CONN_TASKS = 249, + A_EVENT_GET_CONN_OPEN_FILES = 250, + A_EVENT_GET_CONN_USING_FILE = 251, + A_EVENT_GET_PHYS_REC_LOCKS_CONN = 252, + A_EVENT_GET_PHYS_REC_LOCKS_FILE = 253, + A_EVENT_GET_LOG_REC_BY_CONN = 254, + A_EVENT_GET_LOG_REC_INFO = 255, + A_EVENT_GET_CONN_SEMS = 256, + A_EVENT_GET_SEM_INFO = 257, + A_EVENT_MAP_DIR_TO_PATH = 258, + A_EVENT_CONVERT_PATH_TO_ENTRY = 259, + A_EVENT_DESTROY_SERVICE_CONN = 260, + A_EVENT_SET_Q_SERVER_STATUS = 261, + A_EVENT_CONSOLE_COMMAND = 262, + A_EVENT_REMOTE_ADD_NS = 263, + A_EVENT_REMOTE_DISMOUNT = 264, + A_EVENT_REMOTE_EXE = 265, + A_EVENT_REMOTE_LOAD = 266, + A_EVENT_REMOTE_MOUNT = 267, + A_EVENT_REMOTE_SET = 268, + A_EVENT_REMOTE_UNLOAD = 269, + A_EVENT_GET_CONN_RANGE = 270, + A_EVENT_GET_VOL_LABEL = 271, + A_EVENT_SET_VOL_LABEL = 272, + A_EVENT_FAILED_MASV_ACCESS = 273, + A_EVENT_LAST_PLUS_ONE = 274 +}; + +typedef struct tagNWModifyStructure +{ + nuint8 *MModifyName; + nuint32 MFileAttributes; + nuint32 MFileAttributesMask; + nuint16 MCreateDate; + nuint16 MCreateTime; + nuint32 MOwnerID; + nuint16 MLastArchivedDate; + nuint16 MLastArchivedTime; + nuint32 MLastArchivedID; + nuint16 MLastUpdatedDate; /* also last modified date and time. */ + nuint16 MLastUpdatedTime; + nuint32 MLastUpdatedID; + nuint16 MLastAccessedDate; + nuint16 MInheritanceGrantMask; + nuint16 MInheritanceRevokeMask; + nuint32 MMaximumSpace; +} NWModifyStructure, N_FAR *pNWModifyStructure; + +#ifndef MModifyNameBit +#define MModifyNameBit 0x0001L +#define MFileAttributesBit 0x0002L +#define MCreateDateBit 0x0004L +#define MCreateTimeBit 0x0008L +#define MOwnerIDBit 0x0010L +#define MLastArchivedDateBit 0x0020L +#define MLastArchivedTimeBit 0x0040L +#define MLastArchivedIDBit 0x0080L +#define MLastUpdatedDateBit 0x0100L +#define MLastUpdatedTimeBit 0x0200L +#define MLastUpdatedIDBit 0x0400L +#define MLastAccessedDateBit 0x0800L +#define MInheritedRightsMaskBit 0x1000L +#define MMaximumSpaceBit 0x2000L +#endif + +union EventUnion +{ + struct eventChgDate + { + nuint32 newDosDateTime; + } EChgDate; + + struct eventCreateUser + { + nuint32 userID; + nuint8 name[1]; + } ECreateUser; + + struct eventBindChgSecurity + { + nuint32 newSecurity; + nuint32 oldSecurity; + nuint8 name[1]; + } EBindChgSecurity; + + struct eventBindChgSecGrp + { + nuint32 addFlag; + nuint8 objName[1]; /* obj name */ + nuint8 name[1]; /* member name */ + } EBindChgSecGrp; + + struct eventBindCreateObj + { + nuint32 objectID; + nuint32 security; + nuint8 name[1]; + } EBindCreateObj; + + struct eventBindCreateProp + { + nuint32 security; + nuint8 name[1]; + } EBindCreateProp; + + struct eventBindDeleteProp + { + nuint8 name[1]; + } EBindDeleteProp; + + struct eventIntruderLockoutChg + { + nuint8 hbaa; /* nuint8 exchanged allowed attempts */ + nuint8 lbaa; + nuint8 hbrm; /* reset minutes */ + nuint8 lbrm; + nuint8 hblm; /* lock minutes */ + nuint8 lblm; + } EILockChg; + + struct eventLogin + { + nuint32 userID; + nuint8 networkAddressType; + nuint8 networkAddressLength; + nuint8 networkAddress[1]; /* variable length */ + nuint8 name[1]; + } ELogin; + + + struct eventChgPasswd + { + nuint8 name[1]; /* object or user name */ + } EChgPasswd; + + struct eventChgSecurity + { + nuint32 newSecurity; + nuint32 oldSecurity; + nuint8 name[1]; + } EChgSecurity; + + struct eventFDelete + { + nuint32 nameSpace; + nuint8 fileName[1]; + } EFDelete; + + struct eventFOpen + { + nuint32 handle; + nuint32 rights; + nuint32 nameSpace; + nuint8 fileName[1]; + } EFOpen; + + struct eventFClose + { + nuint32 handle; + nuint32 modified; + } EFClose; + + struct eventFRead + { + nuint32 handle; + nuint32 byteCount; + nuint32 offset; + } EFRead; + + struct eventAuditProperty + { + nuint8 name[1]; + } EAuditProperty; + + struct eventModify /* modify dir entry */ + { + nuint32 modifyBits; + nuint32 nameSpace; + nuint8 modifyStruct[ sizeof(NWModifyStructure) ]; + nuint8 fileName[1]; + /* the following length preceeded strings are optional + as defined by the modify bits */ + nuint8 oldDosName[1]; + nuint8 newOwner[1]; + nuint8 lastArchivedBy[1]; + nuint8 lastModifiedBy[1]; + } EModify; + + struct eventQAttach + { + nuint8 qname[1]; + } EQAttach; + + struct eventQCreate + { + nuint32 qType; + nuint8 fileName[1]; + } EQCreate; + + struct eventQJobService + { + nuint32 tType; + nuint8 qname[1]; + } EQJobService; + + struct eventQSetStatus + { + nuint32 status; + nuint8 qname[1]; + } EQSetStatus; + + struct eventStationRestrictions + { + nuint8 name[1]; + nuint8 netAddress[1]; + } EStnRestrictions; + + struct eventTrustee + { + nuint32 trusteeID; + nuint32 rights; + nuint32 nameSpace; + nuint8 trusteeName[1]; + nuint8 fileName[1]; + } ETrustee; + + struct eventTrusteeSpace + { + nuint32 spaceValue; + nuint8 trusteeName[1]; + } ETSpace; + + struct auditingNLMAddRecord + { + nuint32 recordTypeID; + nuint32 dataLen; + nuint8 userName[1]; + nuint8 data[1]; + } ENLMRecord; +}; + +/* The following is used for Directory Services Auditing Events */ +typedef struct tagNWContAuditRecord +{ + nuint16 replicaNumber; + nuint16 eventTypeID; + nuint32 recordNumber; + nuint32 dosDateTime; + nuint32 userID; + nuint32 processUniqueID; + nuint32 successFailureStatusCode; +/* nuint8 extra[0]; start of 'union EventUnion' */ +}NWContAuditRecord, N_FAR *pNWContAuditRecord; + +/* Audit event bit definitions for Container Auditing */ +#define ADS_BIT_ADD_ENTRY 1 /* first bit no. is 1 */ +#define ADS_BIT_REMOVE_ENTRY 2 +#define ADS_BIT_RENAME_OBJECT 3 +#define ADS_BIT_MOVE_ENTRY 4 +#define ADS_BIT_CHANGE_SECURITY_EQUIV 5 +#define ADS_BIT_CHG_SECURITY_ALSO_EQUAL 6 +#define ADS_BIT_CHANGE_ACL 7 +#define ADS_BIT_CHG_STATION_RESTRICTION 8 +#define ADS_BIT_LOGIN 9 +#define ADS_BIT_LOGOUT 10 +#define ADS_BIT_CHANGE_PASSWORD 11 +#define ADS_BIT_USER_LOCKED 12 +#define ADS_BIT_USER_UNLOCKED 13 +#define ADS_BIT_USER_DISABLE 14 +#define ADS_BIT_USER_ENABLE 15 +#define ADS_BIT_CHANGE_INTRUDER_DETECT 16 + +#define ADS_BIT_ADD_PARTITION 17 +#define ADS_BIT_REMOVE_PARTITION 18 +#define ADS_BIT_ADD_REPLICA 19 +#define ADS_BIT_REMOVE_REPLICA 20 + +#define ADS_BIT_SPLIT_PARTITION 21 +#define ADS_BIT_JOIN_PARTITIONS 22 +#define ADS_BIT_CHANGE_REPLICA_TYPE 23 +#define ADS_BIT_REPAIR_TIME_STAMPS 24 +#define ADS_BIT_MOVE_SUB_TREE 25 +#define ADS_BIT_ABORT_PARTITION_OP 26 +#define ADS_BIT_SEND_REPLICA_UPDATES 27 +#define ADS_BIT_RECEIVE_REPLICA_UPDATES 28 + +/* Added for Trusted NetWare auditing */ +#define ADS_BIT_ADD_MEMBER 29 +#define ADS_BIT_BACKUP_ENTRY 30 +#define ADS_BIT_CHANGE_BIND_OBJ_SECUR 31 +#define ADS_BIT_CHANGE_PROP_SECURITY 32 +#define ADS_BIT_CHANGE_TREE_NAME 33 +#define ADS_BIT_CHECK_CONSOLE_OPERATOR 34 +#define ADS_BIT_COMPARE_ATTR_VALUE 35 +#define ADS_BIT_CREATE_PROPERTY 36 +#define ADS_BIT_CREATE_SUBORDINATE_REF 37 +#define ADS_BIT_DEFINE_ATTR_DEF 38 +#define ADS_BIT_DEFINE_CLASS_DEF 39 +#define ADS_BIT_DELETE_MEMBER 40 +#define ADS_BIT_DELETE_PROPERTY 41 +#define ADS_BIT_DS_NCP_RELOAD 42 +#define ADS_BIT_RESET_DS_COUNTERS 43 +#define ADS_BIT_FRAG_REQUEST 44 +#define ADS_BIT_INSPECT_ENTRY 45 +#define ADS_BIT_LIST_CONTAINABLE_CLASS 46 +#define ADS_BIT_LIST_PARTITIONS 47 +#define ADS_BIT_LIST_SUBORDINATES 48 +#define ADS_BIT_MERGE_TREE 49 +#define ADS_BIT_MODIFY_CLASS_DEF 50 +#define ADS_BIT_MOVE_TREE 51 +#define ADS_BIT_OPEN_STREAM 52 +#define ADS_BIT_READ 53 +#define ADS_BIT_READ_REFERENCES 54 +#define ADS_BIT_REMOVE_ATTR_DEF 55 +#define ADS_BIT_REMOVE_CLASS_DEF 56 +#define ADS_BIT_REMOVE_ENTRY_DIR 57 +#define ADS_BIT_RESTORE_ENTRY 58 +#define ADS_BIT_START_JOIN 59 +#define ADS_BIT_START_UPDATE_REPLICA 60 +#define ADS_BIT_START_UPDATE_SCHEMA 61 +#define ADS_BIT_SYNC_PARTITION 62 +#define ADS_BIT_SYNC_SCHEMA 63 +#define ADS_BIT_UPDATE_REPLICA 64 +#define ADS_BIT_UPDATE_SCHEMA 65 +#define ADS_BIT_VERIFY_PASSWORD 66 +#define ADS_BIT_ABORT_JOIN 67 +#define ADS_BIT_RESEND_ENTRY 68 +#define ADS_BIT_MUTATE_ENTRY 69 +#define ADS_BIT_MERGE_ENTRIES 70 +#define ADS_BIT_END_UPDATE_REPLICA 71 +#define ADS_BIT_END_UPDATE_SCHEMA 72 +#define ADS_BIT_CREATE_BACKLINK 73 +#define ADS_BIT_MODIFY_ENTRY 74 +#define ADS_BIT_REMOVE_BACKLINK 75 +#define ADS_BIT_NEW_SCHEMA_EPOCH 76 +#define ADS_BIT_CLOSE_BINDERY 77 +#define ADS_BIT_OPEN_BINDERY 78 +#define ADS_BIT_NLM_FIRST 89 +#define ADS_BIT_NLS_NLM 89 +#define ADS_BIT_NLM_LAST 99 + + +/* Audit Event ID for Container Audit Events */ + +#define ADS_ADD_ENTRY 101 /* unsigned long newEntryID */ +#define ADS_REMOVE_ENTRY 102 /* unsigned long oldEntryID */ +#define ADS_RENAME_OBJECT 103 /* unsigned long renamedEntryID, char *oldRDN */ +#define ADS_MOVE_ENTRY 104 /* unsigned long movedEntryID, char *oldDN */ +#define ADS_CHANGE_SECURITY_EQUIV 105 +#define ADS_CHG_SECURITY_ALSO_EQUAL 106 +#define ADS_CHANGE_ACL 107 +#define ADS_CHG_STATION_RESTRICTION 108 +#define ADS_LOGIN 109 /* unsigned long entryID */ +#define ADS_LOGOUT 110 +#define ADS_CHANGE_PASSWORD 111 /* unsigned long entryID */ +#define ADS_USER_LOCKED 112 /* unsigned long entryID */ +#define ADS_USER_UNLOCKED 113 /* unsigned long entryID */ +#define ADS_USER_DISABLE 114 /* unsigned long entryID */ +#define ADS_USER_ENABLE 115 /* unsigned long entryID */ +#define ADS_CHANGE_INTRUDER_DETECT 116 +#define ADS_ADD_PARTITION 117 +#define ADS_REMOVE_PARTITION 118 +#define ADS_ADD_REPLICA 119 +#define ADS_REMOVE_REPLICA 120 +#define ADS_SPLIT_PARTITION 121 +#define ADS_JOIN_PARTITIONS 122 +#define ADS_CHANGE_REPLICA_TYPE 123 +#define ADS_REPAIR_TIME_STAMPS 124 +#define ADS_MOVE_SUB_TREE 125 +#define ADS_ABORT_PARTITION_OP 126 +#define ADS_SEND_REPLICA_UPDATES 127 +#define ADS_RECEIVE_REPLICA_UPDATES 128 + +/* start Trusted NetWare auditing events */ +#define ADS_ADD_MEMBER 129 +#define ADS_BACKUP_ENTRY 130 +#define ADS_CHANGE_BIND_OBJ_SECURITY 131 +#define ADS_CHANGE_PROP_SECURITY 132 +#define ADS_CHANGE_TREE_NAME 133 +#define ADS_CHECK_CONSOLE_OPERATOR 134 +#define ADS_COMPARE_ATTR_VALUE 135 +#define ADS_CREATE_PROPERTY 136 +#define ADS_CREATE_SUBORDINATE_REF 137 +#define ADS_DEFINE_ATTR_DEF 138 +#define ADS_DEFINE_CLASS_DEF 139 +#define ADS_DELETE_MEMBER 140 +#define ADS_DELETE_PROPERTY 141 +#define ADS_DS_NCP_RELOAD 142 +#define ADS_RESET_DS_COUNTERS 143 +#define ADS_FRAG_REQUEST 144 +#define ADS_INSPECT_ENTRY 145 +#define ADS_LIST_CONTAINABLE_CLASSES 146 +#define ADS_LIST_PARTITIONS 147 +#define ADS_LIST_SUBORDINATES 148 +#define ADS_MERGE_TREE 149 +#define ADS_MODIFY_CLASS_DEF 150 +#define ADS_MOVE_TREE 151 +#define ADS_OPEN_STREAM 152 +#define ADS_READ 153 +#define ADS_READ_REFERENCES 154 +#define ADS_REMOVE_ATTR_DEF 155 +#define ADS_REMOVE_CLASS_DEF 156 +#define ADS_REMOVE_ENTRY_DIR 157 +#define ADS_RESTORE_ENTRY 158 +#define ADS_START_JOIN 159 +#define ADS_START_UPDATE_REPLICA 160 +#define ADS_START_UPDATE_SCHEMA 161 +#define ADS_SYNC_PARTITION 162 +#define ADS_SYNC_SCHEMA 163 +#define ADS_UPDATE_REPLICA 164 +#define ADS_UPDATE_SCHEMA 165 +#define ADS_VERIFY_PASSWORD 166 +#define ADS_ABORT_JOIN 167 +#define ADS_MUTATE_ENTRY 169 +#define ADS_MERGE_ENTRIES 170 + +#define ADS_END_UPDATE_REPLICA 171 +#define ADS_END_UPDATE_SCHEMA 172 +#define ADS_CREATE_BACKLINK 173 +#define ADS_MODIFY_ENTRY 174 +#define ADS_REMOVE_BACKLINK 175 +#define ADS_NEW_SCHEMA_EPOCH 176 +#define ADS_CLOSE_BINDERY 177 +#define ADS_OPEN_BINDERY 178 +#define ADS_CLOSE_STREAM 179 +/* + 180 - 188 reserved +*/ +#define ADS_NLM_FIRST 189 +#define ADS_NLS_NLM 189 +#define ADS_NLM_LAST 199 +#define ADS_LAST_PLUS_ONE 200 /* Must be last one */ +/* end TNW additions */ + + +#include "npackoff.h" +#endif /* NWADEVNT_H */ diff --git a/c_clientlogin/xplatincl/nwafp.h b/c_clientlogin/xplatincl/nwafp.h new file mode 100644 index 00000000..1e468ddc --- /dev/null +++ b/c_clientlogin/xplatincl/nwafp.h @@ -0,0 +1,306 @@ +/****************************************************************************** + + %name: nwafp.h % + %version: 4 % + %date_modified: Thu Oct 14 15:23:44 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWAFP_H ) +#define NWAFP_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** This is the structure that the application expects to see. Note that the + long name and short name will be null terminated, and one extra byte has + been added to long name and short name to assure word alignment **/ + +typedef struct +{ + nuint32 entryID; + nuint32 parentID; + nuint16 attributes; + nuint32 dataForkLength; + nuint32 resourceForkLength; + nuint16 numOffspring; + nuint16 creationDate; + nuint16 accessDate; + nuint16 modifyDate; + nuint16 modifyTime; + nuint16 backupDate; + nuint16 backupTime; + nuint8 finderInfo[32]; + nstr8 longName[34]; + nuint32 ownerID; + nstr8 shortName[14]; + nuint16 accessPrivileges; + nuint8 proDOSInfo[6]; +} AFPFILEINFO, NW_AFP_FILE_INFO; + +/** This is the structure that is actually returned from the NCP call **/ + +typedef struct +{ + nuint32 entryID; + nuint32 parentID; + nuint16 attributes; + nuint32 dataForkLength; + nuint32 resourceForkLength; + nuint16 numOffspring; + nuint16 creationDate; + nuint16 accessDate; + nuint16 modifyDate; + nuint16 modifyTime; + nuint16 backupDate; + nuint16 backupTime; + nuint8 finderInfo[32]; + nstr8 longName[32]; + nuint32 ownerID; + nstr8 shortName[12]; + nuint16 accessPrivileges; + nuint8 proDOSInfo[6]; +} RECPKT_AFPFILEINFO; + +typedef struct +{ + nuint16 attributes; + nuint16 creationDate; + nuint16 accessDate; + nuint16 modifyDate; + nuint16 modifyTime; + nuint16 backupDate; + nuint16 backupTime; + nuint8 finderInfo[32]; + nuint8 proDOSInfo[6]; +} AFPSETINFO, NW_AFP_SET_INFO; + + +/* the following are the constants that can be used for requestMasks + in NWAFPScanFileInformation and NWAFPGetFileInformation. +*/ +#ifndef AFP_GET_ATTRIBUTES +#define AFP_GET_ATTRIBUTES 0x0001 +#define AFP_GET_PARENT_ID 0x0002 +#define AFP_GET_CREATE_DATE 0x0004 +#define AFP_GET_ACCESS_DATE 0x0008 +#define AFP_GET_MODIFY_DATETIME 0x0010 +#define AFP_GET_BACKUP_DATETIME 0x0020 +#define AFP_GET_FINDER_INFO 0x0040 +#define AFP_GET_LONG_NAME 0x0080 +#define AFP_GET_ENTRY_ID 0x0100 +#define AFP_GET_DATA_LEN 0x0200 +#define AFP_GET_RESOURCE_LEN 0x0400 +#define AFP_GET_NUM_OFFSPRING 0x0800 +#define AFP_GET_OWNER_ID 0x1000 +#define AFP_GET_SHORT_NAME 0x2000 +#define AFP_GET_ACCESS_RIGHTS 0x4000 +#define AFP_GET_PRO_DOS_INFO 0x8000 +#define AFP_GET_ALL 0xffff +#endif + +/* + The following constants are used for NWAFPSetFileInformation +*/ +#ifndef AFP_SET_ATTRIBUTES +#define AFP_SET_ATTRIBUTES 0x0001 +#define AFP_SET_CREATE_DATE 0x0004 +#define AFP_SET_ACCESS_DATE 0x0008 +#define AFP_SET_MODIFY_DATETIME 0x0010 +#define AFP_SET_BACKUP_DATETIME 0x0020 +#define AFP_SET_FINDER_INFO 0x0040 +#define AFP_SET_PRO_DOS_INFO 0x8000 +#endif + +#ifndef AFP_SA_HIDDEN +#define AFP_SA_NORMAL 0x0000 +#define AFP_SA_HIDDEN 0x0100 +#define AFP_SA_SYSTEM 0x0200 +#define AFP_SA_SUBDIR 0x0400 +#define AFP_SA_FILES 0x0800 +#define AFP_SA_ALL 0x0F00 +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPAllocTemporaryDirHandle +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPEntryID, + const nstr8 N_FAR * AFPPathString, + NWDIR_HANDLE N_FAR * dirHandle, + pnuint8 accessRights +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPCreateDirectory +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPEntryID, + pnuint8 finderInfo, + pnstr8 AFPPathString, + pnuint32 newAFPEntryID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPCreateFile +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPEntryID, + nuint8 delExistingFile, + pnuint8 finderInfo, + pnstr8 AFPPathString, + pnuint32 newAFPEntryID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPDelete +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPEntryID, + const nstr8 N_FAR * AFPPathString +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPGetEntryIDFromName +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPEntryID, + const nstr8 N_FAR * AFPPathString, + pnuint32 newAFPEntryID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPGetEntryIDFromHandle +( + NWCONN_HANDLE conn, + const nuint8 N_FAR * NWHandle, + pnuint16 volNum, + pnuint32 AFPEntryID, + pnuint8 forkIndicator +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPGetEntryIDFromPathName +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint32 AFPEntryID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPGetFileInformation +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPEntryID, + nuint16 reqMask, + const nstr8 N_FAR * AFPPathString, + nuint16 structSize, + NW_AFP_FILE_INFO N_FAR * AFPFileInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPDirectoryEntry +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPOpenFileFork +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPEntryID, + nuint8 forkIndicator, + nuint8 accessMode, + const nstr8 N_FAR * AFPPathString, + pnuint32 fileID, + pnuint32 forkLength, + pnuint8 NWHandle, + NWFILE_HANDLE N_FAR * DOSFileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPRename +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPSourceEntryID, + nuint32 AFPDestEntryID, + const nstr8 N_FAR * AFPSrcPath, + const nstr8 N_FAR * AFPDstPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPScanFileInformation +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPEntryID, + pnuint32 AFPLastSeenID, + nuint16 searchMask, + nuint16 reqMask, + const nstr8 N_FAR * AFPPathString, + nuint16 structSize, + NW_AFP_FILE_INFO N_FAR * AFPFileInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPSetFileInformation +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 AFPBaseID, + nuint16 reqMask, + const nstr8 N_FAR * AFPPathString, + nuint16 structSize, + NW_AFP_SET_INFO N_FAR * AFPSetInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPSupported +( + NWCONN_HANDLE conn, + nuint16 volNum +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAFPASCIIZToLenStr +( + pnstr8 pbstrDstStr, + const nstr8 N_FAR * pbstrSrcStr +); + + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwalias.h b/c_clientlogin/xplatincl/nwalias.h new file mode 100644 index 00000000..35c463dc --- /dev/null +++ b/c_clientlogin/xplatincl/nwalias.h @@ -0,0 +1,329 @@ +/****************************************************************************** + + %name: nwalias.h % + %version: 4 % + %date_modified: Wed Dec 18 12:05:25 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWALIAS_H ) +#define NWALIAS_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#define FILE_ATTRIBUTES_MASK nuint32 +#define NWACCESS_MODE nuint8 +#define NWACCESS_RIGHTS nuint8 +#define NWACCT_BALANCE nint32 +#define NWACCT_HOLDS nuint16 +#define NWACCT_LIMIT nint32 +#define NWADDR_LEN nuint8 +#define NWADDR_TYPE nuint8 +#define NWAES_COUNT nuint16 +#define NWAFP_ACCESS_PRIVILEGES nuint16 +#define NWAFP_ENTRY_ID nuint32 +#define NWAFP_FILE_ATTRIBUTES nuint16 +#define NWAFP_FILE_INFO AFPFILEINFO +#define NWAFP_FORK_LEN nuint32 +#define NWAFP_NUM_OFFSPRING nuint16 +#define NWAFP_SET_INFO AFPSETINFO +#define NWAPP_NUM nuint16 +#define NWASN1_ID Asn1ID_T +#define NWATTR nuint32 +#define NWATTRIBUTES nuint32 +#define NWATTR_INFO Attr_Info_T +#define NWAUDIT_BUF_SIZE nuint16 +#define NWAUDIT_CONN_ID nuint32 +#define NWAUDIT_CONTAINER_BIT_MAP nuint32 +#define NWAUDIT_DATA_LEN nuint32 +#define NWAUDIT_DATE_TIME nuint32 +#define NWAUDIT_DS_FLAG nint16 +#define NWAUDIT_EVENT nuint16 +#define NWAUDIT_FILE_CODE nint16 +#define NWAUDIT_FILE_HANDLE nuint32 +#define NWAUDIT_FLAGS nuint32 +#define NWAUDIT_KEY_BUF pnuint8 +#define NWAUDIT_LEVEL nuint8 +#define NWAUDIT_NAME_SPACE nuint32 +#define NWAUDIT_OBJ_SECURITY nuint32 +#define NWAUDIT_PASSWORD pnuint8 +#define NWAUDIT_PROCESS_ID nuint32 +#define NWAUDIT_QUEUE_TYPE nuint32 +#define NWAUDIT_RECORD_ID nuint32 +#define NWAUDIT_REC_NUM nuint32 +#define NWAUDIT_REPLICA_NUM nuint16 +#define NWAUDIT_SIZE NWSIZE +#define NWAUDIT_STATUS_CODE nuint32 +#define NWAUDIT_TRUSTEE_RIGHTS nuint32 +#define NWAUDIT_VOL_NUM nuint32 +#define NWAUGMENT nuint16 /* AN ADDITIONAL FLAG SIZE */ +#define NWBITS nuint32 +#define NWBROADCAST_MODE nuint16 +#define NWBUF_SIZE nuint16 +#define NWCHANGE_BITS nuint32 +#define NWCHANGE_TYPE nuint32 +#define NWCHARGE_AMOUNT nint32 +#define NWCLASS_INFO Class_Info_T +#define NWCONFIG_DEFAULT_VALUE nint32 +#define NWCONFIG_ELEMENT_NUM nint16 +#define NWCONFIG_PARAM_TYPE nint16 +#define NWCONN_FLAGS nuint16 +#define NWCONN_NUM_WORD nuint16 +#define NWCONN_TYPE nuint8 +#define NWCOUNT nuint32 +#define NWCTLR_NUM nuint8 +#define NWCTLR_TYPE nuint8 +#define NWCURRENT_REC nuint16 +#define NWDATA_STREAM nuint32 +#define NWDATE nuint16 +#define NWDATE_TIME nuint32 +#define NWDELETE_TIME nuint32 +#define NWDENY_COUNT nuint16 +#define NWDEVICE_ID nuint16 +#define NWDIR_ATTRIBUTES nuint8 +#define NWDIR_BASE nuint32 +#define NWDIR_ENTRY nuint32 +#define NWDIR_ID nuint8 +#define NWDIR_NUM nuint16 +#define NWDIR_SPACE nuint32 +#define NWDIR_STAMP nuint16 +#define NWDIR_TRUSTEE_RIGHTS nuint16 +#define NWDIR_VOL nuint8 +#define NWDISK_CHANNEL nuint8 +#define NWDISK_DRV_TYPE nuint8 +#define NWDISK_FLAGS nuint16 +#define NWDISK_NUM nuint8 +#define NWDISK_SPACE nuint32 +#define NWDISK_TYPE nuint8 +#define NWDISTANCE nuint16 +#define NWDMA nuint8 +#define NWDM_FLAGS nuint32 +#define NWDRIVE_NUM nuint16 +#define NWDRIVE_NUMBER nuint8 +#define NWDRV_COMMAND nuint32 +#define NWDRV_CONFIG nuint32 +#define NWDRV_FLAGS nuint16 +#define NWDRV_ID nuint16 +#define NWDRV_LINK nuint32 +#define NWDRV_MEM nuint32 +#define NWDRV_NAME nuint32 +#define NWDRV_TAG nuint32 +#define NWDRV_TYPE nuint32 +#define NWDRV_VERSION nuint8 +#define NWDSLEN nuint32 +#define NWDS_BUFFER Buf_T +#define NWDS_EVENT nuint32 +#define NWDS_FILTER_CURSOR Filter_Cursor_T +#define NWDS_FILTER_LEVEL nuint16 +#define NWDS_FILTER_NODE Filter_Node_T +#define NWDS_FLAGS nuint32 +#define NWDS_ID nint16 +#define NWDS_INTERVAL nuint32 +#define NWDS_ITERATION nint32 +#define NWDS_LOGIN_FILE nint16 +#define NWDS_NUM_OBJ nint32 +#define NWDS_OPERATION nuint32 +#define NWDS_PRIVILEGES nuint32 +#define NWDS_SEARCH_SCOPE nuint16 +#define NWDS_SESSION_KEY NWDS_Session_Key_T +#define NWDS_SIZE nuint32 +#define NWDS_SYNTAX_FLAGS nint16 +#define NWDS_TOKEN nuint16 +#define NWDS_TYPE nuint32 +#define NWDS_TYPE_LEVEL nuint32 +#define NWDS_VALIDITY nuint32 +#define NWDS_VALUE nuint32 +#define NWEA NW_EA_HANDLE +#define NWEA_HANDLE nuint32 +#define NWEA_KEY nuint16 +#define NWEA_KEY_LEN nuint16 +#define NWEA_KEY_OFFSET nuint16 +#define NWEA_SCAN NW_EA_FF_STRUCT +#define NWECB_CANCEL_COUNT nuint16 +#define NWELEMENT_VALUE nint16 +#define NWEMAIL_TYPE nuint32 +#define NWFACTOR nuint32 +#define NWFAT nuint32 +#define NWFILE_ATTR nuint8 +#define NWFILE_LEN nuint32 +#define NWFILE_MODE nuint8 +#define NWFILE_SYS_ID nuint32 +#define NWFINDER_INFO nuint8 +#define NWFLAGS nuint8 +#define NWFORM_NUM nuint8 +#define NWFORM_TYPE nuint16 +#define NWFRAG_SIZE nuint16 +#define NWFSE_CONN_TYPE nuint32 +#define NWFSE_FLAGS nuint32 +#define NWGLT_FAIL_COUNT nuint16 +#define NWHANDLE nuint8 +#define NWHF_START nuint32 +#define NWHOLDS_INFO HOLDS_INFO +#define NWHOLDS_STATUS HOLDS_STATUS +#define NWHOLD_AMOUNT nuint32 +#define NWHOLD_CANCEL_AMOUNT nuint32 +#define NWINFO_LEVEL nuint32 +#define NWINTERRUPT nuint8 +#define NWIO_MEM nuint16 +#define NWJOB_FLAGS nuint16 +#define NWJOB_HANDLE nuint32 +#define NWJOB_POSITION nuint8 +#define NWJOB_POSITION2 nuint16 +#define NWJOB_TYPE nuint16 +#define NWLAN_NUM nuint8 +#define NWLAST_RECORD nint16 +#define NWLEN nuint32 +#define NWLENGTH nuint16 +#define NWLOCAL_FILE_HANDLE nuint16 /* FOR DOS, OS/2, AND WINDOWS */ +#define NWLOCAL_MODE nuint16 +#define NWLOCAL_SCOPE nuint16 +#define NWLOCK_COUNT nuint16 +#define NWLOCK_DATA_STREAM nuint8 +#define NWLOCK_STATE nuint8 +#define NWLOCK_TYPE nuint8 +#define NWLOCK_TYPE nuint8 +#define NWLOGIN_TIME nuint8[7] +#define NWLPT nuint8 +#define NWMAX_PACKET_SIZE nuint16 +#define NWMEDIA_MASK nuint32 +#define NWMEDIA_TYPE nuint32 +#define NWMEM_OFFSET nuint16 +#define NWMINUTES nuint8 +#define NWMODULE_ID nuint32 +#define NWNAME pnuint8 +#define NWNAME_LEN nuint8 +#define NWNAME_SPACE nuint8 +#define NWNAME_SPACE_TYPE nuint32 +#define NWNET_ADDR nuint8 +#define NWNET_ADDR_LEN nuint32 +#define NWNET_ADDR_TYPE nuint32 +#define NWNEXT_REQUEST nuint16 +#define NWNLM_ID nuint32 +#define NWNLM_TYPE nuint32 +#define NWNOTE_TYPE nuint16 +#define NWNS_ACCESS_MODE nuint16 +#define NWNS_ACCESS_RIGHTS nuint16 +#define NWNS_ATTR nuint16 +#define NWNS_BITS nuint16 +#define NWNS_DATA_STREAM nuint8 +#define NWNS_DATA_STREAM2 nuint16 +#define NWNS_FLAGS nuint16 +#define NWNS_HANDLE nuint32 +#define NWNS_LIST_SIZE nuint8 +#define NWNS_MASK nuint32 +#define NWNS_NUM nuint8 +#define NWNS_TYPE nuint16 +#define NWNUM nuint32 +#define NWNUMBER nuint16 +#define NWNUMBER_ENTRIES nuint8 +#define NWNUM_BLOCKS nuint32 +#define NWNUM_BUFFERS nuint16 +#define NWNUM_BYTES nuint32 +#define NWNUM_CONNS nuint8 +#define NWNUM_COPIES nuint8 +#define NWNUM_DIR_ENTRIES nuint32 +#define NWNUM_DRIVES nuint8 +#define NWNUM_ELEMENTS nint16 +#define NWNUM_ENTRIES nuint16 +#define NWNUM_FORKS nuint8 +#define NWNUM_HEADS nuint8 +#define NWNUM_HOPS nuint16 +#define NWNUM_PACKETS nuint32 +#define NWNUM_REQUESTS nuint32 +#define NWNUM_SECTORS nuint8 +#define NWNUM_TRANSACTIONS nuint8 +#define NWOBJECT_INFO Object_Info_T +#define NWOBJ_ID nuint32 +#define NWOBJ_TYPE nuint16 +#define NWOFFSET nuint32 +#define NWOPEN_COUNT nuint16 +#define NWOPTION_NUM nuint8 +#define NWOS_REVISION nuint16 +#define NWOS_VERSION nuint16 +#define NWPATH_SIZE nuint16 +#define NWPATH_VOL nuint8 +#define NWPOSITION nuint32 +#define NWPRINTER nuint16 +#define NWPRINT_FLAGS nuint16 +#define NWPRINT_TASK nuint32 +#define NWPROTOCOL_MASK nuint32 +#define NWPROTOCOL_VERSION nuint8 +#define NWPSTR pnstr +#define NWQMS_HANDLE nuint32 +#define NWQMS_TASK nuint32 +#define NWREC_OFFSET nuint16 +#define NWREPLICA_NUM nint32 +#define NWREPLICA_TYPE nuint32 +#define NWREQUESTER_VERSION nuint8 +#define NWREQUEST_MASK nuint16 +#define NWRESERVED16 nuint32 +#define NWRESERVED32 nuint32 +#define NWREVISION nuint32 +#define NWRIGHTS nuint32 +#define NWRIGHTS_MASK nuint16 +#define NWSEARCH_ATTR nuint8 +#define NWSEARCH_ATTRIBUTES nuint16 +#define NWSEARCH_CONTEXT nuint16 +#define NWSEARCH_MASK nuint16 +#define NWSECONDS nuint32 +#define NWSEGMENT_DATA pnuint8 +#define NWSEGMENT_NUM nuint8 +#define NWSEM_HANDLE nuint32 +#define NWSEM_INT nint16 +#define NWSEM_VALUE nuint16 +#define NWSEQUENCE nuint32 +#define NWSEQUENCE_NUM nuint16 +#define NWSEQ_NUM nuint8 +#define NWSERVER_NAME_LEN nuint16 +#define NWSERVER_TYPE nuint16 +#define NWSERVICE_VERSION nuint8 +#define NWSESSION_ID nuint16 +#define NWSIZE nuint32 +#define NWSOCKET_COUNT nuint16 +#define NWSPX_COUNT nuint16 +#define NWSTATION_NUM nuint8 +#define NWSTATION_NUM2 nuint32 +#define NWSTATS_VERSION nuint8 +#define NWSTATUS nuint32 +#define NWSTRUCT_SIZE nuint16 +#define NWSUPPORT_LEVEL nuint8 +#define NWSYNTAX_ID nuint32 +#define NWSYNTAX_INFO Syntax_Info_T +#define NWSYS_TIME nuint32 +#define NWTAB nuint8 +#define NWTASK nuint16 +#define NWTASK_COUNT nuint8 +#define NWTASK_NUM nuint16 +#define NWTASK_STATE nuint8 +#define NWTDS nuint16 +#define NWTDS_OFFSET nuint16 +#define NWTICKS nuint16 +#define NWTIME nuint16 +#define NWTRAN_TYPE nuint8 +#define NWTRUSTEE_SEQUENCE_NUM nuint16 +#define NWUSE_COUNT nuint16 +#define NWUTILIZATION nuint32 +#define NWVCONSOLE_REVISION nuint8 +#define NWVCONSOLE_VERSION nuint8 +#define NWVERSION nuint32 +#define NWVOL nuint32 +#define NWVOL_FLAGS nuint16 +#define NWVOL_NUM nuint16 +#define NWVOL_NUMBER nuint8 +#define NWVOL_TYPE nuint32 +#define TRUSTEE_RIGHTS nuint32 + +#endif /* NWALIAS_H */ diff --git a/c_clientlogin/xplatincl/nwapidef.h b/c_clientlogin/xplatincl/nwapidef.h new file mode 100644 index 00000000..cf137fe5 --- /dev/null +++ b/c_clientlogin/xplatincl/nwapidef.h @@ -0,0 +1,60 @@ +/****************************************************************************** + + %name: nwapidef.h % + %version: 5 % + %date_modified: Thu Jan 16 15:50:00 1997 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWAPIDEF_H ) +#define NWAPIDEF_H + +/* Miscellaneous string lengths (constant) */ +/* NOTE: These max values include a byte for null */ +#define NW_MAX_USER_NAME_LEN 49 +#define NW_MAX_VOLUME_NAME_LEN 17 +#define NW_MAX_SERVER_NAME_LEN 49 +#define NW_MAX_TREE_NAME_LEN 33 +#define NW_MAX_SERVICE_TYPE_LEN 49 + +/* Miscellaneous unicode string sizes in bytes (constant) */ + +#define NW_MAX_USER_NAME_BYTES 2 * NW_MAX_USER_NAME_LEN +#define NW_MAX_VOLUME_NAME_BYTES 2 * NW_MAX_VOLUME_NAME_LEN +#define NW_MAX_SERVER_NAME_BYTES 2 * NW_MAX_SERVER_NAME_LEN +#define NW_MAX_TREE_NAME_BYTES 2 * NW_MAX_TREE_NAME_LEN +#define NW_MAX_SERVICE_TYPE_BYTES 2 * NW_MAX_SERVICE_TYPE_LEN + +/* PrintFlags (nuint16 value) */ +#define NW_PRINT_FLAG_RELEASE 0x0001 +#define NW_PRINT_FLAG_SUPPRESS_FF 0x0002 +#define NW_PRINT_FLAG_TEXT_FILE 0x0004 +#define NW_PRINT_FLAG_PRINT_BANNER 0x0008 +#define NW_PRINT_FLAG_NOTIFY 0x0010 + +/* Print string lengths (constant) */ +#define NW_MAX_JOBDESCR_LEN 50 +#define NW_MAX_FORM_NAME_LEN 13 +#define NW_MAX_BANNER_NAME_LEN 13 +#define NW_MAX_QUEUE_NAME_LEN 65 + +/* Client Types : these are returned by NWGetClientType */ +#define NW_NETX_SHELL 1 +#define NW_VLM_REQ 2 +#define NW_CLIENT32 3 +#define NW_NT_REQ 4 +#define NW_OS2_REQ 5 +#define NW_NLM_REQ 6 + +#endif /* NWAPIDEF_INC */ diff --git a/c_clientlogin/xplatincl/nwaudit.h b/c_clientlogin/xplatincl/nwaudit.h new file mode 100644 index 00000000..dfa9b07e --- /dev/null +++ b/c_clientlogin/xplatincl/nwaudit.h @@ -0,0 +1,560 @@ +/****************************************************************************** + + %name: nwaudit.h % + %version: 3 % + %date_modified: Wed Dec 18 12:05:36 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWAUDIT_H ) +#define NWAUDIT_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWADEVNT_H ) +#include "nwadevnt.h" +#endif + +#include "npackon.h" + +/* Error codes */ +#define ERROR_AUDITING_NOT_INITIALIZED 224 + +/* bit map sizes */ +#define NW_AUDIT_NUMBER_EVENT_BITS 256 +#define NW_AUDIT_NUMBER_EVENT_BITS_TNW 512 + +/* audit ID types */ +#define AUDIT_ID_IS_TRUSTED_NETWARE 2 +#define AUDIT_ID_IS_CONTAINER 1 +#define AUDIT_ID_IS_VOLUME 0 + +/* audit flags */ +#define DiscardAuditRcdsOnErrorFlag 0x01 +#define ConcurrentVolAuditorAccess 0x02 +#define DualLevelPasswordsActive 0x04 +#define BroadcastWarningsToAllUsers 0x08 +#define LevelTwoPasswordSet 0x10 +#define ArchiveAuditFileOnErrorFlag 0x20 + +typedef struct tagNWADOpenStatus +{ + nuint32 auditingStatus; + nuint32 isTrustedNetWare; + nuint32 trustedNetWareStatus; + nuint32 reserved1; /* Future status */ + nuint32 reserved2; + nuint32 reserved3; + nuint32 reserved4; +} NWADOpenStatus, N_FAR *pNWADOpenStatus; + +typedef struct tagTIMESTAMP +{ + nuint32 seconds; + nuint16 replicaNumber; + nuint16 event; +} TIMESTAMP; + +typedef struct tagNWAuditBitMap +{ + nuint8 bitMap[NW_AUDIT_NUMBER_EVENT_BITS / 8]; +}NWAuditBitMap, N_FAR *pNWAuditBitMap; + +typedef struct tagNWAuditBitMapTNW +{ + nuint8 bitMap[NW_AUDIT_NUMBER_EVENT_BITS_TNW / 8]; +}NWAuditBitMapTNW, N_FAR *pNWAuditBitMapTNW; + +typedef struct tagNWAuditFileList +{ + nuint32 fileCreateDateTime[16]; + nuint32 fileSize[16]; +}NWAuditFileList, N_FAR *pNWAuditFileList; + +typedef struct tagNWConfigHeader +{ + nuint16 fileVersionDate; + nuint8 auditFlags; + nuint8 errMsgDelayMinutes; + nuint8 reserved1[16]; + nuint32 auditFileMaxSize; + nuint32 auditFileSizeThreshold; + nuint32 auditRecordCount; + nuint32 historyRecordCount; + nuint8 reserved2[16]; + nuint32 reserved3[3]; + nuint8 auditEventBitMap[NW_AUDIT_NUMBER_EVENT_BITS / 8]; + nuint32 auditFileCreationDateTime; + nuint8 reserved4[8]; + nuint16 auditFlags2; + nuint16 fileVersionDate2; + nuint8 fileArchiveDays; + nuint8 fileArchiveHour; + nuint8 numOldAuditFilesToKeep; + nuint8 reserved5; + nuint32 headerChecksum; + nuint32 headerModifiedCounter; + nuint32 reserved6; + /* Trusted NetWare uses the following two fields */ + nuint8 newBitMap[64]; /* Tusted NetWare uses this bit map instead of volumeAuditEventBitMap above */ + nuint8 reserved7[64]; +} NWConfigHeader, N_FAR *pNWConfigHeader; + +typedef struct tagNWDSContainerConfigHdr +{ + nuint16 fileVersionDate; + nuint8 auditFlags; + nuint8 errMsgDelayMinutes; + nuint32 containerID; + nuint32 reserved1; + TIMESTAMP creationTS; + nuint32 bitMap; + nuint32 auditFileMaxSize; + nuint32 auditFileSizeThreshold; + nuint32 auditRecordCount; + nuint16 replicaNumber; + nuint8 enabledFlag; + nuint8 fileArchiveDays; + nuint8 fileArchiveHour; + nuint8 numOldFilesToKeep; + nuint16 numberReplicaEntries; + nuint32 auditFileCreationDateTime; + nuint8 reserved2[8]; + nuint32 partitionID; + nuint32 headerChecksum; + nuint32 reserved3[4]; + nuint32 auditDisabledCounter; + nuint32 auditEnabledCounter; + nuint8 reserved4[32]; + nuint32 hdrModifiedCounter; + nuint32 fileResetCounter; + /* Trusted NetWare uses the following two fields */ + nuint8 newBitMap[64]; /* Tusted NetWare uses this bit map */ + nuint8 reserved5[64]; +} NWDSContainerConfigHdr, N_FAR *pNWDSContainerConfigHdr; + +typedef struct tagNWAuditStatus +{ + nuint16 auditingVersionDate; + nuint16 auditFileVersionDate; + nuint32 auditingEnabledFlag; + nuint32 auditFileSize; + nuint32 modifiedCounter; + nuint32 auditFileMaxSize; + nuint32 auditFileSizeThreshold; + nuint32 auditRecordCount; + nuint32 auditingFlags; +} NWAuditStatus, N_FAR *pNWAuditStatus; + +typedef struct tagNWAuditRecord +{ + nuint32 recordLength; + pnuint8 record; +} NWAuditRecord, N_FAR *pNWAuditRecord; + +typedef struct tagNWADAuditPolicy +{ + nuint16 policyVersionDate; + nuint16 reserved; + nuint8 auditFlags[4]; + nuint32 auditFileMaxSize; + nuint32 auditFileThresholdSize; + nuint8 fileArchiveDays; + nuint8 fileArchiveHour; + nuint8 numOldAuditFilesToKeep; + nuint8 userRestrictionFlag; + nuint32 modifiedCounter; + nuint32 auditOverflowFileSize; + nuint32 reservedLong; + nuint8 auditedEventBitMap[256]; +} NWADAuditPolicy, N_FAR *pNWADAuditPolicy; + +#ifdef __cplusplus + extern "C" { +#endif + +N_EXTERN_LIBRARY( void ) +NWGetNWADVersion +( + pnuint8 majorVersion, + pnuint8 minorVersion, + pnuint8 revisionLevel, + pnuint8 betaReleaseLevel +); + +/* allocate auditHandle for use in other Auditing calls */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADOpen +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + pnptr auditHandle, /* allocate auditHandle */ + pNWADOpenStatus openStatus +); + +/* free auditHandle and NULL the pointer */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADClose +( + pnptr auditHandle /* free auditHandle */ +); + +#define NWGetVolumeAuditStats(a, b, c, d) \ + NWADGetStatus(a, AUDIT_ID_IS_VOLUME, b, c, d) +#define NWDSGetContainerAuditStats(a, b, c, d) \ + NWADGetStatus(a, AUDIT_ID_IS_CONTAINER, b, c, d) +N_EXTERN_LIBRARY( NWRCODE ) +NWADGetStatus +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + pNWAuditStatus auditStatus, + nuint16 bufferSize +); + +#define NWGetAuditingFlags(a, b, c, d) \ + NWADGetFlags(a, AUDIT_ID_IS_VOLUME, b, c, d) +#define NWDSGetAuditingFlags(a, b, c, d) \ + NWADGetFlags(a, AUDIT_ID_IS_CONTAINER, b, c, d) +N_EXTERN_LIBRARY( NWRCODE ) +NWADGetFlags +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + pnuint8 flags +); + +#define NWLoginAsVolumeAuditor(a, b, c, d) \ + NWADLogin(a, AUDIT_ID_IS_VOLUME, b, c, d) +#define NWDSLoginAsContainerAuditor(a, b, c, d) \ + NWADLogin(a, AUDIT_ID_IS_CONTAINER, b, c, d) +N_EXTERN_LIBRARY( NWRCODE ) +NWADLogin +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + pnuint8 password +); + +#define NWInitAuditLevelTwoPassword NWADInitLevelTwoPassword +N_EXTERN_LIBRARY( NWRCODE ) +NWADInitLevelTwoPassword +( + nptr auditHandle, + pnuint8 password +); + +#define NWLogoutAsVolumeAuditor(a, b, c) \ + NWADLogout(a, AUDIT_ID_IS_VOLUME, b, c) +#define NWDSLogoutAsContainerAuditor(a, b, c) \ + NWADLogout(a, AUDIT_ID_IS_CONTAINER, b, c) +N_EXTERN_LIBRARY( NWRCODE ) +NWADLogout +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle +); + +#define NWChangeAuditorPassword(a, b, c, d, e) \ + NWADChangePassword(a, AUDIT_ID_IS_VOLUME, b, c, d, e) +#define NWDSChangeAuditorPassword(a, b, c, d, e) \ + NWADChangePassword(a, AUDIT_ID_IS_CONTAINER, b, c, d, e) +N_EXTERN_LIBRARY( NWRCODE ) +NWADChangePassword +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + pnuint8 newPassword, + nuint8 level +); + +#define NWCheckAuditAccess(a, b) \ + NWADCheckAccess(a, AUDIT_ID_IS_VOLUME, b) +#define NWDSCheckAuditAccess(a, b) \ + NWADCheckAccess(a, AUDIT_ID_IS_CONTAINER, b) +N_EXTERN_LIBRARY( NWRCODE ) +NWADCheckAccess +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID +); + +#define NWCheckAuditLevelTwoAccess(a, b, c) \ + NWADCheckLevelTwoAccess(a, AUDIT_ID_IS_VOLUME, b, c) +#define NWDSCheckAuditLevelTwoAccess(a, b, c) \ + NWADCheckLevelTwoAccess(a, AUDIT_ID_IS_CONTAINER, b, c) +N_EXTERN_LIBRARY( NWRCODE ) +NWADCheckLevelTwoAccess +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle +); + +#define NWEnableAuditingOnVolume(a, b, c) \ + NWADEnable(a, AUDIT_ID_IS_VOLUME, b, c) +#define NWDSEnableAuditingOnContainer(a, b, c) \ + NWADEnable(a, AUDIT_ID_IS_CONTAINER, b, c) +N_EXTERN_LIBRARY( NWRCODE ) +NWADEnable +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle +); + +#define NWDisableAuditingOnVolume(a, b, c) \ + NWADDisable(a, AUDIT_ID_IS_VOLUME, b, c) +#define NWDSDisableAuditingOnContainer(a, b, c) \ + NWADDisable(a, AUDIT_ID_IS_CONTAINER, b, c) +N_EXTERN_LIBRARY( NWRCODE ) +NWADDisable +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle +); + +#define NWIsUserBeingAudited(a, b, c, d) \ + NWADIsObjectAudited(a, AUDIT_ID_IS_VOLUME, b, d) +#define NWDSIsObjectBeingAudited(a, b, c) \ + NWADIsObjectAudited(a, AUDIT_ID_IS_CONTAINER, b, c) +N_EXTERN_LIBRARY( NWRCODE ) +NWADIsObjectAudited +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nuint32 userObjectID +); + +#define NWAddAuditProperty(a, b, c, d) \ + NWADChangeObjectProperty(a, AUDIT_ID_IS_VOLUME, b, c, d, 1) +#define NWRemoveAuditProperty(a, b, c, d) \ + NWADChangeObjectProperty(a, AUDIT_ID_IS_VOLUME, b, c, d, 0) +#define NWDSChangeObjectAuditProperty(a, b, c, d, e) \ + NWADChangeObjectProperty(a, AUDIT_ID_IS_CONTAINER, b, c, d, e) +N_EXTERN_LIBRARY( NWRCODE ) +NWADChangeObjectProperty +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + nuint32 objectID, + nuint8 auditFlag /* 0:remove 1:add */ +); + +/* Volume audit call only */ +#define NWReadAuditingBitMap(a, b, c, d, e)\ + NWADReadBitMap(a, b, d, e) +N_EXTERN_LIBRARY( NWRCODE ) +NWADReadBitMap +( + NWCONN_HANDLE conn, + nuint32 auditID, /* can only be volume */ + NWAuditBitMap N_FAR *buffer, + nuint16 bufferSize +); + +#define NWReadAuditConfigHeader(a, b, c, d, e) \ + NWADReadConfigHeader(a, AUDIT_ID_IS_VOLUME, b, c, d, e) +#define NWDSReadAuditConfigHeader(a, b, c, d, e) \ + NWADReadConfigHeader(a, AUDIT_ID_IS_CONTAINER, b, c, d, e) +N_EXTERN_LIBRARY( NWRCODE ) +NWADReadConfigHeader +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + nptr buffer, + nuint16 bufferSize +); + +/* volume auditing only */ +#define NWWriteAuditingBitMap(a, b, c, d) \ + NWADWriteBitMap(a, b, c, d) +N_EXTERN_LIBRARY( NWRCODE ) +NWADWriteBitMap +( + NWCONN_HANDLE conn, + nuint32 auditID, /* can only be volume */ + nptr auditHandle, + NWAuditBitMap N_FAR *buffer +); + +#define NWWriteAuditConfigHeader(a, b, c, d) \ + NWADWriteConfigHeader(a, AUDIT_ID_IS_VOLUME, b, c, d) +#define NWDSWriteAuditConfigHeader(a, b, c, d) \ + NWADWriteConfigHeader(a, AUDIT_ID_IS_CONTAINER, b, c, d) +N_EXTERN_LIBRARY( NWRCODE ) +NWADWriteConfigHeader +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + pNWConfigHeader buffer +); + +#define NWResetAuditingFile(a, b, c) \ + NWADResetFile(a, AUDIT_ID_IS_VOLUME, b, c) +#define NWDSResetAuditingFile(a, b, c) \ + NWADResetFile(a, AUDIT_ID_IS_CONTAINER, b, c) +N_EXTERN_LIBRARY( NWRCODE ) +NWADResetFile +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle +); + +/* NWADOpenReadFile will only work with NetWare version 4.10 or newer */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADOpenRecordFile +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + nint16 fileCode, + pnptr recordHandle /* Allocate record handle */ +); + +/* NWADInitRead will only work with NetWare version 4.10 or newer */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADReadRecord +( + nptr recordHandle, /* Allocated in NWADOpenRecordFile */ + nuint16 maxSize, + nint16 direction, + pnuint8 buffer, + pnuint16 bufferSize, + pnuint8 eofFlag, + pnuint32 offsetPtr +); + +/* NWADInitRead will only work with NetWare version 4.10 or newer */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADCloseRecordFile +( + pnptr recordHandle /* Free record handle */ +); + +#define NWCloseOldAuditingFile(a, b, c) \ + NWADCloseOldFile(a, AUDIT_ID_IS_VOLUME, b, c) +#define NWDSCloseOldAuditingFile(a, b, c) \ + NWADCloseOldFile(a, AUDIT_ID_IS_CONTAINER, b, c) +N_EXTERN_LIBRARY( NWRCODE ) +NWADCloseOldFile +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle +); + +#define NWDeleteOldAuditingFile(a, b, c) \ + NWADDeleteFile(a, AUDIT_ID_IS_VOLUME, b, c) +#define NWDSDeleteOldAuditingFile(a, b, c) \ + NWADDeleteFile(a, AUDIT_ID_IS_CONTAINER, b, c) +N_EXTERN_LIBRARY( NWRCODE ) +NWADDeleteFile +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle +); + +/* NetWare version 4.10 or newer */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADGetFileList +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + pNWAuditFileList fileList +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWADDeleteOldFile +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + nuint32 fileCode +); + +/* Trusted NetWare and Volume Only */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADRestartVolumeAuditing +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID +); + +/* Trusted NetWare Only */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADSetPassword +( + NWCONN_HANDLE conn, + nuint32 auditIDType, + nuint32 auditID, + nptr auditHandle, + pnuint8 newPassword +); + +/* Trusted NetWare Only */ +N_EXTERN_LIBRARY( NWRCODE ) +NWADAppendExternalRecords +( + NWCONN_HANDLE conn, + nuint32 auditFileObjectID, + nuint32 vendorID, + nuint32 numberRecords, + pNWAuditRecord recordsPtr +); + +#ifdef __cplusplus + } +#endif + +#include "npackoff.h" +#endif /* NWAUDIT_H */ diff --git a/c_clientlogin/xplatincl/nwbindry.h b/c_clientlogin/xplatincl/nwbindry.h new file mode 100644 index 00000000..139794a0 --- /dev/null +++ b/c_clientlogin/xplatincl/nwbindry.h @@ -0,0 +1,413 @@ +/****************************************************************************** + + %name: nwbindry.h % + %version: 7 % + %date_modified: Tue Feb 10 13:24:44 2004 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWBINDRY_H ) +#define NWBINDRY_H + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NUNICODE_H ) +#include "nunicode.h" +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +/* Bindery object types (in HIGH-LOW order) */ +#define OT_WILD 0xFFFF +#define OT_UNKNOWN 0x0000 +#define OT_USER 0x0100 +#define OT_USER_GROUP 0x0200 +#define OT_PRINT_QUEUE 0x0300 +#define OT_FILE_SERVER 0x0400 +#define OT_JOB_SERVER 0x0500 +#define OT_GATEWAY 0x0600 +#define OT_PRINT_SERVER 0x0700 +#define OT_ARCHIVE_QUEUE 0x0800 +#define OT_ARCHIVE_SERVER 0x0900 +#define OT_JOB_QUEUE 0x0A00 +#define OT_ADMINISTRATION 0x0B00 +#define OT_NAS_SNA_GATEWAY 0x2100 +#define OT_REMOTE_BRIDGE_SERVER 0x2600 +#define OT_TCPIP_GATEWAY 0x2700 +#define OT_TREE_NAME 0x7802 + +/* Extended bindery object types */ +#define OT_TIME_SYNCHRONIZATION_SERVER 0x2D00 +#define OT_ARCHIVE_SERVER_DYNAMIC_SAP 0x2E00 +#define OT_ADVERTISING_PRINT_SERVER 0x4700 +#define OT_BTRIEVE_VAP 0x5000 +#define OT_PRINT_QUEUE_USER 0x5300 + + +/* Bindery object and property flags */ +#define BF_STATIC 0x00 +#define BF_DYNAMIC 0x01 +#define BF_ITEM 0x00 +#define BF_SET 0x02 + +/********* Bindery object and property security access levels **********/ +#define BS_ANY_READ 0x00 /* Readable by anyone */ +#define BS_LOGGED_READ 0x01 /* Must be logged in to read */ +#define BS_OBJECT_READ 0x02 /* Readable by same object or super */ +#define BS_SUPER_READ 0x03 /* Readable by supervisor only */ +#define BS_BINDERY_READ 0x04 /* Readable only by the bindery */ +#define BS_ANY_WRITE 0x00 /* Writeable by anyone */ +#define BS_LOGGED_WRITE 0x10 /* Must be logged in to write */ +#define BS_OBJECT_WRITE 0x20 /* Writeable by same object or super */ +#define BS_SUPER_WRITE 0x30 /* Writeable only by the supervisor */ +#define BS_BINDERY_WRITE 0x40 /* Writeable by the bindery only */ + +N_EXTERN_LIBRARY( NWCCODE ) +NWVerifyObjectPassword +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * password +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDisallowObjectPassword +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * disallowedPassword +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangeObjectPassword +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * oldPassword, + const nstr8 N_FAR * newPassword +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadPropertyValue +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * propertyName, + nuint8 segmentNum, + pnuint8 segmentData, + pnuint8 moreSegments, + pnuint8 flags +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWWritePropertyValue +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * propertyName, + nuint8 segmentNum, + const nuint8 N_FAR * segmentData, + nuint8 moreSegments +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAddObjectToSet +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * propertyName, + const nstr8 N_FAR * memberName, + nuint16 memberType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteObjectFromSet +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + pnstr8 propertyName, + pnstr8 memberName, + nuint16 memberType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIsObjectInSet +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * propertyName, + const nstr8 N_FAR * memberName, + nuint16 memberType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanProperty +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + pnstr8 searchPropertyName, + pnuint32 iterHandle, + pnstr8 propertyName, + pnuint8 propertyFlags, + pnuint8 propertySecurity, + pnuint8 valueAvailable, + pnuint8 moreFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectID +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + pnuint32 objID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectDiskSpaceLeft +( + NWCONN_HANDLE conn, + nuint32 objID, + pnuint32 systemElapsedTime, + pnuint32 unusedDiskBlocks, + pnuint8 restrictionEnforced +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectName +( + NWCONN_HANDLE conn, + nuint32 objID, + pnstr8 objName, + pnuint16 objType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanObject +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * searchName, + nuint16 searchType, + pnuint32 objID, + pnstr8 objName, + pnuint16 objType, + pnuint8 hasPropertiesFlag, + pnuint8 objFlags, + pnuint8 objSecurity +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetBinderyAccessLevel +( + NWCONN_HANDLE conn, + pnuint8 accessLevel, + pnuint32 objID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCreateProperty +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * propertyName, + nuint8 propertyFlags, + nuint8 propertySecurity +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteProperty +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * propertyName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangePropertySecurity +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * propertyName, + nuint8 newPropertySecurity +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCreateObject +( + NWCONN_HANDLE conn, + pnstr8 objName, + nuint16 objType, + nuint8 objFlags, + nuint8 objSecurity +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteObject +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRenameObject +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * oldObjName, + const nstr8 N_FAR * newObjName, + nuint16 objType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangeObjectSecurity +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + nuint8 newObjSecurity +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenBindery +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseBindery +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanObjectTrusteePaths +( + NWCONN_HANDLE conn, + nuint32 objID, + nuint16 volNum, + pnuint16 iterHandle, + pnuint8 accessRights, + pnstr8 dirPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanObjectTrusteePathsExt +( + NWCONN_HANDLE conn, + nuint32 objID, + nuint16 volNum, + pnuint16 iterHandle, + pnuint8 accessRights, + pnstr8 dirPath1506 +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectEffectiveRights +( + NWCONN_HANDLE conn, + nuint32 objID, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint16 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectEffectiveRightsExt +( + NWCONN_HANDLE conn, + nuint32 objID, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 buNameSpace, + pnuint16 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectEffectiveRights2 +( + NWCONN_HANDLE conn, + nuint32 objID, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint16 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectNamesBeginA +( + nuint32 luObjectType, + pnuint32 pluHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectNamesNextA +( + nuint32 luHandle, + pnuint32 pluLenBuffer, + pnstr8 strBuffer +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectNamesEndA +( + nuint32 luHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectNamesBeginW +( + nuint32 luObjectType, + pnuint32 pluHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectNamesNextW +( + nuint32 luHandle, + pnuint32 pluLenBuffer, + punicode strBuffer +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectNamesEndW +( + nuint32 luHandle +); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/c_clientlogin/xplatincl/nwcaldef.h b/c_clientlogin/xplatincl/nwcaldef.h new file mode 100644 index 00000000..9c85a6f7 --- /dev/null +++ b/c_clientlogin/xplatincl/nwcaldef.h @@ -0,0 +1,190 @@ +/****************************************************************************** + + %name: nwcaldef.h % + %version: 8 % + %date_modified: Mon Mar 28 12:52:37 2005 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWCALDEF_H ) +#define NWCALDEF_H + +#ifdef N_PLAT_NLM + +#include +#if !defined(__NOVELL_LIBC__) +#if ! defined ( _NWFATTR_H_ ) +#include +#include +#endif +#undef FA_NORMAL +#undef FA_HIDDEN +#undef FA_SYSTEM +#endif + +#endif + + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#ifndef NWPASCAL +#define NWPASCAL N_PASCAL +#endif + +#ifndef NWFAR +#define NWFAR N_FAR +#endif + +#define NWCONN_HANDLE nuint +#define pNWCONN_HANDLE pnuint +#define NWCONN_NUM nuint16 +#define NWCCODE nuint +#define NWDIR_HANDLE nuint8 + +/* +Changes to this structure need to be mirrored in +internal header nwclient.h. Would be nice to have +win31 and OS/2 be defined as HFILE. Need to look +into that a little more. +*/ +//#if (defined (N_PLAT_MSW) && defined (N_ARCH_32)) || defined(N_PLAT_UNIX) +#if (defined (N_PLAT_MSW) && defined (N_ARCH_32)) + #define NWFILE_HANDLE nptr +#elif defined (N_PLAT_OS2) + #define NWFILE_HANDLE unsigned long +#else + #define NWFILE_HANDLE nint +#endif + +#if defined(N_PLAT_UNIX) +typedef struct UNIX_NWFILE_STRUCT +{ + NWCONN_HANDLE conn; +// nuint16 suHandleType; + nuint8 pbuNWHandle[6]; + nuint32 luOffset; + +} UNIX_NWFILE_STRUCT; +#endif + + +#if !defined(__WINDOWS_H) && \ + !defined(_INC_WINDOWS) && \ + !defined(__WIN386_INCLUDED__) + +#if !defined(BYTE) && !defined(OS2DEF_INCLUDED) +#define BYTE nuint8 +#endif + +#ifndef WORD +#define WORD nuint16 +#endif + +#ifndef DWORD +#define DWORD nuint32 +#endif + +#ifndef LONG +#define LONG nuint32 +#endif + +#endif + +#ifndef FA_READ_ONLY +#define FA_NORMAL 0x00 +#define FA_READ_ONLY 0x01 +#define FA_HIDDEN 0x02 +#define FA_SYSTEM 0x04 +#define FA_EXECUTE_ONLY 0x08 +#define FA_DIRECTORY 0x10 +#define FA_NEEDS_ARCHIVED 0x20 +#define FA_SHAREABLE 0x80 + +/* Extended file attributes */ +#define FA_TRANSACTIONAL 0x10 +#define FA_INDEXED 0x20 +#define FA_READ_AUDIT 0x40 +#define FA_WRITE_AUDIT 0x80 +#endif + +/* the following is a the correct attribute mask list */ +/* The difference between these and the FA_ constants above is that these + are in the correct positions. The last four attributes above are 8 bits + off. (They need to be shifted 8 bits to the left.) */ +#ifndef A_NORMAL +#define A_NORMAL 0x00000000L +#define A_READ_ONLY 0x00000001L +#define A_HIDDEN 0x00000002L +#define A_SYSTEM 0x00000004L +#define A_EXECUTE_ONLY 0x00000008L +#define A_DIRECTORY 0x00000010L +#define A_NEEDS_ARCHIVED 0x00000020L +#define A_SHAREABLE 0x00000080L +#define A_DONT_SUBALLOCATE 0x00000800L +#define A_TRANSACTIONAL 0x00001000L +#define A_INDEXED 0x00002000L /* not in the NCP book */ +#define A_READ_AUDIT 0x00004000L +#define A_WRITE_AUDIT 0x00008000L +#define A_IMMEDIATE_PURGE 0x00010000L +#define A_RENAME_INHIBIT 0x00020000L +#define A_DELETE_INHIBIT 0x00040000L +#define A_COPY_INHIBIT 0x00080000L +#define A_FILE_MIGRATED 0x00400000L +#define A_DONT_MIGRATE 0x00800000L +#define A_IMMEDIATE_COMPRESS 0x02000000L +#define A_FILE_COMPRESSED 0x04000000L +#define A_DONT_COMPRESS 0x08000000L +#define A_CANT_COMPRESS 0x20000000L +#endif + +/* access rights attributes */ +#ifndef AR_READ_ONLY +#define AR_READ 0x0001 +#define AR_WRITE 0x0002 +#define AR_READ_ONLY 0x0001 +#define AR_WRITE_ONLY 0x0002 +#define AR_DENY_READ 0x0004 +#define AR_DENY_WRITE 0x0008 +#define AR_COMPATIBILITY 0x0010 +#define AR_WRITE_THROUGH 0x0040 +#define AR_OPEN_COMPRESSED 0x0100 +#endif + +/* search attributes */ +#ifndef SA_HIDDEN +#define SA_NORMAL 0x0000 +#define SA_HIDDEN 0x0002 +#define SA_SYSTEM 0x0004 +#define SA_SUBDIR_ONLY 0x0010 +#define SA_SUBDIR_FILES 0x8000 +#define SA_ALL 0x8006 +#endif + +#ifndef USE_NW_WILD_MATCH +#define USE_NW_WILD_MATCH 0 +#endif + +#ifndef USE_DOS_WILD_MATCH +#define USE_DOS_WILD_MATCH 1 +#endif + +/* Scope specifiers */ +#define GLOBAL 0 +#define PRIVATE 1 +#define MY_SESSION 2 +#define ALL_SESSIONS 3 + +#endif diff --git a/c_clientlogin/xplatincl/nwcalls.h b/c_clientlogin/xplatincl/nwcalls.h new file mode 100644 index 00000000..ba198ac6 --- /dev/null +++ b/c_clientlogin/xplatincl/nwcalls.h @@ -0,0 +1,127 @@ +/****************************************************************************** + + %name: nwcalls.h % + %version: 4 % + %date_modified: Tue Jul 29 15:44:05 1997 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWCALLS_H ) +#define NWCALLS_H + +#if ! defined ( NWAPIDEF_H ) +#include "nwapidef.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWALIAS_H ) +#include "nwalias.h" +#endif + +#if ! defined ( NOAFP_INC ) +#include "nwafp.h" +#endif + +#if ! defined ( NOBINDRY_INC ) +#include "nwbindry.h" +#endif + +#if ! defined ( NOCONNECT_INC ) +#include "nwconnec.h" +#endif + +#if ! defined ( NODEL_INC ) +#include "nwdel.h" +#endif + +#if ! defined ( NODENTRY_INC ) +#include "nwdentry.h" +#endif + +#if ! defined ( NODIRECTORY_INC ) +#include "nwdirect.h" +#endif + +#if ! defined ( NODPATH_INC ) +#include "nwdpath.h" +#endif + +#if ! defined ( NOEA_INC ) +#include "nwea.h" +#endif + +#if ! defined ( NOERROR_INC ) +#include "nwerror.h" +#endif + +#if ! defined ( NOFILES_INC ) +#include "nwfile.h" +#endif + +#if ! defined ( NOMISC_INC ) +#include "nwmisc.h" +#endif + +#if ! defined ( NOMESSAGES_INC ) +#include "nwmsg.h" +#endif + +#if ! defined ( NONAMSPC_INC ) +#include "nwnamspc.h" +#endif + +#if ! defined ( NOPRINT_INC ) +#include "nwprint.h" +#endif + +#if ! defined ( NOQUEUE_INC ) +#include "nwqms.h" +#endif + +#if ! defined ( NOSERVER_INC ) +#include "nwserver.h" +#endif + +#if ! defined ( NOSYNC_INC ) +#include "nwsync.h" +#endif + +#if ! defined ( NONTTS_INC ) +#include "nwtts.h" +#endif + +#if ! defined ( NOVOL_INC ) +#include "nwvol.h" +#endif + +#if ! defined ( NOACCT_INC ) +#include "nwacct.h" +#endif + +#if ! defined ( NOFSE_INC ) +#include "nwfse.h" +#endif + +#if ! defined ( NOMIGRATE_INC ) +#include "nwmigrat.h" +#endif + +#if ! defined ( NOSM_INC ) +#include "nwsm.h" +#endif + +#endif /* NWCALLS_INC */ diff --git a/c_clientlogin/xplatincl/nwclxcon.h b/c_clientlogin/xplatincl/nwclxcon.h new file mode 100644 index 00000000..4d5f602a --- /dev/null +++ b/c_clientlogin/xplatincl/nwclxcon.h @@ -0,0 +1,495 @@ +/**************************************************************************** + + %name: nwclxcon.h % + %version: 21 % + %date_modified: Thu Oct 14 13:13:16 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + ***************************************************************************/ + + +#if ! defined ( NWCLXCON_H ) +#define NWCLXCON_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWAPIDEF_H ) +#include "nwapidef.h" +#endif + +#if ! defined ( NWCALDEF_H ) /* include nwcaldef.h for connection handle */ +#include "nwcaldef.h" +#endif + +#include "npackon.h" + +/* Authentication States */ +#define NWCC_AUTHENT_STATE_NONE 0x0000 +#define NWCC_AUTHENT_STATE_BIND 0x0001 +#define NWCC_AUTHENT_STATE_NDS 0x0002 + +/* Broadcast States */ +#define NWCC_BCAST_PERMIT_ALL 0x0000 +#define NWCC_BCAST_PERMIT_SYSTEM 0x0001 +#define NWCC_BCAST_PERMIT_NONE 0x0002 +#define NWCC_BCAST_PERMIT_POLL 0x0003 /* DOS Windows and OS/2 only */ + +/* NDS States */ +#define NWCC_NDS_NOT_CAPABLE 0x0000 +#define NWCC_NDS_CAPABLE 0x0001 + +/* License States */ +#define NWCC_NOT_LICENSED 0x0000 +#define NWCC_CONNECTION_LICENSED 0x0001 +#define NWCC_HANDLE_LICENSED 0x0002 + +/* Name Format types */ +#define NWCC_NAME_FORMAT_NDS 0x0001 /* Unicode full dot format name */ +#define NWCC_NAME_FORMAT_BIND 0x0002 +#define NWCC_NAME_FORMAT_NDS_TREE 0x0008 +#define NWCC_NAME_FORMAT_WILD 0x8000 + +/* Transport types */ +#define NWCC_TRAN_TYPE_IPX 0x00000001 +#define NWCC_TRAN_TYPE_DDP 0x00000003 +#define NWCC_TRAN_TYPE_ASP 0x00000004 +#define NWCC_TRAN_TYPE_UDP 0x00000008 +#define NWCC_TRAN_TYPE_TCP 0x00000009 +#define NWCC_TRAN_TYPE_UDP6 0x0000000A +#define NWCC_TRAN_TYPE_TCP6 0x0000000B +#define NWCC_TRAN_TYPE_WILD 0x00008000 + +/* Open States */ +#define NWCC_OPEN_LICENSED 0x0001 +#define NWCC_OPEN_UNLICENSED 0x0002 +#define NWCC_OPEN_PRIVATE 0x0004 +#define NWCC_OPEN_PUBLIC 0x0008 +#define NWCC_OPEN_EXISTING_HANDLE 0x0010 +#define NWCC_OPEN_NEAREST 0x0100 +#define NWCC_OPEN_IGNORE_CACHE 0x0200 + +/* Scan connection information flags (nuint value) */ +#define NWCC_MATCH_NOT_EQUALS 0x0000 +#define NWCC_MATCH_EQUALS 0x0001 +#define NWCC_RETURN_PUBLIC 0x0002 +#define NWCC_RETURN_PRIVATE 0x0004 +#define NWCC_RETURN_LICENSED 0x0008 +#define NWCC_RETURN_UNLICENSED 0x0010 + +/* Reserved Value */ +#define NWCC_RESERVED 0x0000 + +/* Values used with Security Flags */ +/* NOTE: +Two previously defined security flags have been redefined in order to be +compliant with the ANSI standard maximum length of 31. Here is a list showing +what the #define was previously, and what it has been redefined to be. +PREVIOUSLY CURRENTLY +NWCC_SECURITY_SIGNING_NOT_IN_USE NWCC_SECUR_SIGNING_NOT_IN_USE +NWCC_SECURITY_LEVEL_SIGN_HEADERS NWCC_SECUR_LEVEL_SIGN_HEADERS +*/ +#define NWCC_SECURITY_SIGNING_NOT_IN_USE 0x00000000 +#define NWCC_SECURITY_SIGNING_IN_USE 0x00000001 +#define NWCC_SECURITY_LEVEL_CHECKSUM 0x00000100 +#define NWCC_SECURITY_LEVEL_SIGN_HEADERS 0x00000200 +#define NWCC_SECURITY_LEVEL_SIGN_ALL 0x00000400 +#define NWCC_SECURITY_LEVEL_ENCRYPT 0x00000800 + +/* Feature Codes */ +#define NWCC_FEAT_PRIV_CONN 0x0001 +#define NWCC_FEAT_REQ_AUTH 0x0002 +#define NWCC_FEAT_SECURITY 0x0003 +#define NWCC_FEAT_NDS 0x0004 +#define NWCC_FEAT_NDS_MTREE 0x0005 +#define NWCC_FEAT_PRN_CAPTURE 0x0006 + +typedef struct tagNWCCTranAddr +{ + nuint32 type; + nuint32 len; + pnuint8 buffer; +} NWCCTranAddr, N_FAR *pNWCCTranAddr; + +typedef struct tagNWCCVersion +{ + nuint major; + nuint minor; + nuint revision; +}NWCCVersion, N_FAR *pNWCCVersion; + +/* Info Types */ +#define NWCC_INFO_NONE 0 +#define NWCC_INFO_AUTHENT_STATE 1 +#define NWCC_INFO_BCAST_STATE 2 +#define NWCC_INFO_CONN_REF 3 +#define NWCC_INFO_TREE_NAME 4 +#define NWCC_INFO_CONN_NUMBER 5 +#define NWCC_INFO_USER_ID 6 +#define NWCC_INFO_SERVER_NAME 7 +#define NWCC_INFO_NDS_STATE 8 +#define NWCC_INFO_MAX_PACKET_SIZE 9 +#define NWCC_INFO_LICENSE_STATE 10 +#define NWCC_INFO_DISTANCE 11 +#define NWCC_INFO_SERVER_VERSION 12 +#define NWCC_INFO_TRAN_ADDR 13 /* Version 2 */ +#define NWCC_INFO_IDENTITY_HANDLE 14 /* Version 3 */ + +#define NWCC_INFO_RETURN_ALL 0xFFFF + +/* Current Info Version */ +#define NWCC_INFO_VERSION_1 0x0001 +#define NWCC_INFO_VERSION_2 0x0002 +#define NWCC_INFO_VERSION_3 0x0003 + +/* Should use above definitions instead of this one */ +#define NWCC_INFO_VERSION NWCC_INFO_VERSION_1 + +typedef struct tagNWCCConnInfo +{ + nuint authenticationState; + nuint broadcastState; + nuint32 connRef; + nstr treeName[NW_MAX_TREE_NAME_LEN]; + nuint connNum; + nuint32 userID; + nstr serverName[NW_MAX_SERVER_NAME_LEN]; + nuint NDSState; + nuint maxPacketSize; + nuint licenseState; + nuint distance; + NWCCVersion serverVersion; +#ifdef NWCC_INFO_VERSION_2 + pNWCCTranAddr tranAddr; +#endif +#ifdef NWCC_INFO_VERSION_3 + nuint32 identityHandle; +#endif +}NWCCConnInfo, N_FAR *pNWCCConnInfo; + +typedef struct tagNWCCFrag +{ + nptr address; + nuint length; +}NWCCFrag, N_FAR *pNWCCFrag; + +#ifdef __cplusplus +extern "C" { +#endif + +N_EXTERN_LIBRARY( NWRCODE ) +NWCLXInit +( + nptr reserved1, + nptr reserved2 +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCLXTerm +( + nptr reserved +); + +N_EXTERN_LIBRARY( void ) +NWCCGetCLXVersion +( + pnuint8 majorVersion, + pnuint8 minorVersion, + pnuint8 revisionLevel, + pnuint8 betaReleaseLevel +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCOpenConnByName +( + NWCONN_HANDLE startConnHandle, /* in */ + const nstr8 N_FAR * name, /* in */ + nuint nameFormat, /* in */ + nuint openState, /* in */ + nuint tranType, /* in * use NWCC_RESERVED */ + pNWCONN_HANDLE pConnHandle /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCOpenConnByAddr +( + const NWCCTranAddr N_FAR * tranAddr, /* in */ + nuint openState, /* in */ + nuint reserved, /* in * use NWCC_RESERVED */ + pNWCONN_HANDLE pConnHandle /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCOpenConnByRef +( + nuint32 connRef, /* in */ + nuint openState, /* in */ + nuint reserved, /* in * use NWCC_RESERVED */ + pNWCONN_HANDLE pConnHandle /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCCloseConn +( + NWCONN_HANDLE connHandle /* in */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCSysCloseConnRef +( + nuint32 connRef /* in */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCMakeConnPermanent +( + NWCONN_HANDLE connHandle /* in */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCLicenseConn +( + NWCONN_HANDLE connHandle /* in */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCUnlicenseConn +( + NWCONN_HANDLE connHandle /* in */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetConnRef +( + NWCONN_HANDLE connHandle, /* in */ + pnuint32 connRef /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetPrefServerName +( + nuint len, /* in */ + pnstr prefServer /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCSetPrefServerName +( + const nstr N_FAR * prefServer /* in */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetPrimConnRef +( + pnuint32 connRef /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCSetPrimConn +( + NWCONN_HANDLE connHandle /* in */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCScanConnRefs +( + pnuint32 scanIterator, /* in/out : initialize to 0 */ + pnuint32 connRef /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetConnInfo +( + NWCONN_HANDLE connHandle, /* in */ + nuint infoType, /* in */ + nuint len, /* in */ + nptr buffer /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetConnRefInfo +( + nuint32 connRef, /* in */ + nuint infoType, /* in */ + nuint len, /* in */ + nptr buffer /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetAllConnInfo +( + NWCONN_HANDLE connHandle, /* in */ + /* connInfoVersion should always be set to NWCC_INFO_VERSION + or NWCC_INFO_VERSION_n */ + nuint connInfoVersion, /* in */ + pNWCCConnInfo connInfoBuffer /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetAllConnRefInfo +( + nuint32 connRef, /* in */ + /* connInfoVersion should always be set to NWCC_INFO_VERSION + or NWCC_INFO_VERSION_n */ + nuint connInfoVersion, /* in */ + pNWCCConnInfo connInfoBuffer /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCScanConnInfo +( + pnuint32 scanIterator, /* in */ + nuint scanInfoLevel, /* in */ + const void N_FAR * scanConnInfo, /* in */ + nuint scanFlags, /* in */ + /* connInfoVersion should always be set to NWCC_INFO_VERSION + or NWCC_INFO_VERSION_n */ + nuint connInfoVersion, /* in */ + nuint returnInfoLevel, /* in */ + nptr returnConnInfo, /* out */ + pnuint32 connReference /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetConnAddressLength +( + NWCONN_HANDLE connHandle, /* in */ + pnuint32 addrLen /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetConnRefAddressLength +( + nuint32 connRef, /* in */ + pnuint32 addrLen /* out */ +); + + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetConnAddress +( + NWCONN_HANDLE connHandle, /* in */ + nuint32 bufferLen, /* in */ + pNWCCTranAddr tranAddr /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetConnRefAddress +( + nuint32 connRef, /* in */ + nuint32 bufferLen, /* in */ + pNWCCTranAddr tranAddr /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCOpenConnByPref +( + nuint tranType, /* in * NWCC_TRAN_TYPE_IPX */ + nuint openState, /* in */ + nuint reserved, /* in * use NWCC_RESERVED */ + pNWCONN_HANDLE pConnHandle /* out */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCQueryFeature +( + nuint featureCode /* in */ +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetNumConns +( + pnuint maxConns, /* out */ + pnuint publicConns, /* out */ + pnuint myPrivateConns /* out */ +); + + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCGetSecurityFlags +( + pnuint32 enabSecurityFlags, + pnuint32 prefSecurityFlags, + pnuint32 reqSecurityFlags +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCSetSecurityFlags +( + nuint32 prefSecurityFlags, + nuint32 reqSecurityFlags +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCRenegotiateSecurityLevel +( + NWCONN_HANDLE connHandle, + nuint32 securityFlags +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCResetRequester +( + pnuint32 keepConnRef, + nuint connFlags, + pnstr firstLocalAlias +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCRequest +( + NWCONN_HANDLE connHandle, + nuint function, + nuint numReqFrags, + const NWCCFrag N_FAR * reqFrags, + nuint numReplyFrags, + pNWCCFrag replyFrags, + pnuint actualReplyLen +); + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCFragmentRequest +( + NWCONN_HANDLE connHandle, + nuint function, + nuint verb, + nuint reserved, + nuint numReqFrags, + const NWCCFrag N_FAR * reqFrags, + nuint numReplyFrags, + pNWCCFrag replyFrags, + pnuint actualReplyLen +); + + /* The following functions are NLM CLIB specific and not supported in the + * NLM LibC x-plat libraries. The LibC stddef.h file defines + * __NOVELL_LIBC__ + */ +#include +#if !defined(__NOVELL_LIBC__) + +N_EXTERN_LIBRARY( NWRCODE ) +NWCCSetCurrentConnection +( + NWCONN_HANDLE connHandle +); + +#endif + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif /* NWCLXCON_INC */ diff --git a/c_clientlogin/xplatincl/nwconfig.h b/c_clientlogin/xplatincl/nwconfig.h new file mode 100644 index 00000000..92dea7c4 --- /dev/null +++ b/c_clientlogin/xplatincl/nwconfig.h @@ -0,0 +1,102 @@ +/****************************************************************************** + + %name: nwconfig.h % + %version: 3 % + %date_modified: Wed Dec 18 12:06:05 1996 % + $Copyright: + + Copyright (c) 1989-1996 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWCONFIG_H ) +#define NWCONFIG_H + +#include "npackon.h" + +#define T_OPTIONAL 0x80 + +#define T_NUMBER 0x01 +#define T_INDEX 0x02 +#define T_STRING 0x03 +#define T_HEX_STRING 0x04 +#define T_HEX_NUMBER 0x05 +#define T_LONG_NUMBER 0x06 +#define T_LONG_HEX 0x07 + +#define T_SET_1 0x10 +#define T_SET_2 0x11 +#define T_SET_3 0x12 +#define T_SET_4 0x13 +#define T_SET_5 0x14 +#define T_SET_6 0x15 +#define T_SET_7 0x16 +#define T_SET_8 0x17 +#define T_SET_9 0x18 +#define T_SET_10 0x19 +#define T_SET_11 0x1A +#define T_SET_12 0x1B +#define T_SET_13 0x1C +#define T_SET_14 0x1D +#define T_SET_15 0x1E +#define T_SET_16 0x1F + +#define MAX_PARAMETERS 8 +#define MAX_SECTION_NAME_SIZE 32 +#define MAX_VALUE_SIZE 80 +#define MAX_SET_ELEMENTS 20 + +typedef struct +{ + int numberOfElements; + int *elementCode; + char N_FAR * N_FAR *elementName; + int N_FAR *elementValue; +} SetTableStruct; + +typedef struct +{ + int paramType; + long defaultValue; +} TypeDefaultStruct; + +typedef union +{ + char N_FAR *string; + unsigned int number; + unsigned long longNumber; +} PARAMETER_TABLE_TYPE; + +typedef struct +{ + int keywordCode; + char N_FAR *keyword; + void (N_FAR *function)(PARAMETER_TABLE_TYPE N_FAR *); + TypeDefaultStruct typeDefault[MAX_PARAMETERS]; +} GrammarTableStruct; + +#ifdef __cplusplus +extern "C" { +#endif +N_EXTERN_LIBRARY( int ) +NWParseConfig( + PCHAR configFile, + PCHAR sectionName, + UINT sectionInstance, + UINT grammarTableSize, + GrammarTableStruct N_FAR *grammarTable, + SetTableStruct N_FAR *setTable); +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwconnec.h b/c_clientlogin/xplatincl/nwconnec.h new file mode 100644 index 00000000..652cae6e --- /dev/null +++ b/c_clientlogin/xplatincl/nwconnec.h @@ -0,0 +1,159 @@ +/****************************************************************************** + + %name: nwconnec.h % + %version: 11 % + %date_modified: Tue Aug 29 17:32:28 2000 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWCONNECT_H ) +#define NWCONNECT_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct tNWINET_ADDR +{ + nuint8 networkAddr[4]; + nuint8 netNodeAddr[6]; + nuint16 socket; + nuint16 connType; /* 3.11 and above only: 0=not in use, 2=NCP over IPX, 4=AFP */ +} NWINET_ADDR; + +#define CONNECTION_AVAILABLE 0x0001 +#define CONNECTION_PRIVATE 0x0002 /* obsolete */ +#define CONNECTION_LOGGED_IN 0x0004 +#define CONNECTION_LICENSED 0x0004 +#define CONNECTION_BROADCAST_AVAILABLE 0x0008 +#define CONNECTION_ABORTED 0x0010 +#define CONNECTION_REFUSE_GEN_BROADCAST 0x0020 +#define CONNECTION_BROADCASTS_DISABLED 0x0040 +#define CONNECTION_PRIMARY 0x0080 +#define CONNECTION_NDS 0x0100 +#define CONNECTION_PNW 0x4000 /* obsolete */ +#define CONNECTION_AUTHENTICATED 0x8000 + + +/* End of new connection model calls. */ + +N_EXTERN_LIBRARY( NWCCODE ) +NWLockConnection +( + NWCONN_HANDLE connHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetConnectionInformation +( + NWCONN_HANDLE connHandle, + nuint16 connNumber, + pnstr8 pObjName, + pnuint16 pObjType, + pnuint32 pObjID, + pnuint8 pLoginTime +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetInternetAddress +( + NWCONN_HANDLE connHandle, + nuint16 connNumber, + pnuint8 pInetAddr +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetInetAddr +( + NWCONN_HANDLE connHandle, + nuint16 connNum, + NWINET_ADDR N_FAR * pInetAddr +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWClearConnectionNumber +( + NWCONN_HANDLE connHandle, + nuint16 connNumber +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDefaultConnRef +( + pnuint32 pConnReference +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjectConnectionNumbers +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * pObjName, + nuint16 objType, + pnuint16 pNumConns, + pnuint16 pConnHandleList, + nuint16 maxConns +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetConnListFromObject +( + NWCONN_HANDLE connHandle, + nuint32 objID, + nuint32 searchConnNum, + pnuint16 pConnListLen, + pnuint32 pConnList +); + +#ifndef NWOS2 +N_EXTERN_LIBRARY( NWCCODE ) +NWGetPreferredServer +( + NWCONN_HANDLE N_FAR * pConnHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetPreferredServer +( + NWCONN_HANDLE connHandle +); + +#else +N_EXTERN_LIBRARY( NWCCODE ) +NWResetConnectionConfig +( + nuint32 flags +); +#endif + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_connec.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif /* NWCONNECT_H */ diff --git a/c_clientlogin/xplatincl/nwdel.h b/c_clientlogin/xplatincl/nwdel.h new file mode 100644 index 00000000..c676cd71 --- /dev/null +++ b/c_clientlogin/xplatincl/nwdel.h @@ -0,0 +1,161 @@ +/****************************************************************************** + + %name: nwdel.h % + %version: 7 % + %date_modified: Tue Aug 29 17:50:53 2000 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWDEL_H ) +#define NWDEL_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + nuint32 sequence; + nuint32 parent; + nuint32 attributes; + nuint8 uniqueID; + nuint8 flags; + nuint8 nameSpace; + nuint8 nameLength; + nuint8 name [256]; + nuint32 creationDateAndTime; + nuint32 ownerID; + nuint32 lastArchiveDateAndTime; + nuint32 lastArchiverID; + nuint32 updateDateAndTime; + nuint32 updatorID; + nuint32 fileSize; + nuint8 reserved[44]; + nuint16 inheritedRightsMask; + nuint16 lastAccessDate; + nuint32 deletedTime; + nuint32 deletedDateAndTime; + nuint32 deletorID; + nuint8 reserved3 [16]; +} NWDELETED_INFO; + +typedef struct +{ + nuint32 sequence; + nuint32 parent; + nuint32 attributes; + nuint8 uniqueID; + nuint8 flags; + nuint8 nameSpace; + nuint16 nameLength; + nuint8 name [766]; + nuint32 creationDateAndTime; + nuint32 ownerID; + nuint32 lastArchiveDateAndTime; + nuint32 lastArchiverID; + nuint32 updateDateAndTime; + nuint32 updatorID; + nuint32 fileSize; + nuint8 reserved[44]; + nuint16 inheritedRightsMask; + nuint16 lastAccessDate; + nuint32 deletedTime; + nuint32 deletedDateAndTime; + nuint32 deletorID; + nuint8 reserved3 [16]; +} NWDELETED_INFO_EXT; + + +N_EXTERN_LIBRARY( NWCCODE ) +NWPurgeDeletedFile +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint32 iterHandle, + nuint32 volNum, + nuint32 dirBase, + const nstr8 N_FAR * fileName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRecoverDeletedFile +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint32 iterHandle, + nuint32 volNum, + nuint32 dirBase, + pnstr8 delFileName, + pnstr8 rcvrFileName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRecoverDeletedFileExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint32 iterHandle, + nuint32 volNum, + nuint32 dirBase, + pnstr8 delFileName, + pnstr8 rcvrFileName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanForDeletedFiles +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + pnuint32 iterHandle, + pnuint32 volNum, + pnuint32 dirBase, + NWDELETED_INFO N_FAR * entryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanForDeletedFilesExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + pnuint32 iterHandle, + pnuint32 volNum, + pnuint32 dirBase, + NWDELETED_INFO_EXT N_FAR * entryInfo +); + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_del.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif /* NWDEL_H */ diff --git a/c_clientlogin/xplatincl/nwdentry.h b/c_clientlogin/xplatincl/nwdentry.h new file mode 100644 index 00000000..a77185a9 --- /dev/null +++ b/c_clientlogin/xplatincl/nwdentry.h @@ -0,0 +1,316 @@ +/****************************************************************************** + + %name: nwdentry.h % + %version: 9 % + %date_modified: Thu Oct 14 14:44:57 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWDENTRY_H ) +#define NWDENTRY_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWDIRECT_H ) /* Needed to define TRUSTEE_INFO */ +#include "nwdirect.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + nstr8 entryName[16]; + nuint32 creationDateAndTime; + nuint32 ownerID; + nuint32 sequenceNumber; + TRUSTEE_INFO trusteeList[20]; +} NWET_INFO; + +typedef struct +{ + nstr8 entryName[16]; + nuint32 creationDateAndTime; + nuint32 ownerID; + nuint32 sequenceNumber; + TRUSTEE_INFO trusteeList[100]; +} NWET_INFO_EXT; + +typedef struct +{ + nuint32 updateDateAndTime; + nuint32 updatorID; + nuint32 fileSize; + nuint8 reserved[44]; + nuint16 inheritedRightsMask; + nuint16 lastAccessDate; + nuint8 reserved2[28]; +} NWFILE_INFO; +typedef struct +{ + nuint32 lastModifyDateAndTime; + nuint32 nextTrusteeEntry; + nuint8 reserved[48]; + nuint32 maximumSpace; + nuint16 inheritedRightsMask; + nuint8 reserved2[14]; + nuint32 volObjectID; + nuint8 reserved3[8]; +} NWDIR_INFO; + +typedef struct +{ + nuint32 sequence; + nuint32 parent; + nuint32 attributes; + nuint8 uniqueID; + nuint8 flags; + nuint8 nameSpace; + nuint8 nameLength; + nuint8 name[12]; + nuint32 creationDateAndTime; + nuint32 ownerID; + nuint32 lastArchiveDateAndTime; + nuint32 lastArchiverID; + + union + { + NWFILE_INFO file; + NWDIR_INFO dir; + }info; + +} NWENTRY_INFO; + +typedef struct +{ + nuint32 sequence; + nuint32 parent; + nuint32 attributes; + nuint8 uniqueID; + nuint8 flags; + nuint8 nameSpace; + nuint8 nameLength; + nuint8 name [12]; + nuint32 creationDateAndTime; + nuint32 ownerID; + nuint32 lastArchiveDateAndTime; + nuint32 lastArchiverID; + nuint32 updateDateAndTime; + nuint32 lastUpdatorID; + nuint32 dataForkSize; /* file size */ + nuint32 dataForkFirstFAT; + nuint32 nextTrusteeEntry; + nuint8 reserved[36]; + nuint16 inheritedRightsMask; + nuint16 lastAccessDate; + nuint32 deletedFileTime; + nuint32 deletedDateAndTime; + nuint32 deletorID; + nuint8 reserved2 [16]; + nuint32 otherForkSize[2]; +} NW_EXT_FILE_INFO; + +#define TR_NONE 0x0000 +#define TR_READ 0x0001 +#define TR_WRITE 0x0002 +#define TR_OPEN 0x0004 +#define TR_DIRECTORY 0x0004 +#define TR_CREATE 0x0008 +#define TR_DELETE 0x0010 +#define TR_ERASE 0x0010 +#define TR_OWNERSHIP 0x0020 +#define TR_ACCESS_CTRL 0x0020 +#define TR_FILE_SCAN 0x0040 +#define TR_SEARCH 0x0040 +#define TR_FILE_ACCESS 0x0040 +#define TR_MODIFY 0x0080 +#define TR_ALL 0x01FB +#define TR_SUPERVISOR 0x0100 +#define TR_NORMAL 0x00FB + +#ifndef MModifyNameBit +#define MModifyNameBit 0x0001L +#define MFileAttributesBit 0x0002L +#define MCreateDateBit 0x0004L +#define MCreateTimeBit 0x0008L +#define MOwnerIDBit 0x0010L +#define MLastArchivedDateBit 0x0020L +#define MLastArchivedTimeBit 0x0040L +#define MLastArchivedIDBit 0x0080L +#define MLastUpdatedDateBit 0x0100L +#define MLastUpdatedTimeBit 0x0200L +#define MLastUpdatedIDBit 0x0400L +#define MLastAccessedDateBit 0x0800L +#define MInheritedRightsMaskBit 0x1000L +#define MMaximumSpaceBit 0x2000L +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteTrustee +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * dirPath, + nuint32 objID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteTrusteeExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * dirPath, + nuint32 objID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAddTrustee +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint32 objID, + nuint16 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAddTrusteeExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint32 objID, + nuint16 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanDirEntryInfo +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint16 attrs, + pnuint32 iterHandle, + const nuint8 N_FAR * searchPattern, + NWENTRY_INFO N_FAR * entryInfo, + nuint16 augmentFlag +); + +#define NWScanForTrustees(a, b, c, d, e, f) \ + NWIntScanForTrustees(a, b, c, d, e, f, 0) + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanForTrustees +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint32 iterHandle, + pnuint16 numOfEntries, + NWET_INFO N_FAR * entryTrusteeInfo, + nuint16 augmentFlag +); + +#define NWScanForTrusteesExt(a, b, c, d, e, f) \ + NWIntScanForTrusteesExt(a, b, c, d, e, f, 0) + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanForTrusteesExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint32 iterHandle, + pnuint16 numOfEntries, + NWET_INFO_EXT N_FAR * entryTrusteeInfo, + nuint16 augmentFlag +); + + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntMoveDirEntry +( + NWCONN_HANDLE conn, + nuint8 searchAttrs, + NWDIR_HANDLE srcDirHandle, + const nstr8 N_FAR * srcPath, + NWDIR_HANDLE dstDirHandle, + const nstr8 N_FAR * dstPath, + nuint16 augmentFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetDirEntryInfo +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint8 searchAttrs, + nuint32 iterHandle, + nuint32 changeBits, + const NWENTRY_INFO N_FAR * newEntryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanExtendedInfo +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint8 attrs, + pnuint32 iterHandle, + const nstr8 N_FAR * searchPattern, + NW_EXT_FILE_INFO N_FAR * entryInfo, + nuint16 augmentFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetEffectiveRights +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint16 effectiveRights +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetEffectiveRightsExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint16 effectiveRights +); + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_dentry.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwdirect.h b/c_clientlogin/xplatincl/nwdirect.h new file mode 100644 index 00000000..6e4cb30b --- /dev/null +++ b/c_clientlogin/xplatincl/nwdirect.h @@ -0,0 +1,354 @@ +/****************************************************************************** + + %name: nwdirect.h % + %version: 11 % + %date_modified: Fri Apr 22 11:43:53 2005 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWDIRECT_H ) +#define NWDIRECT_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWAPIDEF_H ) +#include "nwapidef.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + nuint32 totalBlocks; + nuint32 availableBlocks; + + nuint32 purgeableBlocks; /* set to zero if a dirHandle is present */ + nuint32 notYetPurgeableBlocks;/*....when the NWGetDIrSpaceInfo() is called */ + + nuint32 totalDirEntries; + nuint32 availableDirEntries; + nuint32 reserved; + nuint8 sectorsPerBlock; + nuint8 volLen; + nuint8 volName[NW_MAX_VOLUME_NAME_LEN]; +} DIR_SPACE_INFO; + +/* Trustee Access Rights in a network directory */ +/* NOTE: TA_OPEN is obsolete in 3.x */ +#ifndef TA_NONE +#define TA_NONE 0x00 +#define TA_READ 0x01 +#define TA_WRITE 0x02 +#define TA_OPEN 0x04 +#define TA_CREATE 0x08 +#define TA_DELETE 0x10 +#define TA_OWNERSHIP 0x20 +#define TA_SEARCH 0x40 +#define TA_MODIFY 0x80 +#define TA_ALL 0xFB +#endif + +typedef struct +{ + nuint32 objectID; + nuint16 objectRights; +} TRUSTEE_INFO; + +typedef struct +{ + nuint8 level; + nuint32 max; + nuint32 current; +} NW_LIMIT_LIST_INNER; + +typedef struct +{ + nuint8 numEntries; + NW_LIMIT_LIST_INNER list[102]; +} NW_LIMIT_LIST; + +N_EXTERN_LIBRARY( NWCCODE ) +NWAddTrusteeToDirectory +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint32 trusteeID, + nuint8 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteTrusteeFromDirectory +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint32 objID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetEffectiveDirectoryRights +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint16 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWModifyMaximumRightsMask +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 revokeRightsMask, + nuint8 grantRightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanDirectoryForTrustees +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * searchPath, + pnuint16 iterHandle, + pnstr8 dirName, + pnuint32 dirDateTime, + pnuint32 ownerID, + pnuint32 trusteeIDs, + pnuint8 trusteeRights +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanDirectoryForTrustees2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * searchPath, + pnuint32 iterHandle, + pnstr8 dirName, + pnuint32 dirDateTime, + pnuint32 ownerID, + TRUSTEE_INFO N_FAR * trusteeList +); + +#define NWScanDirectoryInformation(a, b, c, d, e, f, g, h) \ + NWIntScanDirectoryInformation(a, b, c, d, e, f, g, h, 0) + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanDirectoryInformation +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * searchPath, + pnuint16 iterHandle, + pnstr8 dirName, + pnuint32 dirDateTime, + pnuint32 ownerID, + pnuint8 rightsMask, + nuint16 augmentFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanDirectoryInformation2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * searchPath, + pnuint8 sequence, + pnstr8 dirName, + pnuint32 dirDateTime, + pnuint32 ownerID, + pnuint8 rightsMask, + nuint16 augmentFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetDirectoryInformation +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint32 dirDateTime, + nuint32 ownerID, + nuint8 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAllocPermanentDirectoryHandle +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * dirPath, + NWDIR_HANDLE N_FAR * newDirHandle, + pnuint8 effectiveRights +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAllocTemporaryDirectoryHandle +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * dirPath, + NWDIR_HANDLE N_FAR * newDirHandle, + pnuint8 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeallocateDirectoryHandle +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetDirectoryHandlePath +( + NWCONN_HANDLE conn, + NWDIR_HANDLE sourceDirHandle, + const nstr8 N_FAR * dirPath, + NWDIR_HANDLE destDirHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDirectoryHandlePath +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + pnstr8 dirPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCreateDirectory +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * dirPath, + nuint8 accessMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteDirectory +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * dirPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRenameDirectory +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * oldName, + const nstr8 N_FAR * newName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetDirSpaceLimit +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint32 spaceLimit +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDirSpaceLimitList +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + pnuint8 returnBuf +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDirSpaceLimitList2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + NW_LIMIT_LIST N_FAR * limitList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDirSpaceInfo +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint16 volNum, + DIR_SPACE_INFO N_FAR * spaceInfo +); + +#ifndef TF_READ_ONLY +#define TF_NORMAL 0x0000 +#define TF_READ_ONLY 0x0001L +#define TF_HIDDEN 0x0002L +#define TF_SYSTEM 0x0004L +#define TF_EXECUTE_ONLY 0x0008L + +#define TF_DIRECTORY 0x0010L +#define TF_NEEDS_ARCHIVED 0x0020L +#define TF_EXECUTE_CONFIRM 0X0040L +#define TF_SHAREABLE 0x0080L + +#define TF_LOW_SEARCH_BIT 0x0100L +#define TF_MID_SEARCH_BIT 0x0200L +#define TF_HI_SEARCH_BIT 0x0400L +#define TF_PRIVATE 0x0800L + +#define TF_TRANSACTIONAL 0x1000L +#define TF_INDEXED 0x2000L +#define TF_READ_AUDIT 0x4000L +#define TF_WRITE_AUDIT 0x8000L + +#define TF_PURGE 0x10000L +#define TF_RENAME_INHIBIT 0x20000L +#define TF_DELETE_INHIBIT 0x40000L +#define TF_COPY_INHIBIT 0x80000L +#define TF_AUDITING_BIT 0x00100000L +#endif + +/* DIRECTORY ATTRIBUTES */ + +#define TD_HIDDEN TF_HIDDEN +#define TD_SYSTEM TF_SYSTEM +#define TD_PURGE TF_PURGE +#define TD_PRIVATE TF_PRIVATE +#define TD_VISIBLE TF_PRIVATE +#define TD_RENAME_INHIBIT TF_RENAME_INHIBIT +#define TD_DELETE_INHIBIT TF_DELETE_INHIBIT + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_direct.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwdpath.h b/c_clientlogin/xplatincl/nwdpath.h new file mode 100644 index 00000000..0fdd135c --- /dev/null +++ b/c_clientlogin/xplatincl/nwdpath.h @@ -0,0 +1,302 @@ +/****************************************************************************** + + %name: nwdpath.h % + %version: 7 % + %date_modified: Tue Jun 14 08:39:23 2005 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWDPATH_H ) +#define NWDPATH_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* status values for NWGetDriveStatus */ +#define NW_UNMAPPED_DRIVE 0x0000 +#define NW_FREE_DRIVE 0x0000 +#define NW_CDROM_DRIVE 0x0400 +#define NW_LOCAL_FREE_DRIVE 0x0800 +#define NW_LOCAL_DRIVE 0x1000 +#define NW_NETWORK_DRIVE 0x2000 +#define NW_LITE_DRIVE 0x4000 +#define NW_PNW_DRIVE 0x4000 +#define NW_NETWARE_DRIVE 0x8000 + +/* return error for NWGetDriveStatus */ +#define NW_INVALID_DRIVE 15 + +/* defined for pathFormat parameter in NWGetDriveStatus */ +#define NW_FORMAT_NETWARE 0 +#define NW_FORMAT_SERVER_VOLUME 1 +#define NW_FORMAT_DRIVE 2 +#define NW_FORMAT_UNC 3 + +#if !defined(N_PLAT_UNIX) +N_EXTERN_LIBRARY( NWCCODE ) +NWSetDriveBase +( + nuint16 driveNum, + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * dirPath, + nuint16 driveScope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetInitDrive +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetSearchDriveVector +( + pnstr8 vectorBuffer +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetSearchDriveVector +( + pnstr8 vectorBuffer +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteDriveBase +( + nuint16 driveNum, + nuint16 driveScope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDrivePathConnRef +( + nuint16 driveNum, + nuint16 mode, + pnuint32 connRef, + pnstr8 basePath, + pnuint16 driveScope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDrivePath +( + nuint16 driveNum, + nuint16 mode, + NWCONN_HANDLE N_FAR * conn, + pnstr8 basePath, + pnuint16 driveScope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDriveInformation +( + nuint16 driveNum, + nuint16 mode, + NWCONN_HANDLE N_FAR * conn, + NWDIR_HANDLE N_FAR * dirHandle, + pnuint16 driveScope, + pnstr8 dirPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDriveInfoConnRef +( + nuint16 driveNum, + nuint16 mode, + pnuint32 connRef, + NWDIR_HANDLE N_FAR * dirHandle, + pnuint16 driveScope, + pnstr8 dirPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDriveStatus +( + nuint16 driveNum, + nuint16 pathFormat, + pnuint16 status, + NWCONN_HANDLE N_FAR * conn, + pnstr8 rootPath, + pnstr8 relPath, + pnstr8 fullPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDriveStatusConnRef +( + nuint16 driveNum, + nuint16 pathFormat, + pnuint16 status, + pnuint32 connRef, + pnstr8 rootPath, + pnstr8 relPath, + pnstr8 fullPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFirstDrive +( + pnuint16 firstDrive +); + +#else + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDriveStatusConnRef2 +( + pnstr path, + nuint16 pathFormat, + pnuint16 status, + pnuint32 connRef, + pnstr8 rootPath, + pnstr8 relPath, + pnstr8 fullPath +); + +N_GLOBAL_LIBRARY( NWCCODE ) +NWSetDriveBase2 +( + const nstr8 * localPath, + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 * dirPath, + nuint32 flags +); + +N_GLOBAL_LIBRARY( NWCCODE ) +NWDeleteDriveBase2 +( + const nstr8 * localPath +); + +N_GLOBAL_LIBRARY( NWCCODE ) +NWGetMappedDrives +( + nptr mapBuffer, + pnuint32 mapBufferLen +); + +N_GLOBAL_LIBRARY( NWCCODE ) +NWEnumMappedDrives +( + nptr mapBuffer, + pnuint32 mapIndex, + pnuint32 connReference, + nuint localPathLen, + pnstr8 localPath, + nuint dirPathLen, + pnstr8 dirPath +); + +N_GLOBAL_LIBRARY( NWCCODE ) +NWGetMountPath +( + pnstr8 pathBuffer, + pnuint32 pathPathLen +); +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetPathFromDirectoryBase /* 3.x & 4.x file servers */ +( + NWCONN_HANDLE conn, + nuint8 volNum, + nuint32 dirBase, + nuint8 namSpc, + pnuint8 len, + pnstr8 pathName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetPathFromDirectoryEntry /* 2.x file servers only */ +( + NWCONN_HANDLE conn, + nuint8 volNum, + nuint16 dirEntry, + pnuint8 len, + pnstr8 pathName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWParseNetWarePath +( + const nstr8 N_FAR * path, + NWCONN_HANDLE N_FAR * conn, + NWDIR_HANDLE N_FAR * dirHandle, + pnstr8 newPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWParseNetWarePathConnRef +( + const nstr8 N_FAR * path, + pnuint32 connRef, + NWDIR_HANDLE N_FAR * dirHandle, + pnstr8 newPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWParsePathConnRef +( + const nstr8 N_FAR * path, + pnstr8 serverName, + pnuint32 connRef, + pnstr8 volName, + pnstr8 dirPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWParsePath +( + const nstr8 N_FAR * path, + pnstr8 serverName, + NWCONN_HANDLE N_FAR * conn, + pnstr8 volName, + pnstr8 dirPath +); + +N_EXTERN_LIBRARY( pnstr8 ) +NWStripServerOffPath +( + const nstr8 N_FAR * path, + pnstr8 server +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCreateUNCPath +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + pnstr8 path, + pnstr8 UNCPath +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwdsacl.h b/c_clientlogin/xplatincl/nwdsacl.h new file mode 100644 index 00000000..5796f175 --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsacl.h @@ -0,0 +1,71 @@ +/****************************************************************************** + + %name: nwdsacl.h % + %version: 3 % + %date_modified: Wed Dec 18 12:06:37 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSACL_H ) +#define NWDSACL_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#if ! defined ( NWDSBUFT_H ) /* Needed to defined pBuf_T */ +#include "nwdsbuft.h" +#endif + +#if ! defined ( NWDSDC_H ) /* Needed to defined NWDSContextHandle */ +#include "nwdsdc.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus + extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetEffectiveRights +( + NWDSContextHandle context, + pnstr8 subjectName, + pnstr8 objectName, + pnstr8 attrName, + pnuint32 privileges +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSListAttrsEffectiveRights +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 subjectName, + nbool8 allAttrs, + pBuf_T attrNames, + pnint32 iterationHandle, + pBuf_T privilegeInfo +); + +#ifdef __cplusplus + } +#endif + +#include "npackoff.h" +#endif /* NWDSACL_H */ diff --git a/c_clientlogin/xplatincl/nwdsapi.h b/c_clientlogin/xplatincl/nwdsapi.h new file mode 100644 index 00000000..f48e241c --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsapi.h @@ -0,0 +1,193 @@ +/****************************************************************************** + Source module name: + Release Version: + + %name: nwdsapi.h % + %version: 8 % + %date_modified: Mon Jan 26 17:53:18 1998 % + $Copyright: + + Copyright (c) 1989-1996 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#ifndef __NWDSAPI_H__ +#define __NWDSAPI_H__ +#if defined( N_PLAT_NLM ) + +/* + =============================================================================== + = WARNING: This header is obsolete and is only for backward compatibility + = with the legacy DSAPI.NLM. The equivalent functionality is available + = in NWNet.h. The NWNet.h header should be used. + =============================================================================== +*/ + +#include +#if !defined(__NOVELL_LIBC__) +#if ! defined ( _NWFATTR_H_ ) +#include +#include +#endif +#undef FA_NORMAL +#undef FA_HIDDEN +#undef FA_SYSTEM +#endif + + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + + +/* nwalias.h defines NWCONN_TYPE, NWSTATUS, NWOBJ_TYPE for us */ +#if ! defined ( NWALIAS_H ) +# include "nwalias.h" +#endif + + + +#ifndef USE_NW_WILD_MATCH +#define USE_NW_WILD_MATCH 0 +#endif + +#ifndef USE_DOS_WILD_MATCH +#define USE_DOS_WILD_MATCH 1 +#endif + +/* Scope specifiers */ +#define GLOBAL 0 +#define PRIVATE 1 +#define MY_SESSION 2 +#define ALL_SESSIONS 3 + + +/* nwdstype defines NWDSCODE for us */ +#if ! defined ( NWDSTYPE_H ) +# include "nwdstype.h" +#endif + +#ifndef NWCONN_ID +# define NWCONN_ID unsigned int +#endif + +#ifndef NWCONN_NUM_BYTE +# define NWCONN_NUM_BYTE unsigned char +#endif + +#ifndef NWDSDEFS_H +# include +typedef enum EMAIL_ADDRESS_TYPE +{ + SMF70 = 1, SMF71, SMTP, X400, SNADS, PROFS +} EMAIL_ADDRESS_TYPE; + +#define DS_TYPES_REQUIRED 0x0010 +#endif + +#ifndef __NWDSERR_H +# include /* Not present in xplat */ +#endif + +#ifndef NWDSNAME_H +# include +#endif + +#ifndef NWDSFILT_H +# include +#endif + +#ifndef NWDSMISC_H +# include +#endif + +#ifndef NWDSACL_H +# include +#endif + +#ifndef NWDSAUD_H +# include +#endif + +#ifndef NWDSDSA_H +# include +#endif + +#ifndef NWDSSCH_H +# include +#endif + +#ifndef NWDSATTR_H +# include +#endif + +#ifndef NWDSASA_H +# include +# define GENERATE_CERTIFICATION_KP_F 1 +#endif + +#ifndef NWDSPART_H +# include +#endif + +#ifndef NWDSBUFT_H +# include +#endif + +#ifndef NWDSNMTP_H +# include +#endif + +#ifndef NUNICODE_H +# include +#define DONT_USE_NOMAP_CHAR 0L /* for 'noMapFlag' in NWLocalToUnicode() */ +#define USE_NOMAP_CHAR 1L /* and NWUnicodeToLocal() */ +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +N_GLOBAL_LIBRARY( NWCCODE ) +NWDSLoginAsServer +( + NWDSContextHandle context +); + +#ifdef __cplusplus +} +#endif + +/*============================================================================== +** NLM-specific error codes which may be returned from Directory Services calls. +** For principal Directory Services error codes, see file NWDSErr.h. +**============================================================================== +*/ +#define ERR_BAD_SERVICE_CONNECTION -400 +#define ERR_BAD_NETWORK -401 +#define ERR_BAD_ADDRESS -402 +#define ERR_SLOT_ALLOCATION -403 +#define ERR_BAD_BROADCAST -404 +#define ERR_BAD_SERVER_NAME -405 +#define ERR_BAD_USER_NAME -406 +#define ERR_NO_MEMORY -408 + +#define ERR_BAD_SOCKET -410 +#define ERR_TAG_ALLOCATION -411 +#define ERR_CONNECTION_ABORTED -412 +#define ERR_TIMEOUT -413 +#define ERR_CHECKSUM -414 +#define ERR_NO_FRAGMENT_LIST -415 + +#endif +#endif + diff --git a/c_clientlogin/xplatincl/nwdsasa.h b/c_clientlogin/xplatincl/nwdsasa.h new file mode 100644 index 00000000..24b00fcb --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsasa.h @@ -0,0 +1,181 @@ +/****************************************************************************** + + %name: nwdsasa.h % + %version: 10 % + %date_modified: Mon Nov 1 13:40:27 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSASA_H ) +#define NWDSASA_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWDSDC_H ) +#include "nwdsdc.h" /* for NWDSContextHandle typedef */ +#endif + +#include "npackon.h" + +#define SESSION_KEY_SIZE 16 +typedef nuint8 NWDS_Session_Key_T[SESSION_KEY_SIZE]; /* Optional session key */ +typedef NWDS_Session_Key_T N_FAR * pNWDS_Session_Key_T; + +#ifdef __cplusplus +extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAuthenticateConn +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAuthenticateConnEx +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSChangeObjectPassword +( + NWDSContextHandle context, + nflag32 pwdOption, + pnstr8 objectName, + pnstr8 oldPassword, + pnstr8 newPassword +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGenerateObjectKeyPair +( + NWDSContextHandle contextHandle, + pnstr8 objectName, + pnstr8 objectPassword, + nflag32 pwdOption +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGenerateObjectKeyPair2 +( + NWDSContextHandle context, + pnstr8 objectName, + nuint32 pseudoID, + nuint32 pwdLen, + pnstr8 pwdHash, + nuint32 optionsFlag +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSLogin +( + NWDSContextHandle context, + nflag32 optionsFlag, + pnstr8 objectName, + pnstr8 password, + nuint32 validityPeriod +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSLogout +( + NWDSContextHandle context +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSVerifyObjectPassword +( + NWDSContextHandle context, + nflag32 optionsFlag, + pnstr8 objectName, + pnstr8 password +); + + + /* The following APIs support extended and international characters in + * passwords - see nwdsdefs.h for a list of supported password + * formats + */ +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGenerateKeyPairEx +( + NWDSContextHandle context, + pnstr8 objectName, + nuint32 pwdFormat, + nptr pwd, + nuint32 pwdOption +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSChangePwdEx +( + NWDSContextHandle context, + pnstr8 objectName, + nuint32 pwdFormat, + nptr oldPwd, + nptr newPwd, + nuint32 pwdOption +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSLoginEx +( + NWDSContextHandle context, + pnstr8 objectName, + nuint32 pwdFormat, + nptr pwd +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSVerifyPwdEx +( + NWDSContextHandle context, + pnstr8 objectName, + nuint32 pwdFormat, + nptr pwd +); + + +#if defined( N_PLAT_NLM ) +N_GLOBAL_LIBRARY( NWCCODE ) +NWDSLoginAsServer +( + NWDSContextHandle context +); +#endif + +#ifdef __cplusplus +} +#endif + + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_dsasa.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwdsattr.h b/c_clientlogin/xplatincl/nwdsattr.h new file mode 100644 index 00000000..3872e395 --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsattr.h @@ -0,0 +1,159 @@ +/****************************************************************************** + + %name: nwdsattr.h % + %version: 3 % + %date_modified: Wed Dec 18 12:06:53 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSATTR_H ) +#define NWDSATTR_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif +#include "npackon.h" + +#define TIME_BITMAP_LEN 42 +#define NUM_POSTAL_ADDRESS_ELEMENTS 6 + +typedef pnstr8 CE_String_T; +typedef pnstr8 Class_Name_T; +typedef pnstr8 CI_String_T; +typedef pnstr8 CN_String_T; +typedef pnstr8 DN_T; +typedef nint32 Integer_T; +typedef nuint8 Boolean_T; +typedef pnstr8 NU_String_T; +typedef pnstr8 Postal_Address_T[NUM_POSTAL_ADDRESS_ELEMENTS]; +typedef pnstr8 PR_String_T; +typedef pnstr8 Secure_Name_T; +typedef pnstr8 TN_String_T; +typedef nuint32 Counter_T; + +typedef struct +{ + nuint32 remoteID; + pnstr8 objectName; +} Back_Link_T, N_FAR *pBack_Link_T; + +typedef struct +{ + nuint32 numOfBits; + pnuint8 data; +} Bit_String_T, N_FAR *pBit_String_T; + +typedef struct _ci_list +{ + struct _ci_list N_FAR *next; + pnstr8 s; +} CI_List_T, N_FAR *pCI_List_T; + +typedef struct +{ + pnstr8 telephoneNumber; + Bit_String_T parameters; +}Fax_Number_T, N_FAR *pFax_Number_T; + +typedef struct +{ + pnstr8 objectName; + nuint32 level; + nuint32 interval; +} Typed_Name_T, N_FAR *pTyped_Name_T; + +typedef struct +{ + nuint32 addressType; + nuint32 addressLength; + pnuint8 address; +} Net_Address_T, N_FAR *pNet_Address_T; + +typedef struct +{ + pnstr8 protectedAttrName; + pnstr8 subjectName; + nuint32 privileges; +} Object_ACL_T, N_FAR *pObject_ACL_T; + +typedef struct +{ + nuint32 length; + pnuint8 data; +} Octet_String_T, N_FAR *pOctet_String_T; + +typedef Octet_String_T Stream_T; +typedef pOctet_String_T pStream_T; + +typedef struct _octet_list +{ + struct _octet_list N_FAR *next; + nuint32 length; + pnuint8 data; +} Octet_List_T, N_FAR *pOctet_List_T; + +typedef struct +{ + pnstr8 objectName; + nuint32 amount; +} Hold_T, N_FAR *pHold_T; + +typedef struct +{ + pnstr8 serverName; + nint32 replicaType; + nint32 replicaNumber; + nuint32 count; + Net_Address_T replicaAddressHint[1]; +} Replica_Pointer_T, N_FAR *pReplica_Pointer_T; + +typedef struct +{ + nuint32 type; + pnstr8 address; +} EMail_Address_T, N_FAR *pEMail_Address_T; + +typedef struct +{ + nuint32 nameSpaceType; + pnstr8 volumeName; + pnstr8 path; +} Path_T, N_FAR *pPath_T; + +typedef struct +{ + nuint32 wholeSeconds; + nuint32 eventID; +} NWDS_TimeStamp_T, N_FAR *pNWDS_TimeStamp_T; + +typedef struct +{ + nuint32 wholeSeconds; + nuint16 replicaNum; + nuint16 eventID; +} TimeStamp_T, N_FAR *pTimeStamp_T; + +typedef struct +{ + pnstr8 attrName; + nuint32 syntaxID; + nuint32 valueLen; + nptr value; +} Unknown_Attr_T, N_FAR *pUnknown_Attr_T; + +#include "npackoff.h" +#endif /* NWDSATTR_H */ diff --git a/c_clientlogin/xplatincl/nwdsaud.h b/c_clientlogin/xplatincl/nwdsaud.h new file mode 100644 index 00000000..ca37beae --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsaud.h @@ -0,0 +1,51 @@ +/****************************************************************************** + + %name: nwdsaud.h % + %version: 4 % + %date_modified: Wed Dec 18 12:06:58 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSAUD_H ) +#define NWDSAUD_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#if ! defined ( NWDSDC_H ) +#include "nwdsdc.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#include "npackon.h" + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_dsaud.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + + +#include "npackoff.h" +#endif /* NWDSAUD_H */ diff --git a/c_clientlogin/xplatincl/nwdsbuft.h b/c_clientlogin/xplatincl/nwdsbuft.h new file mode 100644 index 00000000..9ba0f1d0 --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsbuft.h @@ -0,0 +1,385 @@ +/****************************************************************************** + + %name : % + %version : % + %date_modified : % + $Copyright: + + Copyright (c) 1989-1998 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSBUFT_H ) +#define NWDSBUFT_H + +#include + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#if ! defined ( NWDSDC_H ) +#include "nwdsdc.h" +#endif + +#if ! defined ( NWDSDEFS_H ) +#include "nwdsdefs.h" +#endif + +#if ! defined ( NWDSATTR_H ) +#include "nwdsattr.h" +#endif + +#include "npackon.h" + +#define INPUT_BUFFER 0x00000001 + +typedef struct +{ + nuint32 operation; + nuint32 flags; + nuint32 maxLen; + nuint32 curLen; + pnuint8 lastCount; + pnuint8 curPos; + pnuint8 data; +} Buf_T, N_FAR *pBuf_T, N_FAR * N_FAR *ppBuf_T; + +typedef struct +{ + nuint32 objectFlags; + nuint32 subordinateCount; + time_t modificationTime; + char baseClass[MAX_SCHEMA_NAME_BYTES + 2]; +} Object_Info_T, N_FAR *pObject_Info_T; + +typedef struct +{ + nuint32 length; + nuint8 data[MAX_ASN1_NAME]; +} Asn1ID_T, N_FAR *pAsn1ID_T; + +typedef struct +{ + nuint32 attrFlags; + nint32 attrSyntaxID; + nint32 attrLower; + nint32 attrUpper; + Asn1ID_T asn1ID; +} Attr_Info_T, N_FAR *pAttr_Info_T; + +typedef struct +{ + nuint32 classFlags; + Asn1ID_T asn1ID; +} Class_Info_T, N_FAR *pClass_Info_T; + +typedef struct +{ + nuint32 ID; + char defStr[MAX_SCHEMA_NAME_BYTES + 2]; + nflag16 flags; +} Syntax_Info_T, N_FAR *pSyntax_Info_T; + +#define NWDSPutClassName(c, b, n) NWDSPutClassItem(c, b, n) +#define NWDSPutSyntaxName(c, b, n) NWDSPutClassItem(c, b, n) + +#ifdef __cplusplus + extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAllocBuf +( + size_t size, + ppBuf_T buf +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSComputeAttrValSize +( + NWDSContextHandle context, + pBuf_T buf, + nuint32 syntaxID, + pnuint32 attrValSize +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSFreeBuf +( + pBuf_T buf +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetAttrCount +( + NWDSContextHandle context, + pBuf_T buf, + pnuint32 attrCount +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetAttrDef +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 attrName, + pAttr_Info_T attrInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetAttrName +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 attrName, + pnuint32 attrValCount, + pnuint32 syntaxID +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetAttrVal +( + NWDSContextHandle context, + pBuf_T buf, + nuint32 syntaxID, + nptr attrVal +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetAttrValModTime +( + NWDSContextHandle context, + pBuf_T buf, + pTimeStamp_T timeStamp +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetAttrValFlags +( + NWDSContextHandle context, + pBuf_T buf, + pnuint32 valueFlags +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetClassDef +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 className, + pClass_Info_T classInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetClassDefCount +( + NWDSContextHandle context, + pBuf_T buf, + pnuint32 classDefCount +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetClassItem +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 itemName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetClassItemCount +( + NWDSContextHandle context, + pBuf_T buf, + pnuint32 itemCount +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetObjectCount +( + NWDSContextHandle context, + pBuf_T buf, + pnuint32 objectCount +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetObjectName +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 objectName, + pnuint32 attrCount, + pObject_Info_T objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetObjectNameAndInfo +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 objectName, + pnuint32 attrCount, + ppnstr8 objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetDSIInfo +( + NWDSContextHandle context, + nptr buf, + nuint32 bufLen, + nuint32 infoFlag, + nptr data +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetPartitionInfo +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 partitionName, + pnuint32 replicaType +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetReplicaReferenceRootID +( + NWDSContextHandle context, + pBuf_T buf, + pnuint32 replicaRootID +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetServerName +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 serverName, + pnuint32 partitionCount +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetPartitionExtInfoPtr +( + NWDSContextHandle context, + pBuf_T buf, + ppnstr8 infoPtr, + ppnstr8 infoPtrEnd +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetPartitionExtInfo +( + NWDSContextHandle context, + pnstr8 infoPtr, + pnstr8 limit, + nflag32 infoFlag, + pnuint32 length, + nptr data +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetSyntaxCount +( + NWDSContextHandle context, + pBuf_T buf, + pnuint32 syntaxCount +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetSyntaxDef +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 syntaxName, + pSyntax_Info_T syntaxDef +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSInitBuf +( + NWDSContextHandle context, + nuint32 operation, + pBuf_T buf +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPutAttrName +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 attrName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPutAttrVal +( + NWDSContextHandle context, + pBuf_T buf, + nuint32 syntaxID, + nptr attrVal +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPutAttrNameAndVal +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 attrName, + nuint32 syntaxID, + nptr attrVal +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPutChange +( + NWDSContextHandle context, + pBuf_T buf, + nuint32 changeType, + pnstr8 attrName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPutChangeAndVal +( + NWDSContextHandle context, + pBuf_T buf, + nuint32 changeType, + pnstr8 attrName, + nuint32 syntaxID, + nptr attrVal +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPutClassItem +( + NWDSContextHandle context, + pBuf_T buf, + pnstr8 itemName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSBeginClassItem +( + NWDSContextHandle context, + pBuf_T buf +); + +#ifdef __cplusplus + } +#endif + +#include "npackoff.h" +#endif /* NWDSBUFT_H */ diff --git a/c_clientlogin/xplatincl/nwdsconn.h b/c_clientlogin/xplatincl/nwdsconn.h new file mode 100644 index 00000000..7e444f7b --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsconn.h @@ -0,0 +1,121 @@ +/****************************************************************************** + + %name: nwdsconn.h % + %version: 3 % + %date_modified: Wed Dec 18 12:07:08 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSCONN_H ) +#define NWDSCONN_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWDSDC_H ) +#include "nwdsdc.h" +#endif + +#ifdef __cplusplus + extern "C" { +#endif + + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSOpenConnToNDSServer +( + NWDSContextHandle context, + pnstr8 serverName, + pNWCONN_HANDLE connHandle +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetDefNameContext +( + NWDSContextHandle context, + nuint nameContextLen, + pnstr8 nameContext +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSSetDefNameContext +( + NWDSContextHandle context, + nuint nameContextLen, + pnstr8 nameContext +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetMonitoredConnRef +( + NWDSContextHandle context, + pnuint32 connRef +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSOpenMonitoredConn +( + NWDSContextHandle context, + pNWCONN_HANDLE connHandle +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSScanConnsForTrees +( + NWDSContextHandle context, + nuint numOfPtrs, + pnuint numOfTrees, + ppnstr8 treeBufPtrs +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSScanForAvailableTrees +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle, + pnstr scanFilter, + pnint32 scanIndex, + pnstr treeName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReturnBlockOfAvailableTrees +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle, + pnstr scanFilter, + pnstr lastBlocksString, + pnstr endBoundString, + nuint32 maxTreeNames, + ppnstr arrayOfNames, + pnuint32 numberOfTrees, + pnuint32 totalUniqueTrees +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSCanDSAuthenticate +( + NWDSContextHandle context +); + + +#ifdef __cplusplus + } +#endif +#endif /* NWDSCONN_H */ + diff --git a/c_clientlogin/xplatincl/nwdsdc.h b/c_clientlogin/xplatincl/nwdsdc.h new file mode 100644 index 00000000..915ced7b --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsdc.h @@ -0,0 +1,176 @@ +/****************************************************************************** + + %name: nwdsdc.h % + %version: 17 % + %date_modified: Tue Aug 29 18:16:45 2000 % + $Copyright: + + Copyright (c) 1989-1997 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSDC_H ) +#define NWDSDC_H + +#if ! defined( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#include "npackon.h" + +/* Directory Context Key names */ + +#define DCK_FLAGS 1 +#define DCK_CONFIDENCE 2 +#define DCK_NAME_CONTEXT 3 +#define DCK_TRANSPORT_TYPE 4 +#define DCK_REFERRAL_SCOPE 5 +#define DCK_LAST_CONNECTION 8 +#define DCK_LAST_SERVER_ADDRESS 9 /* CLIB NLM only */ +#define DCK_LAST_ADDRESS_USED 10 /* CLIB NLM only */ +#define DCK_TREE_NAME 11 +#define DCK_DSI_FLAGS 12 +#define DCK_NAME_FORM 13 +#define DCK_NAME_CACHE_DEPTH 15 +#define DCK_AUTHENTICATION_MODE 20 + +/* DCK_FLAGS bit values key */ + +#define DCV_DEREF_ALIASES 0x00000001L +#define DCV_XLATE_STRINGS 0x00000002L +#define DCV_TYPELESS_NAMES 0x00000004L +#define DCV_ASYNC_MODE 0x00000008L +#define DCV_CANONICALIZE_NAMES 0x00000010L +#define DCV_DEREF_BASE_CLASS 0x00000040L +#define DCV_DISALLOW_REFERRALS 0x00000080L +#define DCV_ALWAYS_EVALUATE_REFERRALS 0x00000100L +#define DCV_EXTERNAL_REFERENCES 0x00000200L + + +/* values for DCK_CONFIDENCE key */ +#define DCV_LOW_CONF 0 +#define DCV_MED_CONF 1 +#define DCV_HIGH_CONF 2 + +#define MAX_MESSAGE_LEN (0xFC00) /* (63*1024) */ +#define DEFAULT_MESSAGE_LEN (4*1024) + +/* values for DCK_REFERRAL_SCOPE key */ +#define DCV_ANY_SCOPE 0 +#define DCV_COUNTRY_SCOPE 1 +#define DCV_ORGANIZATION_SCOPE 2 +#define DCV_LOCAL_SCOPE 3 + +/* values for DCK_DSI_FLAGS key */ +#define DSI_OUTPUT_FIELDS 0x00000001L +#define DSI_ENTRY_ID 0x00000002L +#define DSI_ENTRY_FLAGS 0x00000004L +#define DSI_SUBORDINATE_COUNT 0x00000008L +#define DSI_MODIFICATION_TIME 0x00000010L +#define DSI_MODIFICATION_TIMESTAMP 0x00000020L +#define DSI_CREATION_TIMESTAMP 0x00000040L +#define DSI_PARTITION_ROOT_ID 0x00000080L +#define DSI_PARENT_ID 0x00000100L +#define DSI_REVISION_COUNT 0x00000200L +#define DSI_REPLICA_TYPE 0x00000400L +#define DSI_BASE_CLASS 0x00000800L +#define DSI_ENTRY_RDN 0x00001000L +#define DSI_ENTRY_DN 0x00002000L +#define DSI_PARTITION_ROOT_DN 0x00004000L +#define DSI_PARENT_DN 0x00008000L +#define DSI_PURGE_TIME 0x00010000L +#define DSI_DEREFERENCE_BASE_CLASS 0x00020000L +#define DSI_REPLICA_NUMBER 0x00040000L +#define DSI_REPLICA_STATE 0x00080000L +#define DSI_FEDERATION_BOUNDARY 0x00100000L +#define DSI_SCHEMA_BOUNDARY 0x00200000L + + +/* values for DCK_NAME_FORM key */ +#define DCV_NF_PARTIAL_DOT 1 +#define DCV_NF_FULL_DOT 2 +#define DCV_NF_SLASH 3 + +/* values for DCK_AUTHENTICATION_MODE key */ +#define DCV_PUBLIC_AUTHEN 1 +#define DCV_PRIVATE_AUTHEN 2 + + +typedef nuint32 NWDSContextHandle; + + +#if defined(N_PLAT_NLM) +typedef struct +{ + nuint32 addressType; + nuint32 addressLength; + nuint8 address[12]; +} NWDSIPXNetworkAddr; +#endif + +#ifdef __cplusplus + extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSFreeContext +( + NWDSContextHandle context +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetContext +( + NWDSContextHandle context, + nint key, + nptr value +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSSetContext +( + NWDSContextHandle context, + nint key, + nptr value +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSCreateContextHandle +( + NWDSContextHandle N_FAR *newHandle +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSDuplicateContextHandle +( + NWDSContextHandle srcContextHandle, + NWDSContextHandle N_FAR *destContextHandle +); + +#ifdef __cplusplus + } +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_dsdc.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" + +#endif /* NWDSDC_H */ diff --git a/c_clientlogin/xplatincl/nwdsdefs.h b/c_clientlogin/xplatincl/nwdsdefs.h new file mode 100644 index 00000000..fc83877a --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsdefs.h @@ -0,0 +1,486 @@ +/****************************************************************************** + + %name: nwdsdefs.h % + %version: 38 % + %date_modified: Tue Mar 29 17:51:54 2005 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSDEFS_H ) +#define NWDSDEFS_H + +/* * Directory Services NCP verb and subverbs * */ +#define DS_NCP_VERB 104 + +/* subverbs */ +#define DS_NCP_PING 1 +#define DS_NCP_FRAGMENT 2 +#define DS_NCP_FRAGMENT_CLOSE 3 +#define DS_NCP_BINDERY_CONTEXT 4 +#define DS_NCP_MONITOR_CONNECTION 5 +#define DS_NCP_GET_DS_STATISTICS 6 +#define DS_NCP_RESET_DS_COUNTERS 7 +#define DS_NCP_RELOAD 8 +#define DS_NCP_AUDITING 200 /* 200 - 255 reserved for auditing */ + +/* Directory Services PING information FLAGS */ +/* ping input flags, these flag are order dependent and alignment dependent */ +#define DSPING_SUPPORTED_FIELDS 0x00000001L +#define DSPING_DEPTH 0x00000002L +#define DSPING_BUILD_NUMBER 0x00000004L +#define DSPING_FLAGS 0x00000008L +#define DSPING_VERIFICATION_FLAGS 0x00000010L +#define DSPING_LETTER_VERSION 0x00000020L +#define DSPING_OS_VERSION 0x00000040L +#define DSPING_TIMESYNC_STATE 0x00000080L +#define DSPING_LICENSE_FLAGS 0x00000100L +#define DSPING_DS_TIME 0x00000200L +#define DSPING_SERVER_TIME 0x00000400L +#define DSPING_MODULE_CREATETIME 0x00000800L + +/* String and values that depend on alignment. */ +#define DSPING_SAP_NAME 0x00010000L +#define DSPING_TREE_NAME 0x00020000L +#define DSPING_OS_NAME 0x00040000L +#define DSPING_HARDWARE_NAME 0x00080000L +#define DSPING_VENDOR_NAME 0x00100000L + +/* ping output flags */ +#define DSPONG_ROOT_MOST_MASTER 0x0001 +#define DSPONG_TIME_SYNCHRONIZED 0x0002 + +/* ping verification flags */ +#define DSPING_VERIFICATION_CHECKSUM 0x00000001L +#define DSPING_VERIFICATION_CRC32 0x00000002L + +/* ping license flags */ +#define DSPING_LICENSE_SCALE 0x00000001L + +/* * Directory Services Large Packet Verb Numbers * */ +#define DSV_UNUSED_0 0 /* 0x00 */ +#define DSV_RESOLVE_NAME 1 /* 0x01 */ +#define DSV_READ_ENTRY_INFO 2 /* 0x02 */ +#define DSV_READ 3 /* 0x03 */ +#define DSV_COMPARE 4 /* 0x04 */ +#define DSV_LIST 5 /* 0x05 */ +#define DSV_SEARCH 6 /* 0x06 */ +#define DSV_ADD_ENTRY 7 /* 0x07 */ +#define DSV_REMOVE_ENTRY 8 /* 0x08 */ +#define DSV_MODIFY_ENTRY 9 /* 0x09 */ +#define DSV_MODIFY_RDN 10 /* 0x0A */ +#define DSV_DEFINE_ATTR 11 /* 0x0B */ +#define DSV_READ_ATTR_DEF 12 /* 0x0C */ +#define DSV_REMOVE_ATTR_DEF 13 /* 0x0D */ +#define DSV_DEFINE_CLASS 14 /* 0x0E */ +#define DSV_READ_CLASS_DEF 15 /* 0x0F */ +#define DSV_MODIFY_CLASS_DEF 16 /* 0x10 */ +#define DSV_REMOVE_CLASS_DEF 17 /* 0x11 */ +#define DSV_LIST_CONTAINABLE_CLASSES 18 /* 0x12 */ +#define DSV_GET_EFFECTIVE_RIGHTS 19 /* 0x13 */ +#define DSV_ADD_PARTITION 20 /* 0x14 */ +#define DSV_REMOVE_PARTITION 21 /* 0x15 */ +#define DSV_LIST_PARTITIONS 22 /* 0x16 */ +#define DSV_SPLIT_PARTITION 23 /* 0x17 */ +#define DSV_JOIN_PARTITIONS 24 /* 0x18 */ +#define DSV_ADD_REPLICA 25 /* 0x19 */ +#define DSV_REMOVE_REPLICA 26 /* 0x1A */ +#define DSV_OPEN_STREAM 27 /* 0x1B */ +#define DSV_SEARCH_FILTER 28 /* 0x1C */ +/* NDS Internal 29 */ /* 0x1D */ +/* NDS Internal 30 */ /* 0x1E */ +#define DSV_CHANGE_REPLICA_TYPE 31 /* 0x1F */ +/* NDS Internal 32 */ /* 0x20 */ +/* NDS Internal 33 */ /* 0x21 */ +/* NDS Internal 34 */ /* 0x22 */ +/* NDS Internal 35 */ /* 0x23 */ +/* NDS Internal 36 */ /* 0x24 */ +#define DSV_UPDATE_REPLICA 37 /* 0x25 */ +#define DSV_SYNC_PARTITION 38 /* 0x26 */ +#define DSV_SYNC_SCHEMA 39 /* 0x27 */ +#define DSV_READ_SYNTAXES 40 /* 0x28 */ +#define DSV_GET_REPLICA_ROOT_ID 41 /* 0x29 */ +#define DSV_BEGIN_MOVE_ENTRY 42 /* 0x2A */ +#define DSV_FINISH_MOVE_ENTRY 43 /* 0x2B */ +#define DSV_RELEASE_MOVED_ENTRY 44 /* 0x2C */ +#define DSV_BACKUP_ENTRY 45 /* 0x2D */ +#define DSV_RESTORE_ENTRY 46 /* 0x2E */ +/* NDS Internal 47 */ /* 0x2F */ +/* NDS Internal 48 */ /* 0x30 */ +/* NDS Internal 49 */ /* 0x31 */ +#define DSV_CLOSE_ITERATION 50 /* 0x32 */ +#define DSV_MUTATE_ENTRY 51 /* 0x33 */ +/* NDS Internal 52 */ /* 0x34 */ +#define DSV_GET_SERVER_ADDRESS 53 /* 0x35 */ +#define DSV_SET_KEYS 54 /* 0x36 */ +#define DSV_CHANGE_PASSWORD 55 /* 0x37 */ +#define DSV_VERIFY_PASSWORD 56 /* 0x38 */ +#define DSV_BEGIN_LOGIN 57 /* 0x39 */ +#define DSV_FINISH_LOGIN 58 /* 0x3A */ +#define DSV_BEGIN_AUTHENTICATION 59 /* 0x3B */ +#define DSV_FINISH_AUTHENTICATION 60 /* 0x3C */ +#define DSV_LOGOUT 61 /* 0x3D */ +#define DSV_REPAIR_RING 62 /* 0x3E */ +#define DSV_REPAIR_TIMESTAMPS 63 /* 0x3F */ +/* NDS Internal 64 */ /* 0x40 */ +/* NDS Internal 65 */ /* 0x41 */ +/* NDS Internal 66 */ /* 0x42 */ +/* NDS Internal 67 */ /* 0x43 */ +/* NDS Internal 68 */ /* 0x44 */ +#define DSV_DESIGNATE_NEW_MASTER 69 /* 0x45 */ +/* NDS Internal 70 */ /* 0x46 */ +/* NDS Internal 71 */ /* 0x47 */ +#define DSV_CHECK_LOGIN_RESTRICTIONS 72 /* 0x48 */ +/* NDS Internal 73 */ /* 0x49 */ +/* NDS Internal 74 */ /* 0x4A */ +/* NDS Internal 75 */ /* 0x4B */ +#define DSV_ABORT_PARTITION_OPERATION 76 /* 0x4C */ +/* NDS Internal 77 */ /* 0x4D */ +/* NDS Internal 78 */ /* 0x4E */ +#define DSV_READ_REFERENCES 79 /* 0x4F */ +#define DSV_INSPECT_ENTRY 80 /* 0x50 */ +#define DSV_GET_REMOTE_ENTRY_ID 81 /* 0x51 */ +#define DSV_CHANGE_SECURITY 82 /* 0x52 */ +#define DSV_CHECK_CONSOLE_OPERATOR 83 /* 0x53 */ +/* NDS Internal 84 */ /* 0x54 */ +#define DSV_MOVE_TREE 85 /* 0x55 */ +/* NDS Internal 86 */ /* 0x56 */ +/* NDS Internal 87 */ /* 0x57 */ +#define DSV_CHECK_SEV 88 /* 0x58 */ +/* NDS Internal 89 */ /* 0x59 */ +/* NDS Internal 90 */ /* 0x5a */ +#define DSV_RESEND_ENTRY 91 /* 0x5b */ +/* NDS Internal 92 */ /* 0x5c */ +#define DSV_STATISTICS 93 /* 0x5d */ +#define DSV_PING 94 /* 0x5e */ +#define DSV_GET_BINDERY_CONTEXTS 95 /* 0x5f */ +#define DSV_MONITOR_CONNECTION 96 /* 0x60 */ +#define DSV_GET_DS_STATISTICS 97 /* 0x61 */ +#define DSV_RESET_DS_COUNTERS 98 /* 0x62 */ +#define DSV_CONSOLE 99 /* 0x63 */ +#define DSV_READ_STREAM 100 /* 0x64 */ +#define DSV_WRITE_STREAM 101 /* 0x65 */ +#define DSV_CREATE_ORPHAN_PARTITION 102 /* 0x66 */ +#define DSV_REMOVE_ORPHAN_PARTITION 103 /* 0x67 */ +/* NDS Internal 104 */ /* 0x68 */ +/* NDS Internal 105 */ /* 0x69 */ +#define DSV_GUID_CREATE 106 /* 0x6A */ +#define DSV_GUID_INFO 107 /* 0x6B */ +/* NDS Internal 108 */ /* 0x6C */ +/* NDS Internal 109 */ /* 0x6D */ +#define DSV_ITERATOR 110 /* 0x6E */ +/* unused 111 */ /* 0x6F */ +#define DSV_CLOSE_STREAM 112 /* 0x70 */ +/* unused 113 */ /* 0x61 */ +#define DSV_READ_STATUS 114 /* 0x72 */ +#define DSV_PARTITION_SYNC_STATUS 115 /* 0x73 */ +#define DSV_READ_REF_DATA 116 /* 0x74 */ +#define DSV_WRITE_REF_DATA 117 /* 0x75 */ +#define DSV_RESOURCE_EVENT 118 /* 0x76 */ +/* NDS Internal 119 */ /* 0x77 */ +/* NDS Internal 120 */ /* 0x78 */ +/* NDS Internal 121 */ /* 0x79 */ +#define DSV_CHANGE_ATTR_DEF 122 /* 0x7A */ +#define DSV_SCHEMA_IN_USE 123 /* 0x7B */ + + +/* maximum number of characters in names, not including terminator */ +#define MAX_RDN_CHARS 128 +#define MAX_DN_CHARS 256 +#define MAX_SCHEMA_NAME_CHARS 32 +#define MAX_TREE_NAME_CHARS 32 +#define MAX_SAP_NAME_CHARS 47 + +/* maximum size of names, including terminator */ +#define MAX_RDN_BYTES (2*(MAX_RDN_CHARS + 1)) +#define MAX_DN_BYTES (2*(MAX_DN_CHARS + 1)) +#define MAX_SCHEMA_NAME_BYTES (2*(MAX_SCHEMA_NAME_CHARS + 1)) + +#define MAX_ASN1_NAME 32 +#define MAX_VALUE (63U * 1024U) +#define MAX_MESSAGE 0x00010000L +#define NO_MORE_ITERATIONS 0xffffffffL + +/* delimiters in names */ +#define DELIM_VALUE '=' +#define DELIM_DV '+' +#define DELIM_RDN '.' +#define ESCAPE_CHAR '\\' + +/* special entry names in ACLs */ +#define DS_ROOT_NAME "[Root]" +#define DS_PUBLIC_NAME "[Public]" +#define DS_MASK_NAME "[Inheritance Mask]" +#define DS_CREATOR_NAME "[Creator]" /* can only be used in AddEntry */ +#define DS_SELF_NAME "[Self]" /* can only be used in AddEntry */ + +/* special attribute names in ACLs */ +#define DS_ALL_ATTRS_NAME "[All Attributes Rights]" +#define DS_ENTRY_RIGHTS_NAME "[Entry Rights]" + +typedef enum SYNTAX +{ + SYN_UNKNOWN, /* 0 */ + SYN_DIST_NAME, /* 1 */ + SYN_CE_STRING, /* 2 */ + SYN_CI_STRING, /* 3 */ + SYN_PR_STRING, /* 4 */ + SYN_NU_STRING, /* 5 */ + SYN_CI_LIST, /* 6 */ + SYN_BOOLEAN, /* 7 */ + SYN_INTEGER, /* 8 */ + SYN_OCTET_STRING, /* 9 */ + SYN_TEL_NUMBER, /* 10 */ + SYN_FAX_NUMBER, /* 11 */ + SYN_NET_ADDRESS, /* 12 */ + SYN_OCTET_LIST, /* 13 */ + SYN_EMAIL_ADDRESS, /* 14 */ + SYN_PATH, /* 15 */ + SYN_REPLICA_POINTER, /* 16 */ + SYN_OBJECT_ACL, /* 17 */ + SYN_PO_ADDRESS, /* 18 */ + SYN_TIMESTAMP, /* 19 */ + SYN_CLASS_NAME, /* 20 */ + SYN_STREAM, /* 21 */ + SYN_COUNTER, /* 22 */ + SYN_BACK_LINK, /* 23 */ + SYN_TIME, /* 24 */ + SYN_TYPED_NAME, /* 25 */ + SYN_HOLD, /* 26 */ + SYN_INTERVAL, /* 27 */ + SYNTAX_COUNT /* 28 */ +} SYNTAX; + +typedef enum NAME_SPACE_TYPE +{ + DS_DOS, DS_MACINTOSH, DS_UNIX, DS_FTAM, DS_OS2 +} NAME_SPACE_TYPE; + +typedef enum REPLICA_TYPE +{ + RT_MASTER, RT_SECONDARY, RT_READONLY, RT_SUBREF, + RT_SPARSE_WRITE, RT_SPARSE_READ, RT_COUNT +} REPLICA_TYPE; + + +typedef enum REPLICA_STATE +{ + RS_ON, RS_NEW_REPLICA, RS_DYING_REPLICA, + RS_LOCKED, RS_CRT_0, RS_CRT_1, + RS_TRANSITION_ON, RS_DEAD_REPLICA, RS_BEGIN_ADD, + RS_MASTER_START = 11, RS_MASTER_DONE, RS_FEDERATED, + RS_SS_0 = 48, RS_SS_1, + RS_JS_0 = 64, RS_JS_1, RS_JS_2, + RS_MS_0 = 80, RS_MS_1, + RS_COUNT +} REPLICA_STATE; + +#define GET_REPLICA_TYPE(rpt) ((rpt) & 0x0000FFFF) +#define GET_REPLICA_STATE(rpt) ((rpt) >> 16) + +/* typedef enum NET_ADDRESS_TYPE */ +/* { */ +/* NT_IPX, NT_IP, NT_SDLC, NT_TOKENRING_ETHERNET, NT_OSI, NT_APPLETALK, NT_COUNT */ +/* } NET_ADDRESS_TYPE; */ + +typedef enum NET_ADDRESS_TYPE +{ + NT_IPX, NT_IP, NT_SDLC, NT_TOKENRING_ETHERNET, + NT_OSI, NT_APPLETALK, NT_NETBEUI, NT_SOCKADDR, + NT_UDP, NT_TCP, NT_UDP6, NT_TCP6, NT_INTERNAL, + NT_URL, NT_COUNT +} NET_ADDRESS_TYPE; + +typedef enum NCP_SERVER_STATUS +{ + DS_UNKNOWN, DS_DOWN, DS_UP +} NCP_SERVER_STATUS; + +#define IPX_ADDRESS_LEN 12 +#define IP_ADDRESS_LEN 6 +#define IP6_ADDRESS_LEN 22 + +/*Entry flag definitions used by DSV_LIST, DSV_READ_ENTRY_INFO, DSV_SEARCH. */ +#if !defined(DS_ALIAS_ENTRY) +#define DS_ALIAS_ENTRY 0x0001 +#define DS_PARTITION_ROOT 0x0002 +#define DS_CONTAINER_ENTRY 0x0004 +#define DS_CONTAINER_ALIAS 0x0008 +#define DS_MATCHES_LIST_FILTER 0x0010 /* only returned by DSV_LIST */ +#define DS_REFERENCE_ENTRY 0x0020 +#define DS_40X_REFERENCE_ENTRY 0x0040 +#define DS_BACKLINKED 0x0080 +#define DS_NEW_ENTRY 0x0100 +#define DS_TEMPORARY_REFERENCE 0x0200 +#define DS_AUDITED 0x0400 +#define DS_ENTRY_NOT_PRESENT 0x0800 +#define DS_ENTRY_VERIFY_CTS 0x1000 +#define DS_ENTRY_DAMAGED 0x2000 +#endif + +/* * definitions used by DSV_MODIFY_ENTRY * */ +#define DS_ADD_ATTRIBUTE 0x00 /* add first value of attribute, error if it already exists */ +#define DS_REMOVE_ATTRIBUTE 0x01 /* remove all values, error if attribute does not exist */ +#define DS_ADD_VALUE 0x02 /* add first or additional value, error if duplicate */ +#define DS_REMOVE_VALUE 0x03 /* remove a value, error if it does not exist */ +#define DS_ADDITIONAL_VALUE 0x04 /* add additional value, error if duplicate or first */ +#define DS_OVERWRITE_VALUE 0x05 /* add first or additional value, overwrite if duplicate */ +#define DS_CLEAR_ATTRIBUTE 0x06 /* remove all values, no error if attribute does not exists */ +#define DS_CLEAR_VALUE 0x07 /* remove value, no error if value does not exists */ + +/* * definitions used by DSV_READ, DSV_SEARCH * */ +#define DS_ATTRIBUTE_NAMES 0x00 +#define DS_ATTRIBUTE_VALUES 0x01 +#define DS_EFFECTIVE_PRIVILEGES 0x02 +#define DS_VALUE_INFO 0x03 +#define DS_ABBREVIATED_VALUE 0x04 +#define DS_EXPANDED_CLASS 0x08 /* Only good on schema class definitions */ + + +/* * definitions used by DSV_READ for value flags * */ +#define DS_NOT_PRESENT 0x0000 +#define DS_NAMING 0x0001 +#define DS_BASECLASS 0x0002 +#define DS_PRESENT 0x0004 +#define DS_VALUE_DAMAGED 0x0008 +#define DS_SUPERCLASS 0x0010 +#define DS_AUXILIARYCLASS 0x0020 + +/* * definitions used by DSV_READ_ATTR_DEF * */ +#if !defined(DS_SINGLE_VALUED_ATTR) +#define DS_SINGLE_VALUED_ATTR 0x0001 /* also used by DSV_DEFINE_ATTR */ +#define DS_SIZED_ATTR 0x0002 /* also used by DSV_DEFINE_ATTR */ +#define DS_NONREMOVABLE_ATTR 0x0004 +#define DS_READ_ONLY_ATTR 0x0008 +#define DS_HIDDEN_ATTR 0x0010 +#define DS_STRING_ATTR 0x0020 +#define DS_SYNC_IMMEDIATE 0x0040 /* also used by DSV_DEFINE_ATTR */ +#define DS_PUBLIC_READ 0x0080 /* also used by DSV_DEFINE_ATTR */ +#define DS_SERVER_READ 0x0100 +#define DS_WRITE_MANAGED 0x0200 /* also used by DSV_DEFINE_ATTR */ +#define DS_PER_REPLICA 0x0400 /* also used by DSV_DEFINE_ATTR */ +#define DS_SCHEDULE_SYNC_NEVER 0x0800 /* also used by DSV_DEFINE_ATTR */ +#define DS_OPERATIONAL 0x1000 /* also used by DSV_DEFINE_ATTR */ +#define DS_SPARSE_REQUIRED_ATTR 0x2000 +#define DS_SPARSE_OPERATIONAL_ATTR 0x4000 +#endif + +/* info types and union tags */ +#define DS_ATTR_DEF_NAMES 0 +#define DS_ATTR_DEFS 1 + +/* * definitions used by DSV_DEFINE_CLASS and DSV_READ_CLASS_DEF * */ +#define DS_CONTAINER_CLASS 0x01 +#define DS_EFFECTIVE_CLASS 0x02 +#define DS_NONREMOVABLE_CLASS 0x04 +#define DS_AMBIGUOUS_NAMING 0x08 +#define DS_AMBIGUOUS_CONTAINMENT 0x10 +#define DS_AUXILIARY_CLASS 0x20 +#define DS_OPERATIONAL_CLASS 0x40 +#define DS_SPARSE_REQUIRED_CLASS 0x80 /* Read-only */ +#define DS_SPARSE_OPERATIONAL_CLASS 0x100 /* Read-only */ + +/* info types and union tags */ +#define DS_CLASS_DEF_NAMES 0 +#define DS_CLASS_DEFS 1 +#define DS_EXPANDED_CLASS_DEFS 2 +#define DS_INFO_CLASS_DEFS 3 +#define DS_FULL_CLASS_DEFS 4 + +/* * definitions used by DSV_SEARCH * */ +#define DS_SEARCH_ENTRY 0 +#define DS_SEARCH_SUBORDINATES 1 +#define DS_SEARCH_SUBTREE 2 +#define DS_SEARCH_PARTITION 3 + +#define DS_ALIAS_REFERRAL 0 +#define DS_PARTITION_REFERRAL 1 + +#define DS_SEARCH_ITEM 0 +#define DS_SEARCH_OR 1 +#define DS_SEARCH_AND 2 +#define DS_SEARCH_NOT 3 + +#define DS_SEARCH_EQUAL 7 +#define DS_SEARCH_GREATER_OR_EQUAL 8 +#define DS_SEARCH_LESS_OR_EQUAL 9 +#define DS_SEARCH_APPROX 10 +#define DS_SEARCH_PRESENT 15 +#define DS_SEARCH_RDN 16 +#define DS_SEARCH_BASE_CLASS 17 +#define DS_SEARCH_MODIFICATION_GE 18 +#define DS_SEARCH_VALUE_TIME_GE 19 +#define DS_SEARCH_REFERENCES 20 +#define DS_SEARCH_DN_IN_VALUE 21 +#define DS_SEARCH_SCHEMA_IN_VALUE 22 + +/* * definitions used by Access Control * */ +#define DS_DYNAMIC_ACL 0x40000000L + +#define DS_ENTRY_BROWSE 0x00000001L +#define DS_ENTRY_ADD 0x00000002L +#define DS_ENTRY_DELETE 0x00000004L +#define DS_ENTRY_RENAME 0x00000008L +#define DS_ENTRY_SUPERVISOR 0x00000010L +#define DS_ENTRY_INHERIT_CTL 0x00000040L + +#define DS_ENTRY_MASK (DS_ENTRY_BROWSE | DS_ENTRY_ADD \ + | DS_ENTRY_DELETE | DS_ENTRY_RENAME \ + | DS_ENTRY_SUPERVISOR | DS_ENTRY_INHERIT_CTL \ + | DS_DYNAMIC_ACL ) + +#define DS_ATTR_COMPARE 0x00000001L +#define DS_ATTR_READ 0x00000002L +#define DS_ATTR_WRITE 0x00000004L +#define DS_ATTR_SELF 0x00000008L +#define DS_ATTR_SUPERVISOR 0x00000020L +#define DS_ATTR_INHERIT_CTL 0x00000040L + +#define DS_ATTR_MASK (DS_ATTR_COMPARE | DS_ATTR_READ | DS_ATTR_WRITE \ + | DS_ATTR_SELF | DS_ATTR_SUPERVISOR \ + | DS_ATTR_INHERIT_CTL | DS_DYNAMIC_ACL) + +#define DS_READ_STREAM 0x00000001L +#define DS_WRITE_STREAM 0x00000002L + +#define SF_DO_IMMEDIATE 0x00000001 +#define SF_TRANSITION 0x00000002 +#define SF_SEND_ALL 0x00000004 + +/* NDS Interval definitions */ +#define DS_INTERVAL_OUTPUT_FIELDS 0x00000001L +#define DS_INTERVAL_JANITOR 0x00000002L +#define DS_INTERVAL_FLAT_CLEANER 0x00000004L +#define DS_INTERVAL_BACKLINK 0x00000008L +#define DS_INTERVAL_SKULK_ERROR 0x00000010L +#define DS_INTERVAL_FAST_SYNC 0x00000020L +#define DS_INTERVAL_SLOW_SYNC 0x00000040L +#define DS_INTERVAL_HEARTBEAT_SKULK 0x00000080L + +/* Password flags */ +#define ALL_PASSWORDS 0x00000000 +#define NDS_PASSWORD 0x00000001 +#define NT_PASSWORD 0x00000002 +#define AD_PASSWORD 0x00000004 + + +/* Password format flags used with the apis which support + * extended and international characters in passwords +*/ +#define PWD_UNICODE_STRING 1 +#define PWD_UTF8_STRING 2 +#define PWD_RAW_C_STRING 3 /* binary data terminated with NULL */ + +/* flags for DSV_MUTATE_ENTRY */ +#define DSM_APPLY_ACL_TEMPLATES 0x0001 + +#endif /* NWDSDEFS_H */ diff --git a/c_clientlogin/xplatincl/nwdsdsa.h b/c_clientlogin/xplatincl/nwdsdsa.h new file mode 100644 index 00000000..21e40d0e --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsdsa.h @@ -0,0 +1,471 @@ +/****************************************************************************** + + %name: nwdsdsa.h % + %version: 10 % + %date_modified: Tue Oct 12 13:04:23 1999 % + $Copyright: + + Copyright (c) 1989-1997 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSDSA_H ) +#define NWDSDSA_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWDSBUFT_H ) +#include "nwdsbuft.h" +#endif + +#if ! defined ( NWDSATTR_H ) +#include "nwdsattr.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NUNICODE_H ) +#include "nunicode.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAddObject +( + NWDSContextHandle context, + pnstr8 objectName, + pnint32 iterationHandle, + nbool8 more, + pBuf_T objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSBackupObject +( + NWDSContextHandle context, + pnstr8 objectName, + pnint32 iterationHandle, + pBuf_T objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSCompare +( + NWDSContextHandle context, + pnstr8 object, + pBuf_T buf, + pnbool8 matched +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetPartitionRoot +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 partitionRoot +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSList +( + NWDSContextHandle context, + pnstr8 object, + pnint32 iterationHandle, + pBuf_T subordinates +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSListContainers +( + NWDSContextHandle context, + pnstr8 object, + pnint32 iterationHandle, + pBuf_T subordinates +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSListByClassAndName +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 className, + pnstr8 subordinateName, + pnint32 iterationHandle, + pBuf_T subordinates +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetCountByClassAndName +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 className, + pnstr8 subordinateName, + pnint32 count +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSMapIDToName +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle, + nuint32 objectID, + pnstr8 object +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSMapNameToID +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle, + pnstr8 object, + pnuint32 objectID +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSModifyObject +( + NWDSContextHandle context, + pnstr8 objectName, + pnint32 iterationHandle, + nbool8 more, + pBuf_T changes +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSModifyDN +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 newDN, + nbool8 deleteOldRDN +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSModifyRDN +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 newDN, + nbool8 deleteOldRDN +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSMoveObject +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 destParentDN, + pnstr8 destRDN +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRead +( + NWDSContextHandle context, + pnstr8 object, + nuint32 infoType, + nbool8 allAttrs, + pBuf_T attrNames, + pnint32 iterationHandle, + pBuf_T objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReadObjectInfo +( + NWDSContextHandle context, + pnstr8 object, + pnstr8 distinguishedName, + pObject_Info_T objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReadObjectDSIInfo +( + NWDSContextHandle context, + pnstr8 object, + nuint32 infoLength, + nptr objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRemoveObject +( + NWDSContextHandle context, + pnstr8 object +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRestoreObject +( + NWDSContextHandle context, + pnstr8 objectName, + pnint32 iterationHandle, + nbool8 more, + nuint32 size, + pnuint8 objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSSearch +( + NWDSContextHandle context, + pnstr8 baseObjectName, + nint scope, + nbool8 searchAliases, + pBuf_T filter, + nuint32 infoType, + nbool8 allAttrs, + pBuf_T attrNames, + pnint32 iterationHandle, + nint32 countObjectsToSearch, + pnint32 countObjectsSearched, + pBuf_T objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSOpenStream +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 attrName, + nflag32 flags, + NWFILE_HANDLE N_FAR *fileHandle +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSWhoAmI +( + NWDSContextHandle context, + pnstr8 objectName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetServerDN +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle, + pnstr8 serverDN +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetServerAddresses2 +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle, + pnuint32 countNetAddress, + pBuf_T netAddresses +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSInspectEntry +( + NWDSContextHandle context, + pnstr8 serverName, + pnstr8 objectName, + pBuf_T errBuffer +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReadReferences +( + NWDSContextHandle context, + pnstr8 serverName, + pnstr8 objectName, + nuint32 infoType, + nbool8 allAttrs, + pBuf_T attrNames, + nuint32 timeFilter, + pnint32 iterationHandle, + pBuf_T objectInfo +); + + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSExtSyncList +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 className, + pnstr8 subordinateName, + pnint32 iterationHandle, + pTimeStamp_T timeStamp, + nbool onlyContainers, + pBuf_T subordinates +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSExtSyncRead +( + NWDSContextHandle context, + pnstr8 objectName, + nuint32 infoType, + nbool8 allAttrs, + pBuf_T attrNames, + pnint32 iterationHandle, + pTimeStamp_T timeStamp, + pBuf_T objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSExtSyncSearch +( + NWDSContextHandle context, + pnstr8 baseObjectName, + nint scope, + nbool8 searchAliases, + pBuf_T filter, + pTimeStamp_T timeStamp, + nuint32 infoType, + nbool8 allAttrs, + pBuf_T attrNames, + pnint32 iterationHandle, + nint32 countObjectsToSearch, + pnint32 countObjectsSearched, + pBuf_T objectInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRemSecurityEquiv +( + NWDSContextHandle context, + pnstr8 equalFrom, + pnstr8 equalTo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAddSecurityEquiv +( + NWDSContextHandle context, + pnstr8 equalFrom, + pnstr8 equalTo +); + + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSMutateObject +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 newObjectClass, + nuint32 flags +); + +/*----- NDS Register For Event Function Prototypes -----*/ +#if defined( N_PLAT_NLM ) + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSERegisterForEvent +( + nint priority, + nuint32 type, + nint (*handler)(nuint32 type, nuint size, nptr data) +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSERegisterForEventWithResult +( + nint priority, + nuint32 type, + nint (*handler)(nuint32 type, nuint size, nptr data, nint result), + nint flags +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSEUnRegisterForEvent +( + nint priority, + nuint32 type, + nint (*handler)(nuint32 type, nuint size, nptr data) +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSEGetLocalEntryName +( + NWDSContextHandle context, + nuint32 entryID, + pnstr objectName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSEConvertEntryName +( + NWDSContextHandle context, + const punicode DSEventName, + pnstr objectName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSEGetLocalAttrName +( + NWDSContextHandle context, + nuint32 attrID, + pnstr name +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSEGetLocalClassName +( + NWDSContextHandle context, + nuint32 classID, + pnstr name +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSEGetLocalAttrID +( + NWDSContextHandle context, + const pnstr name, + pnuint32 id +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSEGetLocalClassID +( + NWDSContextHandle context, + const pnstr name, + pnuint32 id +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSEGetLocalEntryID +( + NWDSContextHandle context, + const pnstr objectName, + pnuint32 id +); +#endif /* N_PLAT_NLM */ + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_dsdsa.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + + +#include "npackoff.h" +#endif /* NWDSDSA_H */ diff --git a/c_clientlogin/xplatincl/nwdserr.h b/c_clientlogin/xplatincl/nwdserr.h new file mode 100644 index 00000000..b714e796 --- /dev/null +++ b/c_clientlogin/xplatincl/nwdserr.h @@ -0,0 +1,417 @@ +/***************************************************************************** + * + * Copyright (C) Unpublished Work of Novell, Inc. + * All Rights Reserved. + * + * This work is an unpublished work and contains confidential, + * proprietary and trade secret information of Novell, Inc. Access + * to this work is restricted to (i) Novell, Inc. employees who have + * a need to know how to perform tasks within the scope of their + * assignments and (ii) entities other than Novell, Inc. who have + * entered into appropriate license agreements. No part of this work + * may be used, practiced, performed, copied, distributed, revised, + * modified, translated, abridged, condensed, expanded, collected, + * compiled, linked, recast, transformed or adapted without the + * prior written consent of Novell, Inc. Any use or exploitation of + * this work without authorization could subject the perpetrator to + * criminal and civil liability. + * + * Name: nwdserr.h + * %version: 31.1.3 % + * %created_by: bireland % + * %date_modified: Fri Jun 25 14:44:17 1999 % + * + ****************************************************************************/ + +#ifndef NWDSERR_H +#define NWDSERR_H + +/* errors from the file system, IPX, NCP, and other NW OS services are one byte + * and are mapped to -1 to -256 when returned as a directory services error + */ +#define DSERR_INSUFFICIENT_SPACE -001 /* FFFFFFFF */ +#define DSERR_BUFFER_TOO_SMALL -119 /* FFFFFF89 */ +#define DSERR_VOLUME_FLAG_NOT_SET -120 /* FFFFFF88 */ +#define DSERR_NO_ITEMS_FOUND -121 /* FFFFFF87 */ +#define DSERR_CONN_ALREADY_TEMPORARY -122 /* FFFFFF86 */ +#define DSERR_CONN_ALREADY_LOGGED_IN -123 /* FFFFFF85 */ +#define DSERR_CONN_NOT_AUTHENTICATED -124 /* FFFFFF84 */ +#define DSERR_CONN_NOT_LOGGED_IN -125 /* FFFFFF83 */ +#define DSERR_NCP_BOUNDARY_CHECK_FAILED -126 /* FFFFFF82 */ +#define DSERR_LOCK_WAITING -127 /* FFFFFF81 */ +#define DSERR_LOCK_FAIL -128 /* FFFFFF80 */ +#define DSERR_OUT_OF_HANDLES -129 /* FFFFFF7F */ +#define DSERR_NO_OPEN_PRIVILEGE -130 /* FFFFFF7E */ +#define DSERR_HARD_IO_ERROR -131 /* FFFFFF7D */ +#define DSERR_NO_CREATE_PRIVILEGE -132 /* FFFFFF7C */ +#define DSERR_NO_CREATE_DELETE_PRIV -133 /* FFFFFF7B */ +#define DSERR_R_O_CREATE_FILE -134 /* FFFFFF7A */ +#define DSERR_CREATE_FILE_INVALID_NAME -135 /* FFFFFF79 */ +#define DSERR_INVALID_FILE_HANDLE -136 /* FFFFFF78 */ +#define DSERR_NO_SEARCH_PRIVILEGE -137 /* FFFFFF77 */ +#define DSERR_NO_DELETE_PRIVILEGE -138 /* FFFFFF76 */ +#define DSERR_NO_RENAME_PRIVILEGE -139 /* FFFFFF75 */ +#define DSERR_NO_SET_PRIVILEGE -140 /* FFFFFF74 */ +#define DSERR_SOME_FILES_IN_USE -141 /* FFFFFF73 */ +#define DSERR_ALL_FILES_IN_USE -142 /* FFFFFF72 */ +#define DSERR_SOME_READ_ONLY -143 /* FFFFFF71 */ +#define DSERR_ALL_READ_ONLY -144 /* FFFFFF70 */ +#define DSERR_SOME_NAMES_EXIST -145 /* FFFFFF6F */ +#define DSERR_ALL_NAMES_EXIST -146 /* FFFFFF6E */ +#define DSERR_NO_READ_PRIVILEGE -147 /* FFFFFF6D */ +#define DSERR_NO_WRITE_PRIVILEGE -148 /* FFFFFF6C */ +#define DSERR_FILE_DETACHED -149 /* FFFFFF6B */ +#define ERR_INSUFFICIENT_MEMORY -150 /* FFFFFF6A */ +#define DSERR_NO_ALLOC_SPACE -150 /* FFFFFF6A */ +#define DSERR_TARGET_NOT_A_SUBDIR -150 /* FFFFFF6A */ +#define DSERR_NO_SPOOL_SPACE -151 /* FFFFFF69 */ +#define DSERR_INVALID_VOLUME -152 /* FFFFFF68 */ +#define DSERR_DIRECTORY_FULL -153 /* FFFFFF67 */ +#define DSERR_RENAME_ACROSS_VOLUME -154 /* FFFFFF66 */ +#define DSERR_BAD_DIR_HANDLE -155 /* FFFFFF65 */ +#define DSERR_INVALID_PATH -156 /* FFFFFF64 */ +#define DSERR_NO_SUCH_EXTENSION -156 /* FFFFFF64 */ +#define DSERR_NO_DIR_HANDLES -157 /* FFFFFF63 */ +#define DSERR_BAD_FILE_NAME -158 /* FFFFFF62 */ +#define DSERR_DIRECTORY_ACTIVE -159 /* FFFFFF61 */ +#define DSERR_DIRECTORY_NOT_EMPTY -160 /* FFFFFF60 */ +#define DSERR_DIRECTORY_IO_ERROR -161 /* FFFFFF5F */ +#define DSERR_IO_LOCKED -162 /* FFFFFF5E */ +#define DSERR_TRANSACTION_RESTARTED -163 /* FFFFFF5D */ +#define DSERR_RENAME_DIR_INVALID -164 /* FFFFFF5C */ +#define DSERR_INVALID_OPENCREATE_MODE -165 /* FFFFFF5B */ +#define DSERR_ALREADY_IN_USE -166 /* FFFFFF5A */ +#define DSERR_INVALID_RESOURCE_TAG -167 /* FFFFFF59 */ +#define DSERR_ACCESS_DENIED -168 /* FFFFFF58 */ +#define DSERR_LOGIN_SIGNING_REQUIRED -188 /* FFFFFF44 */ +#define DSERR_LOGIN_ENCRYPT_REQUIRED -189 /* FFFFFF43 */ +#define DSERR_INVALID_DATA_STREAM -190 /* FFFFFF42 */ +#define DSERR_INVALID_NAME_SPACE -191 /* FFFFFF41 */ +#define DSERR_NO_ACCOUNTING_PRIVILEGES -192 /* FFFFFF40 */ +#define DSERR_NO_ACCOUNT_BALANCE -193 /* FFFFFF3F */ +#define DSERR_CREDIT_LIMIT_EXCEEDED -194 /* FFFFFF3E */ +#define DSERR_TOO_MANY_HOLDS -195 /* FFFFFF3D */ +#define DSERR_ACCOUNTING_DISABLED -196 /* FFFFFF3C */ +#define DSERR_LOGIN_LOCKOUT -197 /* FFFFFF3B */ +#define DSERR_NO_CONSOLE_RIGHTS -198 /* FFFFFF3A */ +#define DSERR_Q_IO_FAILURE -208 /* FFFFFF30 */ +#define DSERR_NO_QUEUE -209 /* FFFFFF2F */ +#define DSERR_NO_Q_SERVER -210 /* FFFFFF2E */ +#define DSERR_NO_Q_RIGHTS -211 /* FFFFFF2D */ +#define DSERR_Q_FULL -212 /* FFFFFF2C */ +#define DSERR_NO_Q_JOB -213 /* FFFFFF2B */ +#define DSERR_NO_Q_JOB_RIGHTS -214 /* FFFFFF2A */ +#define DSERR_UNENCRYPTED_NOT_ALLOWED -214 /* FFFFFF2A */ +#define DSERR_Q_IN_SERVICE -215 /* FFFFFF29 */ +#define DSERR_DUPLICATE_PASSWORD -215 /* FFFFFF29 */ +#define DSERR_Q_NOT_ACTIVE -216 /* FFFFFF28 */ +#define DSERR_PASSWORD_TOO_SHORT -216 /* FFFFFF28 */ +#define DSERR_Q_STN_NOT_SERVER -217 /* FFFFFF27 */ +#define DSERR_MAXIMUM_LOGINS_EXCEEDED -217 /* FFFFFF27 */ +#define DSERR_Q_HALTED -218 /* FFFFFF26 */ +#define DSERR_BAD_LOGIN_TIME -218 /* FFFFFF26 */ +#define DSERR_Q_MAX_SERVERS -219 /* FFFFFF25 */ +#define DSERR_NODE_ADDRESS_VIOLATION -219 /* FFFFFF25 */ +#define DSERR_LOG_ACCOUNT_EXPIRED -220 /* FFFFFF24 */ +#define DSERR_BAD_PASSWORD -222 /* FFFFFF22 */ +#define DSERR_PASSWORD_EXPIRED -223 /* FFFFFF21 */ +#define DSERR_NO_LOGIN_CONN_AVAILABLE -224 /* FFFFFF20 */ +#define DSERR_WRITE_TO_GROUP_PROPERTY -232 /* FFFFFF18 */ +#define DSERR_MEMBER_ALREADY_EXISTS -233 /* FFFFFF17 */ +#define DSERR_NO_SUCH_MEMBER -234 /* FFFFFF16 */ +#define DSERR_PROPERTY_NOT_GROUP -235 /* FFFFFF15 */ +#define DSERR_NO_SUCH_VALUE_SET -236 /* FFFFFF14 */ +#define DSERR_PROPERTY_ALREADY_EXISTS -237 /* FFFFFF13 */ +#define DSERR_OBJECT_ALREADY_EXISTS -238 /* FFFFFF12 */ +#define DSERR_ILLEGAL_NAME -239 /* FFFFFF11 */ +#define DSERR_ILLEGAL_WILDCARD -240 /* FFFFFF10 */ +#define DSERR_BINDERY_SECURITY -241 /* FFFFFF0F */ +#define DSERR_NO_OBJECT_READ_RIGHTS -242 /* FFFFFF0E */ +#define DSERR_NO_OBJECT_RENAME_RIGHTS -243 /* FFFFFF0D */ +#define DSERR_NO_OBJECT_DELETE_RIGHTS -244 /* FFFFFF0C */ +#define DSERR_NO_OBJECT_CREATE_RIGHTS -245 /* FFFFFF0B */ +#define DSERR_NO_PROPERTY_DELETE_RIGHTS -246 /* FFFFFF0A */ +#define DSERR_NO_PROPERTY_CREATE_RIGHTS -247 /* FFFFFF09 */ +#define DSERR_NO_PROPERTY_WRITE_RIGHTS -248 /* FFFFFF08 */ +#define DSERR_NO_PROPERTY_READ_RIGHTS -249 /* FFFFFF07 */ +#define DSERR_TEMP_REMAP -250 /* FFFFFF06 */ +#define ERR_REQUEST_UNKNOWN -251 /* FFFFFF05 */ +#define DSERR_UNKNOWN_REQUEST -251 /* FFFFFF05 */ +#define DSERR_NO_SUCH_PROPERTY -251 /* FFFFFF05 */ +#define DSERR_MESSAGE_QUEUE_FULL -252 /* FFFFFF04 */ +#define DSERR_TARGET_ALREADY_HAS_MSG -252 /* FFFFFF04 */ +#define DSERR_NO_SUCH_OBJECT -252 /* FFFFFF04 */ +#define DSERR_BAD_STATION_NUMBER -253 /* FFFFFF03 */ +#define DSERR_BINDERY_LOCKED -254 /* FFFFFF02 */ +#define DSERR_DIR_LOCKED -254 /* FFFFFF02 */ +#define DSERR_SPOOL_DELETE -254 /* FFFFFF02 */ +#define DSERR_TRUSTEE_NOT_FOUND -254 /* FFFFFF02 */ +#define DSERR_TIMEOUT -254 /* FFFFFF02 */ +#define DSERR_HARD_FAILURE -255 /* FFFFFF01 */ +#define DSERR_FILE_NAME -255 /* FFFFFF01 */ +#define DSERR_FILE_EXISTS -255 /* FFFFFF01 */ +#define DSERR_CLOSE_FCB -255 /* FFFFFF01 */ +#define DSERR_IO_BOUND -255 /* FFFFFF01 */ +#define DSERR_NO_SPOOL_FILE -255 /* FFFFFF01 */ +#define DSERR_BAD_SPOOL_PRINTER -255 /* FFFFFF01 */ +#define DSERR_BAD_PARAMETER -255 /* FFFFFF01 */ +#define DSERR_NO_FILES_FOUND -255 /* FFFFFF01 */ +#define DSERR_NO_TRUSTEE_CHANGE_PRIV -255 /* FFFFFF01 */ +#define DSERR_TARGET_NOT_LOGGED_IN -255 /* FFFFFF01 */ +#define DSERR_TARGET_NOT_ACCEPTING_MSGS -255 /* FFFFFF01 */ +#define DSERR_MUST_FORCE_DOWN -255 /* FFFFFF01 */ +#define ERR_OF_SOME_SORT -255 /* FFFFFF01 */ + +/* -301 to -399 are returned by the directory services client library */ +#define ERR_NOT_ENOUGH_MEMORY -301 /* 0xFFFFFED3 */ +#define ERR_BAD_KEY -302 /* 0xFFFFFED2 */ +#define ERR_BAD_CONTEXT -303 /* 0xFFFFFED1 */ +#define ERR_BUFFER_FULL -304 /* 0xFFFFFED0 */ +#define ERR_LIST_EMPTY -305 /* 0xFFFFFECF */ +#define ERR_BAD_SYNTAX -306 /* 0xFFFFFECE */ +#define ERR_BUFFER_EMPTY -307 /* 0xFFFFFECD */ +#define ERR_BAD_VERB -308 /* 0xFFFFFECC */ +#define ERR_EXPECTED_IDENTIFIER -309 /* 0xFFFFFECB */ +#define ERR_EXPECTED_EQUALS -310 /* 0xFFFFFECA */ +#define ERR_ATTR_TYPE_EXPECTED -311 /* 0xFFFFFEC9 */ +#define ERR_ATTR_TYPE_NOT_EXPECTED -312 /* 0xFFFFFEC8 */ +#define ERR_FILTER_TREE_EMPTY -313 /* 0xFFFFFEC7 */ +#define ERR_INVALID_OBJECT_NAME -314 /* 0xFFFFFEC6 */ +#define ERR_EXPECTED_RDN_DELIMITER -315 /* 0xFFFFFEC5 */ +#define ERR_TOO_MANY_TOKENS -316 /* 0xFFFFFEC4 */ +#define ERR_INCONSISTENT_MULTIAVA -317 /* 0xFFFFFEC3 */ +#define ERR_COUNTRY_NAME_TOO_LONG -318 /* 0xFFFFFEC2 */ +#define ERR_SYSTEM_ERROR -319 /* 0xFFFFFEC1 */ +#define ERR_CANT_ADD_ROOT -320 /* 0xFFFFFEC0 */ +#define ERR_UNABLE_TO_ATTACH -321 /* 0xFFFFFEBF */ +#define ERR_INVALID_HANDLE -322 /* 0xFFFFFEBE */ +#define ERR_BUFFER_ZERO_LENGTH -323 /* 0xFFFFFEBD */ +#define ERR_INVALID_REPLICA_TYPE -324 /* 0xFFFFFEBC */ +#define ERR_INVALID_ATTR_SYNTAX -325 /* 0xFFFFFEBB */ +#define ERR_INVALID_FILTER_SYNTAX -326 /* 0xFFFFFEBA */ +#define ERR_CONTEXT_CREATION -328 /* 0xFFFFFEB8 */ +#define ERR_INVALID_UNION_TAG -329 /* 0xFFFFFEB7 */ +#define ERR_INVALID_SERVER_RESPONSE -330 /* 0xFFFFFEB6 */ +#define ERR_NULL_POINTER -331 /* 0xFFFFFEB5 */ +#define ERR_NO_SERVER_FOUND -332 /* 0xFFFFFEB4 */ +#define ERR_NO_CONNECTION -333 /* 0xFFFFFEB3 */ +#define ERR_RDN_TOO_LONG -334 /* 0xFFFFFEB2 */ +#define ERR_DUPLICATE_TYPE -335 /* 0xFFFFFEB1 */ +#define ERR_DATA_STORE_FAILURE -336 /* 0xFFFFFEB0 */ +#define ERR_NOT_LOGGED_IN -337 /* 0xFFFFFEAF */ +#define ERR_INVALID_PASSWORD_CHARS -338 /* 0xFFFFFEAE */ +#define ERR_FAILED_SERVER_AUTHENT -339 /* 0xFFFFFEAD */ +#define ERR_TRANSPORT -340 /* 0xFFFFFEAC */ +#define ERR_NO_SUCH_SYNTAX -341 /* 0xFFFFFEAB */ +#define ERR_INVALID_DS_NAME -342 /* 0xFFFFFEAA */ +#define ERR_ATTR_NAME_TOO_LONG -343 /* 0xFFFFFEA9 */ +#define ERR_INVALID_TDS -344 /* 0xFFFFFEA8 */ +#define ERR_INVALID_DS_VERSION -345 /* 0xFFFFFEA7 */ +#define ERR_UNICODE_TRANSLATION -346 /* 0xFFFFFEA6 */ +#define ERR_SCHEMA_NAME_TOO_LONG -347 /* 0xFFFFFEA5 */ +#define ERR_UNICODE_FILE_NOT_FOUND -348 /* 0xFFFFFEA4 */ +#define ERR_UNICODE_ALREADY_LOADED -349 /* 0xFFFFFEA3 */ +#define ERR_NOT_CONTEXT_OWNER -350 /* 0xFFFFFEA2 */ +#define ERR_ATTEMPT_TO_AUTHENTICATE_0 -351 /* 0xFFFFFEA1 */ +#define ERR_NO_WRITABLE_REPLICAS -352 /* 0xFFFFFEA0 */ +#define ERR_DN_TOO_LONG -353 /* 0xFFFFFE9F */ +#define ERR_RENAME_NOT_ALLOWED -354 /* 0xFFFFFE9E */ +#define ERR_NOT_NDS_FOR_NT -355 /* 0xFFFFFE9D */ +#define ERR_NDS_FOR_NT_NO_DOMAIN -356 /* 0xFFFFFE9C */ +#define ERR_NDS_FOR_NT_SYNC_DISABLED -357 /* 0xFFFFFE9B */ +#define ERR_ITR_INVALID_HANDLE -358 /* 0xFFFFFE9A */ +#define ERR_ITR_INVALID_POSITION -359 /* 0xFFFFFE99 */ +#define ERR_ITR_INVALID_SEARCH_DATA -360 /* 0xFFFFFE98 */ +#define ERR_ITR_INVALID_SCOPE -361 /* 0xFFFFFE97 */ +#define ERR_ITR_MAX_COUNT -362 /* 0xFFFFFE96 */ + +/* -601 to -799 are returned by the directory services agent in the server */ +#define ERR_NO_SUCH_ENTRY -601 /* 0xFFFFFDA7 */ +#define ERR_NO_SUCH_VALUE -602 /* 0xFFFFFDA6 */ +#define ERR_NO_SUCH_ATTRIBUTE -603 /* 0xFFFFFDA5 */ +#define ERR_NO_SUCH_CLASS -604 /* 0xFFFFFDA4 */ +#define ERR_NO_SUCH_PARTITION -605 /* 0xFFFFFDA3 */ +#define ERR_ENTRY_ALREADY_EXISTS -606 /* 0xFFFFFDA2 */ +#define ERR_NOT_EFFECTIVE_CLASS -607 /* 0xFFFFFDA1 */ +#define ERR_ILLEGAL_ATTRIBUTE -608 /* 0xFFFFFDA0 */ +#define ERR_MISSING_MANDATORY -609 /* 0xFFFFFD9F */ +#define ERR_ILLEGAL_DS_NAME -610 /* 0xFFFFFD9E */ +#define ERR_ILLEGAL_CONTAINMENT -611 /* 0xFFFFFD9D */ +#define ERR_CANT_HAVE_MULTIPLE_VALUES -612 /* 0xFFFFFD9C */ +#define ERR_SYNTAX_VIOLATION -613 /* 0xFFFFFD9B */ +#define ERR_DUPLICATE_VALUE -614 /* 0xFFFFFD9A */ +#define ERR_ATTRIBUTE_ALREADY_EXISTS -615 /* 0xFFFFFD99 */ +#define ERR_MAXIMUM_ENTRIES_EXIST -616 /* 0xFFFFFD98 */ +#define ERR_DATABASE_FORMAT -617 /* 0xFFFFFD97 */ +#define ERR_INCONSISTENT_DATABASE -618 /* 0xFFFFFD96 */ +#define ERR_INVALID_COMPARISON -619 /* 0xFFFFFD95 */ +#define ERR_COMPARISON_FAILED -620 /* 0xFFFFFD94 */ +#define ERR_TRANSACTIONS_DISABLED -621 /* 0xFFFFFD93 */ +#define ERR_INVALID_TRANSPORT -622 /* 0xFFFFFD92 */ +#define ERR_SYNTAX_INVALID_IN_NAME -623 /* 0xFFFFFD91 */ +#define ERR_REPLICA_ALREADY_EXISTS -624 /* 0xFFFFFD90 */ +#define ERR_TRANSPORT_FAILURE -625 /* 0xFFFFFD8F */ +#define ERR_ALL_REFERRALS_FAILED -626 /* 0xFFFFFD8E */ +#define ERR_CANT_REMOVE_NAMING_VALUE -627 /* 0xFFFFFD8D */ +#define ERR_OBJECT_CLASS_VIOLATION -628 /* 0xFFFFFD8C */ +#define ERR_ENTRY_IS_NOT_LEAF -629 /* 0xFFFFFD8B */ +#define ERR_DIFFERENT_TREE -630 /* 0xFFFFFD8A */ +#define ERR_ILLEGAL_REPLICA_TYPE -631 /* 0xFFFFFD89 */ +#define ERR_SYSTEM_FAILURE -632 /* 0xFFFFFD88 */ +#define ERR_INVALID_ENTRY_FOR_ROOT -633 /* 0xFFFFFD87 */ +#define ERR_NO_REFERRALS -634 /* 0xFFFFFD86 */ +#define ERR_REMOTE_FAILURE -635 /* 0xFFFFFD85 */ +#define ERR_UNREACHABLE_SERVER -636 /* 0XFFFFFD84 */ +#define ERR_PREVIOUS_MOVE_IN_PROGRESS -637 /* 0XFFFFFD83 */ +#define ERR_NO_CHARACTER_MAPPING -638 /* 0XFFFFFD82 */ +#define ERR_INCOMPLETE_AUTHENTICATION -639 /* 0XFFFFFD81 */ +#define ERR_INVALID_CERTIFICATE -640 /* 0xFFFFFD80 */ +#define ERR_INVALID_REQUEST -641 /* 0xFFFFFD7F */ +#define ERR_INVALID_ITERATION -642 /* 0xFFFFFD7E */ +#define ERR_SCHEMA_IS_NONREMOVABLE -643 /* 0xFFFFFD7D */ +#define ERR_SCHEMA_IS_IN_USE -644 /* 0xFFFFFD7C */ +#define ERR_CLASS_ALREADY_EXISTS -645 /* 0xFFFFFD7B */ +#define ERR_BAD_NAMING_ATTRIBUTES -646 /* 0xFFFFFD7A */ +#define ERR_NOT_ROOT_PARTITION -647 /* 0xFFFFFD79 */ +#define ERR_INSUFFICIENT_STACK -648 /* 0xFFFFFD78 */ +#define ERR_INSUFFICIENT_BUFFER -649 /* 0xFFFFFD77 */ +#define ERR_AMBIGUOUS_CONTAINMENT -650 /* 0xFFFFFD76 */ +#define ERR_AMBIGUOUS_NAMING -651 /* 0xFFFFFD75 */ +#define ERR_DUPLICATE_MANDATORY -652 /* 0xFFFFFD74 */ +#define ERR_DUPLICATE_OPTIONAL -653 /* 0xFFFFFD73 */ +#define ERR_PARTITION_BUSY -654 /* 0XFFFFFD72 */ +#define ERR_MULTIPLE_REPLICAS -655 /* 0xFFFFFD71 */ +#define ERR_CRUCIAL_REPLICA -656 /* 0xFFFFFD70 */ +#define ERR_SCHEMA_SYNC_IN_PROGRESS -657 /* 0xFFFFFD6F */ +#define ERR_SKULK_IN_PROGRESS -658 /* 0xFFFFFD6E */ +#define ERR_TIME_NOT_SYNCHRONIZED -659 /* 0xFFFFFD6D */ +#define ERR_RECORD_IN_USE -660 /* 0xFFFFFD6C */ +#define ERR_DS_VOLUME_NOT_MOUNTED -661 /* 0xFFFFFD6B */ +#define ERR_DS_VOLUME_IO_FAILURE -662 /* 0xFFFFFD6A */ +#define ERR_DS_LOCKED -663 /* 0xFFFFFD69 */ +#define ERR_OLD_EPOCH -664 /* 0xFFFFFD68 */ +#define ERR_NEW_EPOCH -665 /* 0xFFFFFD67 */ +#define ERR_INCOMPATIBLE_DS_VERSION -666 /* 0xFFFFFD66 */ +#define ERR_PARTITION_ROOT -667 /* 0xFFFFFD65 */ +#define ERR_ENTRY_NOT_CONTAINER -668 /* 0xFFFFFD64 */ +#define ERR_FAILED_AUTHENTICATION -669 /* 0xFFFFFD63 */ +#define ERR_INVALID_CONTEXT -670 /* 0xFFFFFD62 */ +#define ERR_NO_SUCH_PARENT -671 /* 0xFFFFFD61 */ +#define ERR_NO_ACCESS -672 /* 0xFFFFFD60 */ +#define ERR_REPLICA_NOT_ON -673 /* 0xFFFFFD5F */ +#define ERR_INVALID_NAME_SERVICE -674 /* 0xFFFFFD5E */ +#define ERR_INVALID_TASK -675 /* 0xFFFFFD5D */ +#define ERR_INVALID_CONN_HANDLE -676 /* 0xFFFFFD5C */ +#define ERR_INVALID_IDENTITY -677 /* 0xFFFFFD5B */ +#define ERR_DUPLICATE_ACL -678 /* 0xFFFFFD5A */ +#define ERR_PARTITION_ALREADY_EXISTS -679 /* 0xFFFFFD59 */ +#define ERR_TRANSPORT_MODIFIED -680 /* 0xFFFFFD58 */ +#define ERR_ALIAS_OF_AN_ALIAS -681 /* 0xFFFFFD57 */ +#define ERR_AUDITING_FAILED -682 /* 0xFFFFFD56 */ +#define ERR_INVALID_API_VERSION -683 /* 0xFFFFFD55 */ +#define ERR_SECURE_NCP_VIOLATION -684 /* 0xFFFFFD54 */ +#define ERR_MOVE_IN_PROGRESS -685 /* 0xFFFFFD53 */ +#define ERR_NOT_LEAF_PARTITION -686 /* 0xFFFFFD52 */ +#define ERR_CANNOT_ABORT -687 /* 0xFFFFFD51 */ +#define ERR_CACHE_OVERFLOW -688 /* 0xFFFFFD50 */ +#define ERR_INVALID_SUBORDINATE_COUNT -689 /* 0xFFFFFD4F */ +#define ERR_INVALID_RDN -690 /* 0xFFFFFD4E */ +#define ERR_MOD_TIME_NOT_CURRENT -691 /* 0xFFFFFD4D */ +#define ERR_INCORRECT_BASE_CLASS -692 /* 0xFFFFFD4C */ +#define ERR_MISSING_REFERENCE -693 /* 0xFFFFFD4B */ +#define ERR_LOST_ENTRY -694 /* 0xFFFFFD4A */ +#define ERR_AGENT_ALREADY_REGISTERED -695 /* 0xFFFFFD49 */ +#define ERR_DS_LOADER_BUSY -696 /* 0xFFFFFD48 */ +#define ERR_DS_CANNOT_RELOAD -697 /* 0xFFFFFD47 */ +#define ERR_REPLICA_IN_SKULK -698 /* 0xFFFFFD46 */ +#define ERR_FATAL -699 /* 0xFFFFFD45 */ +#define ERR_OBSOLETE_API -700 /* 0xFFFFFD44 */ +#define ERR_SYNCHRONIZATION_DISABLED -701 /* 0xFFFFFD43 */ +#define ERR_INVALID_PARAMETER -702 /* 0xFFFFFD42 */ +#define ERR_DUPLICATE_TEMPLATE -703 /* 0xFFFFFD41 */ +#define ERR_NO_MASTER_REPLICA -704 /* 0xFFFFFD40 */ +#define ERR_DUPLICATE_CONTAINMENT -705 /* 0xFFFFFD3F */ +#define ERR_NOT_SIBLING -706 /* 0xFFFFFD3E */ +#define ERR_INVALID_SIGNATURE -707 /* 0xFFFFFD3D */ +#define ERR_INVALID_RESPONSE -708 /* 0xFFFFFD3C */ +#define ERR_INSUFFICIENT_SOCKETS -709 /* 0xFFFFFD3B */ +#define ERR_DATABASE_READ_FAIL -710 /* 0xFFFFFD3A */ +#define ERR_INVALID_CODE_PAGE -711 /* 0xFFFFFD39 */ +#define ERR_INVALID_ESCAPE_CHAR -712 /* 0xFFFFFD38 */ +#define ERR_INVALID_DELIMITERS -713 /* 0xFFFFFD37 */ +#define ERR_NOT_IMPLEMENTED -714 /* 0xFFFFFD36 */ +#define ERR_CHECKSUM_FAILURE -715 /* 0xFFFFFD35 */ +#define ERR_CHECKSUMMING_NOT_SUPPORTED -716 /* 0xFFFFFD34 */ +#define ERR_CRC_FAILURE -717 /* 0xFFFFFD33 */ +#define ERR_INVALID_ENTRY_HANDLE -718 /* 0xFFFFFD32 */ +#define ERR_INVALID_VALUE_HANDLE -719 /* 0xFFFFFD31 */ +#define ERR_CONNECTION_DENIED -720 /* 0xFFFFFD30 */ +#define ERR_NO_SUCH_FEDERATION_LINK -721 /* 0xFFFFFD2F */ +#define ERR_OP_SCHEMA_MISMATCH -722 /* 0xFFFFFD2E */ +#define ERR_STREAM_NOT_FOUND -723 /* 0xFFFFFD2D */ +#define ERR_DCLIENT_UNAVAILABLE -724 /* 0xFFFFFD2C */ +#define ERR_MASV_NO_ACCESS -725 /* 0xFFFFFD2B */ +#define ERR_MASV_INVALID_REQUEST -726 /* 0xFFFFFD2A */ +#define ERR_MASV_FAILURE -727 /* 0xFFFFFD29 */ +#define ERR_MASV_ALREADY_EXISTS -728 /* 0xFFFFFD28 */ +#define ERR_MASV_NOT_FOUND -729 /* 0xFFFFFD27 */ +#define ERR_MASV_BAD_RANGE -730 /* 0xFFFFFD26 */ +#define ERR_VALUE_DATA -731 /* 0xFFFFFD25 */ +#define ERR_DATABASE_LOCKED -732 /* 0xFFFFFD24 */ +#define ERR_DATABASE_ALREADY_EXISTS -733 /* 0xFFFFFD23 */ +#define ERR_DATABASE_NOT_FOUND -734 /* 0xFFFFFD22 */ +#define ERR_NOTHING_TO_ABORT -735 /* 0xFFFFFD21 */ +#define ERR_END_OF_STREAM -736 /* 0xFFFFFD20 */ +#define ERR_NO_SUCH_TEMPLATE -737 /* 0xFFFFFD1F */ +#define ERR_SAS_LOCKED -738 /* 0xFFFFFD1E */ +#define ERR_INVALID_SAS_VERSION -739 /* 0xFFFFFD1D */ +#define ERR_SAS_ALREADY_REGISTERED -740 /* 0xFFFFFD1C */ +#define ERR_NAME_TYPE_NOT_SUPPORTED -741 /* 0xFFFFFD1B */ +#define ERR_WRONG_DS_VERSION -742 /* 0xFFFFFD1A */ +#define ERR_INVALID_CONTROL_FUNCTION -743 /* 0xFFFFFD19 */ +#define ERR_INVALID_CONTROL_STATE -744 /* 0xFFFFFD18 */ +#define ERR_CACHE_IN_USE -745 /* 0xFFFFFD17 */ +#define ERR_ZERO_CREATION_TIME -746 /* 0xFFFFFD16 */ +#define ERR_WOULD_BLOCK -747 /* 0xFFFFFD15 */ +#define ERR_CONN_TIMEOUT -748 /* 0xFFFFFD14 */ +#define ERR_TOO_MANY_REFERRALS -749 /* 0xFFFFFD13 */ +#define ERR_OPERATION_CANCELLED -750 /* 0xFFFFFD12 */ +#define ERR_UNKNOWN_TARGET -751 /* 0xFFFFFD11 */ +#define ERR_GUID_FAILURE -752 /* 0xFFFFFD10 */ +#define ERR_INCOMPATIBLE_OS -753 /* 0xFFFFFD0F */ +#define ERR_CALLBACK_CANCEL -754 /* 0xFFFFFD0E */ +#define ERR_INVALID_SYNC_DATA -755 /* 0xFFFFFD0D */ +#define ERR_STREAM_EXISTS -756 /* 0xFFFFFD0C */ +#define ERR_AUXILIARY_HAS_CONTAINMENT -757 /* 0xFFFFFD0B */ +#define ERR_AUXILIARY_NOT_CONTAINER -758 /* 0xFFFFFD0A */ +#define ERR_AUXILIARY_NOT_EFFECTIVE -759 /* 0XFFFFFD09 */ +#define ERR_AUXILIARY_ON_ALIAS -760 /* 0xFFFFFD08 */ +#define ERR_HAVE_SEEN_STATE -761 /* 0xFFFFFD07 */ +#define ERR_VERB_LOCKED -762 /* 0xFFFFFD06 */ +#define ERR_VERB_EXCEEDS_TABLE_LENGTH -763 /* 0xFFFFFD05 */ +#define ERR_BOF_HIT -764 /* 0xFFFFFD04 */ +#define ERR_EOF_HIT -765 /* 0xFFFFFD03 */ +#define ERR_INCOMPATIBLE_REPLICA_VER -766 /* 0xFFFFFD02 */ +#define ERR_QUERY_TIMEOUT -767 /* 0xFFFFFD01 */ +#define ERR_QUERY_MAX_COUNT -768 /* 0xFFFFFD00 */ +#define ERR_DUPLICATE_NAMING -769 /* 0xFFFFFCFF */ +#define ERR_NO_TRANS_ACTIVE -770 /* 0xFFFFFCFE */ +#define ERR_TRANS_ACTIVE -771 /* 0xFFFFFCFD */ +#define ERR_ILLEGAL_TRANS_OP -772 /* 0xFFFFFCFC */ +#define ERR_ITERATOR_SYNTAX -773 /* 0xFFFFFCFB */ +#define ERR_REPAIRING_DIB -774 /* 0xFFFFFCFA */ +#define ERR_INVALID_OID_FORMAT -775 /* 0xFFFFFCF9 */ +#define ERR_DS_AGENT_CLOSING -776 /* 0xFFFFFCF8 */ + +/* +* -777 and -778 reserved for sparse replica errors that are in tao +*/ +#define ERR_CANNOT_GO_REMOTE -779 /* 0xFFFFFCF5 */ + +/* NOTE: In order to accommodate older compilers, do not introduce a new + * error code name longer than 31 characters. + */ + +/*===========================================================================*/ +#endif + diff --git a/c_clientlogin/xplatincl/nwdsevnt.h b/c_clientlogin/xplatincl/nwdsevnt.h new file mode 100644 index 00000000..efd8b94f --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsevnt.h @@ -0,0 +1,705 @@ +/****************************************************************************** + Source module name: nwdsevnt.h + Release Version: + + %name: nwdsevnt.h % + %version: 10 % + %date_modified: Wed Aug 25 09:48:37 1999 % + $Copyright: + + Copyright (c) 1989-1998 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#ifndef _NWDSEVNT_HEADER_ +#define _NWDSEVNT_HEADER_ + +/*--------------------------------------------------------------------------- + * definitions and functions required to receive event reports + */ +typedef enum DSEventPriority {EP_INLINE, EP_JOURNAL, EP_WORK} DSEventPriority; + +/*--------------------------------------------------------------------------- + * event types + */ + +#define DSE_INLINE_ONLY 0x80000000 +#define DSE_EVENT_MASK 0x7FFFFFFF + +/* First 19 events in 4.10 release; events 20-25 added to IW2 */ +#define DSE_INVALID 0 +#define DSE_CREATE_ENTRY 1 /* data is DSEEntryInfo */ +#define DSE_DELETE_ENTRY 2 /* data is DSEEntryInfo */ +#define DSE_RENAME_ENTRY 3 /* data is DSEEntryInfo */ +#define DSE_MOVE_SOURCE_ENTRY 4 /* data is DSEEntryInfo */ +#define DSE_ADD_VALUE 5 /* data is DSEValueInfo */ +#define DSE_DELETE_VALUE 6 /* data is DSEValueInfo */ +#define DSE_CLOSE_STREAM 7 /* data is DSEValueInfo */ +#define DSE_DELETE_ATTRIBUTE 8 /* data is DSEValueInfo */ +#define DSE_SET_BINDERY_CONTEXT 9 /* no data */ +#define DSE_CREATE_BINDERY_OBJECT 10 /* data is DSEBinderyObjectInfo */ +#define DSE_DELETE_BINDERY_OBJECT 11 /* data is DSEBinderyObjectInfo */ +#define DSE_CHECK_SEV 12 /* data is DSESEVInfo */ +#define DSE_UPDATE_SEV 13 /* no data */ +#define DSE_MOVE_DEST_ENTRY 14 /* data is DSEEntryInfo */ +#define DSE_DELETE_UNUSED_EXTREF 15 /* data is DSEEntryInfo */ +#define DSE_REMOTE_SERVER_DOWN 17 /* data is DSENetAddress */ +#define DSE_NCP_RETRY_EXPENDED 18 /* data is DSENetAddress */ +#define DSE_REMOTE_CONN_CLEARED 19 /* data is DSENetAddress */ +#define DSE_PARTITION_OPERATION_EVENT 20 /* data is DSEEventData; used by SCALE */ +#define DSE_CHANGE_MODULE_STATE 21 /* data is DSEModuleState */ +#define DSE_RESERVED_2 22 /* reserved */ +#define DSE_RESERVED_3 23 /* reserved */ +#define DSE_RESERVED_4 24 /* reserved */ +#define DSE_RESERVED_5 25 /* reserved */ + +/* Events added post 4.10 */ + /* All the DSE_DB_... events are "debug" trace events, each event + * corresponds to one old DSTrace type TV_..., most have many messages + * using the same event ID. No attempt has been made to make these calls + * outside the NDS locks, so you must presume that all these calls come + * inside the locks. These all use the DSEDebugInfo data structure, + * and the result (error) field is always 0 for these events + */ +#define DSE_DB_AUTHEN 26 /* authentication */ +#define DSE_DB_BACKLINK 27 /* backlink */ +#define DSE_DB_BUFFERS 28 /* request buffer display */ +#define DSE_DB_COLL 29 /* collisions */ +#define DSE_DB_DSAGENT 30 /* low level DSA tracing */ +#define DSE_DB_EMU 31 /* bindery emulator */ +#define DSE_DB_FRAGGER 32 /* fragger */ +#define DSE_DB_INIT 33 /* initialization */ +#define DSE_DB_INSPECTOR 34 /* inspector */ +#define DSE_DB_JANITOR 35 /* janitor */ +#define DSE_DB_LIMBER 36 /* limber */ +#define DSE_DB_LOCKING 37 /* locking */ +#define DSE_DB_MOVE 38 /* move */ +#define DSE_DB_MIN 39 /* default dstrace messages (equivalent to ON) */ +#define DSE_DB_MISC 40 /* miscellaneous */ +#define DSE_DB_PART 41 /* partition operations */ +#define DSE_DB_RECMAN 42 /* record manager */ +#define DSE_DB_RESNAME 44 /* resolve name */ +#define DSE_DB_SAP 45 /* SAP */ +#define DSE_DB_SCHEMA 46 /* schema */ +#define DSE_DB_SKULKER 47 /* skulker */ +#define DSE_DB_STREAMS 48 /* streams */ +#define DSE_DB_SYNC_IN 49 /* incoming sync traffic */ +#define DSE_DB_THREADS 50 /* DS thread scheduling */ +#define DSE_DB_TIMEVECTOR 51 /* time vectors */ +#define DSE_DB_VCLIENT 52 /* virtual client */ + + /* Nearly all the following events use the same DSEEventData structure. + * Not all fields are filled in for each event. The data in the + * structure is shown for each event. Any unused fields are set to -1 + * for the ids or values, or set to 0 for the pointers. + */ +#define DSE_AGENT_OPEN_LOCAL 53 /* d1-state(2-Audit, 1-start, 0-end), result-valid for end state only, not in locks */ +#define DSE_AGENT_CLOSE_LOCAL 54 /* d1-state(1-start, 0-end), not in locks */ +#define DSE_DS_ERR_VIA_BINDERY 55 /* d1-error code being returned via the bindery, not in locks */ +#define DSE_DSA_BAD_VERB 56 /* d1-bad verb number given to DSA Request (NCP 104, 2), not in locks */ +#define DSE_DSA_REQUEST_START 57 /* d1-verb number (NCP 104, 2), not in locks */ +#define DSE_DSA_REQUEST_END 58 /* d1-verb number, d2-primaryID, d3-request size, d4-reply size, not in locks */ +#define DSE_MOVE_SUBTREE 59 /* d1-source ID, d1-Dest ID, not in locks */ +#define DSE_NO_REPLICA_PTR 60 /* d1-partitionID of partition, inside locks */ +#define DSE_SYNC_IN_END 61 /* d1-ID of server sending changes, d2 - partition Root ID, p3-Number entries sent(if no error), not in locks */ +#define DSE_BKLINK_SEV 62 /* d1-ID of object being updated, not in locks */ +#define DSE_BKLINK_OPERATOR 63 /* d1-ID of object whose console operator privilegs were changes, d2-ID of server privileges changed on, not in locks */ +#define DSE_DELETE_SUBTREE 64 /* d1-ID of subtree root, d2-count of objects deleted, inside locks & transaction */ +#define DSE_SET_NEW_MASTER 65 /* d1-ID of partition being changed, not in locks */ +#define DSE_PART_STATE_CHG_REQ 66 /* d1-ID of partition, d2-partnerPartID, d3-(function<<16)|type, d4-state */ +#define DSE_REFERRAL 67 /* d1-ID of local entry, d2-ID of partition, d3-referral type */ +#define DSE_UPDATE_CLASS_DEF 68 /* uname-name of schema class updated (added), inside locks & transaction */ +#define DSE_UPDATE_ATTR_DEF 69 /* uname-name of schema attribute updated (added), inside locks & transaction */ +#define DSE_LOST_ENTRY 70 /* d1-parent ID of entry, d2-timestamp.seconds of entry, d3-timestamp.replicaNumber, d4-timestamp.event, uname-unicode name of entry, inside locks & transaction */ +#define DSE_PURGE_ENTRY_FAIL 71 /* d1-ID of entry that failed, inside lock & transaction */ +#define DSE_PURGE_START 72 /* d1-ID of partition being purged, d2-replica type, inside lock */ +#define DSE_PURGE_END 73 /* d1-ID of partition purged, d2-number entries purged, d3-number values purged, not in locks */ +#define DSE_FLAT_CLEANER_END 74 /* d1-number entries purged, d2-number values purged, not in locks */ +#define DSE_ONE_REPLICA 75 /* d1-ID of partition with only one replica, inside lock */ +#define DSE_LIMBER_DONE 76 /* d1-all initialized (boolean value), d2-found new RDN (boolean), not in lock */ +#define DSE_SPLIT_DONE 77 /* d1-ID of parent partition root, d2-ID of child partition root, not in lock */ +#define DSE_SYNC_SVR_OUT_START 78 /* d1-ID of server, d2-rootID, d3-replica number, d4-replica state&type&flags, not in locks */ +#define DSE_SYNC_SVR_OUT_END 79 /* d1-ID of server, d2-partition rootID, d3-objects sent, d4-values sent, not in locks */ +#define DSE_SYNC_PART_START 80 /* d1-partition ID, d2-partition state, d3-replica type, inside lock */ +#define DSE_SYNC_PART_END 81 /* d1-partition ID, d2-(boolean value=)AllProcessed, not in lock */ +#define DSE_MOVE_TREE_START 82 /* d1-ID of subtree root being moved, d2-destination (parent) ID, d3-server ID starting from, not in lock */ +#define DSE_MOVE_TREE_END 83 /* d1-ID of subtree root being moved, d2-server ID starting from, not in lock */ +#define DSE_RECERT_PUB_KEY 84 /* d1-ID of entry whose keys are being certified, inside locks & transaction */ +#define DSE_GEN_CA_KEYS 85 /* d1-ID of entry having CA Keys generated, inside locks & transaction */ +#define DSE_JOIN_DONE 86 /* d1-ID of parent partition root, d2-ID of child partition root, inside lock */ +#define DSE_PARTITION_LOCKED 87 /* d1-ID of partition being locked, not in locks */ +#define DSE_PARTITION_UNLOCKED 88 /* d1-ID of partition being unlocked, not in locks */ +#define DSE_SCHEMA_SYNC 89 /* d1-(boolean value=)allProcessed, not in locks */ +#define DSE_NAME_COLLISION 90 /* d1-ID of original entry, d2-ID of duplicate entry, inside locks & transaction */ +#define DSE_NLM_LOADED 91 /* d1-module handle of NLM that was loaded, not in locks */ +#define DSE_PARTITION_EVENT 92 /* ** Uses DSEPartitionData structure */ +#define DSE_SKULKER_EVENT 93 /* ** Uses DSESkulkData structure */ +#define DSE_LUMBER_DONE 94 /* no parameters, not in lock */ +#define DSE_BACKLINK_PROC_DONE 95 /* no parameters, not in lock */ +#define DSE_SERVER_RENAME 96 /* name-ascii new server name, inside locks */ +#define DSE_SYNTHETIC_TIME 97 /* d1-root entry ID of partition issuing timestamp, d2-partition id, d3-count of timestamps requested, inside locks & transaction */ +#define DSE_SERVER_ADDRESS_CHANGE 98 /* no parameters, in locks */ +#define DSE_DSA_READ 99 /* d1-ID of entry being read, not in locks */ + + /* The following section of events are primarily for auditing, and thus + * whenever possible, the event is inside a transaction, so they can + * return an error and abort the transaction if necessary + */ +#define DSE_LOGIN 100 /* d1-parent id, d2-entry id, d3-usedNullPassword(boolean), d4-bindery login(0) or NDS login (-1) */ +#define DSE_CHGPASS 101 /* d1-parent id, d2-entry id */ +#define DSE_LOGOUT 102 /* d1-parent id, d2-entry id */ +#define DSE_ADD_REPLICA 103 /* d1-partition root id, d2-server ID, d3-replicaType, uname-servername */ +#define DSE_REMOVE_REPLICA 104 /* d1-partition root id, d2-server ID, uname-servername */ +#define DSE_SPLIT_PARTITION 105 /* d1-parent partition root id, d2-new partition root id, uname-new partition entry name */ +#define DSE_JOIN_PARTITIONS 106 /* d1-parent partition root id, d2-child partition root id */ +#define DSE_CHANGE_REPLICA_TYPE 107 /* d1-partition root id, d2-target server ID, d3-old type, d4-new type*/ +#define DSE_REMOVE_ENTRY 108 /* d1-parent id, d2-entry id, uname-entry name */ +#define DSE_ABORT_PARTITION_OP 109 /* d1-parent id, d2-entry id */ +#define DSE_RECV_REPLICA_UPDATES 110 /* d1-replica root id */ +#define DSE_REPAIR_TIME_STAMPS 111 /* d1-replica root id */ +#define DSE_SEND_REPLICA_UPDATES 112 /* d1-replica root id */ +#define DSE_VERIFY_PASS 113 /* d1-parent id, d2-entry id */ +#define DSE_BACKUP_ENTRY 114 /* d1-entry id */ +#define DSE_RESTORE_ENTRY 115 /* d1-parent id, name-entry rdn */ +#define DSE_DEFINE_ATTR_DEF 116 /* uname-attribute name*/ +#define DSE_REMOVE_ATTR_DEF 117 /* d1-attr id, d2-schema root ID, uname-attribute name */ +#define DSE_REMOVE_CLASS_DEF 118 /* d1-class id, d2-schema root ID, uname-class name */ +#define DSE_DEFINE_CLASS_DEF 119 /* uname-class name*/ +#define DSE_MODIFY_CLASS_DEF 120 /* d1-class id, d2-schema root ID, uname-class name */ +#define DSE_RESET_DS_COUNTERS 121 /* d2-server ID */ +#define DSE_REMOVE_ENTRY_DIR 122 /* d1-parent id, d2-entry id, uname-entry name*/ +#define DSE_COMPARE_ATTR_VALUE 123 /* d1-parent id, d2-entry id, uname-attribute name*/ +#define DSE_STREAM 124 /* d1-DSE_ST_OPEN, d2-entry id, d3-attr id, d4-requested rights */ + /* d1-DSE_ST_CLOSE, d2-entry id, d3-attr id */ +#define DSE_LIST_SUBORDINATES 125 /* d1-parent id, d2-entry id, uname-entry name */ +#define DSE_LIST_CONT_CLASSES 126 /* d1-parent id, d2-entry id, uname-entry name */ +#define DSE_INSPECT_ENTRY 127 /* d1-parent id, d2-entry id */ +#define DSE_RESEND_ENTRY 128 /* d1-parent id, d2-entry id */ +#define DSE_MUTATE_ENTRY 129 /* d1-entry id, d2-new class id, uname-new class name */ +#define DSE_MERGE_ENTRIES 130 /* d1-winner parent id, d2-winner entry id, uname-loser entry name*/ +#define DSE_MERGE_TREE 131 /* d1-root entry id */ +#define DSE_CREATE_SUBREF 132 /* d1-sub ref id */ +#define DSE_LIST_PARTITIONS 133 /* d1-partition root entry id */ +#define DSE_READ_ATTR 134 /* d1-entry id, d2-attribute id */ +#define DSE_READ_REFERENCES 135 /* d1-entry id */ +#define DSE_UPDATE_REPLICA 136 /* d1-partition root id, d2-entry id, uname-entry name */ +#define DSE_START_UPDATE_REPLICA 137 /* d1-partition root id */ +#define DSE_END_UPDATE_REPLICA 138 /* d1-parititon root id */ +#define DSE_SYNC_PARTITION 139 /* d1-partition root id */ +#define DSE_SYNC_SCHEMA 140 /* d1-tree root id */ +#define DSE_CREATE_BACKLINK 141 /* d1-tree root id, d2-server ID request came from, d3-local entry ID, d4-remote entry ID */ +#define DSE_CHECK_CONSOLE_OPERATOR 142 /* d1-tree root id, d2-server ID, d3-isOperator boolean, d4-object ID being checked */ +#define DSE_CHANGE_TREE_NAME 143 /* d1-tree root id, uname-new tree name */ +#define DSE_START_JOIN 144 /* d1-parent partition root id, d2-child partition root id */ +#define DSE_ABORT_JOIN 145 /* d1-parent partition root id, d2-child partition root id */ +#define DSE_UPDATE_SCHEMA 146 /* d1-tree root id, d2-server id, inside locks & transaction */ +#define DSE_START_UPDATE_SCHEMA 147 /* d1-tree root id, d2-server id */ +#define DSE_END_UPDATE_SCHEMA 148 /* d1-tree root id, d2-server id */ +#define DSE_MOVE_TREE 149 /* d1-source parent id, d2-dest. parent id, d3-type (0|1), uname-(0=source DN)|(1=newName) */ +#define DSE_RELOAD_DS 150 /* d1-tree root id */ +#define DSE_ADD_PROPERTY 151 /* d1-object id, d3-security, d4-flags, name-object name */ +#define DSE_DELETE_PROPERTY 152 /* d1-object id, name-object name */ +#define DSE_ADD_MEMBER 153 /* d1-object id, d3-member id, name-property name */ +#define DSE_DELETE_MEMBER 154 /* d1-object id, d3-member id, name-property name */ +#define DSE_CHANGE_PROP_SECURITY 155 /* d1-object id, d3-new security, name-property name */ +#define DSE_CHANGE_OBJ_SECURITY 156 /* d1-object parent id, d2-object id, d3-new security */ +#define DSE_READ_OBJ_INFO 157 /* d1-parent id, d2-entry id */ +#define DSE_CONNECT_TO_ADDRESS 158 /* d1-task id, d3-address type, d4-address size, name-address data */ +#define DSE_SEARCH 159 /* d1-base object id, d2-scope, d3-nodes to search (not used currently) d4-infoType */ +#define DSE_PARTITION_STATE_CHG 160 /* d1-partitionRootID, d2-partnerPartID, d3-(function<<16)|type, d4-state */ +#define DSE_REMOVE_BACKLINK 161 /* d1-object ID affected, d2-serverID of removed backlink, d3-remoteID of removed backlink */ +#define DSE_LOW_LEVEL_JOIN 162 /* d1-parent partition Root ID, d2-child partition Root ID, not in lock */ +#define DSE_CREATE_NAMEBASE 163 /* no data, not in lock */ +#define DSE_CHANGE_SECURITY_EQUALS 164 /* d1-object ID, d2-equiv ID, d3-0=delete,1=add equivalence, inside locks & transaction */ +#define DSE_DB_NCPENG 166 +#define DSE_CRC_FAILURE 167 /* d1-CRC failure type (0=server | 1=client) d2-server | client CRC error count */ +#define DSE_ADD_ENTRY 168 /* d1-parent id, d2-object id, (success DSE_DATATYPE_STRUCT1) */ +#define DSE_MODIFY_ENTRY 169 /* d1-parent id, d2-object id, (success DSE_DATATYPE_STRUCT1) */ +#define DSE_OPEN_BINDERY 171 /* d1-tree root id */ +#define DSE_CLOSE_BINDERY 172 /* d1-tree root id */ +#define DSE_CHANGE_CONN_STATE 173 /* data is DSEChangeConnState */ +#define DSE_NEW_SCHEMA_EPOCH 174 /* d1-tree root id */ +#define DSE_DB_AUDIT 175 /* auditing debug messages */ +#define DSE_DB_AUDIT_NCP 176 /* audit ncp debug messages */ +#define DSE_DB_AUDIT_SKULK 177 /* audit skulking debug messages */ +#define DSE_MODIFY_RDN 178 /* d1-parentID, d2-entry ID, uname-oldRDN */ +#define DSE_DB_LDAP 179 /* ldap trace messages */ +#define DSE_ORPHAN_PARTITION 180 /* d1-DSE_OP_CREATE, d2-newPartitionID, d3-targetPartitionID */ + /* d1-DSE_OP_REMOVE, d2-partitionID */ + /* d1-DSE_OP_LINK, d2-partitionID, d3-targetPartitionID, d4-targetServerID */ + /* d1-DSE_OP_UNLINK, d2-partitionID, d3-targetPartitionID */ +#define DSE_ENTRYID_SWAP 181 /* d1-srcID, d2-destID */ + +#define DSE_DB_NCP_REQUEST 182 /* no data - used by lock check */ +#define DSE_DB_LOST_ENTRY 183 /* uses DSEDebugInfo */ +#define DSE_DB_CHANGE_CACHE 184 /* uses DSEDebugInfo */ +#define DSE_LOW_LEVEL_SPLIT 185 /* d1-parent partition Root ID, d2-child partition Root ID, not in lock */ +#define DSE_DB_PURGE 186 /* uses DSEDebugInfo */ +#define DSE_END_NAMEBASE_TRANSACTION 187 /* no data */ +#define DSE_ALLOW_LOGIN 188 /* d1-entryID, d2-flags */ +#define DSE_DB_CLIENT_BUFFERS 189 /* uses DSEDebugInfo, request buffer display */ + + /* The following section of events are primarily for WAN Traffic Manager, + * and thus are expected to be used as inline events so that the policy + * results can be returned to DS. + */ + +#define DSE_DB_WANMAN 190 /* uses DSEDebugInfo */ +#define DSE_WTM_NDS_BACKLINKS 191 /* DSEWtmInfo */ +#define DSE_WTM_NDS_SCHEMA_SYNC 192 /* DSEWtmInfo */ +#define DSE_WTM_NDS_LIMBER 193 /* DSEWtmInfo */ +#define DSE_WTM_NDS_LOGIN_RESTRICTIONS 194 /* DSEWtmInfo */ +#define DSE_WTM_NDS_JANITOR 195 /* DSEWtmInfo */ +#define DSE_WTM_NDS_OPEN_CONNECTION 196 /* DSEWtmOpenInfo */ + +#define DSE_LOCAL_REPLICA_CHANGE 197 /* d1-DSE_LRC_* opcode, d2-replicaRootID */ +#define DSE_DB_DRL 198 /* reference link debug messages */ +#define DSE_MOVE_ENTRY_SOURCE 199 /* d1-parentID, d2-dest parentID, d3-sourceID, uname-name */ +#define DSE_MOVE_ENTRY_DEST 200 /* d1-parentID, d2-dest parentID, d3-sourceID, uname-newName */ +#define DSE_NOTIFY_REF_CHANGE 201 /* d1-entryID used by obituary added to */ +#define DSE_DB_ALLOC 202 /* uses DSEDebugInfo */ +#define DSE_CONSOLE_OPERATION 203 /* d1-opCode - DSC_* flag */ +#define DSE_DB_SERVER_PACKET 204 /* uses DSEDebugInfo */ +#define DSE_START_DIB_CHECK 205 /* RecMan DIB validation */ +#define DSE_END_DIB_CHECK 206 /* RecMan DIB validation, d1-error status */ +#define DSE_DB_OBIT 207 /* uses DSEDebugInfo */ +#define DSE_REPLICA_IN_TRANSITION 208 /* d1-partition root ID, d2-last ID */ +#define DSE_DB_SYNC_DETAIL 209 /* uses DSEDebugInfo */ +#define DSE_DB_CONN_TRACE 210 /* uses DSEDebugInfo */ +#define DSE_BEGIN_NAMEBASE_TRANSACTION 211 /* no data */ +#define DSE_DB_VIRTUAL_REPLICA 212 /* uses DSEDebugInfo */ +#define DSE_VR_DRIVER_STATE_CHANGE 213 /* used DSEEntryInfo */ +#define DSE_CHANGE_CONFIG_PARM 214 /* uses DSEChangeConfigParm */ + +#define DSE_MAX_EVENTS 215 + +/*--------------------------------------------------------------------------- + * data structures used for the data associated with events + */ + +/* DSE_STREAM operation definitions */ +#define DSE_ST_OPEN 0x0001 +#define DSE_ST_CLOSE 0x0002 + +/* DSE_ORPHAN_PARTITION operation definitions */ +#define DSE_OP_CREATE 0x0001 +#define DSE_OP_REMOVE 0x0002 +#define DSE_OP_LINK 0x0003 +#define DSE_OP_UNLINK 0x0004 + +typedef struct +{ + nuint32 seconds; + nuint16 replicaNumber; + nuint16 event; +} DSETimeStamp; + +typedef struct +{ + nuint8 data[16]; +} DSEGUID; + +/* newDN used for DSE_MOVE_SOURCE_ENTRY and DSE_RENAME_ENTRY, + * otherwise it is 0 + */ + +/* NetWare 4.x returns DSEntryInfo structure, NetWare 5.x returns + * DSEntryInfo2 structure +*/ +typedef struct +{ + nuint32 perpetratorID; + nuint32 verb; + nuint32 entryID; + nuint32 parentID; + nuint32 classID; + nuint32 flags; + DSETimeStamp creationTime; + const unicode *dn; + const unicode *newDN; + char data[1]; /* used to store data for dn and newDN fields */ +} DSEEntryInfo; + +typedef struct +{ + nuint32 perpetratorID; + nuint32 verb; + nuint32 entryID; + nuint32 parentID; + nuint32 classID; + nuint32 flags; + DSETimeStamp creationTime; + const unicode *dn; + const unicode *newDN; + nuint32 connID; + char data[1]; /* used to store data for dn and newDN fields */ +} DSEEntryInfo2; + + +/* DSEEntryInfo flag definitions */ +#define DSEF_PARTITION_ROOT 0x0001 +#define DSEF_EXTREF 0x0002 +#define DSEF_ALIAS 0x0004 + +typedef struct +{ + nuint32 perpetratorID; + nuint32 verb; + nuint32 entryID; + nuint32 attrID; + nuint32 syntaxID; + nuint32 classID; + DSETimeStamp timeStamp; + nuint size; + char data[1]; /* see DSEVal... structures for meanings of this field */ +} DSEValueInfo; + +typedef struct +{ + nuint32 entryID; + nuint32 parentID; + nuint32 type; + nuint32 emuObjFlags; + nuint32 security; + char name[48]; +} DSEBinderyObjectInfo; + +typedef struct +{ + nuint32 entryID; + nuint32 retryCount; + nuint32 valueID; + unicode valueDN[MAX_DN_CHARS + 1]; + char referral[1]; +} DSESEVInfo; + +typedef struct +{ + nuint32 type; + nuint32 length; + nuint8 data[1]; +} DSENetAddress; + +typedef struct +{ + nuint32 entryID; + nuint32 attrID[2]; +} DSESkulkData; + +/* DSE_LOCAL_REPLICA_CHANGE flag definitions */ +#define DSE_LRC_ADD 0x0001 +#define DSE_LRC_REMOVE 0x0002 +#define DSE_LRC_MODIFY 0x0003 + +/* DSE_PARTITION_OPERATION_EVENT flag definitions */ +#define DSE_PF_STATE_CHANGE 0x0001 +#define DSE_PF_ADD 0x0002 +#define DSE_PF_PURGE 0x0004 +#define DSE_PF_JOIN 0x0008 +#define DSE_PF_SPLIT 0x0010 + +/* DSE_CHANGE_CONN_STATE flag definitions */ +#define DSE_CONN_VALID 0x0001 +#define DSE_CONN_AUTHENTIC 0x0002 +#define DSE_CONN_SUPERVISOR 0x0004 +#define DSE_CONN_OPERATOR 0x0008 +#define DSE_CONN_LICENSED 0x0010 +#define DSE_CONN_SEV_IS_STALE 0x0020 +#define DSE_CONN_IS_NCP 0x0040 +#define DSE_CONN_CHECKSUMMING 0x0080 +#define DSE_CONN_OPERATIONAL_FLAGS 0x00FF +#define DSE_CONN_SIGNATURES 0x0100 +#define DSE_CONN_CSIGNATURES 0x0200 +#define DSE_CONN_ENCRYPTION 0x0400 +#define DSE_CONN_SECURITY_FLAGS 0x0700 + +typedef struct +{ + nuint32 connID; + nuint32 entryID; + nuint32 oldFlags; + nuint32 newFlags; +} DSEChangeConnState; + +/* DSEChangeConfigState parameter values */ +#define DSE_CFG_UNSPECIFIED 0 +#define DSE_CFG_RESPOND_TO_GET_NEAREST 1 +#define DSE_CFG_SERVER_NAME 2 + +typedef struct +{ + nuint32 configParm; +} DSEChangeConfigParm; + +/* DSEModuleState flags, the CHANGING flag is combined with LOADED + * to show starting to load or starting to unload. + */ +#define DSE_MOD_CHANGING 0x01 +#define DSE_MOD_LOADED 0x02 +#define DSE_MOD_AUTOLOAD 0x04 +#define DSE_MOD_HIDDEN 0x08 +#define DSE_MOD_ENGINE 0x10 +#define DSE_MOD_AUTOMATIC 0x20 +#define DSE_MOD_DISABLED 0x40 +#define DSE_MOD_MANUAL 0x80 +#define DSE_MOD_SYSTEM 0x100 /* This is entries with PRELOAD_MODULE */ +#define DSE_MOD_WAITING 0x200 /* state change is queued */ + +#define DSE_MAX_MODULE_NAME_CHARS 32 + +typedef struct DSEModuleState +{ + nuint32 connID; + nuint32 flags; + long handle; + unicode name[DSE_MAX_MODULE_NAME_CHARS]; +} DSEModuleState; + +/*--------------------------------------------------------------------------- + * data structures used for contents of the data member of the + * DSEValueInfo structure. + */ + +typedef struct +{ + nuint32 nameSpaceType; + nuint32 volumeEntryID; + nuint32 length; + unicode data[1]; +} DSEPath; + +typedef struct +{ + nuint32 serverID; + nuint32 type; + nuint32 number; + nuint32 replicaRootID; /* partition root ID on server where replica resides */ + char referral[1]; /* transport address data in wire format */ +} DSEReplicaPointer; + +typedef struct +{ + nuint32 serverID; + nuint32 remoteID; +} DSEBackLink; + +typedef struct +{ + nuint32 entryID; + nuint32 attrID; + nuint32 privileges; +} DSEACL; + +typedef struct +{ + nuint32 entryID; + nuint32 level; + nuint32 interval; +} DSETypedName; + +typedef struct +{ + nuint32 entryID; + nuint32 amount; +} DSEHold; + +typedef struct +{ + nuint32 type; /* SMF70, SMF71, SMTP, X400, SNADS, PROFS */ + nuint32 length; /* length of address unicode string */ + unicode address[1/*or more*/]; /* null terminated unicode string */ +} DSEEmailAddress; + +typedef struct +{ + nuint32 numOfBits; + nuint32 numOfBytes; + char data; +} DSEBitString; + +typedef struct +{ + nuint32 length; /* length of telephone number unicode string */ + unicode telephoneNumber[1/*or more*/]; /* null terminated unicode string */ + /* The following field is dword aligned after unicode NULL: + DSEBitString parameters; + */ +} DSEFaxNumber; + +typedef struct +{ + nuint32 numOfStrings; /* number of uint32 length proceeded, null terminated, + dword aligned unicode strings to follow */ + nuint32 length1; /* length of first unicode string */ + unicode string1[1]; /* 1st unicode string */ +} DSECIList; + +typedef struct +{ + nuint32 numOfStrings; /* number of null terminated, dword aligned byte + strings to follow */ + nuint8 string1[1]; /* 1st octet string */ +} DSEOctetList; + +typedef union +{ + /* used for SYN_CE_STRING, SYN_CI_STRING, SYN_PR_STRING, + * SYN_NU_STRING, and SYN_TEL_NUMBER + */ + unicode string[1/*or more*/]; /* null terminated unicode string */ + nuint32 num; /* used for SYN_INTEGER, SYN_COUNTER, SYN_TIME, SYN_INTERVAL */ + nuint32 entryID; /* used for SYN_DIST_NAME */ + nuint32 classID; /* used for SYN_CLASS_NAME */ + nuint8 boolean; /* used for SYN_BOOLEAN */ + DSENetAddress netAddress; /* used for SYN_NET_ADDRESS */ + DSEPath path; /* used for SYN_PATH */ + DSEReplicaPointer replica; /* used for SYN_REPLICA_POINTER */ + DSEACL acl; /* used for SYN_OBJECT_ACL */ + DSETimeStamp timeStamp; /* used for SYN_TIMESTAMP */ + DSEBackLink backLink; /* used for SYN_BACK_LINK */ + DSETypedName typedName; /* used for SYN_TYPED_NAME */ + DSEHold hold; /* used for SYN_HOLD */ + DSEEmailAddress emailAddress; /* used for SYN_EMAIL_ADDRESS */ + DSEFaxNumber faxNumber; /* used for SYN_FAX_NUMBER */ + DSECIList ciList; /* used for SYN_CI_LIST, SYN_PO_ADDRESS */ + nuint8 octetString[1]; /* used for SYN_OCTET_STRING, SYN_STREAM */ + DSEOctetList octetList; /* used for SYN_OCTET_LIST */ +} DSEValData; + + +#define MAX_EVENT_PARMS 32 +typedef struct +{ + nuint32 dstime; /* time event occurred */ + nuint32 milliseconds; + nuint32 curThread; /* thread running when event occurs */ + nuint32 connID; /* connection number that caused this event */ + nuint32 perpetratorID; /* "user" id that owns the connection */ + char *fmtStr; /* sprintf type format string describing parms */ + char *parms[MAX_EVENT_PARMS];/* pseudo stack of parameters for va_list */ + char data[1]; /* variable size, holds fmtStr & non-integer parm data */ +} DSEDebugInfo; + +#define DSE_DATATYPE_CHAR 1 +#define DSE_DATATYPE_UNICODE 2 +#define DSE_DATATYPE_STRUCT_1 3 + +typedef struct +{ + nuint32 attrID; + nuint32 flags; + nint len; + void *data; +} DSES1data; + +typedef struct +{ + nuint32 count; + DSES1data value[1]; +} DSEStruct1; + +typedef struct +{ + nuint32 dstime; /* time event occurred */ + nuint32 milliseconds; + nuint32 curProcess; /* process running when event occurred */ + nuint32 connID; /* connection number that caused this event */ + nuint32 verb; /* verb */ + nuint32 perpetratorID; /* "user" id that owns the connection */ + nuint32 d1; /* remaining fields vary depending on event number */ + nuint32 d2; + nuint32 d3; + nuint32 d4; + nuint32 dataType; + const void *dataPtr; + char data[1]; /* variable size, holds either name or uname data */ +} DSEEventData; + +typedef struct /* use for WAN Traffic Manager Events */ +{ + nuint32 lastTime; + nint32 version; + nint checkEachNewOpen; + nint checkEachAlreadyOpen; + nuint32 expirationInterval; + nuint32 nextTime; + nuint32 result; + nint send; + nuint32 trafficTypeSubClass; +} DSEWtmInfo; + +typedef struct /* used for WAN Traffic Manager Open Events */ +{ + nint32 version; + nuint32 expirationInterval; + nint connIsAlreadyOpen; + nuint32 lastAccessTime; + nuint32 trafficType; + char *trafficTypeName; + nint send; + nint dstAdrType; + nuint dstAdrSize; + void *dstAdrData; + char *localReferral; + nuint32 lastSyncTime; + nuint32 trafficTypeSubClass; +} DSEWtmOpenInfo; + + /* + * End data structures used for contents of the data member of the + * DSEValueInfo structure. + *-------------------------------------------------------------------------*/ + +/* define trace vector category numbers */ +#define TV_ON 0x00000001L /* if set, tracing is enabled */ +#define TV_AUDIT 0x00000002L /* auditing */ +#define TV_INIT 0x00000004L /* initialization */ +#define TV_FRAGGER 0x00000008L /* fragger */ +#define TV_MISC 0x00000010L /* miscellaneous */ +#define TV_RESNAME 0x00000020L /* resolve name */ +#define TV_STREAMS 0x00000040L /* streams */ +#define TV_LIMBER 0x00000080L /* limber */ +#define TV_JANITOR 0x00000100L /* janitor */ +#define TV_BACKLINK 0x00000200L /* backlink */ +#define TV_MERGE 0x00000400L /* merge */ +#define TV_SKULKER 0x00000800L /* skulker */ +#define TV_LOCKING 0x00001000L /* locking */ +#define TV_SAP 0x00002000L /* SAP */ +#define TV_SCHEMA 0x00004000L /* schema */ +#define TV_COLL 0x00008000L /* collisions */ +#define TV_INSPECTOR 0x00010000L /* inspector */ +#define TV_ERRORS 0x00020000L /* errors */ +#define TV_PART 0x00040000L /* partition operations */ +#define TV_EMU 0x00080000L /* bindery emulator */ +#define TV_VCLIENT 0x00100000L /* virtual client */ +#define TV_AUTHEN 0x00200000L /* authentication */ +#define TV_RECMAN 0x00400000L /* record manager */ +#define TV_TIMEVECTOR 0x00800000L /* time vectors */ +#define TV_REPAIR 0x01000000L /* ds_repair */ +#define TV_DSAGENT 0x02000000L /* low level DSA tracing */ +#define TV_ERRET 0x04000000L /* ERRET and ERRTRACE */ +#define TV_SYNC_IN 0x08000000L /* incoming sync traffic */ +#define TV_THREADS 0x10000000L /* DS thread scheduling */ +#define TV_MIN 0x20000000L /* default dstrace messages */ +#define TV_CHECK_BIT 0x80000000L /* all TV_ values must have this bit */ +#define TV_ALL 0xBFFFFFFEL /* All vectors--default for DSTrace */ + +/*===========================================================================*/ + +/* Event handler flags - for NWDSERegisterForEventWithResult. + */ +#define HF_ALL 0x0000 /* Invoke handler regardless of event status */ +#define HF_SUCCESS_ONLY 0x0004 /* Invoke handler if event is successful */ +#define HF_FAIL_ONLY 0x0008 /* Invoke handler if event fails */ + + +#endif + diff --git a/c_clientlogin/xplatincl/nwdsfilt.h b/c_clientlogin/xplatincl/nwdsfilt.h new file mode 100644 index 00000000..8eea78ef --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsfilt.h @@ -0,0 +1,151 @@ +/****************************************************************************** + + %name: nwdsfilt.h % + %version: 3 % + %date_modified: Wed Dec 18 12:07:33 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSFILT_H ) +#define NWDSFILT_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#if ! defined ( NWDSDC_H ) /* Need to defined NWDSContextHandle */ +#include "nwdsdc.h" +#endif + +#if ! defined ( NWDSBUFT_H ) /* Needed to defined pBuf_T */ +#include "nwdsbuft.h" +#endif + +#include "npackon.h" + +typedef struct _filter_node +{ + struct _filter_node N_FAR *parent; + struct _filter_node N_FAR *left; + struct _filter_node N_FAR *right; + nptr value; + nuint32 syntax; + nuint16 token; +} Filter_Node_T, N_FAR *pFilter_Node_T; + +#define FTOK_END 0 +#define FTOK_OR 1 +#define FTOK_AND 2 +#define FTOK_NOT 3 +#define FTOK_LPAREN 4 +#define FTOK_RPAREN 5 +#define FTOK_AVAL 6 +#define FTOK_EQ 7 +#define FTOK_GE 8 +#define FTOK_LE 9 +#define FTOK_APPROX 10 +#define FTOK_ANAME 14 +#define FTOK_PRESENT 15 +#define FTOK_RDN 16 +#define FTOK_BASECLS 17 +#define FTOK_MODTIME 18 +#define FTOK_VALTIME 19 + +#define FBIT_END (1L << FTOK_END) +#define FBIT_OR (1L << FTOK_OR) +#define FBIT_AND (1L << FTOK_AND) +#define FBIT_NOT (1L << FTOK_NOT) +#define FBIT_LPAREN (1L << FTOK_LPAREN) +#define FBIT_RPAREN (1L << FTOK_RPAREN) +#define FBIT_AVAL (1L << FTOK_AVAL) +#define FBIT_EQ (1L << FTOK_EQ) +#define FBIT_GE (1L << FTOK_GE) +#define FBIT_LE (1L << FTOK_LE) +#define FBIT_APPROX (1L << FTOK_APPROX) +#define FBIT_ANAME (1L << FTOK_ANAME) +#define FBIT_PRESENT (1L << FTOK_PRESENT) +#define FBIT_RDN (1L << FTOK_RDN) +#define FBIT_BASECLS (1L << FTOK_BASECLS) +#define FBIT_MODTIME (1L << FTOK_MODTIME) +#define FBIT_VALTIME (1L << FTOK_VALTIME) + +#define FBIT_OPERAND (FBIT_LPAREN | FBIT_NOT | FBIT_PRESENT | FBIT_RDN \ + | FBIT_BASECLS | FBIT_ANAME | FBIT_MODTIME | FBIT_VALTIME) +#define FBIT_RELOP (FBIT_EQ | FBIT_GE | FBIT_LE | FBIT_APPROX) +#define FBIT_BOOLOP (FBIT_AND | FBIT_OR) + +typedef struct +{ + pFilter_Node_T fn; + nuint16 level; + nuint32 expect; +} Filter_Cursor_T, N_FAR *pFilter_Cursor_T, N_FAR * N_FAR *ppFilter_Cursor_T; + +#define FTAG_ITEM 0 +#define FTAG_OR 1 +#define FTAG_AND 2 +#define FTAG_NOT 3 + + +#ifdef __cplusplus + extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAddFilterToken +( + pFilter_Cursor_T cur, + nuint16 tok, + nptr val, + nuint32 syntax +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAllocFilter +( + ppFilter_Cursor_T cur +); + +N_EXTERN_LIBRARY (void) +NWDSFreeFilter +( + pFilter_Cursor_T cur, + void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val) +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPutFilter +( + NWDSContextHandle context, + pBuf_T buf, + pFilter_Cursor_T cur, + void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val) +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSDelFilterToken +( + pFilter_Cursor_T cur, + void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val) +); + +#ifdef __cplusplus + } +#endif + +#include "npackoff.h" +#endif /* NWDSFILT_H */ diff --git a/c_clientlogin/xplatincl/nwdsmisc.h b/c_clientlogin/xplatincl/nwdsmisc.h new file mode 100644 index 00000000..3a932c1a --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsmisc.h @@ -0,0 +1,284 @@ +/****************************************************************************** + + %name: nwdsmisc.h % + %version: 9 % + %date_modified: Tue Mar 29 18:40:36 2005 % + $Copyright: + + Copyright (c) 1989-1998 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSMISC_H ) +#define NWDSMISC_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWDSBUFT_H ) +#include "nwdsbuft.h" +#endif + +#if ! defined ( NUNICODE_H ) +#include "nunicode.h" +#endif + +#include "npackon.h" + +#define DS_SYNTAX_NAMES 0 +#define DS_SYNTAX_DEFS 1 + +#define DS_STRING 0x0001 /* string, can be used in names */ +#define DS_SINGLE_VALUED 0x0002 +#define DS_SUPPORTS_ORDER 0x0004 +#define DS_SUPPORTS_EQUAL 0x0008 +#define DS_IGNORE_CASE 0x0010 /* Ignore case */ +#define DS_IGNORE_SPACE 0x0020 /* Ignore white space */ +#define DS_IGNORE_DASH 0x0040 /* Ignore dashes */ +#define DS_ONLY_DIGITS 0x0080 +#define DS_ONLY_PRINTABLE 0x0100 +#define DS_SIZEABLE 0x0200 +#define DS_BITWISE_EQUAL 0x0400 + +typedef struct +{ + nuint32 statsVersion; + nuint32 noSuchEntry; + nuint32 localEntry; + nuint32 typeReferral; + nuint32 aliasReferral; + nuint32 requestCount; + nuint32 requestDataSize; + nuint32 replyDataSize; + nuint32 resetTime; + nuint32 transportReferral; + nuint32 upReferral; + nuint32 downReferral; +} NDSStatsInfo_T, N_FAR *pNDSStatsInfo_T; + + +/* the following two structures are used by NWDSGetNDSInfo() */ +typedef struct +{ + nuint32 major; + nuint32 minor; + nuint32 revision; +} NDSOSVersion_T, N_FAR *pNDSOSVersion_T; + +typedef struct +{ + nuint32 upTime; /* in seconds */ + nuint32 agentLoadTime; + nuint32 agentOpenTime; +} NDSServerTime_T, N_FAR *pNDSServerTime_T; + + +#ifdef __cplusplus + extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSCloseIteration +( + NWDSContextHandle context, + nint32 iterationHandle, + nuint32 operation +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetSyntaxID +( + NWDSContextHandle context, + pnstr8 attrName, + pnuint32 syntaxID +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReadSyntaxes +( + NWDSContextHandle context, + nuint32 infoType, + nbool8 allSyntaxes, + pBuf_T syntaxNames, + pnint32 iterationHandle, + pBuf_T syntaxDefs +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReadSyntaxDef +( + NWDSContextHandle context, + nuint32 syntaxID, + pSyntax_Info_T syntaxDef +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReplaceAttrNameAbbrev +( + NWDSContextHandle context, + pnstr8 inStr, + pnstr8 outStr +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetObjectHostServerAddress +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 serverName, + pBuf_T netAddresses +); + +N_EXTERN_LIBRARY (void) +NWGetNWNetVersion +( + nuint8 N_FAR *majorVersion, + nuint8 N_FAR *minorVersion, + nuint8 N_FAR *revisionLevel, + nuint8 N_FAR *betaReleaseLevel +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWIsDSServer +( + NWCONN_HANDLE conn, + pnstr8 treeName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetBinderyContext +( + NWDSContextHandle context, + NWCONN_HANDLE connHandle, + pnuint8 BinderyEmulationContext +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRepairTimeStamps +( + NWDSContextHandle context, + pnstr8 partitionRoot +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWGetFileServerUTCTime +( + NWCONN_HANDLE conn, + pnuint32 time +); + + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetDSVerInfo +( + NWCONN_HANDLE conn, + pnuint32 dsVersion, + pnuint32 rootMostEntryDepth, + pnstr8 sapName, + pnuint32 flags, + punicode treeName +); + +N_EXTERN_LIBRARY( NWDSCCODE ) +NWDSGetNDSInfo +( + NWDSContextHandle context, + pBuf_T resultBuffer, + nflag32 requestedField, + nptr data +); + +N_EXTERN_LIBRARY( NWDSCCODE ) +NWDSReadNDSInfo +( + NWCONN_HANDLE connHandle, + nflag32 requestedFields, + pBuf_T resultBuffer +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSSyncReplicaToServer +( + NWDSContextHandle context, + pnstr8 serverName, + pnstr8 partitionRootName, + pnstr8 destServerName, + nuint32 actionFlags, + nuint32 delaySeconds +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReloadDS +( + NWDSContextHandle context, + pnstr8 serverName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWNetInit +( + nptr reserved1, + nptr reserved2 +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWNetTerm +( + nptr reserved +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetNDSStatistics +( + NWDSContextHandle context, + pnstr8 serverName, + nuint statsInfoLen, + pNDSStatsInfo_T statsInfo +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSResetNDSStatistics +( + NWDSContextHandle context, + pnstr8 serverName +); + + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSGetNDSIntervals +( + NWCONN_HANDLE connHandle, /* IN */ + nflag32 reqIntervalFlags, /* IN */ + pnflag32 repIntervalFlags, /* OUT */ + pnuint32 intervals /* OUT */ +); + + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSSetNDSIntervals +( + NWCONN_HANDLE connHandle, /* IN */ + nflag32 intervalFlags, /* IN */ + nuint numIntervals, /* IN */ + pnuint32 intervals /* IN */ +); + + +#ifdef __cplusplus + } +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwdsname.h b/c_clientlogin/xplatincl/nwdsname.h new file mode 100644 index 00000000..8f3702ad --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsname.h @@ -0,0 +1,88 @@ +/****************************************************************************** + + %name: nwdsname.h % + %version: 3 % + %date_modified: Wed Dec 18 12:07:42 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSNAME_H ) +#define NWDSNAME_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if! defined ( NWDSDC_H ) +#include "nwdsdc.h" +#endif + + +#ifdef __cplusplus + extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAbbreviateName +( + NWDSContextHandle context, + pnstr8 inName, + pnstr8 abbreviatedName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSCanonicalizeName +( + NWDSContextHandle context, + pnstr8 objectName, + pnstr8 canonName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRemoveAllTypes +( + NWDSContextHandle context, + pnstr8 name, + pnstr8 typelessName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSResolveName +( + NWDSContextHandle context, + pnstr8 objectName, + NWCONN_HANDLE N_FAR *conn, + pnuint32 objectID +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSCIStringsMatch +( + NWDSContextHandle context, + pnstr8 string1, + pnstr8 string2, + pnint matches +); + +#ifdef __cplusplus + } +#endif +#endif /* NWDSNAME_H */ diff --git a/c_clientlogin/xplatincl/nwdsnmtp.h b/c_clientlogin/xplatincl/nwdsnmtp.h new file mode 100644 index 00000000..d866e790 --- /dev/null +++ b/c_clientlogin/xplatincl/nwdsnmtp.h @@ -0,0 +1,497 @@ +/****************************************************************************** + + %name: nwdsnmtp.h % + %version: 7 % + %date_modified: Tue Mar 23 15:55:20 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSNMTP_H ) +#define NWDSNMTP_H + +#define C_AFP_SERVER "AFP Server" +#define C_ALIAS "Alias" +#define C_AUDIT_FILE_OBJECT "Audit:File Object" +#define C_BINDERY_OBJECT "Bindery Object" +#define C_BINDERY_QUEUE "Bindery Queue" +#define C_COMMEXEC "CommExec" +#define C_COMPUTER "Computer" +#define C_COUNTRY "Country" +#define C_DEVICE "Device" +#define C_DIRECTORY_MAP "Directory Map" +#define C_ENTRUST_CRLDISTRIBUTIONPOINT "Entrust:CRLDistributionPoint" +#define C_EXTERNAL_ENTITY "External Entity" +#define C_GROUP "Group" +#define C_LDAP_GROUP "LDAP Group" +#define C_LDAP_SERVER "LDAP Server" +#define C_LIST "List" +#define C_LOCALITY "Locality" +#define C_MASV_SECURITY_POLICY "MASV:Security Policy" +#define C_MESSAGE_ROUTING_GROUP "Message Routing Group" +#define C_MESSAGING_ROUTING_GROUP "Messaging Routing Group" +#define C_MESSAGING_SERVER "Messaging Server" +#define C_NCP_SERVER "NCP Server" +#define C_NDPS_BROKER "NDPS Broker" +#define C_NDPS_MANAGER "NDPS Manager" +#define C_NDPS_PRINTER "NDPS Printer" +#define C_NDSCAT_CATALOG "NDSCat:Catalog" +#define C_NDSCAT_MASTER_CATALOG "NDSCat:Master Catalog" +#define C_NDSCAT_SLAVE_CATALOG "NDSCat:Slave Catalog" +#define C_NDSPKI_CERTIFICATE_AUTHORITY "NDSPKI:Certificate Authority" +#define C_NDSPKI_KEY_MATERIAL "NDSPKI:Key Material" +#define C_NETSVC "NetSvc" +#define C_NLS_LICENSE_CERTIFICATE "NLS:License Certificate" +#define C_NLS_LICENSE_SERVER "NLS:License Server" +#define C_NLS_PRODUCT_CONTAINER "NLS:Product Container" +#define C_NSCP_GROUPOFUNIQUENAMES5 "NSCP:groupOfUniqueNames5" +#define C_NSCP_MAILGROUP5 "NSCP:mailGroup5" +#define C_NSCP_NETSCAPEMAILSERVER5 "NSCP:NetscapeMailServer5" +#define C_NSCP_NETSCAPESERVER5 "NSCP:NetscapeServer5" +#define C_NSCP_NGINFO "NSCP:Nginfo" +#define C_NSCP_NGINFO2 "NSCP:Nginfo2" +#define C_ORGANIZATION "Organization" +#define C_ORGANIZATIONAL_PERSON "Organizational Person" +#define C_ORGANIZATIONAL_ROLE "Organizational Role" +#define C_ORGANIZATIONAL_UNIT "Organizational Unit" +#define C_PARTITION "Partition" +#define C_PERSON "Person" +#define C_PRINT_SERVER "Print Server" +#define C_PRINTER "Printer" +#define C_PROFILE "Profile" +#define C_QUEUE "Queue" +#define C_RESOURCE "Resource" +#define C_SAS_SECURITY "SAS:Security" +#define C_SAS_SERVICE "SAS:Sevice" +#define C_SERVER "Server" +#define C_SLP_SCOPE_UNIT "SLP Scope Unit" +#define C_SLP_DIRECTORY_AGENT "SLP Directory Agent" +#define C_SLP_SERVICE "SLP Service" +#define C_SMDR "SLP SMDR" +#define C_TEMPLATE "Template" +#define C_TOP "Top" +#define C_TREE_ROOT "Tree Root" +#define C_UNKNOWN "Unknown" +#define C_USER "User" +#define C_VOLUME "Volume" +#define C_WANMAN_LAN_Area "WANMAN:LAN Area" + +#define A_ACCOUNT_BALANCE "Account Balance" +#define A_ACL "ACL" +#define A_ALIASED_OBJECT_NAME "Aliased Object Name" +#define A_ALLOW_UNLIMITED_CREDIT "Allow Unlimited Credit" +#define A_AUDIT_A_ENCRYPTION_KEY "Audit:A Encryption Key" +#define A_AUDIT_B_ENCRYPTION_KEY "Audit:B Encryption Key" +#define A_AUDIT_CONTENTS "Audit:Contents" +#define A_AUDIT_CURRENT_ENCRYPTION_KEY "Audit:Current Encryption Key" +#define A_AUDIT_FILE_LINK "Audit:File Link" +#define A_AUDIT_LINK_LIST "Audit:Link List" +#define A_AUDIT_PATH "Audit:Path" +#define A_AUDIT_POLICY "Audit:Policy" +#define A_AUDIT_TYPE "Audit:Type" +#define A_AUTHORITY_REVOCATION "Authority Revocation" +#define A_BACK_LINK "Back Link" +#define A_BINDERY_OBJECT_RESTRICTION "Bindery Object Restriction" +#define A_BINDERY_PROPERTY "Bindery Property" +#define A_BINDERY_RESTRICTION_LEVEL "Bindery Restriction Level" +#define A_BINDERY_TYPE "Bindery Type" +#define A_CA_PRIVATE_KEY "CA Private Key" +#define A_CA_PUBLIC_KEY "CA Public Key" +#define A_CARTRIDGE "Cartridge" +#define A_CERTIFICATE_REVOCATION "Certificate Revocation" +#define A_CERTIFICATE_VALIDITY_INTERVAL "Certificate Validity Interval" +#define A_CLIENT_INSTALL_CANDIDATE "Client Install Candidate" +#define A_COLOR_SUPPORTED "Color Supported" +#define A_COMMON_NAME "CN" +#define A_CONVERGENCE "Convergence" +#define A_COUNTRY_NAME "C" +#define A_CROSS_CERTIFICATE_PAIR "Cross Certificate Pair" +#define A_DATABASE_DIR_PATH "Database Dir Path" +#define A_DATABASE_VOLUME_NAME "Database Volume Name" +#define A_DATAPOOL_LOCATION "Datapool Location" +#define A_DATAPOOL_LOCATIONS "Datapool Locations" +#define A_DEFAULT_QUEUE "Default Queue" +#define A_DELIVERY_METHODS_INSTALLED "Delivery Methods Installed" +#define A_DESCRIPTION "Description" +#define A_DETECT_INTRUDER "Detect Intruder" +#define A_DEVICE "Device" +#define A_DISTINGUISHED_NAME "dn" +#define A_DS_REVISION "DS Revision" +#define A_EMAIL_ADDRESS "EMail Address" +#define A_EMPLOYEE_ID "Employee ID" +#define A_ENTRUST_ATTRIBUTECERTIFICATE "Entrust:AttributeCertificate" +#define A_ENTRUST_USER "Entrust:User" +#define A_EQUIVALENT_TO_ME "Equivalent To Me" +#define A_EXTERNAL_NAME "External Name" +#define A_EXTERNAL_SYNCHRONIZER "External Synchronizer" +#define A_FACSIMILE_TELEPHONE_NUMBER "Facsimile Telephone Number" +#define A_FULL_NAME "Full Name" +#define A_GENERATIONAL_QUALIFIER "Generational Qualifier" +#define A_GID "GID" +#define A_GIVEN_NAME "Given Name" +#define A_GROUP_MEMBERSHIP "Group Membership" +#define A_GUID "GUID" +#define A_GW_API_GATEWAY_DIRECTORY_PATH "GW API Gateway Directory Path" +#define A_GW_API_GATEWAY_DIRECTORY_VOL "GW API Gateway Directory Volume" +#define A_HIGH_SYNC_INTERVAL "High Convergence Sync Interval" +#define A_HIGHER_PRIVILEGES "Higher Privileges" +#define A_HOME_DIRECTORY "Home Directory" +#define A_HOME_DIRECTORY_RIGHTS "Home Directory Rights" +#define A_HOST_DEVICE "Host Device" +#define A_HOST_RESOURCE_NAME "Host Resource Name" +#define A_HOST_SERVER "Host Server" +#define A_INHERITED_ACL "Inherited ACL" +#define A_INITIALS "Initials" +#define A_INTERNET_EMAIL_ADDRESS "Internet EMail Address" +#define A_INTRUDER_ATTEMPT_RESET_INTRVL "Intruder Attempt Reset Interval" +#define A_INTRUDER_LOCKOUT_RESET_INTRVL "Intruder Lockout Reset Interval" +#define A_IPP_URI "IPP URI" +#define A_IPP_URI_SECURITY_SCHEME "IPP URI Security Scheme" +#define A_LOCALITY_NAME "L" +#define A_LANGUAGE "Language" +#define A_LAST_LOGIN_TIME "Last Login Time" +#define A_LAST_REFERENCED_TIME "Last Referenced Time" +#define A_LDAP_ACL_V11 "LDAP ACL v11" +#define A_LDAP_ALLOW_CLEAR_TEXT_PWD "LDAP Allow Clear Text Password" +#define A_LDAP_ANONYMOUS_IDENTITY "LDAP Anonymous Identity" +#define A_LDAP_ATTRIBUTE_MAP_V11 "LDAP Attribute Map v11" +#define A_LDAP_BACKUP_LOG_FILENAME "LDAP Backup Log Filename" +#define A_LDAP_CLASS_MAP "LDAP Class Map" +#define A_LDAP_CLASS_MAP_V11 "LDAP Class Map v11" +#define A_LDAP_ENABLE_SSL "LDAP Enable SSL" +#define A_LDAP_ENABLE_TCP "LDAP Enable TCP" +#define A_LDAP_ENABLE_UDP "LDAP Enable UDP" +#define A_LDAP_GROUP "LDAP Group" +#define A_LDAP_HOST_SERVER "LDAP Host Server" +#define A_LDAP_LOG_FILENAME "LDAP Log Filename" +#define A_LDAP_LOG_LEVEL "LDAP Log Level" +#define A_LDAP_LOG_SIZE_LIMIT "LDAP Log Size Limit" +#define A_LDAP_REFERRAL "LDAP Referral" +#define A_LDAP_SCREEN_LEVEL "LDAP Screen Level" +#define A_LDAP_SEARCH_SIZE_LIMIT "LDAP Search Size Limit" +#define A_LDAP_SEARCH_TIME_LIMIT "LDAP Search Time Limit" +#define A_LDAP_SERVER "LDAP Server" +#define A_LDAP_SERVER_BIND_LIMIT "LDAP Server Bind Limit" +#define A_LDAP_SERVER_IDLE_TIMEOUT "LDAP Server Idle Timeout" +#define A_LDAP_SERVER_LIST "LDAP Server List" +#define A_LDAP_SSL_PORT "LDAP SSL Port" +#define A_LDAP_SUFFIX "LDAP Suffix" +#define A_LDAP_TCP_PORT "LDAP TCP Port" +#define A_LDAP_UDP_PORT "LDAP UDP Port" +#define A_LDAPUSERCERTIFICATE "LDAPUserCertificate" +#define A_LDAP_ARL "LDAP:ARL" +#define A_LDAP_BINDCATALOG "LDAP:bindCatalog" +#define A_LDAP_BINDCATALOGUSAGE "LDAP:bindCatalogUsage" +#define A_LDAP_CACERTIFICATE "LDAP:caCertificate" +#define A_LDAP_CRL "LDAP:CRL" +#define A_LDAP_CROSSCERTIFICATEPAIR "LDAP:crossCertificatePair" +#define A_LDAP_KEYMATERIALNAME "LDAP:keyMaterialName" +#define A_LDAP_SEARCHCATALOG "LDAP:searchCatalog" +#define A_LDAP_SEARCHCATALOGUSAGE "LDAP:searchCatalogUsage" +#define A_LOCKED_BY_INTRUDER "Locked By Intruder" +#define A_LOCKOUT_AFTER_DETECTION "Lockout After Detection" +#define A_LOGIN_ALLOWED_TIME_MAP "Login Allowed Time Map" +#define A_LOGIN_DISABLED "Login Disabled" +#define A_LOGIN_EXPIRATION_TIME "Login Expiration Time" +#define A_LOGIN_GRACE_LIMIT "Login Grace Limit" +#define A_LOGIN_GRACE_REMAINING "Login Grace Remaining" +#define A_LOGIN_INTRUDER_ADDRESS "Login Intruder Address" +#define A_LOGIN_INTRUDER_ATTEMPTS "Login Intruder Attempts" +#define A_LOGIN_INTRUDER_LIMIT "Login Intruder Limit" +#define A_LOGIN_INTRUDER_RESET_TIME "Login Intruder Reset Time" +#define A_LOGIN_MAXIMUM_SIMULTANEOUS "Login Maximum Simultaneous" +#define A_LOGIN_SCRIPT "Login Script" +#define A_LOGIN_TIME "Login Time" +#define A_LOW_RESET_TIME "Low Convergence Reset Time" +#define A_LOW_SYNC_INTERVAL "Low Convergence Sync Interval" +#define A_MAILBOX_ID "Mailbox ID" +#define A_MAILBOX_LOCATION "Mailbox Location" +#define A_MASV_AUTHORIZED_RANGE "MASV:Authorized Range" +#define A_MASV_DEFAULT_RANGE "MASV:Default Range" +#define A_MASV_DOMAIN_POLICY "MASV:Domain Policy" +#define A_MASV_LABEL "MASV:Label" +#define A_MASV_PROPOSED_LABEL "MASV:Proposed Label" +#define A_MAXIMUM_SPEED "Maximum Speed" +#define A_MAXIMUM_SPEED_UNITS "Maximum Speed Units" +#define A_MEMBER "Member" +#define A_MEMBERS_OF_TEMPLATE "Members Of Template" +#define A_MEMORY "Memory" +#define A_MESSAGE_ROUTING_GROUP "Message Routing Group" +#define A_MESSAGE_SERVER "Message Server" +#define A_MESSAGING_DATABASE_LOCATION "Messaging Database Location" +#define A_MESSAGING_ROUTING_GROUP "Messaging Routing Group" +#define A_MESSAGING_SERVER "Messaging Server" +#define A_MESSAGING_SERVER_TYPE "Messaging Server Type" +#define A_MHS_SEND_DIRECTORY_PATH "MHS Send Directory Path" +#define A_MHS_SEND_DIRECTORY_VOLUME "MHS Send Directory Volume" +#define A_MINIMUM_ACCOUNT_BALANCE "Minimum Account Balance" +#define A_NDPS_ACCOUNTANT_ROLE "NDPS Accountant Role" +#define A_NDPS_CONTROL_FLAGS "NDPS Control Flags" +#define A_NDPS_DATABASE_SAVED_TIMESTAMP "NDPS Database Saved Timestamp" +#define A_NDPS_DATABASE_SAVED_DATA_IMG "NDPS Database Saved Data Image" +#define A_NDPS_DATABASE_SAVED_INDEX_IMG "NDPS Database Saved Index Image" +#define A_NDPS_DEFAULT_PRINTER "NDPS Default Printer" +#define A_NDPS_DEFAULT_PUBLIC_PRINTER "NDPS Default Public Printer" +#define A_NDPS_JOB_CONFIGURATION "NDPS Job Configuration" +#define A_NDPS_MANAGER_STATUS "NDPS Manager Status" +#define A_NDPS_OPERATOR_ROLE "NDPS Operator Role" +#define A_NDPS_PRINTER_INSTALL_LIST "NDPS Printer Install List" +#define A_NDPS_PRINTER_INST_TIMESTAMP "NDPS Printer Install Timestamp" +#define A_NDPS_PRINTER_QUEUE_LIST "NDPS Printer Queue List" +#define A_NDPS_PRINTER_SIBLINGS "NDPS Printer Siblings" +#define A_NDPS_PUBLIC_PRINTER_INST_LIST "NDPS Public Printer Install List" +#define A_NDPS_REPLACE_ALL_CLIENT_PRINT "NDPS Replace All Client Printers" +#define A_NDPS_SMTP_SERVER "NDPS SMTP Server" +#define A_NDPS_USER_ROLE "NDPS User Role" +#define A_NDSCAT_ACTUAL_ALL_ATTRIBUTES "NDSCat:Actual All Attributes" +#define A_NDSCAT_ACTUAL_ATTRIBUTE_COUNT "NDSCat:Actual Attribute Count" +#define A_NDSCAT_ACTUAL_ATTRIBUTES "NDSCat:Actual Attributes" +#define A_NDSCAT_ACTUAL_BASE_OBJECT "NDSCat:Actual Base Object" +#define A_NDSCAT_ACTUAL_CATALOG_SIZE "NDSCat:Actual Catalog Size" +#define A_NDSCAT_ACTUAL_END_TIME "NDSCat:Actual End Time" +#define A_NDSCAT_ACTUAL_FILTER "NDSCat:Actual Filter" +#define A_NDSCAT_ACTUAL_OBJECT_COUNT "NDSCat:Actual Object Count" +#define A_NDSCAT_ACTUAL_RETURN_CODE "NDSCat:Actual Return Code" +#define A_NDSCAT_ACTUAL_SCOPE "NDSCat:Actual Scope" +#define A_NDSCAT_ACTUAL_SEARCH_ALIASES "NDSCat:Actual Search Aliases" +#define A_NDSCAT_ACTUAL_START_TIME "NDSCat:Actual Start Time" +#define A_NDSCAT_ACTUAL_VALUE_COUNT "NDSCat:Actual Value Count" +#define A_NDSCAT_ALL_ATTRIBUTES "NDSCat:All Attributes" +#define A_NDSCAT_ATTRDEFTBL "NDSCat:AttrDefTbl" +#define A_NDSCAT_ATTRIBUTES "NDSCat:Attributes" +#define A_NDSCAT_AUTO_DREDGE "NDSCat:Auto Dredge" +#define A_NDSCAT_BASE_OBJECT "NDSCat:Base Object" +#define A_NDSCAT_CATALOGDB "NDSCat:CatalogDB" +#define A_NDSCAT_CATALOG_LIST "NDSCat:Catalog List" +#define A_NDSCAT_DREDGE_INTERVAL "NDSCat:Dredge Interval" +#define A_NDSCAT_FILTER "NDSCat:Filter" +#define A_NDSCAT_INDEXDEFTBL "NDSCat:IndexDefTbl" +#define A_NDSCAT_INDEXES "NDSCat:Indexes" +#define A_NDSCAT_LABEL "NDSCat:Label" +#define A_NDSCAT_LOG "NDSCat:Log" +#define A_NDSCAT_MASTER_CATALOG "NDSCat:Master Catalog" +#define A_NDSCAT_MAX_LOG_SIZE "NDSCat:Max Log Size" +#define A_NDSCAT_MAX_RETRIES "NDSCat:Max Retries" +#define A_NDSCAT_MAX_THREADS "NDSCat:Max Threads" +#define A_NDSCAT_RETRY_INTERVAL "NDSCat:Retry Interval" +#define A_NDSCAT_SCOPE "NDSCat:Scope" +#define A_NDSCAT_SEARCH_ALIASES "NDSCat:Search Aliases" +#define A_NDSCAT_SLAVE_CATALOG_LIST "NDSCat:Slave Catalog List" +#define A_NDSCAT_START_TIME "NDSCat:Start Time" +#define A_NDSCAT_SYNCH_INTERVAL "NDSCat:Synch Interval" +#define A_NDSPKI_CERTIFICATE_CHAIN "NDSPKI:Certificate Chain" +#define A_NDSPKI_GIVEN_NAME "NDSPKI:Given Name" +#define A_NDSPKI_KEY_FILE "NDSPKI:Key File" +#define A_NDSPKI_Key_Material_DN "NDSPKI:Key Material DN" +#define A_NDSPKI_PARENT_CA "NDSPKI:Parent CA" +#define A_NDSPKI_PARENT_CA_DN "NDSPKI:Parent CA DN" +#define A_NDSPKI_PRIVATE_KEY "NDSPKI:Private Key" +#define A_NDSPKI_PUBLIC_KEY "NDSPKI:Public Key" +#define A_NDSPKI_PUBLIC_KEY_CERTIFICATE "NDSPKI:Public Key Certificate" +#define A_NDSPKI_SUBJECT_NAME "NDSPKI:Subject Name" +#define A_NDSPKI_TREE_CA_DN "NDSPKI:Tree CA DN" +#define A_NETWORK_ADDRESS "Network Address" +#define A_NETWORK_ADDRESS_RESTRICTION "Network Address Restriction" +#define A_NEW_OBJECTS_DS_RIGHTS "New Object's DS Rights" +#define A_NEW_OBJECTS_FS_RIGHTS "New Object's FS Rights" +#define A_NEW_OBJECTS_SELF_RIGHTS "New Object's Self Rights" +#define A_NLS_COMMON_CERTIFICATE "NLS:Common Certificate" +#define A_NLS_CURRENT_INSTALLED "NLS:Current Installed" +#define A_NLS_CURRENT_PEAK_INSTALLED "NLS:Current Peak Installed" +#define A_NLS_CURRENT_PEAK_USED "NLS:Current Peak Used" +#define A_NLS_CURRENT_USED "NLS:Current Used" +#define A_NLS_HOURLY_DATA_SIZE "NLS:Hourly Data Size" +#define A_NLS_LICENSE_DATABASE "NLS:License Database" +#define A_NLS_LICENSE_ID "NLS:License ID" +#define A_NLS_LICENSE_SERVICE_PROVIDER "NLS:License Service Provider" +#define A_NLS_LSP_REVISION "NLS:LSP Revision" +#define A_NLS_OWNER "NLS:Owner" +#define A_NLS_PEAK_INSTALLED_DATA "NLS:Peak Installed Data" +#define A_NLS_PEAK_USED_DATA "NLS:Peak Used Data" +#define A_NLS_PRODUCT "NLS:Product" +#define A_NLS_PUBLISHER "NLS:Publisher" +#define A_NLS_REVISION "NLS:Revision" +#define A_NLS_SEARCH_TYPE "NLS:Search Type" +#define A_NLS_SUMMARY_UPDATE_TIME "NLS:Summary Update Time" +#define A_NLS_SUMMARY_VERSION "NLS:Summary Version" +#define A_NLS_TRANSACTION_DATABASE "NLS:Transaction Database" +#define A_NLS_TRANSACTION_LOG_NAME "NLS:Transaction Log Name" +#define A_NLS_TRANSACTION_LOG_SIZE "NLS:Transaction Log Size" +#define A_NLS_VERSION "NLS:Version" +#define A_NNS_DOMAIN "NNS Domain" +#define A_NOTIFICATION_CONSUMERS "Notification Consumers" +#define A_NOTIFICATION_PROFILE "Notification Profile" +#define A_NOTIFICATION_SERVICE_ENABLED "Notification Service Enabled" +#define A_NOTIFICATION_SRVC_NET_ADDR "Notification Srvc Net Addr" +#define A_NOTIFICATION_SRVC_NET_ADDRESS "Notification Srvc Net Address" +#define A_NOTIFY "Notify" +#define A_NRD_REGISTRY_DATA "NRD:Registry Data" +#define A_NRD_REGISTRY_INDEX "NRD:Registry Index" +#define A_NSCP_ADMINISTRATORCONTACTINFO "NSCP:administratorContactInfo" +#define A_NSCP_ADMINURL "NSCP:adminURL" +#define A_NSCP_INSTALLATIONTIMESTAMP "NSCP:installationTimeStamp" +#define A_NSCP_MAILACCESSDOMAIN "NSCP:mailAccessDomain" +#define A_NSCP_MAILALTERNATEADDRESS "NSCP:mailAlternateAddress" +#define A_NSCP_MAILAUTOREPLYMODE "NSCP:mailAutoReplyMode" +#define A_NSCP_MAILAUTOREPLYTEXT "NSCP:mailAutoReplyText" +#define A_NSCP_MAILDELIVERYOPTION "NSCP:mailDeliveryOption" +#define A_NSCP_MAILFORWARDINGADDRESS "NSCP:mailForwardingAddress" +#define A_NSCP_MAILHOST "NSCP:mailHost" +#define A_NSCP_MAILMESSAGESTORE "NSCP:mailMessageStore" +#define A_NSCP_MAILPROGRAMDELIVERYINFO "NSCP:mailProgramDeliveryInfo" +#define A_NSCP_MAILQUOTA "NSCP:mailQuota" +#define A_NSCP_MGRPRFC822MAILMEMBER "NSCP:mgrpRFC822mailmember" +#define A_NSCP_NGCOMPONENT "NSCP:ngComponent" +#define A_NSCP_NSACLROLE "NSCP:nsaclrole" +#define A_NSCP_NSCREATOR "NSCP:nscreator" +#define A_NSCP_NSFLAGS "NSCP:nsflags" +#define A_NSCP_NSLICENSEDENDTIME "NSCP:nsLicensedEndTime" +#define A_NSCP_NSLICENSEDFOR "NSCP:nsLicensedFor" +#define A_NSCP_NSLICENSEDSTARTTIME "NSCP:nsLicensedStartTime" +#define A_NSCP_NSNEWSACL "NSCP:nsnewsACL" +#define A_NSCP_NSPRETTYNAME "NSCP:nsprettyname" +#define A_NSCP_SERVERHOSTNAME "NSCP:serverHostName" +#define A_NSCP_SERVERPRODUCTNAME "NSCP:serverProductName" +#define A_NSCP_SERVERROOT "NSCP:serverRoot" +#define A_NSCP_SERVERVERSIONNUMBER "NSCP:serverVersionNumber" +#define A_NSCP_SUBTREEACI "NSCP:subtreeACI" +#define A_OBITUARY "Obituary" +#define A_OBITUARY_NOTIFY "Obituary Notify" +#define A_ORGANIZATION_NAME "O" +#define A_OBJECT_CLASS "Object Class" +#define A_OPERATOR "Operator" +#define A_OTHER_GUID "Other GUID" +#define A_ORGANIZATIONAL_UNIT_NAME "OU" +#define A_OWNER "Owner" +#define A_PAGE_DESCRIPTION_LANGUAGE "Page Description Language" +#define A_PAGE_DESCRIPTION_LANGUAGES "Page Description Languages" +#define A_PARTITION_CONTROL "Partition Control" +#define A_PARTITION_CREATION_TIME "Partition Creation Time" +#define A_PARTITION_STATUS "Partition Status" +#define A_PASSWORD_ALLOW_CHANGE "Password Allow Change" +#define A_PASSWORD_EXPIRATION_INTERVAL "Password Expiration Interval" +#define A_PASSWORD_EXPIRATION_TIME "Password Expiration Time" +#define A_PASSWORD_MANAGEMENT "Password Management" +#define A_PASSWORD_MINIMUM_LENGTH "Password Minimum Length" +#define A_PASSWORD_REQUIRED "Password Required" +#define A_PASSWORD_UNIQUE_REQUIRED "Password Unique Required" +#define A_PASSWORDS_USED "Passwords Used" +#define A_PATH "Path" +#define A_PERMANENT_CONFIG_PARMS "Permanent Config Parms" +#define A_PHYSICAL_DELIVERY_OFFICE_NAME "Physical Delivery Office Name" +#define A_POSTAL_ADDRESS "Postal Address" +#define A_POSTAL_CODE "Postal Code" +#define A_POSTAL_OFFICE_BOX "Postal Office Box" +#define A_POSTMASTER "Postmaster" +#define A_PRIMARY_NOTIFICATION_SERVICE "Primary Notification Service" +#define A_PRIMARY_RESOURCE_SERVICE "Primary Resource Service" +#define A_PRINT_JOB_CONFIGURATION "Print Job Configuration" +#define A_PRINT_SERVER "Print Server" +#define A_PRINTER "Printer" +#define A_PRINTER_AGENT_NAME "Printer Agent Name" +#define A_PRINTER_CONFIGURATION "Printer Configuration" +#define A_PRINTER_CONTROL "Printer Control" +#define A_PRINTER_MANUFACTURER "Printer Manufacturer" +#define A_PRINTER_MECHANISM_TYPES "Printer Mechanism Types" +#define A_PRINTER_MODEL "Printer Model" +#define A_PRINTER_STATUS "Printer Status" +#define A_PRINTER_TO_PA_ID_MAPPINGS "Printer to PA ID Mappings" +#define A_PRIVATE_KEY "Private Key" +#define A_PROFILE "Profile" +#define A_PROFILE_MEMBERSHIP "Profile Membership" +#define A_PSM_NAME "PSM Name" +#define A_PUBLIC_KEY "Public Key" +#define A_PURGE_VECTOR "Purge Vector" +#define A_QUEUE "Queue" +#define A_QUEUE_DIRECTORY "Queue Directory" +#define A_RECEIVED_UP_TO "Received Up To" +#define A_REFERENCE "Reference" +#define A_REGISTRY_ADVERTISING_NAME "Registry Advertising Name" +#define A_REGISTRY_SERVICE_ENABLED "Registry Service Enabled" +#define A_REGISTRY_SRVC_NET_ADDR "Registry Srvc Net Addr" +#define A_REGISTRY_SRVC_NET_ADDRESS "Registry Srvc Net Address" +#define A_REPLICA "Replica" +#define A_REPLICA_UP_TO "Replica Up To" +#define A_RESOLUTION "Resolution" +#define A_RESOURCE "Resource" +#define A_RESOURCE_MGMT_SRVC_NET_ADDR "Resource Mgmt Srvc Net Addr" +#define A_RESOURCE_MGMT_SRVC_NET_ADDRES "Resource Mgmt Srvc Net Address" +#define A_RESOURCE_MGMT_SERVICE_ENABLED "Resource Mgmt Service Enabled" +#define A_RESOURCE_MGR_DATABASE_PATH "Resource Mgr Database Path" +#define A_RESOURCE_MGR_DATABASE_VOLUME "Resource Mgr Database Volume" +#define A_REVISION "Revision" +#define A_ROLE_OCCUPANT "Role Occupant" +#define A_RUNF_SETUP_SCRIPT "Run Setup Script" +#define A_STATE_OR_PROVINCE_NAME "S" +#define A_STREET_ADDRESS "SA" +#define A_SAP_NAME "SAP Name" +#define A_SAS_SECURITY_DN "SAS:Security DN" +#define A_SAS_SERVICE_DN "SAS:Service DN" +#define A_SECURITY_EQUALS "Security Equals" +#define A_SECURITY_FLAGS "Security Flags" +#define A_SEE_ALSO "See Also" +#define A_SERIAL_NUMBER "Serial Number" +#define A_SERVER "Server" +#define A_SERVER_HOLDS "Server Holds" +#define A_SET_PASSWORD_AFTER_CREATE "Set Password After Create" +#define A_SETUP_SCRIPT "Setup Script" +#define A_SIDES_SUPPORTED "Sides Supported" +#define A_SLP_ATTRIBUTE "SLP Attribute" +#define A_SLP_CACHE_LIMIT "SLP Cache Limit" +#define A_SLP_DA_BACK_LINK "SLP DA Back Link" +#define A_SLP_DIRECTORY_AGENT_DN "SLP Directory Agent DN" +#define A_SLP_LANGUAGE "SLP Language" +#define A_SLP_LIFETIME "SLP Lifetime" +#define A_SLP_SCOPE_NAME "SLP Scope Name" +#define A_SLP_SCOPE_UNIT_DN "SLP Scope Unit DN" +#define A_SLP_START_PURGE_HOUR "SLP Start Purge Hour" +#define A_SLP_STATUS "SLP Status" +#define A_SLP_SU_BACK_LINK "SLP SU Back Link" +#define A_SLP_SU_TYPE "SLP SU Type" +#define A_SLP_TYPE "SLP Type" +#define A_SLP_URL "SLP URL" +#define A_SMS_PROTOCOL_ADDRESS "SMS Protocol Address" +#define A_SMS_REGISTERED_SERVICE "SMS Registered Service" +#define A_STATUS "Status" +#define A_SU "SU" +#define A_SUPPORTED_CONNECTIONS "Supported Connections" +#define A_SUPPORTED_GATEWAY "Supported Gateway" +#define A_SUPPORTED_SERVICES "Supported Services" +#define A_SUPPORTED_TYPEFACES "Supported Typefaces" +#define A_SURNAME "Surname" +#define A_SVCINFO "SvcInfo" +#define A_SVCTYPE "SvcType" +#define A_SVCTYPEID "SvcTypeID" +#define A_SYNCHRONIZATION_TOLERANCE "Synchronization Tolerance" +#define A_IN_SYNC_UP_TO "Synchronized Up To" +#define A_TELEPHONE_NUMBER "Telephone Number" +#define A_TIMEZONE "Timezone" +#define A_TITLE "Title" +#define A_TRANSITIVE_VECTOR "Transitive Vector" +#define A_TRUSTEES_OF_NEW_OBJECT "Trustees Of New Object" +#define A_TREE_NAME "T" +#define A_TYPE_CREATOR_MAP "Type Creator Map" +#define A_UID "UID" +#define A_UNKNOWN "Unknown" +#define A_UNKNOWN_BASE_CLASS "Unknown Base Class" +#define A_USED_BY "Used By" +#define A_USER "User" +#define A_USES "Uses" +#define A_VERSION "Version" +#define A_VOLUME "Volume" +#define A_VOLUME_SPACE_RESTRICTIONS "Volume Space Restrictions" +#define A_WANMAN_COST "WANMAN:Cost" +#define A_WANMAN_DEFAULT_COST "WANMAN:Default Cost" +#define A_WANMAN_LAN_AREA_MEMBERSHIP "WANMAN:LAN Area Membership" +#define A_WANMAN_WAN_POLICY "WANMAN:WAN Policy" + +#endif diff --git a/c_clientlogin/xplatincl/nwdspart.h b/c_clientlogin/xplatincl/nwdspart.h new file mode 100644 index 00000000..a753c502 --- /dev/null +++ b/c_clientlogin/xplatincl/nwdspart.h @@ -0,0 +1,174 @@ +/****************************************************************************** + + %name: nwdspart.h % + %version: 8 % + %date_modified: Tue Aug 29 18:11:41 2000 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSPART_H ) +#define NWDSPART_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#if ! defined ( NWDSBUFT_H ) +#include "nwdsbuft.h" +#endif + +#if ! defined ( NWDSDC_H ) +#include "nwdsdc.h" +#endif + +#include "npackon.h" + +/*--------------------------------------------------------------------------- + * flags which specify partition info output of + * DSV_LIST_PARTITIONS + */ +#define DSP_OUTPUT_FIELDS 0x00000001L +#define DSP_PARTITION_ID 0x00000002L +#define DSP_REPLICA_STATE 0x00000004L +#define DSP_MODIFICATION_TIMESTAMP 0x00000008L +#define DSP_PURGE_TIME 0x00000010L +#define DSP_LOCAL_PARTITION_ID 0x00000020L +#define DSP_PARTITION_DN 0x00000040L +#define DSP_REPLICA_TYPE 0x00000080L +#define DSP_PARTITION_BUSY 0x00000100L + +#ifdef __cplusplus +extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAddReplica +( + NWDSContextHandle context, + pnstr8 server, + pnstr8 partitionRoot, + nuint32 replicaType +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSChangeReplicaType +( + NWDSContextHandle context, + pnstr8 replicaName, + pnstr8 server, + nuint32 newReplicaType +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSJoinPartitions +( + NWDSContextHandle context, + pnstr8 subordinatePartition, + nflag32 flags +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSListPartitions +( + NWDSContextHandle context, + pnint32 iterationHandle, + pnstr8 server, + pBuf_T partitions +); + +N_GLOBAL_LIBRARY (NWDSCCODE) +NWDSListPartitionsExtInfo +( + NWDSContextHandle context, + pnint32 iterationHandle, + pnstr8 server, + nflag32 DSPFlags, + pBuf_T partitions +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRemovePartition +( + NWDSContextHandle context, + pnstr8 partitionRoot +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRemoveReplica +( + NWDSContextHandle context, + pnstr8 server, + pnstr8 partitionRoot +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSSplitPartition +( + NWDSContextHandle context, + pnstr8 subordinatePartition, + nflag32 flags +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPartitionReceiveAllUpdates +( + NWDSContextHandle context, + pnstr8 partitionRoot, + pnstr8 serverName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSPartitionSendAllUpdates +( + NWDSContextHandle context, + pnstr8 partitionRoot, + pnstr8 serverName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSSyncPartition +( + NWDSContextHandle context, + pnstr8 server, + pnstr8 partition, + nuint32 seconds +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSAbortPartitionOperation +( + NWDSContextHandle context, + pnstr8 partitionRoot +); + + +#ifdef __cplusplus +} +#endif + + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_dspart.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif /* NWDSPART_H */ diff --git a/c_clientlogin/xplatincl/nwdssch.h b/c_clientlogin/xplatincl/nwdssch.h new file mode 100644 index 00000000..b6035a3d --- /dev/null +++ b/c_clientlogin/xplatincl/nwdssch.h @@ -0,0 +1,124 @@ +/****************************************************************************** + + %name: nwdssch.h % + %version: 3 % + %date_modified: Wed Dec 18 12:08:00 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSSCH_H ) +#define NWDSSCH_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#if ! defined ( NWDSBUFT_H ) +#include "nwdsbuft.h" +#endif + +#if ! defined ( NWDSATTR_H ) +#include "nwdsattr.h" +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSDefineAttr +( + NWDSContextHandle context, + pnstr8 attrName, + pAttr_Info_T attrDef +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSDefineClass +( + NWDSContextHandle context, + pnstr8 className, + pClass_Info_T classInfo, + pBuf_T classItems +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSListContainableClasses +( + NWDSContextHandle context, + pnstr8 parentObject, + pnint32 iterationHandle, + pBuf_T containableClasses +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSModifyClassDef +( + NWDSContextHandle context, + pnstr8 className, + pBuf_T optionalAttrs +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReadAttrDef +( + NWDSContextHandle context, + nuint32 infoType, + nbool8 allAttrs, + pBuf_T attrNames, + pnint32 iterationHandle, + pBuf_T attrDefs +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSReadClassDef +( + NWDSContextHandle context, + nuint32 infoType, + nbool8 allClasses, + pBuf_T classNames, + pnint32 iterationHandle, + pBuf_T classDefs +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRemoveAttrDef +( + NWDSContextHandle context, + pnstr8 attrName +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSRemoveClassDef +( + NWDSContextHandle context, + pnstr8 className +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSSyncSchema +( + NWDSContextHandle context, + pnstr8 server, + nuint32 seconds +); + +#ifdef __cplusplus +} +#endif +#endif /* NWDSSCH_H */ diff --git a/c_clientlogin/xplatincl/nwdstype.h b/c_clientlogin/xplatincl/nwdstype.h new file mode 100644 index 00000000..847fb31f --- /dev/null +++ b/c_clientlogin/xplatincl/nwdstype.h @@ -0,0 +1,55 @@ +/****************************************************************************** + + %name: nwdstype.h % + %version: 4 % + %date_modified: Wed Dec 18 12:08:04 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWDSTYPE_H ) +#define NWDSTYPE_H + +#ifndef NWDSCCODE +#define NWDSCCODE int +#endif + +/*******************************************************************/ +/* */ +/* !!!!! The following types have been obsoleted !!!!!!!!! */ +/* */ +/* The following have been obsoleted - use types found in */ +/* ntypes.h */ +/* */ +/* ntypes.h contains equivalent types for each of the typedefs */ +/* listed below. For example "uint32" is "nuint32" in ntypes.h */ +/* */ +/* These typedefs also conflicted with defines in the WinSock2 */ +/* headers on NetWare. The decision was made to obsolete these */ +/* types to eliminate conflicts. */ +/*******************************************************************/ +#ifdef INCLUDE_OBSOLETE + +typedef unsigned long uint32; +typedef signed long int32; +typedef unsigned short uint16; +typedef signed short int16; +typedef unsigned char uint8; +typedef signed char int8; + +#ifndef NWUNSIGNED +#define NWUNSIGNED unsigned +#endif + +#endif /* #ifdef INCLUDE_OBSOLETE */ + +#endif /* NWDSTYPE_H */ diff --git a/c_clientlogin/xplatincl/nwea.h b/c_clientlogin/xplatincl/nwea.h new file mode 100644 index 00000000..bc67b18a --- /dev/null +++ b/c_clientlogin/xplatincl/nwea.h @@ -0,0 +1,256 @@ +/****************************************************************************** + + %name: nwea.h % + %version: 5 % + %date_modified: Fri Oct 15 14:23:04 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWEA_H ) +#define NWEA_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWNAMSPC_H ) /* Needed top defined NW_IDX */ +#include "nwnamspc.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define EA_EOF 1 +#define EA_DONE 1 + +#define EA_READWRITE 0 +#define EA_CREATE 1 + +#define MISSING_EA_KEY 200 /* 0xC8 */ +#define EA_NOT_FOUND 201 /* 0xC9 */ +#define INVALID_EA_HANDLE_TYPE 202 /* 0xCA */ +#define EA_NO_KEY_NO_DATA 203 /* 0xCB */ +#define EA_NUMBER_MISMATCH 204 /* 0xCC */ +#define EXTENT_NUMBER_OUT_OF_RANGE 205 /* 0xCD */ +#define EA_BAD_DIR_NUM 206 /* 0xCE */ +#define INVALID_EA_HANDLE 207 /* 0xCF */ +#define EA_POSITION_OUT_OF_RANGE 208 /* 0xD0 */ +#define EA_ACCESS_DENIED 209 /* 0xD1 */ +#define DATA_PAGE_ODD_SIZE 210 /* 0xD2 */ +#define EA_VOLUME_NOT_MOUNTED 211 /* 0xD3 */ +#define BAD_PAGE_BOUNDARY 212 /* 0xD4 */ +#define INSPECT_FAILURE 213 /* 0xD5 */ +#define EA_ALREADY_CLAIMED 214 /* 0xD6 */ +#define ODD_BUFFER_SIZE 215 /* 0xD7 */ +#define NO_SCORECARDS 216 /* 0xD8 */ +#define BAD_EDS_SIGNATURE 217 /* 0xD9 */ +#define EA_SPACE_LIMIT 218 /* 0xDA */ +#define EA_KEY_CORRUPT 219 /* 0xDB */ +#define EA_KEY_LIMIT 220 /* 0xDC */ +#define TALLY_CORRUPT 221 /* 0xDD */ + +typedef struct +{ + NWCONN_HANDLE connID; + nuint32 rwPosition; + nuint32 EAHandle; + nuint32 volNumber; + nuint32 dirBase; + nuint8 keyUsed; + nuint16 keyLength; + nuint8 key[256]; +} NW_EA_HANDLE; + +typedef struct +{ + NWCONN_HANDLE connID; + nuint32 rwPosition; + nuint32 EAHandle; + nuint32 volNumber; + nuint32 dirBase; + nuint8 keyUsed; + nuint16 keyLength; + nuint8 key[766]; +} NW_EA_HANDLE_EXT; + +typedef struct +{ + NWCONN_HANDLE connID; + nuint16 nextKeyOffset; + nuint16 nextKey; + nuint32 numKeysRead; + nuint32 totalKeys; + nuint32 EAHandle; + nuint16 sequence; + nuint16 numKeysInBuffer; + nuint8 enumBuffer[512]; +} NW_EA_FF_STRUCT; + +typedef struct +{ + NWCONN_HANDLE connID; + nuint16 nextKeyOffset; + nuint16 nextKey; + nuint32 numKeysRead; + nuint32 totalKeys; + nuint32 EAHandle; + nuint16 sequence; + nuint16 numKeysInBuffer; + nuint8 enumBuffer[1530]; +} NW_EA_FF_STRUCT_EXT; + + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseEA +( + const NW_EA_HANDLE N_FAR * EAHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseEAExt +( + const NW_EA_HANDLE_EXT N_FAR * EAHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFindFirstEA +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + NW_EA_FF_STRUCT N_FAR * ffStruct, + NW_EA_HANDLE N_FAR * EAHandle, + pnstr8 EAName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFindFirstEAExt +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + NW_EA_FF_STRUCT_EXT N_FAR * ffStruct, + NW_EA_HANDLE_EXT N_FAR * EAHandle, + pnstr8 EAName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFindNextEA +( + NW_EA_FF_STRUCT N_FAR * ffStruct, + NW_EA_HANDLE N_FAR * EAHandle, + pnstr8 EAName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFindNextEAExt +( + NW_EA_FF_STRUCT_EXT N_FAR * ffStruct, + NW_EA_HANDLE_EXT N_FAR * EAHandle, + pnstr8 EAName +); + + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadEA +( + NW_EA_HANDLE N_FAR * EAHandle, + nuint32 bufferSize, + pnuint8 buffer, + pnuint32 totalEASize, + pnuint32 amountRead +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadEAExt +( + NW_EA_HANDLE_EXT N_FAR * EAHandle, + nuint32 bufferSize, + pnuint8 buffer, + pnuint32 totalEASize, + pnuint32 amountRead +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWWriteEA +( + NW_EA_HANDLE N_FAR * EAHandle, + nuint32 totalWriteSize, + nuint32 bufferSize, + const nuint8 N_FAR * buffer, + pnuint32 amountWritten +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWWriteEAExt +( + NW_EA_HANDLE_EXT N_FAR * EAHandle, + nuint32 totalWriteSize, + nuint32 bufferSize, + const nuint8 N_FAR * buffer, + pnuint32 amountWritten +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetEAHandleStruct +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * EAName, + const NW_IDX N_FAR * idxStruct, + NW_EA_HANDLE N_FAR * EAHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetEAHandleStructExt +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * EAName, + const NW_IDX N_FAR * idxStruct, + NW_EA_HANDLE_EXT N_FAR * EAHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenEA +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnstr8 EAName, + nuint8 nameSpace, + NW_EA_HANDLE N_FAR * EAHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenEAExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnstr8 EAName, + nuint8 nameSpace, + NW_EA_HANDLE_EXT N_FAR * EAHandle +); + + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwerror.h b/c_clientlogin/xplatincl/nwerror.h new file mode 100644 index 00000000..a28e948d --- /dev/null +++ b/c_clientlogin/xplatincl/nwerror.h @@ -0,0 +1,659 @@ +#ifndef __nwerror_h__ +#define __nwerror_h__ +/*============================================================================ += Novell Kernel Services for NLMs += += Copyright (C) Unpublished Work of Novell, Inc. All Rights Reserved. += += This work is an unpublished work and contains confidential, proprietary and += trade secret information of Novell, Inc. Access to this work is restricted += to (i) Novell, Inc. employees who have a need to know how to perform tasks += within the scope of their assignments and (ii) entities other than Novell, += Inc. who have entered into appropriate license agreements. No part of this += work may be used, practiced, performed, copied, distributed, revised, modi- += fied, translated, abridged, condensed, expanded, collected, compiled, link- += ed, recast, transformed or adapted without the prior written consent of += Novell, Inc. Any use or exploitation of this work without authorization += could subject the perpetrator to criminal and civil liability. += += nwerror.c by Tom Buckley, March 1999 +============================================================================== +*/ + +#ifndef SUCCESS +#define SUCCESS 0 +#endif + +// Network errors +// Decimal values at end of line are 32768 lower than actual + +#define SHELL_ERROR 0x8800 +#define VLM_ERROR 0x8800 +#define ALREADY_ATTACHED 0x8800 // 0 - Attach attempted to server with valid, existing connection +#define INVALID_CONNECTION 0x8801 // 1 - Request attempted with invalid or non-attached connection handle +#define DRIVE_IN_USE 0x8802 // 2 - OS/2 only (NOT USED) +#define CANT_ADD_CDS 0x8803 // 3 - Map drive attempted but unable to add new current directory structure +#define DRIVE_CANNOT_MAP 0x8803 +#define BAD_DRIVE_BASE 0x8804 // 4 - Map drive attempted with invalid path specification +#define NET_READ_ERROR 0x8805 // 5 - Attempt to receive from the selected transport failed +#define NET_RECV_ERROR 0x8805 // 5 +#define UNKNOWN_NET_ERROR 0x8806 // 6 - Network send attempted with an un-specific network error +#define SERVER_INVALID_SLOT 0x8807 // 7 - Server request attempted with invalid server connection slot +#define BAD_SERVER_SLOT 0x8807 // 7 +#define NO_SERVER_SLOTS 0x8808 // 8 - Attach attempted to server with no connection slots available +#define NET_WRITE_ERROR 0x8809 // 9 - Attempt to send on the selected transport failed +#define CONNECTION_IN_ERROR_STATE 0x8809 // Client-32 +#define NET_SEND_ERROR 0x8809 // 9 +#define SERVER_NO_ROUTE 0x880A // 10 - Attempted to find route to server where no route exists +#define BAD_LOCAL_TARGET 0x880B // 11 - OS/2 only +#define TOO_MANY_REQ_FRAGS 0x880C // 12 - Attempted request with too many request fragments specified +#define CONNECT_LIST_OVERFLOW 0x880D // 13 +#define BUFFER_OVERFLOW 0x880E // 14 - Attempt to receive more data than the reply buffer had room for +#define MORE_DATA_ERROR 0x880E // Client-32 +#define NO_CONN_TO_SERVER 0x880F // 15 +#define NO_CONNECTION_TO_SERVER 0x880F // 15 - Attempt to get connection for a server not connected +#define NO_ROUTER_FOUND 0x8810 // 16 - OS/2 only +#define BAD_FUNC_ERROR 0x8811 // 17 +#define INVALID_SHELL_CALL 0x8811 // 17 - Attempted function call to non- existent or illegal function +#define SCAN_COMPLETE 0x8812 +#define LIP_RESIZE_ERROR 0x8812 // Client-32 +#define UNSUPPORTED_NAME_FORMAT_TYPE 0x8813 +#define INVALID_DIR_HANDLE 0x8813 // Client-32 +#define HANDLE_ALREADY_LICENSED 0x8814 +#define OUT_OF_CLIENT_MEMORY 0x8814 // Client-32 +#define HANDLE_ALREADY_UNLICENSED 0x8815 +#define PATH_NOT_OURS 0x8815 // Client-32 +#define INVALID_NCP_PACKET_LENGTH 0x8816 +#define PATH_IS_PRINT_DEVICE 0x8816 // Client-32 +#define SETTING_UP_TIMEOUT 0x8817 +#define PATH_IS_EXCLUDED_DEVICE 0x8817 // Client-32 +#define SETTING_SIGNALS 0x8818 +#define PATH_IS_INVALID 0x8818 // Client-32 +#define SERVER_CONNECTION_LOST 0x8819 +#define NOT_SAME_DEVICE 0x8819 // Client-32 +#define OUT_OF_HEAP_SPACE 0x881A +#define INVALID_SERVICE_REQUEST 0x881B +#define INVALID_SEARCH_HANDLE 0x881B // Client-32 +#define INVALID_TASK_NUMBER 0x881C +#define INVALID_DEVICE_HANDLE 0x881C // Client-32 +#define INVALID_MESSAGE_LENGTH 0x881D +#define INVALID_SEM_HANDLE 0x881D // Client-32 +#define EA_SCAN_DONE 0x881E +#define INVALID_CFG_HANDLE 0x881E // Client-32 +#define BAD_CONNECTION_NUMBER 0x881F +#define INVALID_MOD_HANDLE 0x881F // Client-32 +#define ASYN_FIRST_PASS 0x8820 +#define INVALID_DEVICE_INDEX 0x8821 +#define INVALID_CONN_HANDLE 0x8822 +#define INVALID_QUEUE_ID 0x8823 +#define INVALID_PDEVICE_HANDLE 0x8824 +#define INVALID_JOB_HANDLE 0x8825 +#define INVALID_ELEMENT_ID 0x8826 +#define ALIAS_NOT_FOUND 0x8827 +#define RESOURCE_SUSPENDED 0x8828 +#define INVALID_QUEUE_SPECIFIED 0x8829 +#define DEVICE_ALREADY_OPEN 0x882A +#define JOB_ALREADY_OPEN 0x882B +#define QUEUE_NAME_ID_MISMATCH 0x882C +#define JOB_ALREADY_STARTED 0x882D +#define SPECT_DAA_TYPE_NOT_SUPPORTED 0x882E +#define INVALID_ENVIR_HANDLE 0x882F +#define NOT_SAME_CONNECTION 0x8830 // 48 - Internal server request attempted accross different server connections +#define PRIMARY_CONNECTION_NOT_SET 0x8831 // 49 - Attempt to retrieve default connection with no primary connection set +#define NO_PRIMARY_SET 0x8831 // 49 +#define KEYWORD_NOT_FOUND 0x8832 // Client-32 +#define PRINT_CAPTURE_NOT_IN_PROGRESS 0x8832 // Client-32 +#define NO_CAPTURE_SET 0x8832 // 50 +#define NO_CAPTURE_IN_PROGRESS 0x8832 // 50 - Capture information requested on port with no capture in progress +#define BAD_BUFFER_LENGTH 0x8833 // 51 +#define INVALID_BUFFER_LENGTH 0x8833 // 51 - Used to indicate length which caller requested on a GetDNC or SetDNC was too large +#define NO_USER_NAME 0x8834 // 52 +#define NO_NETWARE_PRINT_SPOOLER 0x8835 // 53 - Capture requested without having the local print spooler installed +#define INVALID_PARAMETER 0x8836 // 54 - Attempted function with an invalid function parameter specified +#define CONFIG_FILE_OPEN_FAILED 0x8837 // 55 - OS/2 only +#define NO_CONFIG_FILE 0x8838 // 56 - OS/2 only +#define CONFIG_FILE_READ_FAILED 0x8839 // 57 - OS/2 only +#define CONFIG_LINE_TOO_LONG 0x883A // 58 - OS/2 only +#define CONFIG_LINES_IGNORED 0x883B // 59 - OS/2 only +#define NOT_MY_RESOURCE 0x883C // 60 - Attempted request made with a parameter using foriegn resource +#define DAEMON_INSTALLED 0x883D // 61 - OS/2 only +#define SPOOLER_INSTALLED 0x883E // 62 - Attempted load of print spooler with print spooler already installed +#define CONN_TABLE_FULL 0x883F // 63 +#define CONNECTION_TABLE_FULL 0x883F // 63 - Attempted to allocate a connection handle with no more local connection table entries +#define CONFIG_SECTION_NOT_FOUND 0x8840 // 64 - OS/2 only +#define BAD_TRAN_TYPE 0x8841 // 65 +#define INVALID_TRANSPORT_TYPE 0x8841 // 65 - Attempted function on a connection with an invalid transport selected +#define TDS_TAG_IN_USE 0x8842 // 66 - OS/2 only +#define TDS_OUT_OF_MEMORY 0x8843 // 67 - OS/2 only +#define TDS_INVALID_TAG 0x8844 // 68 - Attempted TDS function with invalid tag +#define TDS_WRITE_TRUNCATED 0x8845 // 69 - Attempted TDS write with buffer that exceeded buffer +#define NO_CONNECTION_TO_DS 0x8846 // Client-32 +#define NO_DIRECTORY_SERVICE_CONNECTION 0x8846 // 70 +#define SERVICE_BUSY 0x8846 // 70 - Attempted request made to partially asynchronous function in busy state +#define NO_SERVER_ERROR 0x8847 // 71 - Attempted connect failed to find any servers responding +#define BAD_VLM_ERROR 0x8848 // 72 - Attempted function call to non-existant or not-loaded overlay +#define NETWORK_DRIVE_IN_USE 0x8849 // 73 - Attempted map to network drive that was already mapped +#define LOCAL_DRIVE_IN_USE 0x884A // 74 - Attempted map to local drive that was in use +#define NO_DRIVES_AVAILABLE 0x884B // 75 - Attempted map to next available drive when none were available +#define DEVICE_NOT_REDIRECTED 0x884C // 76 - The device is not redirected +#define NO_MORE_SFT_ENTRIES 0x884D // 77 - Maximum number of files was reached +#define UNLOAD_ERROR 0x884E // 78 - Attempted unload failed +#define IN_USE_ERROR 0x884F // 79 - Attempted re-use of already in use connection entry +#define TOO_MANY_REP_FRAGS 0x8850 // 80 - Attempted request with too many reply fragments specified +#define TABLE_FULL 0x8851 // 81 - Attempted to add a name into the name table after it was full +#ifndef SOCKET_NOT_OPEN +#define SOCKET_NOT_OPEN 0x8852 // 82 - Listen was posted on unopened socket +#endif +#define MEM_MGR_ERROR 0x8853 // 83 - Attempted enhanced memory operation failed +#define SFT3_ERROR 0x8854 // 84 - An SFT3 switch occured mid-transfer +#define PREFERRED_NOT_FOUND 0x8855 // 85 - the preferred directory server was not established but another directory server was returned +#define DEVICE_NOT_RECOGNIZED 0x8856 // 86 - used to determine if the device is not used by VISE so pass it on to the next redirector, if any. +#define BAD_NET_TYPE 0x8857 // 87 - the network type (Bind/NDS) does not match the server version +#define ERROR_OPENING_FILE 0x8858 // 88 - generic open failure error, invalid path, access denied, etc.. +#define NO_PREFERRED_SPECIFIED 0x8859 // 89 - no preferred name specified +#define ERROR_OPENING_SOCKET 0x885A // 90 - error opening a socket +#define REQUESTER_FAILURE 0x885A // Client-32 +#define RESOURCE_ACCESS_DENIED 0x885B // Client-32 +#define SIGNATURE_LEVEL_CONFLICT 0x8861 +#define NO_LOCK_FOUND 0x8862 // OS/2 - process lock on conn handle failed, process ID not recognized +#define LOCK_TABLE_FULL 0x8863 // OS/2 - process lock on conn handle failed, process lock table full +#define INVALID_MATCH_DATA 0x8864 +#define MATCH_FAILED 0x8865 +#define NO_MORE_ENTRIES 0x8866 +#define INSUFFICIENT_RESOURCES 0x8867 +#define STRING_TRANSLATION 0x8868 +#define STRING_TRANSLATION_NEEDED 0x8868 // Client-32 +#define ACCESS_VIOLATION 0x8869 +#define NOT_AUTHENTICATED 0x886A +#define INVALID_LEVEL 0x886B +#define RESOURCE_LOCK_ERROR 0x886C +#define INVALID_NAME_FORMAT 0x886D +#define OBJECT_EXISTS 0x886E +#define OBJECT_NOT_FOUND 0x886F +#define UNSUPPORTED_TRAN_TYPE 0x8870 +#define INVALID_STRING_TYPE 0x8871 +#define INVALID_OWNER 0x8872 +#define UNSUPPORTED_AUTHENTICATOR 0x8873 +#define IO_PENDING 0x8874 +#define INVALID_DRIVE_NUM 0x8875 +#define SHELL_FAILURE 0x88FF +#define VLM_FAILURE 0x88FF + +#define SVC_ALREADY_REGISTERED 0x8880 // Client-32 +#define SVC_REGISTRY_FULL 0x8881 // Client-32 +#define SVC_NOT_REGISTERED 0x8882 // Client-32 +#define OUT_OF_RESOURCES 0x8883 // Client-32 +#define RESOLVE_SVC_FAILED 0x8884 // Client-32 +#define CONNECT_FAILED 0x8885 // Client-32 +#define PROTOCOL_NOT_BOUND 0x8886 // Client-32 +#define AUTHENTICATION_FAILED 0x8887 // Client-32 +#define INVALID_AUTHEN_HANDLE 0x8888 // Client-32 +#define AUTHEN_HANDLE_ALREADY_EXISTS 0x8889 // Client-32 + +#define DIFF_OBJECT_ALREADY_AUTHEN 0x8890 // Client-32 +#define REQUEST_NOT_SERVICEABLE 0x8891 // Client-32 +#define AUTO_RECONNECT_SO_REBUILD 0x8892 // Client-32 +#define AUTO_RECONNECT_RETRY_REQUEST 0x8893 // Client-32 +#define ASYNC_REQUEST_IN_USE 0x8894 // Client-32 +#define ASYNC_REQUEST_CANCELED 0x8895 // Client-32 +#define SESS_SVC_ALREADY_REGISTERED 0x8896 // Client-32 +#define SESS_SVC_NOT_REGISTERED 0x8897 // Client-32 +#define PREVIOUSLY_AUTHENTICATED 0x8899 // Client-32 +#define RESOLVE_SVC_PARTIAL 0x889A // Client-32 +#define NO_DEFAULT_SPECIFIED 0x889B // Client-32 +#define HOOK_REQUEST_NOT_HANDLED 0x889C // Client-32 +#define HOOK_REQUEST_BUSY 0x889D // Client-32 +#define HOOK_REQUEST_QUEUED 0x889D // Client-32 +#define AUTO_RECONNECT_SO_IGNORE 0x889E // Client-32 +#define ASYNC_REQUEST_NOT_IN_USE 0x889F // Client-32 +#define AUTO_RECONNECT_FAILURE 0x88A0 // Client-32 +#define NET_ERROR_ABORT_APPLICATION 0x88A1 // Client-32 +#define NET_ERROR_SUSPEND_APPLICATION 0x88A2 // Client-32 +#define NET_ERROR_ABORTED_PROCESS_GROUP 0x88A3 // Client-32 +#define NET_ERROR_PASSWORD_HAS_EXPIRED 0x88A5 // Client-32 +#define NET_ERROR_NETWORK_INACTIVE 0x88A6 // Client-32 +#define REPLY_TRUNCATED 0x88E6 // 230 NLM +#define UTF8_CONVERSION_FAILED 0x88F0 // NWCALLS + + +// Server Errors + +#define ERR_INSUFFICIENT_SPACE 0x8901 // 001 +#define NLM_INVALID_CONNECTION 0x890A // 010 +#define ERR_TIMEOUT 0x8910 // 016 - nlm connection timeout +#define ERR_NO_MORE_ENTRY 0x8914 // 020 +#define ERR_BUFFER_TOO_SMALL 0x8977 // 119 +#define ERR_VOLUME_FLAG_NOT_SET 0x8978 // 120 the service requested, not avail. on the selected vol. +#define ERR_NO_ITEMS_FOUND 0x8979 // 121 +#define ERR_CONN_ALREADY_TEMP 0x897A // 122 +#define ERR_CONN_ALREADY_LOGGED_IN 0x897B // 123 +#define ERR_CONN_NOT_AUTHENTICATED 0x897C // 124 +#define ERR_CONN_NOT_LOGGED_IN 0x897D // 125 +#define NCP_BOUNDARY_CHECK_FAILED 0x897E // 126 +#define ERR_LOCK_WAITING 0x897F // 127 +#define ERR_LOCK_FAIL 0x8980 // 128 +#define FILE_IN_USE_ERROR 0x8980 // 128 +#define NO_MORE_FILE_HANDLES 0x8981 // 129 +#define NO_OPEN_PRIVILEGES 0x8982 // 130 +#define IO_ERROR_NETWORK_DISK 0x8983 // 131 +#define ERR_AUDITING_HARD_IO_ERROR 0x8983 // 131 +#define NO_CREATE_PRIVILEGES 0x8984 // 132 +#define ERR_AUDITING_NOT_SUPV 0x8984 // 132 +#define NO_CREATE_DELETE_PRIVILEGES 0x8985 // 133 +#define CREATE_FILE_EXISTS_READ_ONLY 0x8986 // 134 +#define WILD_CARDS_IN_CREATE_FILE_NAME 0x8987 // 135 +#define CREATE_FILENAME_ERROR 0x8987 // 135 +#define INVALID_FILE_HANDLE 0x8988 // 136 +#define NO_SEARCH_PRIVILEGES 0x8989 // 137 +#define NO_DELETE_PRIVILEGES 0x898A // 138 +#define NO_RENAME_PRIVILEGES 0x898B // 139 +#define NO_MODIFY_PRIVILEGES 0x898C // 140 +#define SOME_FILES_AFFECTED_IN_USE 0x898D // 141 +#define NO_FILES_AFFECTED_IN_USE 0x898E // 142 +#define SOME_FILES_AFFECTED_READ_ONLY 0x898F // 143 +#define NO_FILES_AFFECTED_READ_ONLY 0x8990 // 144 +#define SOME_FILES_RENAMED_NAME_EXISTS 0x8991 // 145 +#define NO_FILES_RENAMED_NAME_EXISTS 0x8992 // 146 +#define NO_READ_PRIVILEGES 0x8993 // 147 +#define NO_WRITE_PRIVILEGES_OR_READONLY 0x8994 // 148 +#define FILE_DETACHED 0x8995 // 149 +#define SERVER_OUT_OF_MEMORY 0x8996 // 150 +#define ERR_TARGET_NOT_A_SUBDIRECTORY 0x8996 // 150 can be changed later (note written by server people). +#define NO_DISK_SPACE_FOR_SPOOL_FILE 0x8997 // 151 +#define ERR_AUDITING_NOT_ENABLED 0x8997 // 151 +#define VOLUME_DOES_NOT_EXIST 0x8998 // 152 +#define DIRECTORY_FULL 0x8999 // 153 +#define RENAMING_ACROSS_VOLUMES 0x899A // 154 +#define BAD_DIRECTORY_HANDLE 0x899B // 155 +#define INVALID_PATH 0x899C // 156 +#define NO_MORE_TRUSTEES 0x899C // 156 +#define NO_MORE_DIRECTORY_HANDLES 0x899D // 157 +#define INVALID_FILENAME 0x899E // 158 +#define DIRECTORY_ACTIVE 0x899F // 159 +#define DIRECTORY_NOT_EMPTY 0x89A0 // 160 +#define DIRECTORY_IO_ERROR 0x89A1 // 161 +#define READ_FILE_WITH_RECORD_LOCKED 0x89A2 // 162 +#define ERR_TRANSACTION_RESTARTED 0x89A3 // 163 +#define ERR_RENAME_DIR_INVALID 0x89A4 // 164 +#define ERR_INVALID_OPENCREATE_MODE 0x89A5 // 165 +#define ERR_ALREADY_IN_USE 0x89A6 // 166 +#define ERR_AUDITING_ACTIVE 0x89A6 // 166 +#define ERR_INVALID_RESOURCE_TAG 0x89A7 // 167 +#define ERR_ACCESS_DENIED 0x89A8 // 168 +#define ERR_AUDITING_NO_RIGHTS 0x89A8 // 168 +#define ERR_LINK_IN_PATH 0x89A9 // 169 +#define INVALID_DATA_TYPE 0x89AA // 170 +#define INVALID_DATA_STREAM 0x89BE // 190 +#define INVALID_NAME_SPACE 0x89BF // 191 +#define NO_ACCOUNTING_PRIVILEGES 0x89C0 // 192 +#define LOGIN_DENIED_NO_ACCOUNT_BALANCE 0x89C1 // 193 +#define LOGIN_DENIED_NO_CREDIT 0x89C2 // 194 +#define ERR_AUDITING_RECORD_SIZE 0x89C2 // 194 +#define ERR_TOO_MANY_HOLDS 0x89C3 // 195 +#define ACCOUNTING_DISABLED 0x89C4 // 196 +#define INTRUDER_DETECTION_LOCK 0x89C5 // 197 +#define NO_CONSOLE_OPERATOR 0x89C6 // 198 +#define NO_CONSOLE_PRIVILEGES 0x89C6 // 198 +#define ERR_Q_IO_FAILURE 0x89D0 // 208 +#define ERR_NO_QUEUE 0x89D1 // 209 +#define ERR_NO_Q_SERVER 0x89D2 // 210 +#define ERR_NO_Q_RIGHTS 0x89D3 // 211 +#define ERR_Q_FULL 0x89D4 // 212 +#define ERR_NO_Q_JOB 0x89D5 // 213 +#define ERR_NO_Q_JOB_RIGHTS 0x89D6 // 214 +#define ERR_Q_IN_SERVICE 0x89D7 // 215 +#define PASSWORD_NOT_UNIQUE 0x89D7 // 215 +#define ERR_Q_NOT_ACTIVE 0x89D8 // 216 +#define PASSWORD_TOO_SHORT 0x89D8 // 216 +#define ERR_Q_STN_NOT_SERVER 0x89D9 // 217 +#define LOGIN_DENIED_NO_CONNECTION 0x89D9 // 217 +#define ERR_MAXIMUM_LOGINS_EXCEEDED 0x89D9 // 217 +#define ERR_Q_HALTED 0x89DA // 218 +#define UNAUTHORIZED_LOGIN_TIME 0x89DA // 218 +#define UNAUTHORIZED_LOGIN_STATION 0x89DB // 219 +#define ERR_Q_MAX_SERVERS 0x89DB // 219 +#define ACCOUNT_DISABLED 0x89DC // 220 +#define PASSWORD_HAS_EXPIRED_NO_GRACE 0x89DE // 222 +#define PASSWORD_HAS_EXPIRED 0x89DF // 223 +#define E_NO_MORE_USERS 0x89E7 // 231 +#define NOT_ITEM_PROPERTY 0x89E8 // 232 +#define WRITE_PROPERTY_TO_GROUP 0x89E8 // 232 +#define MEMBER_ALREADY_EXISTS 0x89E9 // 233 +#define NO_SUCH_MEMBER 0x89EA // 234 +#define NOT_GROUP_PROPERTY 0x89EB // 235 +#define NO_SUCH_SEGMENT 0x89EC // 236 +#define PROPERTY_ALREADY_EXISTS 0x89ED // 237 +#define OBJECT_ALREADY_EXISTS 0x89EE // 238 +#define INVALID_NAME 0x89EF // 239 +#define WILD_CARD_NOT_ALLOWED 0x89F0 // 240 +#define INVALID_BINDERY_SECURITY 0x89F1 // 241 +#define NO_OBJECT_READ_PRIVILEGE 0x89F2 // 242 +#define NO_OBJECT_RENAME_PRIVILEGE 0x89F3 // 243 +#define NO_OBJECT_DELETE_PRIVILEGE 0x89F4 // 244 +#define NO_OBJECT_CREATE_PRIVILEGE 0x89F5 // 245 +#define NO_PROPERTY_DELETE_PRIVILEGE 0x89F6 // 246 +#define NO_PROPERTY_CREATE_PRIVILEGE 0x89F7 // 247 +#define NO_PROPERTY_WRITE_PRIVILEGE 0x89F8 // 248 +#define NO_FREE_CONNECTION_SLOTS 0x89F9 // 249 +#define NO_PROPERTY_READ_PRIVILEGE 0x89F9 // 249 +#define NO_MORE_SERVER_SLOTS 0x89FA // 250 +#define TEMP_REMAP_ERROR 0x89FA // 250 +#define INVALID_PARAMETERS 0x89FB // 251 +#define NO_SUCH_PROPERTY 0x89FB // 251 +#define ERR_NCP_NOT_SUPPORTED 0x89FB // 251 +#define INTERNET_PACKET_REQT_CANCELED 0x89FC // 252 +#define UNKNOWN_FILE_SERVER 0x89FC // 252 +#define MESSAGE_QUEUE_FULL 0x89FC // 252 +#define NO_SUCH_OBJECT 0x89FC // 252 +#define LOCK_COLLISION 0x89FD // 253 +#define BAD_STATION_NUMBER 0x89FD // 253 +#define INVALID_PACKET_LENGTH 0x89FD // 253 +#define UNKNOWN_REQUEST 0x89FD // 253 +#define BINDERY_LOCKED 0x89FE // 254 +#define TRUSTEE_NOT_FOUND 0x89FE // 254 +#define DIRECTORY_LOCKED 0x89FE // 254 +#define INVALID_SEMAPHORE_NAME_LENGTH 0x89FE // 254 +#define PACKET_NOT_DELIVERABLE 0x89FE // 254 +#define SERVER_BINDERY_LOCKED 0x89FE // 254 +#define SOCKET_TABLE_FULL 0x89FE // 254 +#define SPOOL_DIRECTORY_ERROR 0x89FE // 254 +#define SUPERVISOR_HAS_DISABLED_LOGIN 0x89FE // 254 +#define TIMEOUT_FAILURE 0x89FE // 254 +#define BAD_PRINTER_ERROR 0x89FF // 255 +#define BAD_RECORD_OFFSET 0x89FF // 255 +#define CLOSE_FCB_ERROR 0x89FF // 255 +#define FILE_EXTENSION_ERROR 0x89FF // 255 +#define FILE_NAME_ERROR 0x89FF // 255 +#define HARDWARE_FAILURE 0x89FF // 255 +#define INVALID_DRIVE_NUMBER 0x89FF // 255 +#define DOS_INVALID_DRIVE 0x000F // 255 +#define INVALID_INITIAL_SEMAPHORE_VALUE 0x89FF // 255 +#define INVALID_SEMAPHORE_HANDLE 0x89FF // 255 +#define IO_BOUND_ERROR 0x89FF // 255 +#define NO_FILES_FOUND_ERROR 0x89FF // 255 +#define NO_RESPONSE_FROM_SERVER 0x89FF // 255 +#define NO_SUCH_OBJECT_OR_BAD_PASSWORD 0x89FF // 255 +#define PATH_NOT_LOCATABLE 0x89FF // 255 +#define QUEUE_FULL_ERROR 0x89FF // 255 +#define REQUEST_NOT_OUTSTANDING 0x89FF // 255 +#ifndef SOCKET_ALREADY_OPEN +#define SOCKET_ALREADY_OPEN 0x89FF // 255 +#endif +#define LOCK_ERROR 0x89FF // 255 +#ifndef FAILURE +#define FAILURE 0x89FF // 255 Generic Failure +#endif + +// #define NOT_SAME_LOCAL_DRIVE 0x89F6 +// #define TARGET_DRIVE_NOT_LOCAL 0x89F7 +// #define ALREADY_ATTACHED_TO_SERVER 0x89F8 // 248 +// #define NOT_ATTACHED_TO_SERVER 0x89F8 + +///// Network errors ///// +// Decimal values at end of line are 32768 lower than actual + +#define NWE_ALREADY_ATTACHED 0x8800 // 0 - Attach attempted to server with valid, existing connection +#define NWE_CONN_INVALID 0x8801 // 1 - Request attempted with invalid or non-attached connection handle +#define NWE_DRIVE_IN_USE 0x8802 // 2 - OS/2 only (NOT USED) +#define NWE_DRIVE_CANNOT_MAP 0x8803 // 3 - Map drive attempted but unable to add new current directory structure +#define NWE_DRIVE_BAD_PATH 0x8804 // 4 - Map drive attempted with invalid path specification +#define NWE_NET_RECEIVE 0x8805 // 5 - Attempt to receive from the selected transport failed +#define NWE_NET_UNKNOWN 0x8806 // 6 - Network send attempted with an un-specific network error +#define NWE_SERVER_BAD_SLOT 0x8807 // 7 - Server request attempted with invalid server connection slot +#define NWE_SERVER_NO_SLOTS 0x8808 // 8 - Attach attempted to server with no connection slots available +#define NWE_NET_SEND 0x8809 // 9 - Attempt to send on the selected transport failed +#define NWE_SERVER_NO_ROUTE 0x880A // 10 - Attempted to find route to server where no route exists +#define NWE_BAD_LOCAL_TARGET 0x880B // 11 - OS/2 only +#define NWE_REQ_TOO_MANY_REQ_FRAGS 0x880C // 12 - Attempted request with too many request fragments specified +#define NWE_CONN_LIST_OVERFLOW 0x880D // 13 +#define NWE_BUFFER_OVERFLOW 0x880E // 14 - Attempt to receive more data than the reply buffer had room for +#define NWE_SERVER_NO_CONN 0x880F // 15 - Attempt to get connection for a server not connected +#define NWE_NO_ROUTER_FOUND 0x8810 // 16 - OS/2 only +#define NWE_FUNCTION_INVALID 0x8811 // 17 - Attempted function call to non- existent or illegal function +#define NWE_SCAN_COMPLETE 0x8812 +#define NWE_UNSUPPORTED_NAME_FORMAT_TYP 0x8813 +#define NWE_HANDLE_ALREADY_LICENSED 0x8814 +#define NWE_HANDLE_ALREADY_UNLICENSED 0x8815 +#define NWE_INVALID_NCP_PACKET_LENGTH 0x8816 +#define NWE_SETTING_UP_TIMEOUT 0x8817 +#define NWE_SETTING_SIGNALS 0x8818 +#define NWE_SERVER_CONNECTION_LOST 0x8819 +#define NWE_OUT_OF_HEAP_SPACE 0x881A +#define NWE_INVALID_SERVICE_REQUEST 0x881B +#define NWE_INVALID_TASK_NUMBER 0x881C +#define NWE_INVALID_MESSAGE_LENGTH 0x881D +#define NWE_EA_SCAN_DONE 0x881E +#define NWE_BAD_CONNECTION_NUMBER 0x881F +#define NWE_MULT_TREES_NOT_SUPPORTED 0x8820 // 32 - Attempt to open a connection to a DS tree other than the default tree +#define NWE_CONN_NOT_SAME 0x8830 // 48 - Internal server request attempted across different server connections +#define NWE_CONN_PRIMARY_NOT_SET 0x8831 // 49 - Attempt to retrieve default connection with no primary connection set +#define NWE_PRN_CAPTURE_NOT_IN_PROGRESS 0x8832 // 50 - Capture information requested on port with no capture in progress +#define NWE_BUFFER_INVALID_LEN 0x8833 // 51 - Used to indicate length which caller requested on a GetDNC or SetDNC was too large +#define NWE_USER_NO_NAME 0x8834 // 52 +#define NWE_PRN_NO_LOCAL_SPOOLER 0x8835 // 53 - Capture requested without having the local print spooler installed +#define NWE_PARAM_INVALID 0x8836 // 54 - Attempted function with an invalid function parameter specified +#define NWE_CFG_OPEN_FAILED 0x8837 // 55 - OS/2 only +#define NWE_CFG_NO_FILE 0x8838 // 56 - OS/2 only +#define NWE_CFG_READ_FAILED 0x8839 // 57 - OS/2 only +#define NWE_CFG_LINE_TOO_LONG 0x883A // 58 - OS/2 only +#define NWE_CFG_LINES_IGNORED 0x883B // 59 - OS/2 only +#define NWE_RESOURCE_NOT_OWNED 0x883C // 60 - Attempted request made with a parameter using foriegn resource +#define NWE_DAEMON_INSTALLED 0x883D // 61 - OS/2 only +#define NWE_PRN_SPOOLER_INSTALLED 0x883E // 62 - Attempted load of print spooler with print spooler already installed +#define NWE_CONN_TABLE_FULL 0x883F // 63 - Attempted to allocate a connection handle with no more local connection table entries +#define NWE_CFG_SECTION_NOT_FOUND 0x8840 // 64 - OS/2 only +#define NWE_TRAN_INVALID_TYPE 0x8841 // 65 - Attempted function on a connection with an invalid transport selected +#define NWE_TDS_TAG_IN_USE 0x8842 // 66 - OS/2 only +#define NWE_TDS_OUT_OF_MEMORY 0x8843 // 67 - OS/2 only +#define NWE_TDS_INVALID_TAG 0x8844 // 68 - Attempted TDS function with invalid tag +#define NWE_TDS_WRITE_TRUNCATED 0x8845 // 69 - Attempted TDS write with buffer that exceeded buffer +#define NWE_DS_NO_CONN 0x8846 // 70 +#define NWE_SERVICE_BUSY 0x8846 // 70 - Attempted request made to partially asynchronous function in busy state +#define NWE_SERVER_NOT_FOUND 0x8847 // 71 - Attempted connect failed to find any servers responding +#define NWE_VLM_INVALID 0x8848 // 72 - Attempted function call to non-existant or not-loaded overlay +#define NWE_DRIVE_ALREADY_MAPPED 0x8849 // 73 - Attempted map to network drive that was already mapped +#define NWE_DRIVE_LOCAL_IN_USE 0x884A // 74 - Attempted map to local drive that was in use +#define NWE_DRIVE_NONE_AVAILABLE 0x884B // 75 - Attempted map to next available drive when none were available +#define NWE_DEVICE_NOT_REDIRECTED 0x884C // 76 - The device is not redirected +#define NWE_FILE_MAX_REACHED 0x884D // 77 - Maximum number of files was reached +#define NWE_UNLOAD_FAILED 0x884E // 78 - Attempted unload failed +#define NWE_CONN_IN_USE 0x884F // 79 - Attempted re-use of already in use connection entry +#define NWE_REQ_TOO_MANY_REP_FRAGS 0x8850 // 80 - Attempted request with too many reply fragments specified +#define NWE_NAME_TABLE_FULL 0x8851 // 81 - Attempted to add a name into the name table after it was full +#define NWE_SOCKET_NOT_OPEN 0x8852 // 82 - Listen was posted on unopened socket +#define NWE_MEMORY_MGR_ERROR 0x8853 // 83 - Attempted enhanced memory operation failed +#define NWE_SFT3_ERROR 0x8854 // 84 - An SFT3 switch occured mid-transfer +#define NWE_DS_PREFERRED_NOT_FOUND 0x8855 // 85 - the preferred directory server was not established but another directory server was returned +#define NWE_DEVICE_NOT_RECOGNIZED 0x8856 // 86 - used to determine if the device is not used by VISE so pass it on to the next redirector, if any. +#define NWE_NET_INVALID_TYPE 0x8857 // 87 - the network type (Bind/NDS) does not match the server version +#define NWE_FILE_OPEN_FAILED 0x8858 // 88 - generic open failure error, invalid path, access denied, etc.. +#define NWE_DS_PREFERRED_NOT_SPECIFIED 0x8859 // 89 - no preferred name specified +#define NWE_SOCKET_OPEN_FAILED 0x885A // 90 - error opening a socket +#define NWE_SIGNATURE_LEVEL_CONFLICT 0x8861 +#define NWE_NO_LOCK_FOUND 0x8862 // OS/2 - process lock on conn handle failed, process ID not recognized +#define NWE_LOCK_TABLE_FULL 0x8863 // OS/2 - process lock on conn handle failed, process lock table full +#define NWE_INVALID_MATCH_DATA 0x8864 +#define NWE_MATCH_FAILED 0x8865 +#define NWE_NO_MORE_ENTRIES 0x8866 +#define NWE_INSUFFICIENT_RESOURCES 0x8867 +#define NWE_STRING_TRANSLATION 0x8868 +#define NWE_ACCESS_VIOLATION 0x8869 +#define NWE_NOT_AUTHENTICATED 0x886A +#define NWE_INVALID_LEVEL 0x886B +#define NWE_RESOURCE_LOCK 0x886C +#define NWE_INVALID_NAME_FORMAT 0x886D +#define NWE_OBJECT_EXISTS 0x886E +#define NWE_OBJECT_NOT_FOUND 0x886F +#define NWE_UNSUPPORTED_TRAN_TYPE 0x8870 +#define NWE_INVALID_STRING_TYPE 0x8871 +#define NWE_INVALID_OWNER 0x8872 +#define NWE_UNSUPPORTED_AUTHENTICATOR 0x8873 +#define NWE_IO_PENDING 0x8874 +#define NWE_INVALID_DRIVE_NUMBER 0x8875 +#define NWE_INVALID_DRIVE_BASE 0x8875 // LINUX +#define NWE_REPLY_TRUNCATED 0x88e6 // 230 NLM +#define NWE_REQUESTER_FAILURE 0x88FF + +// Server Errors + +#define NWE_INSUFFICIENT_SPACE 0x8901 // 001 +#define NWE_INVALID_CONNECTION 0x890a // 010 - nlm invalid connection +#define NWE_TIMEOUT 0x8910 // 016 - nlm connection timeout +#define NWE_NO_MORE_ENTRY 0x8914 // 020 +#define NWE_BUFFER_TOO_SMALL 0x8977 // 119 +#define NWE_VOL_FLAG_NOT_SET 0x8978 // 120 the service requested, not avail. on the selected vol. +#define NWE_NO_ITEMS_FOUND 0x8979 // 121 +#define NWE_CONN_ALREADY_TEMP 0x897a // 122 +#define NWE_CONN_ALREADY_LOGGED_IN 0x897b // 123 +#define NWE_CONN_NOT_AUTHENTICATED 0x897c // 124 +#define NWE_CONN_NOT_LOGGED_IN 0x897d // 125 +#define NWE_NCP_BOUNDARY_CHECK_FAILED 0x897e // 126 +#define NWE_LOCK_WAITING 0x897f // 127 +#define NWE_LOCK_FAIL 0x8980 // 128 +#define NWE_FILE_IN_USE 0x8980 // 128 +#define NWE_FILE_NO_HANDLES 0x8981 // 129 +#define NWE_FILE_NO_OPEN_PRIV 0x8982 // 130 +#define NWE_DISK_IO_ERROR 0x8983 // 131 +#define NWE_AUDITING_HARD_IO_ERROR 0x8983 // 131 +#define NWE_FILE_NO_CREATE_PRIV 0x8984 // 132 +#define NWE_AUDITING_NOT_SUPV 0x8984 // 132 +#define NWE_FILE_NO_CREATE_DEL_PRIV 0x8985 // 133 +#define NWE_FILE_EXISTS_READ_ONLY 0x8986 // 134 +#define NWE_FILE_WILD_CARDS_IN_NAME 0x8987 // 135 +#define NWE_FILE_INVALID_HANDLE 0x8988 // 136 +#define NWE_FILE_NO_SRCH_PRIV 0x8989 // 137 +#define NWE_FILE_NO_DEL_PRIV 0x898A // 138 +#define NWE_FILE_NO_RENAME_PRIV 0x898B // 139 +#define NWE_FILE_NO_MOD_PRIV 0x898C // 140 +#define NWE_FILE_SOME_IN_USE 0x898D // 141 +#define NWE_FILE_NONE_IN_USE 0x898E // 142 +#define NWE_FILE_SOME_READ_ONLY 0x898F // 143 +#define NWE_FILE_NONE_READ_ONLY 0x8990 // 144 +#define NWE_FILE_SOME_RENAMED_EXIST 0x8991 // 145 +#define NWE_FILE_NONE_RENAMED_EXIST 0x8992 // 146 +#define NWE_FILE_NO_READ_PRIV 0x8993 // 147 +#define NWE_FILE_NO_WRITE_PRIV 0x8994 // 148 +#define NWE_FILE_READ_ONLY 0x8994 // 148 +#define NWE_FILE_DETACHED 0x8995 // 149 +#define NWE_SERVER_OUT_OF_MEMORY 0x8996 // 150 +#define NWE_DIR_TARGET_INVALID 0x8996 // 150 +#define NWE_DISK_NO_SPOOL_SPACE 0x8997 // 151 +#define NWE_AUDITING_NOT_ENABLED 0x8997 // 151 +#define NWE_VOL_INVALID 0x8998 // 152 +#define NWE_DIR_FULL 0x8999 // 153 +#define NWE_VOL_RENAMING_ACROSS 0x899A // 154 +#define NWE_DIRHANDLE_INVALID 0x899B // 155 +#define NWE_PATH_INVALID 0x899C // 156 +#define NWE_TRUSTEES_NO_MORE 0x899C // 156 +#define NWE_DIRHANDLE_NO_MORE 0x899D // 157 +#define NWE_FILE_NAME_INVALID 0x899E // 158 +#define NWE_DIR_ACTIVE 0x899F // 159 +#define NWE_DIR_NOT_EMPTY 0x89A0 // 160 +#define NWE_DIR_IO_ERROR 0x89A1 // 161 +#define NWE_FILE_IO_LOCKED 0x89A2 // 162 +#define NWE_TTS_RANSACTION_RESTARTED 0x89A3 // 163 +#define NWE_TTS_TRANSACTION_RESTARTED 0x89A3 // 163 +#define NWE_DIR_RENAME_INVALID 0x89A4 // 164 +#define NWE_FILE_OPENCREAT_MODE_INVALID 0x89A5 // 165 +#define NWE_ALREADY_IN_USE 0x89A6 // 166 +#define NWE_AUDITING_ACTIVE 0x89A6 // 166 +#define NWE_RESOURCE_TAG_INVALID 0x89A7 // 167 +#define NWE_ACCESS_DENIED 0x89A8 // 168 +#define NWE_AUDITING_NO_RIGHTS 0x89A8 // 168 +#define NWE_DATA_STREAM_INVALID 0x89BE // 190 +#define NWE_NAME_SPACE_INVALID 0x89BF // 191 +#define NWE_ACCTING_NO_PRIV 0x89C0 // 192 +#define NWE_ACCTING_NO_BALANCE 0x89C1 // 193 +#define NWE_ACCTING_NO_CREDIT 0x89C2 // 194 +#define NWE_AUDITING_RECORD_SIZE 0x89C2 // 194 +#define NWE_ACCTING_TOO_MANY_HOLDS 0x89C3 // 195 +#define NWE_ACCTING_DISABLED 0x89C4 // 196 +#define NWE_LOGIN_LOCKOUT 0x89C5 // 197 +#define NWE_CONSOLE_NO_PRIV 0x89C6 // 198 +#define NWE_Q_IO_FAILURE 0x89D0 // 208 +#define NWE_Q_NONE 0x89D1 // 209 +#define NWE_Q_NO_SERVER 0x89D2 // 210 +#define NWE_Q_NO_RIGHTS 0x89D3 // 211 +#define NWE_Q_FULL 0x89D4 // 212 +#define NWE_Q_NO_JOB 0x89D5 // 213 +#define NWE_Q_NO_JOB_RIGHTS 0x89D6 // 214 +#define NWE_PASSWORD_UNENCRYPTED 0x89D6 // 214 +#define NWE_Q_IN_SERVICE 0x89D7 // 215 +#define NWE_PASSWORD_NOT_UNIQUE 0x89D7 // 215 +#define NWE_Q_NOT_ACTIVE 0x89D8 // 216 +#define NWE_PASSWORD_TOO_SHORT 0x89D8 // 216 +#define NWE_Q_STN_NOT_SERVER 0x89D9 // 217 +#define NWE_LOGIN_NO_CONN 0x89D9 // 217 +#define NWE_LOGIN_MAX_EXCEEDED 0x89D9 // 217 +#define NWE_Q_HALTED 0x89DA // 218 +#define NWE_LOGIN_UNAUTHORIZED_TIME 0x89DA // 218 +#define NWE_LOGIN_UNAUTHORIZED_STATION 0x89DB // 219 +#define NWE_Q_MAX_SERVERS 0x89DB // 219 +#define NWE_ACCT_DISABLED 0x89DC // 220 +#define NWE_PASSWORD_INVALID 0x89DE // 222 +#define NWE_PASSWORD_EXPIRED 0x89DF // 223 +#define NWE_LOGIN_NO_CONN_AVAIL 0x89E0 // 224 +#define NWE_E_NO_MORE_USERS 0x89E7 // 231 +#define NWE_BIND_NOT_ITEM_PROP 0x89E8 // 232 +#define NWE_BIND_WRITE_TO_GROUP_PROP 0x89E8 // 232 +#define NWE_BIND_MEMBER_ALREADY_EXISTS 0x89E9 // 233 +#define NWE_BIND_NO_SUCH_MEMBER 0x89EA // 234 +#define NWE_BIND_NOT_GROUP_PROP 0x89EB // 235 +#define NWE_BIND_NO_SUCH_SEGMENT 0x89EC // 236 +#define NWE_BIND_PROP_ALREADY_EXISTS 0x89ED // 237 +#define NWE_BIND_OBJ_ALREADY_EXISTS 0x89EE // 238 +#define NWE_BIND_NAME_INVALID 0x89EF // 239 +#define NWE_BIND_WILDCARD_INVALID 0x89F0 // 240 +#define NWE_BIND_SECURITY_INVALID 0x89F1 // 241 +#define NWE_BIND_OBJ_NO_READ_PRIV 0x89F2 // 242 +#define NWE_BIND_OBJ_NO_RENAME_PRIV 0x89F3 // 243 +#define NWE_BIND_OBJ_NO_DELETE_PRIV 0x89F4 // 244 +#define NWE_BIND_OBJ_NO_CREATE_PRIV 0x89F5 // 245 +#define NWE_BIND_PROP_NO_DELETE_PRIV 0x89F6 // 246 +#define NWE_BIND_PROP_NO_CREATE_PRIV 0x89F7 // 247 +#define NWE_BIND_PROP_NO_WRITE_PRIV 0x89F8 // 248 +#define NWE_BIND_PROP_NO_READ_PRIV 0x89F9 // 249 +#define NWE_NO_FREE_CONN_SLOTS 0x89F9 // 249 +#define NWE_NO_MORE_SERVER_SLOTS 0x89FA // 250 +#define NWE_TEMP_REMAP_ERROR 0x89FA // 250 +#define NWE_PARAMETERS_INVALID 0x89FB // 251 +#define NWE_BIND_NO_SUCH_PROP 0x89FB // 251 +#define NWE_NCP_NOT_SUPPORTED 0x89FB // 251 +#define NWE_INET_PACKET_REQ_CANCELED 0x89FC // 252 +#define NWE_SERVER_UNKNOWN 0x89FC // 252 +#define NWE_MSG_Q_FULL 0x89FC // 252 +#define NWE_BIND_NO_SUCH_OBJ 0x89FC // 252 +#define NWE_LOCK_COLLISION 0x89FD // 253 +#define NWE_CONN_NUM_INVALID 0x89FD // 253 +#define NWE_PACKET_LEN_INVALID 0x89FD // 253 +#define NWE_UNKNOWN_REQ 0x89FD // 253 +#define NWE_BIND_LOCKED 0x89FE // 254 +#define NWE_TRUSTEE_NOT_FOUND 0x89FE // 254 +#define NWE_DIR_LOCKED 0x89FE // 254 +#define NWE_SEM_INVALID_NAME_LEN 0x89FE // 254 +#define NWE_PACKET_NOT_DELIVERABLE 0x89FE // 254 +#define NWE_SOCKET_TABLE_FULL 0x89FE // 254 +#define NWE_SPOOL_DIR_ERROR 0x89FE // 254 +#define NWE_LOGIN_DISABLED_BY_SUPER 0x89FE // 254 +#define NWE_TIMEOUT_FAILURE 0x89FE // 254 +#define NWE_FILE_EXT 0x89FF // 255 +#define NWE_FILE_NAME 0x89FF // 255 +#define NWE_HARD_FAILURE 0x89FF // 255 +#define NWE_FCB_CLOSE 0x89FF // 255 +#define NWE_IO_BOUND 0x89FF // 255 +#define NWE_BAD_SPOOL_PRINTER 0x89FF // 255 +#define NWE_BAD_RECORD_OFFSET 0x89FF // 255 +#define NWE_DRIVE_INVALID_NUM 0x89FF // 255 +#define NWE_SEM_INVALID_INIT_VAL 0x89FF // 255 +#define NWE_SEM_INVALID_HANDLE 0x89FF // 255 +#define NWE_NO_FILES_FOUND_ERROR 0x89FF // 255 +#define NWE_NO_RESPONSE_FROM_SERVER 0x89FF // 255 +#define NWE_NO_OBJ_OR_BAD_PASSWORD 0x89FF // 255 +#define NWE_PATH_NOT_LOCATABLE 0x89FF // 255 +#define NWE_Q_FULL_ERROR 0x89FF // 255 +#define NWE_REQ_NOT_OUTSTANDING 0x89FF // 255 +#define NWE_SOCKET_ALREADY_OPEN 0x89FF // 255 +#define NWE_LOCK_ERROR 0x89FF // 255 +#define NWE_FAILURE 0x89FF // 255 Generic Failure + +#endif diff --git a/c_clientlogin/xplatincl/nwfile.h b/c_clientlogin/xplatincl/nwfile.h new file mode 100644 index 00000000..183df34a --- /dev/null +++ b/c_clientlogin/xplatincl/nwfile.h @@ -0,0 +1,659 @@ +/****************************************************************************** + + %name: nwfile.h % + %version: 13 % + %date_modified: Thu Oct 14 14:54:51 1999 % + $Copyright: + + Copyright (c) 1989-1997 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWFILE_H ) +#define NWFILE_H + +#if ! defined ( NTYPES_H ) +# include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef FILE_LOCKS_ONLY + +typedef struct NW_FILE_INFO +{ + nstr8 fileName[14]; + nuint8 fileAttributes; + nuint8 extendedFileAttributes; + nuint32 fileSize; + nuint16 creationDate; + nuint16 lastAccessDate; + nuint32 lastUpdateDateAndTime; + nuint32 fileOwnerID; + nuint32 lastArchiveDateAndTime; +} NW_FILE_INFO; + +typedef struct NW_FILE_INFO2 +{ + nuint8 fileAttributes; + nuint8 extendedFileAttributes; + nuint32 fileSize; + nuint16 creationDate; + nuint16 lastAccessDate; + nuint32 lastUpdateDateAndTime; + nuint32 fileOwnerID; + nuint32 lastArchiveDateAndTime; + nstr8 fileName[260]; +} NW_FILE_INFO2; + +typedef struct NW_FILE_INFO2_EXT +{ + nuint8 fileAttributes; + nuint8 extendedFileAttributes; + nuint32 fileSize; + nuint16 creationDate; + nuint16 lastAccessDate; + nuint32 lastUpdateDateAndTime; + nuint32 fileOwnerID; + nuint32 lastArchiveDateAndTime; + nstr8 fileName[766]; /* 255*3 + 1 */ +} NW_FILE_INFO2_EXT; + +typedef struct SEARCH_FILE_INFO +{ + nuint16 sequenceNumber; + nuint16 reserved; + nstr8 fileName[15]; + nuint8 fileAttributes; + nuint8 fileMode; + nuint32 fileLength; + nuint16 createDate; + nuint16 accessDate; + nuint16 updateDate; + nuint16 updateTime; +} SEARCH_FILE_INFO; + +typedef struct SEARCH_DIR_INFO +{ + nuint16 sequenceNumber; + nuint16 reserved1; + nstr8 directoryName[15]; + nuint8 directoryAttributes; + nuint8 directoryAccessRights; + nuint16 createDate; + nuint16 createTime; + nuint32 owningObjectID; + nuint16 reserved2; + nuint16 directoryStamp; +} SEARCH_DIR_INFO; + +typedef struct +{ + nuint8 taskNumber; + nuint8 lockType; + nuint8 accessControl; + nuint8 lockFlag; + nuint8 volNumber; + nuint16 dirEntry; + nstr8 fileName[14]; +} CONN_OPEN_FILE; + +typedef struct +{ + nuint16 nextRequest; + nuint8 connCount; + CONN_OPEN_FILE connInfo[22]; +} CONN_OPEN_FILES; + +typedef struct +{ + nuint16 taskNumber; + nuint8 lockType; + nuint8 accessControl; + nuint8 lockFlag; + nuint8 volNumber; + nuint32 parent; + nuint32 dirEntry; + nuint8 forkCount; + nuint8 nameSpace; + nuint8 nameLen; + nstr8 fileName[255]; +} OPEN_FILE_CONN; + +typedef struct +{ + nuint16 nextRequest; + nuint16 openCount; + nuint8 buffer[512]; + nuint16 curRecord; +} OPEN_FILE_CONN_CTRL; + +typedef struct +{ + nuint16 connNumber; + nuint16 taskNumber; + nuint8 lockType; + nuint8 accessControl; + nuint8 lockFlag; +} CONN_USING_FILE; + +typedef struct +{ + nuint16 nextRequest; + nuint16 useCount; + nuint16 openCount; + nuint16 openForReadCount; + nuint16 openForWriteCount; + nuint16 denyReadCount; + nuint16 denyWriteCount; + nuint8 locked; + nuint8 forkCount; + nuint16 connCount; + CONN_USING_FILE connInfo[70]; +} CONNS_USING_FILE; + +#define SEEK_FROM_BEGINNING 1 +#define SEEK_FROM_CURRENT_OFFSET 2 +#define SEEK_FROM_END 3 + +/* The following flags are to be used in the createFlag parameter of + the NWCreateFile call. */ + +#define NWCREATE_NEW_FILE 1 +#define NWOVERWRITE_FILE 2 + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetCompressedFileSize +( + NWCONN_HANDLE conn, + NWFILE_HANDLE fileHandle, + nuint32 reqFileSize, + pnuint32 resFileSize +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFileServerFileCopy +( + NWFILE_HANDLE srcFileHandle, + NWFILE_HANDLE dstFileHandle, + nuint32 srcOffset, + nuint32 dstOffset, + nuint32 bytesToCopy, + pnuint32 bytesCopied +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileConnectionID +( + NWFILE_HANDLE fileHandle, + NWCONN_HANDLE N_FAR * conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileConnRef +( + NWFILE_HANDLE fileHandle, + pnuint32 connRef +); + +N_GLOBAL_LIBRARY( NWCCODE ) +NWFileSearchInitialize +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint8 volNum, + pnuint16 dirID, + pnuint16 iterhandle, + pnuint8 accessRights +); + +#define NWIntFileSearchInitialize(a, b, c, d, e, f, g, h) \ + NWFileSearchInitialize(a, b, c, d, e, f, g) + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntFileSearchContinue +( + NWCONN_HANDLE conn, + nuint8 volNum, + nuint16 dirID, + nuint16 searchContext, + nuint8 searchAttr, + const nstr8 N_FAR * searchPath, + pnuint8 retBuf, + nuint16 augmentFlag +); + +#define NWScanFileInformation(a, b, c, d, e, f) \ + NWIntScanFileInformation(a, b, c, d, e, f, 0) + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanFileInformation +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * filePattern, + nuint8 searchAttr, + pnint16 iterhandle, + NW_FILE_INFO N_FAR * info, + nuint16 augmentFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetFileInformation +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * fileName, + nuint8 searchAttrs, + NW_FILE_INFO N_FAR * info +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetFileInformation2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * fileName, + nuint8 searchAttrs, + NW_FILE_INFO2 N_FAR * info +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanFileInformation2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * filePattern, + nuint8 searchAttrs, + pnuint8 iterHandle, + NW_FILE_INFO2 N_FAR * info, + nuint16 augmentFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntScanFileInformation2Ext +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * filePattern, + nuint8 searchAttrs, + pnuint8 iterHandle, + NW_FILE_INFO2_EXT N_FAR * info, + nuint16 augmentFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetFileAttributes +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * fileName, + nuint8 searchAttrs, + nuint8 newAttrs +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetExtendedFileAttributes2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint8 extAttrs +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanConnectionsUsingFile +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * filePath, + pnint16 iterhandle, + CONN_USING_FILE N_FAR * fileUse, + CONNS_USING_FILE N_FAR * fileUsed +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanOpenFilesByConn2 +( + NWCONN_HANDLE conn, + nuint16 connNum, + pnint16 iterHandle, + OPEN_FILE_CONN_CTRL N_FAR * openCtrl, + OPEN_FILE_CONN N_FAR * openFile +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanOpenFilesByConn +( + NWCONN_HANDLE conn, + nuint16 connNum, + pnint16 iterHandle, + CONN_OPEN_FILE N_FAR * openFile, + CONN_OPEN_FILES N_FAR * openFiles +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetExtendedFileAttributes2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 extAttrs +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRenameFile +( + NWCONN_HANDLE conn, + NWDIR_HANDLE oldDirHandle, + const nstr8 N_FAR * oldFileName, + nuint8 searchAttrs, + NWDIR_HANDLE newDirHandle, + const nstr8 N_FAR * newFileName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIntEraseFiles +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 searchAttrs, + nuint16 augmentFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetSparseFileBitMap +( + NWCONN_HANDLE conn, + nuint32 fileHandle, + nint16 flag, + nuint32 offset, + pnuint32 blockSize, + pnuint8 bitMap +); + +#endif + +#define NWLOCKS_INCLUDED + +N_EXTERN_LIBRARY( NWCCODE ) +NWLogPhysicalRecord +( + NWFILE_HANDLE fileHandle, + nuint32 recStartOffset, + nuint32 recLength, + nuint8 lockFlags, + nuint16 timeOut +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWLockPhysicalRecordSet +( + nuint8 lockFlags, + nuint16 timeOut +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReleasePhysicalRecordSet +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWClearPhysicalRecordSet +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReleasePhysicalRecord +( + NWFILE_HANDLE fileHandle, + nuint32 recStartOffset, + nuint32 recSize +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWClearPhysicalRecord +( + NWFILE_HANDLE fileHandle, + nuint32 recStartOffset, + nuint32 recSize +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWLockFileLockSet +( + nuint16 timeOut +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReleaseFileLockSet +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWClearFileLockSet +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWClearFileLock2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReleaseFileLock2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWLogFileLock2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 lockFlags, + nuint16 timeOut +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWLogLogicalRecord +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * logRecName, + nuint8 lockFlags, + nuint16 timeOut +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWLockLogicalRecordSet +( + nuint8 lockFlags, + nuint16 timeOut +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReleaseLogicalRecordSet +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWClearLogicalRecordSet +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReleaseLogicalRecord +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * logRecName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWClearLogicalRecord +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * logRecName +); + + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseFile +( + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCreateFile +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + pnstr8 fileName, + nuint8 fileAttrs, + NWFILE_HANDLE N_FAR * fileHandle, + nflag32 createFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenFile +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + pnstr8 fileName, + nuint16 searchAttr, + nuint8 accessRights, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadFile +( + NWFILE_HANDLE fileHandle, + nuint32 bytesToRead, + pnuint32 bytesActuallyRead, + pnuint8 data +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWWriteFile +( + NWFILE_HANDLE fileHandle, + nuint32 bytesToWrite, + pnuint8 data +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCommitFile +( + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetEOF +( + NWFILE_HANDLE fileHandle, + pnuint32 getEOF +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetEOF +( + NWFILE_HANDLE fileHandle, + nuint32 setEOF +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFilePos +( + NWFILE_HANDLE fileHandle, + pnuint32 filePos +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetFilePos +( + NWFILE_HANDLE fileHandle, + nuint mode, + nuint32 filePos +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileDirEntryNumber +( + NWFILE_HANDLE fileHandle, + pnuint32 volumeNum, + pnuint32 directoryEntry, + pnuint32 DOSDirectoryEntry, + pnuint32 nameSpace, + pnuint32 dataStream, + pnuint32 parentDirEntry, + pnuint32 parentDOSDirEntry +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDirectoryEntryNumber +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + pnuint32 volumeNum, + pnuint32 directoryEntry, + pnuint32 DOSDirectoryEntry, + pnuint32 nameSpace, + pnuint32 parentDirEntry, + pnuint32 parentDOSDirEntry +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSFileDirEntryNumber +( + NWFILE_HANDLE fileHandle, + nuint8 nameSpace, + pnuint32 volumeNum, + pnuint32 directoryEntry, + pnuint32 dataStream +); + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_file.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwfse.h b/c_clientlogin/xplatincl/nwfse.h new file mode 100644 index 00000000..29bb5bba --- /dev/null +++ b/c_clientlogin/xplatincl/nwfse.h @@ -0,0 +1,1849 @@ +/****************************************************************************** + + %name: nwfse.h % + %version: 12 % + %date_modified: Mon Oct 18 16:01:51 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWFSE_H ) +#define NWFSE_H + +#if ! defined ( NTYPES_H ) +# include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + nuint32 currentServerTime; + nuint8 vconsoleVersion; + nuint8 vconsoleRevision; +} SERVER_AND_VCONSOLE_INFO; + +/* Get Cache Information */ + +typedef struct +{ + nuint32 readExistingBlockCount; + nuint32 readExistingWriteWaitCount; + nuint32 readExistingPartialReadCount; + nuint32 readExistingReadErrorCount; + nuint32 writeBlockCount; + nuint32 writeEntireBlockCount; + nuint32 getDiskCount; + nuint32 getDiskNeedToAllocCount; + nuint32 getDiskSomeoneBeatMeCount; + nuint32 getDiskPartialReadCount; + nuint32 getDiskReadErrorCount; + nuint32 getAsyncDiskCount; + nuint32 getAsyncDiskNeedToAlloc; + nuint32 getAsyncDiskSomeoneBeatMe; + nuint32 errorDoingAsyncReadCount; + nuint32 getDiskNoReadCount; + nuint32 getDiskNoReadAllocCount; + nuint32 getDiskNoReadSomeoneBeatMeCount; + nuint32 diskWriteCount; + nuint32 diskWriteAllocCount; + nuint32 diskWriteSomeoneBeatMeCount; + nuint32 writeErrorCount; + nuint32 waitOnSemaphoreCount; + nuint32 allocBlockWaitForSomeoneCount; + nuint32 allocBlockCount; + nuint32 allocBlockWaitCount; +} CACHE_COUNTERS; + +typedef struct +{ + nuint32 originalNumOfCacheBuffers; + nuint32 currentNumOfCacheBuffers; + nuint32 cacheDirtyBlockThreshold; + nuint32 waitNodeCount; + nuint32 waitNodeAllocFailureCount; + nuint32 moveCacheNodeCount; + nuint32 moveCacheNodeFromAvailCount; + nuint32 accelerateCacheNodeWriteCount; + nuint32 removeCacheNodeCount; + nuint32 removeCacheNodeFromAvailCount; +} CACHE_MEM_COUNTERS; + +typedef struct +{ + nuint32 numCacheChecks; + nuint32 numCacheHits; + nuint32 numDirtyCacheChecks; + nuint32 numDirtyCacheHits; + nuint32 cacheUsedWhileChecking; + nuint32 waitForDirtyBlocksDecreaseCount; + nuint32 allocBlockFromAvailCount; + nuint32 allocBlockFromLRUCount; + nuint32 allocBlockAlreadyWaiting; + nuint32 LRUSittingTime; +} CACHE_TREND_COUNTERS; + +typedef struct +{ + nuint32 maxByteCount; + nuint32 minNumOfCacheBuffers; + nuint32 minCacheReportThreshold; + nuint32 allocWaitingCount; + nuint32 numDirtyBlocks; + nuint32 cacheDirtyWaitTime; + nuint32 cacheMaxConcurrentWrites; + nuint32 maxDirtyTime; + nuint32 numOfDirCacheBuffers; + nuint32 cacheByteToBlockShiftFactor; +} CACHE_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + CACHE_COUNTERS cacheCounters; + CACHE_MEM_COUNTERS cacheMemCounters; + CACHE_TREND_COUNTERS cacheTrendCounters; + CACHE_INFO cacheInformation; +} NWFSE_CACHE_INFO; + +/* Get File Server Information */ + +typedef struct +{ + nuint32 replyCanceledCount; + nuint32 writeHeldOffCount; + nuint32 writeHeldOffWithDupRequest; + /* writeHeldOffWithDuplicateRequest */ + nuint32 invalidRequestTypeCount; + nuint32 beingAbortedCount; + nuint32 alreadyDoingReallocCount; + nuint32 deAllocInvalidSlotCount; + nuint32 deAllocBeingProcessedCount; + nuint32 deAllocForgedPacketCount; + nuint32 deAllocStillTransmittingCount; + nuint32 startStationErrorCount; + nuint32 invalidSlotCount; + nuint32 beingProcessedCount; + nuint32 forgedPacketCount; + nuint32 stillTransmittingCount; + nuint32 reExecuteRequestCount; + nuint32 invalidSequenceNumCount; + nuint32 duplicateIsBeingSentAlreadyCnt; + nuint32 sentPositiveAcknowledgeCount; + nuint32 sentDuplicateReplyCount; + nuint32 noMemForStationCtrlCount; + nuint32 noAvailableConnsCount; + nuint32 reallocSlotCount; + nuint32 reallocSlotCameTooSoonCount; +} FSE_SERVER_INFO; + +typedef struct +{ + nuint16 tooManyHops; + nuint16 unknownNetwork; + nuint16 noSpaceForService; + nuint16 noReceiveBuffers; + nuint16 notMyNetwork; + nuint32 netBIOSProgatedCount; + nuint32 totalPacketsServiced; + nuint32 totalPacketsRouted; +} FILE_SERVER_COUNTERS; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 NCPStationsInUseCount; + nuint32 NCPPeakStationsInUseCount; + nuint32 numOfNCPRequests; + nuint32 serverUtilization; + FSE_SERVER_INFO ServerInfo; + FILE_SERVER_COUNTERS fileServerCounters; +} NWFSE_FILE_SERVER_INFO; + +/* Netware File Systems Information */ + +typedef struct +{ + nuint32 FATMovedCount; + nuint32 FATWriteErrorCount; + nuint32 someoneElseDidItCount0; + nuint32 someoneElseDidItCount1; + nuint32 someoneElseDidItCount2; + nuint32 iRanOutSomeoneElseDidItCount0; + nuint32 iRanOutSomeoneElseDidItCount1; + nuint32 iRanOutSomeoneElseDidItCount2; + nuint32 turboFATBuildScrewedUpCount; + nuint32 extraUseCountNodeCount; + nuint32 extraExtraUseCountNodeCount; + nuint32 errorReadingLastFATCount; + nuint32 someoneElseUsingThisFileCount; +} FSE_FILE_SYSTEM_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + FSE_FILE_SYSTEM_INFO fileSystemInfo; +} NWFSE_FILE_SYSTEM_INFO; + +/* User Information */ + +/* status */ +#define FSE_LOGGED_IN 0x00000001 +#define FSE_BEING_ABORTED 0x00000002 +#define FSE_AUDITED 0x00000004 +#define FSE_NEEDS_SECURITY_CHANGE 0x00000008 +#define FSE_MAC_STATION 0x00000010 +#define FSE_AUTHENTICATED_TEMPORARY 0x00000020 +#define FSE_AUDIT_CONNECTION_RECORDED 0x00000040 +#define FSE_DSAUDIT_CONNECTION_RECORDED 0x00000080 + +/* fileWriteFlags */ +#define FSE_WRITE 1 +#define FSE_WRITE_ABORTED 2 + +/* fileWriteState */ +#define FSE_NOT_WRITING 0 +#define FSE_WRITE_IN_PROGRESS 1 +#define FSE_WRITE_BEING_STOPPED 2 + +typedef struct +{ + nuint32 connNum; + nuint32 useCount; + nuint8 connServiceType; + nuint8 loginTime[ 7 ]; + nuint32 status; + nuint32 expirationTime; + nuint32 objType; + nuint8 transactionFlag; + nuint8 logicalLockThreshold; + nuint8 recordLockThreshold; + nuint8 fileWriteFlags; /* Includes active and stop bits */ + nuint8 fileWriteState; + nuint8 filler; + nuint16 fileLockCount; + nuint16 recordLockCount; + nuint8 totalBytesRead[ 6 ]; + nuint8 totalBytesWritten[ 6 ]; + nuint32 totalRequests; + nuint32 heldRequests; + nuint8 heldBytesRead[ 6 ]; + nuint8 heldBytesWritten[ 6 ]; +} USER_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + USER_INFO userInfo; +} NWFSE_USER_INFO; + +/* Packet Burst Information */ + +typedef struct +{ + nuint32 bigInvalidSlotCount; + nuint32 bigForgedPacketCount; + nuint32 bigInvalidPacketCount; + nuint32 bigStillTransmittingCount; + nuint32 stillDoingTheLastRequestCount; + nuint32 invalidCtrlRequestCount; + nuint32 ctrlInvalidMessageNumCount; + nuint32 ctrlBeingTornDownCount; + nuint32 bigRepeatTheFileReadCount; + nuint32 bigSendExtraCCCount; + nuint32 bigReturnAbortMessageCount; + nuint32 bigReadInvalidMessageNumCount; + nuint32 bigReadDoItOverCount; + nuint32 bigReadBeingTornDownCount; + nuint32 previousCtrlPacketCount; + nuint32 sendHoldOffMessageCount; + nuint32 bigReadNoDataAvailableCount; + nuint32 bigReadTryingToReadTooMuchCount; + nuint32 asyncReadErrorCount; + nuint32 bigReadPhysicalReadErrorCount; + nuint32 ctrlBadACKFragmentListCount; + nuint32 ctrlNoDataReadCount; + nuint32 writeDuplicateRequestCount; + nuint32 shouldntBeACKingHereCount; + nuint32 writeInconsistentPktLengthsCnt; + nuint32 firstPacketIsntAWriteCount; + nuint32 writeTrashedDuplicateRequestCnt; + nuint32 bigWriteInvalidMessageNumCount; + nuint32 bigWriteBeingTornDownCount; + nuint32 bigWriteBeingAbortedCount; + nuint32 zeroACKFragmentCountCount; + nuint32 writeCurrentlyTransmittingCount; + nuint32 tryingToWriteTooMuchCount; + nuint32 writeOutOfMemForCtrlNodesCount; + nuint32 writeDidntNeedThisFragmentCount; + nuint32 writeTooManyBuffsCheckedOutCnt; + /* writeTooManyBuffersCheckedOutCount */ + nuint32 writeTimeOutCount; + nuint32 writeGotAnACKCount; + nuint32 writeGotAnACKCount1; + nuint32 pollerAbortedTheConnCount; + nuint32 maybeHadOutOfOrderWritesCount; + nuint32 hadAnOutOfOrderWriteCount; + nuint32 movedTheACKBitDownCount; + nuint32 bumpedOutOfOrderWriteCount; + nuint32 pollerRemovedOldOutOfOrderCount; + nuint32 writeDidntNeedButRequestACKCnt; + /* writeDidntNeedButRequestedACKCount */ + nuint32 writeTrashedPacketCount; + nuint32 tooManyACKFragmentsCount; + nuint32 savedAnOutOfOrderPacketCount; + nuint32 connBeingAbortedCount; +} PACKET_BURST_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + PACKET_BURST_INFO packetBurstInfo; +} NWFSE_PACKET_BURST_INFO; + +/* IPX SPX Information */ + +typedef struct +{ + nuint32 IPXSendPacketCount; + nuint16 IPXMalformPacketCount; + nuint32 IPXGetECBRequestCount; + nuint32 IPXGetECBFailCount; + nuint32 IPXAESEventCount; + nuint16 IPXPostponedAESCount; + nuint16 IPXMaxConfiguredSocketCount; + nuint16 IPXMaxOpenSocketCount; + nuint16 IPXOpenSocketFailCount; + nuint32 IPXListenECBCount; + nuint16 IPXECBCancelFailCount; + nuint16 IPXGetLocalTargetFailCount; +} IPX_INFO; + +typedef struct +{ + nuint16 SPXMaxConnsCount; + nuint16 SPXMaxUsedConns; + nuint16 SPXEstConnReq; + nuint16 SPXEstConnFail; + nuint16 SPXListenConnectReq; + nuint16 SPXListenConnectFail; + nuint32 SPXSendCount; + nuint32 SPXWindowChokeCount; + nuint16 SPXBadSendCount; + nuint16 SPXSendFailCount; + nuint16 SPXAbortedConn; + nuint32 SPXListenPacketCount; + nuint16 SPXBadListenCount; + nuint32 SPXIncomingPacketCount; + nuint16 SPXBadInPacketCount; + nuint16 SPXSuppressedPackCount; + nuint16 SPXNoSesListenECBCount; + nuint16 SPXWatchDogDestSesCount; +} SPX_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + IPX_INFO IPXInfo; + SPX_INFO SPXInfo; +} NWFSE_IPXSPX_INFO; + +/* Garbage Collection Information */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 failedAllocRequestCount; + nuint32 numOfAllocs; + nuint32 noMoreMemAvailableCount; + nuint32 numOfGarbageCollections; + nuint32 garbageFoundSomeMem; + nuint32 garbageNumOfChecks; +} NWFSE_GARBAGE_COLLECTION_INFO; + +/* CPU Information */ + +#define FSE_CPU_STR_MAX 16 +#define FSE_COPROCESSOR_STR_MAX 48 +#define FSE_BUS_STR_MAX 32 + +typedef struct +{ + nuint32 pageTableOwnerFlag; + nuint32 CPUTypeFlag; + nuint32 coProcessorFlag; + nuint32 busTypeFlag; + nuint32 IOEngineFlag; + nuint32 FSEngineFlag; + nuint32 nonDedicatedFlag; +} CPU_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numOfCPUs; + CPU_INFO CPUInfo; +} NWFSE_CPU_INFO; + +/* Volume Switch Information */ + +typedef struct +{ + nuint32 readFile; + nuint32 writeFile; + nuint32 deleteFile; + nuint32 renMove; + nuint32 openFile; + nuint32 createFile; + nuint32 createAndOpenFile; + nuint32 closeFile; + nuint32 scanDeleteFile; + nuint32 salvageFile; + nuint32 purgeFile; + nuint32 migrateFile; + nuint32 deMigrateFile; + nuint32 createDir; + nuint32 deleteDir; + nuint32 directoryScans; + nuint32 mapPathToDirNum; + nuint32 modifyDirEntry; + nuint32 getAccessRights; + nuint32 getAccessRightsFromIDs; + nuint32 mapDirNumToPath; + nuint32 getEntryFromPathStrBase; + nuint32 getOtherNSEntry; + nuint32 getExtDirInfo; + nuint32 getParentDirNum; + nuint32 addTrusteeR; + nuint32 scanTrusteeR; + nuint32 delTrusteeR; + nuint32 purgeTrust; + nuint32 findNextTrustRef; + nuint32 scanUserRestNodes; + nuint32 addUserRest; + nuint32 deleteUserRest; + nuint32 rtnDirSpaceRest; + nuint32 getActualAvailDskSp; + nuint32 cntOwnedFilesAndDirs; + nuint32 migFileInfo; + nuint32 volMigInfo; + nuint32 readMigFileData; + nuint32 getVolUsageStats; + nuint32 getActualVolUsageStats; + nuint32 getDirUsageStats; + nuint32 NMFileReadsCount; + nuint32 NMFileWritesCount; + /* nuint32 mapPathToDirectoryNumberOrPhantom; */ + nuint32 mapPathToDirNumOrPhantom; + /* nuint32 stationHasAccessRightsGrantedBelow; */ + nuint32 stationHasAccessRgtsGntedBelow; + /* nuint32 getDataStreamLengthsFromPathStringBase; */ + nuint32 gtDataStreamLensFromPathStrBase; + nuint32 checkAndGetDirectoryEntry; + nuint32 getDeletedEntry; + nuint32 getOriginalNameSpace; + nuint32 getActualFileSize; + nuint32 verifyNameSpaceNumber; + nuint32 verifyDataStreamNumber; + nuint32 checkVolumeNumber; + nuint32 commitFile; + nuint32 VMGetDirectoryEntry; + nuint32 createDMFileEntry; + nuint32 renameNameSpaceEntry; + nuint32 logFile; + nuint32 releaseFile; + nuint32 clearFile; + nuint32 setVolumeFlag; + nuint32 clearVolumeFlag; + nuint32 getOriginalInfo; + nuint32 createMigratedDir; + nuint32 F3OpenCreate; + nuint32 F3InitFileSearch; + nuint32 F3ContinueFileSearch; + nuint32 F3RenameFile; + nuint32 F3ScanForTrustees; + nuint32 F3ObtainFileInfo; + nuint32 F3ModifyInfo; + nuint32 F3EraseFile; + nuint32 F3SetDirHandle; + nuint32 F3AddTrustees; + nuint32 F3DeleteTrustees; + nuint32 F3AllocDirHandle; + nuint32 F3ScanSalvagedFiles; + nuint32 F3RecoverSalvagedFiles; + nuint32 F3PurgeSalvageableFile; + nuint32 F3GetNSSpecificInfo; + nuint32 F3ModifyNSSpecificInfo; + nuint32 F3SearchSet; + nuint32 F3GetDirBase; + nuint32 F3QueryNameSpaceInfo; + nuint32 F3GetNameSpaceList; + nuint32 F3GetHugeInfo; + nuint32 F3SetHugeInfo; + nuint32 F3GetFullPathString; + nuint32 F3GetEffectiveDirectoryRights; +} VOLUME_SWITCH_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 totalLFSCounters; + nuint32 CurrentLFSCounters; + nuint32 LFSCounters[ 128 ]; /* 512 / sizeof(nuint32) */ + /* VOLUME_SWITCH_INFO volumeSwitchInfo; */ /* Cant return all counters */ +} NWFSE_VOLUME_SWITCH_INFO; + +/* Get NLM Loaded List */ + +#define FSE_NLM_NUMS_RETURNED_MAX 128 +#define FSE_NLM_NUMS_MAX 130 + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numberNLMsLoaded; + nuint32 NLMsInList; + nuint32 NLMNums[ FSE_NLM_NUMS_RETURNED_MAX ]; +} NWFSE_NLM_LOADED_LIST; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numberNLMsLoaded; + nuint32 NLMsInList; + nuint32 NLMNums[ FSE_NLM_NUMS_MAX ]; +} NWFSE_NLM_LOADED_LIST_LG; + +/* NLM Information */ + +/* 1 is added for the NULL */ + +#define FSE_NLM_FILENAME_LEN_MAX 37 +#define FSE_NLM_NAMELEN_MAX 129 +#define FSE_NLM_COPYRIGHTLEN_MAX 256 + +typedef struct +{ + nuint32 identificationNum; + nuint32 flags; + nuint32 type; + nuint32 parentID; + nuint32 majorVersion; + nuint32 minorVersion; + nuint32 revision; + nuint32 year; + nuint32 month; + nuint32 day; + nuint32 allocAvailableBytes; + nuint32 allocFreeCount; + nuint32 lastGarbageCollection; + nuint32 messageLanguage; + nuint32 numOfReferencedPublics; +} NLM_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + NLM_INFO NLMInfo; +} NWFSE_NLM_INFO; + +/* Get Directory Cache Information */ + +typedef struct +{ + nuint32 minTimeSinceFileDelete; + nuint32 absMinTimeSinceFileDelete; + nuint32 minNumOfDirCacheBuffers; + nuint32 maxNumOfDirCacheBuffers; + nuint32 numOfDirCacheBuffers; + nuint32 dCMinNonReferencedTime; + nuint32 dCWaitTimeBeforeNewBuffer; + nuint32 dCMaxConcurrentWrites; + nuint32 dCDirtyWaitTime; + nuint32 dCDoubleReadFlag; + nuint32 mapHashNodeCount; + nuint32 spaceRestrictionNodeCount; + nuint32 trusteeListNodeCount; + nuint32 percentOfVolumeUsedByDirs; +} DIR_CACHE_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + DIR_CACHE_INFO dirCacheInfo; +} NWFSE_DIR_CACHE_INFO; + +/* Get Operating System Version Information */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint8 OSMajorVersion; + nuint8 OSMinorVersion; + nuint8 OSRevisionNum; + nuint8 accountingVersion; + nuint8 VAPVersion; + nuint8 queueingVersion; + nuint8 securityRestrictionsLevel; + nuint8 bridgingSupport; + nuint32 maxNumOfVolumes; + nuint32 numOfConnSlots; + nuint32 maxLoggedInConns; + nuint32 maxNumOfNameSpaces; + nuint32 maxNumOfLans; + nuint32 maxNumOfMediaTypes; + nuint32 maxNumOfProtocols; + nuint32 maxMaxSubdirTreeDepth; + nuint32 maxNumOfDataStreams; + nuint32 maxNumOfSpoolPrinters; + nuint32 serialNum; + nuint16 applicationNum; +} NWFSE_OS_VERSION_INFO; + +/* Get Active Connection List by Type */ + +/* Connection service type */ +/* NOTE: type 1 is reserved by CLIB for backward compatability */ + +#define FSE_NCP_CONNECTION_TYPE 2 +#define FSE_NLM_CONNECTION_TYPE 3 +#define FSE_AFP_CONNECTION_TYPE 4 +#define FSE_FTAM_CONNECTION_TYPE 5 +#define FSE_ANCP_CONNECTION_TYPE 6 +#define FSE_ACP_CONNECTION_TYPE 7 +#define FSE_SMB_CONNECTION_TYPE 8 +#define FSE_WINSOCK_CONNECTION_TYPE 9 +#define FSE_HTTP_CONNECTION_TYPE 10 +#define FSE_UDP_CONNECTION_TYPE 11 + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint8 activeConnBitList[ 512 ]; +} NWFSE_ACTIVE_CONN_LIST; + +/* Get NLM's Resource Tag List */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 totalNumOfResourceTags; + nuint32 packetResourceTags; + nuint8 resourceTagBuf[ 512 ]; + /* This packed structure consisting of: + ** + ** nuint32 number, + ** nuint32 signature, + ** nuint32 count, + ** nuint8 name[] */ +} NWFSE_NLMS_RESOURCE_TAG_LIST; + +/* Active LAN Board List --- 20 */ + +#define FSE_MAX_NUM_OF_LANS 64 + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 MaxNumOfLANs; + nuint32 LANLoadedCount; + nuint32 boardNums[ FSE_MAX_NUM_OF_LANS ]; +} NWFSE_ACTIVE_LAN_BOARD_LIST; + +/* LAN Configuration Information */ + +typedef struct +{ + nuint8 DriverCFG_MajorVersion; + nuint8 DriverCFG_MinorVersion; + nuint8 DriverNodeAddress[ 6 ]; + nuint16 DriverModeFlags; + nuint16 DriverBoardNum; + nuint16 DriverBoardInstance; + nuint32 DriverMaxSize; + nuint32 DriverMaxRecvSize; + nuint32 DriverRecvSize; + nuint32 Reserved1[3]; + nuint16 DriverCardID; + nuint16 DriverMediaID; + nuint16 DriverTransportTime; + nuint8 DriverReserved[ 16 ]; + nuint8 DriverMajorVersion; + nuint8 DriverMinorVersion; + nuint16 DriverFlags; + nuint16 DriverSendRetries; + nuint32 DriverLink; + nuint16 DriverSharingFlags; + nuint16 DriverSlot; + nuint16 DriverIOPortsAndLengths[ 4 ]; + nuint32 DriverMemDecode0; + nuint16 DriverLength0; + nuint32 DriverMemDecode1; + nuint16 DriverLength1; + nuint8 DriverInterrupt[ 2 ]; + nuint8 DriverDMAUsage[ 2 ]; + nuint32 Reserved2[3]; + nuint8 DriverLogicalName[ 18 ]; + nuint32 DriverLinearMem[ 2 ]; + nuint16 DriverChannelNum; + nuint8 DriverIOReserved[ 6 ]; +} LAN_CONFIG_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + LAN_CONFIG_INFO LANConfigInfo; +} NWFSE_LAN_CONFIG_INFO; + +/* LAN Common Counters Information */ + +typedef struct +{ + nuint32 notSupportedMask; + nuint32 totalTxPacketCount; + nuint32 totalRxPacketCount; + nuint32 noECBAvailableCount; + nuint32 packetTxTooBigCount; + nuint32 packetTxTooSmallCount; + nuint32 packetRxOverflowCount; + nuint32 packetRxTooBigCount; + nuint32 packetRxTooSmallCount; + nuint32 packetTxMiscErrorCount; + nuint32 packetRxMiscErrorCount; + nuint32 retryTxCount; + nuint32 checksumErrorCount; + nuint32 hardwareRxMismatchCount; + nuint32 reserved[50]; +} LAN_COMMON_INFO; + + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint8 statisticsMajorVersion; + nuint8 statisticsMinorVersion; + nuint32 numberOfGenericCounters; + nuint32 numberOfCounterBlocks; + nuint32 customVariableCount; + nuint32 NextCounterBlock; + LAN_COMMON_INFO LANCommonInfo; +} NWFSE_LAN_COMMON_COUNTERS_INFO; + +/* LAN Custom Counters Information */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numCustomVar; + nuint8 customInfo[ 512 ]; /* (nint32, nuint8[])[] - nuint8[] is a length preceded + ** non-null terminated string. */ +} NWFSE_LAN_CUSTOM_INFO; + +/* LSL Information */ + +typedef struct +{ + nuint32 rxBufs; + nuint32 rxBufs75PerCent; + nuint32 rxBufsCheckedOut; + nuint32 rxBufMaxSize; + nuint32 maxPhysicalSize; + nuint32 lastTimeRxBufAllocated; + nuint32 maxNumsOfProtocols; + nuint32 maxNumsOfMediaTypes; + nuint32 totalTXPackets; + nuint32 getECBBfrs; + nuint32 getECBFails; + nuint32 AESEventCounts; + nuint32 postponedEvents; + nuint32 ECBCxlFails; + nuint32 validBfrsReused; + nuint32 enqueuedSendCount; + nuint32 totalRXPackets; + nuint32 unclaimedPackets; + nuint8 StatisticsTableMajorVersion; + nuint8 StatisticsTableMinorVersion; +} LSL_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + LSL_INFO LSLInfo; +} NWFSE_LSL_INFO; + +/* LSL Logical Board Statistics */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved0; + nuint32 LogTtlTxPackets; + nuint32 LogTtlRxPackets; + nuint32 LogUnclaimedPackets; + nuint32 reserved1; +} NWFSE_LSL_LOGICAL_BOARD_STATS; + +/* objtype */ + +#define FSE_ADAPTER_OBJECT 0 +#define FSE_CHANGER_OBJECT 1 +#define FSE_DEVICE_OBJECT 2 +#define FSE_MEDIA_OBJECT 4 +#define FSE_PARTITION_OBJECT 5 +#define FSE_SLOT_OBJECT 6 +#define FSE_HOTFIX_OBJECT 7 +#define FSE_MIRROR_OBJECT 8 +#define FSE_PARITY_OBJECT 9 +#define FSE_VOLUME_SEG_OBJECT 10 +#define FSE_VOLUME_OBJECT 11 +#define FSE_CLONE_OBJECT 12 +#define FSE_MAGAZINE_OBJECT 14 +#define FSE_VIRTUAL_DEVICE_OBJECT 15 +#define FSE_MAX_OBJECTS 128 + +#define FSE_UNKNOWN_OBJECT 0xFFFF +#define FSE_UNKNOWN_OBJECT_TYPE 0xFFFF + + +/* mediatype */ + +#define FSE_HARD_DISK 0 +#define FSE_CDROM_DISK 1 +#define FSE_WORM_DISK 2 +#define FSE_TAPE_DEVICE 3 +#define FSE_MAGNETO_OPTICAL 4 + +/* cartridgetype */ + +#define FSE_FIXED_MEDIA 0x00000000 +#define FSE_FLOPPY_5_25 0x00000001 +#define FSE_FLOPPY_3_5 0x00000002 +#define FSE_OPTICAL_5_25 0x00000003 +#define FSE_OPTICAL_3_5 0x00000004 +#define FSE_TAPE_0_5 0x00000005 +#define FSE_TAPE_0_25 0x00000006 +#define FSE_TAPE_8_MM 0x00000007 +#define FSE_TAPE_4_MM 0x00000008 +#define FSE_BERNOULLI_DISK 0x00000009 + +/* type */ +/* same as defined below for object types */ + +/* status bits */ + +#define FSE_OBJECT_ACTIVATED 0x00000001 +#define FSE_OBJECT_CREATED 0x00000002 +#define FSE_OBJECT_SCRAMBLED 0x00000004 +#define FSE_OBJECT_RESERVED 0x00000010 +#define FSE_OBJECT_BEING_IDENTIFIED 0x00000020 +#define FSE_OBJECT_MAGAZINE_LOADED 0x00000040 +#define FSE_OBJECT_FAILURE 0x00000080 +#define FSE_OBJECT_REMOVABLE 0x00000100 +#define FSE_OBJECT_READ_ONLY 0x00000200 +#define FSE_OBJECT_IN_DEVICE 0x00010000 +#define FSE_OBJECT_ACCEPTS_MAGAZINES 0x00020000 +#define FSE_OBJECT_IS_IN_A_CHANGER 0x00040000 +#define FSE_OBJECT_LOADABLE 0x00080000 +#define FSE_OBJECT_BEING_LOADED 0x00080000 +#define FSE_OBJECT_DEVICE_LOCK 0x01000000 +#define FSE_OBJECT_CHANGER_LOCK 0x02000000 +#define FSE_OBJECT_REMIRRORING 0x04000000 +#define FSE_OBJECT_SELECTED 0x08000000 + +/* functionmask */ + +#define FSE_RANDOM_READ 0x0001 +#define FSE_RANDOM_WRITE 0x0002 +#define FSE_RANDOM_WRITE_ONCE 0x0004 +#define FSE_SEQUENTIAL_READ 0x0008 +#define FSE_SEQUENTIAL_WRITE 0x0010 +#define FSE_RESET_END_OF_TAPE 0x0020 +#define FSE_SINGLE_FILE_MARK 0x0040 +#define FSE_MULTIPLE_FILE_MARK 0x0080 +#define FSE_SINGLE_SET_MARK 0x0100 +#define FSE_MULTIPLE_SET_MARK 0x0200 +#define FSE_SPACE_DATA_BLOCKS 0x0400 +#define FSE_LOCATE_DATA_BLOCKS 0x0800 +#define FSE_POSITION_PARTITION 0x1000 +#define FSE_POSITION_MEDIA 0x2000 + +/* controlmask */ + +#define FSE_ACTIVATE_DEACTIVE 0x0001 +#define FSE_MOUNT_DISMOUNT 0x0002 +#define FSE_SELECT_UNSELECT 0x0004 +#define FSE_LOCK_UNLOCK 0x0008 +#define FSE_EJECT 0x0010 +#define FSE_MOVE 0x0020 + +typedef struct +{ + nuint8 label[ 64 ]; + nuint32 identificationType; + nuint32 identificationTimeStamp; +} MEDIA_INFO_DEF; + +typedef struct +{ + MEDIA_INFO_DEF MediaInfo; + nuint32 mediaType; + nuint32 cartridgeType; + nuint32 unitSize; + nuint32 blockSize; + nuint32 capacity; + nuint32 preferredUnitSize; + nuint8 name[ 64 ]; + nuint32 type; + nuint32 status; + nuint32 functionMask; + nuint32 controlMask; + nuint32 parentCount; + nuint32 siblingCount; + nuint32 childCount; + nuint32 specificInfoSize; + nuint32 objectUniqueID; + nuint32 mediaSlot; +} FSE_MM_OBJ_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + FSE_MM_OBJ_INFO fseMMObjInfo; +} NWFSE_MEDIA_MGR_OBJ_INFO; + +/* Get Media Manager Objects List + Get Media Manager Object Children's List */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 nextStartObjNum; + nuint32 objCount; + nuint32 objs[ FSE_MAX_OBJECTS ]; +} NWFSE_MEDIA_MGR_OBJ_LIST; + +/* Get Volume Segment List */ + +#define FSE_MAX_NUM_SEGS_RETURNED 43 + +typedef struct +{ + nuint32 volumeSegmentDeviceNum; + nuint32 volumeSegmentOffset; + nuint32 volumeSegmentSize; +} VOLUME_SEGMENT; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numOfVolumeSegments; /* segment info follows */ + VOLUME_SEGMENT volumeSegment[ 42 ]; /* VOLUME_SEGMENT structures are packed */ +} NWFSE_VOLUME_SEGMENT_LIST; + +/* Volume Information by Level */ + +typedef struct { + nuint32 volumeType; + nuint32 statusFlagBits; + nuint32 sectorSize; + nuint32 sectorsPerCluster; + nuint32 volumeSizeInClusters; + nuint32 freedClusters; + nuint32 subAllocFreeableClusters; + nuint32 freeableLimboSectors; + nuint32 nonFreeableLimboSectors; + nuint32 nonFreeableAvailSubAllocSectors; + nuint32 notUsableSubAllocSectors; + nuint32 subAllocClusters; + nuint32 dataStreamsCount; + nuint32 limboDataStreamsCount; + nuint32 oldestDeletedFileAgeInTicks; + nuint32 compressedDataStreamsCount; + nuint32 compressedLimboDataStreamsCount; + nuint32 unCompressableDataStreamsCount; + nuint32 preCompressedSectors; + nuint32 compressedSectors; + nuint32 migratedFiles; + nuint32 migratedSectors; + nuint32 clustersUsedByFAT; + nuint32 clustersUsedByDirectories; + nuint32 clustersUsedByExtendedDirs; + nuint32 totalDirectoryEntries; + nuint32 unUsedDirectoryEntries; + nuint32 totalExtendedDirectoryExtants; + nuint32 unUsedExtendedDirectoryExtants; + nuint32 extendedAttributesDefined; + nuint32 extendedAttributeExtantsUsed; + nuint32 directoryServicesObjectID; + nuint32 volumeLastModifiedDateAndTime; +} VOLUME_INFO_BY_LEVEL_DEF; + +typedef struct +{ + nuint32 volumeActiveCount; + nuint32 volumeUseCount; + nuint32 mACRootIDs; + nuint32 volumeLastModifiedDateAndTime; + nuint32 volumeReferenceCount; + nuint32 compressionLowerLimit; + nuint32 outstandingIOs; + nuint32 outstandingCompressionIOs; + nuint32 compressionIOsLimit; +} VOLUME_INFO_BY_LEVEL_DEF2; + +typedef union +{ + VOLUME_INFO_BY_LEVEL_DEF volInfoDef; + VOLUME_INFO_BY_LEVEL_DEF2 volInfoDef2; +} VOLUME_INFO_BY_LEVEL; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverAndVConsoleInfo; + nuint16 reserved; + nuint32 infoLevel; + VOLUME_INFO_BY_LEVEL volumeInfo; +} NWFSE_VOLUME_INFO_BY_LEVEL; + + +/* Active Protocol Stacks */ + +#define FSE_MAX_NUM_OF_STACKINFO 25 + +typedef struct +{ + nuint32 StackNum; + nuint8 StackShortName[ 16 ]; +} STACK_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 maxNumOfStacks; + nuint32 stackCount; + nuint32 nextStartNum; + STACK_INFO stackInfo[ FSE_MAX_NUM_OF_STACKINFO ]; +} NWFSE_ACTIVE_STACKS; + +/* Get Protocol Stack Configuration Information */ + +#define FSE_STK_FULL_NAME_STR_LEN_MAX 256 + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint8 configMajorVersionNum; + nuint8 configMinorVersionNum; + nuint8 stackMajorVersionNum; + nuint8 stackMinorVersionNum; + nuint8 stackShortName[ 16 ]; +} NWFSE_PROTOCOL_STK_CONFIG_INFO; + +/* Get Protocol Stack Statistics Information */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint8 statMajorVersionNum; + nuint8 statMinorVersionNum; + nuint16 commonCounters; /* always set to 3? */ + nuint32 validCountersMask; + nuint32 totalTxPackets; + nuint32 totalRxPackets; + nuint32 ignoredRxPackets; + nuint16 numCustomCounters; +} NWFSE_PROTOCOL_STK_STATS_INFO; + +/* Get Protocol Stack Custom Information */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved0; + nuint32 customCount; + nuint8 customStruct[ 512 ]; /* (nint32, nuint8[])[] - nuint8[] is a length preceded + ** non-null terminated string. */ +} NWFSE_PROTOCOL_CUSTOM_INFO; + +#define FSE_STACK_IDS_MAX 128 + +#define FSE_NO_FRAME_ID_MAC 0 +#define FSE_APPLE_LOCALTALK 1 +#define FSE_ETHERNETII_DEC 2 +#define FSE_ETHERNET_802_3_USING_802_2 3 +#define FSE_TRING_802_5_USING_802_2 4 +#define FSE_IPX_802_3 5 +#define FSE_TOKEN_PASSING_BUS 6 +#define FSE_IBM_PC_NETWORK_II 7 +#define FSE_GATEWAY_GNET 8 +#define FSE_PROTEON_PRONET 9 +#define FSE_ENET_802_3_USING_802_2_SNAP 10 +#define FSE_TRING_802_5_USE_802_2_SNAP 11 +#define FSE_RACORE_FRAME 12 +#define FSE_ISDN_FRAME 13 +#define FSE_NOVELL_ARCNET 14 +#define FSE_IBM_PCN2_USING_802_2 15 +#define FSE_IBM_PCN2_USING_802_2_SNAP 16 +#define FSE_CORVUS_FRAME 17 +#define FSE_HARRIS_ADACOM_FRAME 18 +#define FSE_IP_TUNNEL_FRAME 19 +#define FSE_FDDI_USING_802_2 20 +#define FSE_COMMTEX_FRAME 21 +#define FSE_DATACO_FRAME 22 +#define FSE_FDDI_USING_802_2_SMAP 23 +#define FSE_SDLC_TUNNEL 24 +#define FSE_PC_OFFICE_FRAME 25 +#define FSE_HYPERCOMMUNICATIONS 26 +#define FSE_NOVELL_FRAME 27 + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 stackIDCount; + nuint32 stackIDs[ FSE_STACK_IDS_MAX ]; +} NWFSE_PROTOCOL_ID_NUMS; + +/* Get Media Name by Media Number */ + +#define FSE_MEDIA_NAME_LEN_MAX 81 + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; +} NWFSE_MEDIA_NAME_LIST; + +/* Get Loaded Media Number List */ + +#define FSE_MEDIA_LIST_MAX 32 + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 maxMediaTypes; + nuint32 mediaListCount; + nuint32 mediaList[ FSE_MEDIA_LIST_MAX ]; +} NWFSE_LOADED_MEDIA_NUM_LIST; + +/* Get General Router And SAP Information */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 internalRIPSocket; + nuint32 internalRouterDownFlag; + nuint32 trackOnFlag; + nuint32 externalRouterActiveFlag; + nuint32 internalSAPSocketNumber; + nuint32 replyToNearestServerFlag; +} NWFSE_GENERAL_ROUTER_SAP_INFO; + +/* Get Network Router Information */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 NetIDNumber; + nuint16 HopsToNet; + nuint16 NetStatus; + nuint16 TimeToNet; +} NWFSE_NETWORK_ROUTER_INFO; + +/* Get Network Routers Information */ + +typedef struct +{ + nuint8 nodeAddress[ 6 ]; + nuint32 connectedLAN; + nuint16 routeHops; + nuint16 routeTime; +} ROUTERS_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 NumberOfEntries; + ROUTERS_INFO routersInfo[ 36 ]; /* 512 / sizeof( ROUTERS_INFO ) */ +} NWFSE_NETWORK_ROUTERS_INFO; + +/* Get Known Networks Information */ + +#define FSE_LOCALBIT 0x01 +#define FSE_NETSTARBIT 0x02 +#define FSE_NETRELIABLEBIT 0x04 +#define FSE_NETWANBIT 0x10 + +typedef struct +{ + nuint32 netIDNumber; + nuint16 hopsToNet; + nuint16 netStatus; + nuint16 timeToNet; +} KNOWN_NET_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numberOfEntries; + KNOWN_NET_INFO knownNetInfo[ 51 ]; /* 512 / sizeof( KNOWN_NET_INFO ) */ +} NWFSE_KNOWN_NETWORKS_INFO; + +/* Get Server Information */ + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint8 serverAddress[ 12 ]; + nuint16 hopsToServer; +} NWFSE_SERVER_INFO; + +/* Get Server Sources Information */ + +typedef struct +{ + nuint8 serverNode[ 6 ]; + nuint32 connectedLAN; + nuint16 sourceHops; +} SERVERS_SRC_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numberOfEntries; + SERVERS_SRC_INFO serversSrcInfo[ 42 ]; /* 512 / sizeof( SERVERS_SRC_INFO ) */ +} NWFSE_SERVER_SRC_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numberOfEntries; + nuint8 data[ 512 ]; +} NWFSE_KNOWN_SERVER_INFO; + +#define FSE_TYPE_NUMBER 0 +#define FSE_TYPE_BOOLEAN 1 +#define FSE_TYPE_TICKS 2 +#define FSE_TYPE_BLOCK_SHIFT 3 /* 512 * number */ +#define FSE_TYPE_TIME_OFFSET 4 /* [+|-]hh:mm:ss converted to seconds */ +#define FSE_TYPE_STRING 5 +#define FSE_TYPE_TRIGGER 6 /* The following show the types of triggers */ +#define FSE_TYPE_TRIGGER_OFF 0x00 +#define FSE_TYPE_TRIGGER_ON 0x01 +#define FSE_TYPE_TRIGGER_PENDING 0x10 +#define FSE_TYPE_TRIGGER_SUCCESS 0x20 +#define FSE_TYPE_TRIGGER_FAILED 0x30 + +/* setCmdFlags */ + +#define FSE_STARTUP_ONLY 0x01 +#define FSE_HIDE 0x02 +#define FSE_ADVANCED 0x04 +#define FSE_STARTUP_OR_LATER 0x08 +#define FSE_NOT_SECURED_CONSOLE 0x10 /* Can't be performed on secured console*/ + +/* setCmdCategory */ + +#define FSE_COMMUNICATIONS 0 +#define FSE_MEMORY 1 +#define FSE_FILE_CACHE 2 +#define FSE_DIR_CACHE 3 +#define FSE_FILE_SYSTEM 4 +#define FSE_LOCKS 5 +#define FSE_TRANSACTION_TRACKING 6 +#define FSE_DISK 7 +#define FSE_TIME 8 +#define FSE_NCP 9 +#define FSE_MISCELLANEOUS 10 +#define FSE_ERRORS 11 +#define FSE_DIRECTORY_SERVICES 12 +#define FSE_MULTIPROCESSOR 13 +#define FSE_SERVICE_LOCATION_PROTOCOL 14 + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numberOfSetCommands; + nuint32 nextSequenceNumber; + nuint32 setCmdType; + nuint32 setCmdCategory; + nuint32 setCmdFlags; + /* The setNameAndValueInfo contains ASCIIZ strings in the following layout: + ** nuint8 setCmdName[ ]; + ** nuint8 setCmdValue[ ]; */ + nuint8 setNameAndValueInfo[ 500 ]; +} NWFSE_SERVER_SET_CMDS_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint16 reserved; + nuint32 numberOfSetCategories; + nuint32 nextSequenceNumber; + nuint8 categoryName[ 512 ]; /* Len preceded string which is not NULL terminated */ +} NWFSE_SERVER_SET_CATEGORIES; + +/* MLID Board Info */ + +#define FSE_MAX_NUM_BOARD_INFO 18 + +typedef struct +{ + nuint32 protocolBoardNum; + nuint16 protocolNumber; + nuint8 protocolID[6]; + nuint8 protocolName[16]; +} MLID_BOARD_INFO; + +typedef struct +{ + SERVER_AND_VCONSOLE_INFO serverTimeAndVConsoleInfo; + nuint8 reserved; + nuint8 numberProtocols; + MLID_BOARD_INFO MLIDBoardInfo[FSE_MAX_NUM_BOARD_INFO]; +} NWFSE_MLID_BOARD_INFO; + +/* Enumerate Network Addresses */ +typedef struct +{ + nuint8 GUID[16]; +} NW_GUID; + +typedef struct +{ + nuint32 addressType; + nuint32 addressSize; + pnuint8 address; +} NWFSE_NETWORK_ADDRESS; + +/* retInfoMask for NWEnumServerConnInfo */ +#define CONN_INFO_TRANS_MASK 0x00000001 +#define CONN_INFO_LOGIN_TIME_MASK 0x00000002 +#define CONN_INFO_LOGIN_NAME_MASK 0x00000004 +#define CONN_INFO_LOCK_MASK 0x00000008 +#define CONN_INFO_PRINT_MASK 0x00000010 +#define CONN_INFO_STATS_MASK 0x00000020 +#define CONN_INFO_ACCT_MASK 0x00000040 +#define CONN_INFO_AUTH_MASK 0x00000080 +#define CONN_INFO_ALL_MASK 0xffffffff + +/* some structs for NWEnumServerConnInfo */ +typedef struct +{ + nuint8 loginTime[7]; + nuint32 loginExpirationTime; +} NWFSE_LOGIN_TIME; + +typedef struct +{ + nuint32 loginObjectType; + nuint8 loginNameLen; + pnuint8 loginName; +} NWFSE_LOGIN_NAME; + +typedef struct +{ + nuint8 logicalLockThreshold; + nuint8 recordLockThreshold; + nuint16 fileLockCount; + nuint16 recordLockCount; +} NWFSE_LOCK_INFO; + +typedef struct +{ + nuint8 printFlags; + nuint8 tabSize; + nuint8 numberCopies; + nuint8 printToFileFlag; + nuint8 bannerFileName[14]; + nuint8 targetServerID; + nuint8 formType; +} NWFSE_PRINT_INFO; + +typedef struct +{ + nuint8 totalBytesRead[6]; + nuint8 totalBytesWritten[6]; + nuint32 totalRequests; +} NWFSE_STATS_INFO; + +typedef struct +{ + nuint32 holdTime; + nuint32 holdAmt; + nuint32 chargeAmt; + nuint32 heldConnectTimeInMinutes; + nuint32 heldRequests; + nuint8 heldBytesRead[6]; + nuint8 heldBytesWritten[6]; +} NWFSE_ACCT_INFO; + +typedef struct +{ + nuint32 loginStatus; + nuint32 loginPrivileges; +} NWFSE_AUTH_INFO; + + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetCacheInfo +( + NWCONN_HANDLE conn, + NWFSE_CACHE_INFO N_FAR * fseCacheInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileServerInfo +( + NWCONN_HANDLE conn, + NWFSE_FILE_SERVER_INFO N_FAR * fseFileServerInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNetWareFileSystemsInfo +( + NWCONN_HANDLE conn, + NWFSE_FILE_SYSTEM_INFO N_FAR * fseFileSystemInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetUserInfo +( + NWCONN_HANDLE conn, + nuint32 connNum, + pnstr8 userName, + NWFSE_USER_INFO N_FAR * fseUserInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetPacketBurstInfo +( + NWCONN_HANDLE conn, + NWFSE_PACKET_BURST_INFO N_FAR * fsePacketBurstInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetIPXSPXInfo +( + NWCONN_HANDLE conn, + NWFSE_IPXSPX_INFO N_FAR * fseIPXSPXInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetGarbageCollectionInfo +( + NWCONN_HANDLE conn, + NWFSE_GARBAGE_COLLECTION_INFO N_FAR * fseGarbageCollectionInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetCPUInfo +( + NWCONN_HANDLE conn, + nuint32 CPUNum, + pnstr8 CPUName, + pnstr8 numCoprocessor, + pnstr8 bus, + NWFSE_CPU_INFO N_FAR * fseCPUInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetVolumeSwitchInfo +( + NWCONN_HANDLE conn, + nuint32 startNum, + NWFSE_VOLUME_SWITCH_INFO N_FAR * fseVolumeSwitchInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNLMLoadedList +( + NWCONN_HANDLE conn, + nuint32 startNum, + NWFSE_NLM_LOADED_LIST N_FAR * fseNLMLoadedList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNLMInfo +( + NWCONN_HANDLE conn, + nuint32 NLMNum, + pnstr8 fileName, + pnstr8 NLMname, + pnstr8 copyright, + NWFSE_NLM_INFO N_FAR * fseNLMInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDirCacheInfo +( + NWCONN_HANDLE conn, + NWFSE_DIR_CACHE_INFO N_FAR * fseDirCacheInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetOSVersionInfo +( + NWCONN_HANDLE conn, + NWFSE_OS_VERSION_INFO N_FAR * fseOSVersionInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetActiveConnListByType +( + NWCONN_HANDLE conn, + nuint32 startConnNum, + nuint32 connType, + NWFSE_ACTIVE_CONN_LIST N_FAR * fseActiveConnListByType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNLMsResourceTagList +( + NWCONN_HANDLE conn, + nuint32 NLMNum, + nuint32 startNum, + NWFSE_NLMS_RESOURCE_TAG_LIST N_FAR * fseNLMsResourceTagList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetActiveLANBoardList +( + NWCONN_HANDLE conn, + nuint32 startNum, + NWFSE_ACTIVE_LAN_BOARD_LIST N_FAR * fseActiveLANBoardList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLANConfigInfo +( + NWCONN_HANDLE conn, + nuint32 boardNum, + NWFSE_LAN_CONFIG_INFO N_FAR * fseLANConfigInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLANCommonCountersInfo +( + NWCONN_HANDLE conn, + nuint32 boardNum, + nuint32 blockNum, + NWFSE_LAN_COMMON_COUNTERS_INFO N_FAR * fseLANCommonCountersInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLANCustomCountersInfo +( + NWCONN_HANDLE conn, + nuint32 boardNum, + nuint32 startingNum, + NWFSE_LAN_CUSTOM_INFO N_FAR * fseLANCustomInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLSLInfo +( + NWCONN_HANDLE conn, + NWFSE_LSL_INFO N_FAR * fseLSLInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLSLLogicalBoardStats +( + NWCONN_HANDLE conn, + nuint32 LANBoardNum, + NWFSE_LSL_LOGICAL_BOARD_STATS N_FAR * fseLSLLogicalBoardStats +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetMediaMgrObjInfo +( + NWCONN_HANDLE conn, + nuint32 objNum, + NWFSE_MEDIA_MGR_OBJ_INFO N_FAR * fseMediaMgrObjInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetMediaMgrObjList +( + NWCONN_HANDLE conn, + nuint32 startNum, + nuint32 objType, + NWFSE_MEDIA_MGR_OBJ_LIST N_FAR * fseMediaMgrObjList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetMediaMgrObjChildrenList +( + NWCONN_HANDLE conn, + nuint32 startNum, + nuint32 objType, + nuint32 parentObjNum, + NWFSE_MEDIA_MGR_OBJ_LIST N_FAR * fseMediaMgrObjList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetVolumeSegmentList +( + NWCONN_HANDLE conn, + nuint32 volNum, + NWFSE_VOLUME_SEGMENT_LIST N_FAR * fseVolumeSegmentList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetVolumeInfoByLevel +( + NWCONN_HANDLE conn, + nuint32 volNum, + nuint32 infoLevel, + NWFSE_VOLUME_INFO_BY_LEVEL N_FAR * fseVolumeInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetActiveProtocolStacks +( + NWCONN_HANDLE conn, + nuint32 startNum, + NWFSE_ACTIVE_STACKS N_FAR * fseActiveStacks +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetProtocolStackConfigInfo +( + NWCONN_HANDLE conn, + nuint32 stackNum, + pnstr8 stackFullName, + NWFSE_PROTOCOL_STK_CONFIG_INFO N_FAR * fseProtocolStkConfigInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetProtocolStackStatsInfo +( + NWCONN_HANDLE conn, + nuint32 stackNum, + NWFSE_PROTOCOL_STK_STATS_INFO N_FAR * fseProtocolStkStatsInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetProtocolStackCustomInfo +( + NWCONN_HANDLE conn, + nuint32 stackNum, + nuint32 customStartNum, + NWFSE_PROTOCOL_CUSTOM_INFO N_FAR * fseProtocolStackCustomInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetProtocolStkNumsByMediaNum +( + NWCONN_HANDLE conn, + nuint32 mediaNum, + NWFSE_PROTOCOL_ID_NUMS N_FAR * fseProtocolStkIDNums +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetProtocolStkNumsByLANBrdNum +( + NWCONN_HANDLE conn, + nuint32 LANBoardNum, + NWFSE_PROTOCOL_ID_NUMS N_FAR * fseProtocolStkIDNums +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetMediaNameByMediaNum +( + NWCONN_HANDLE conn, + nuint32 mediaNum, + pnstr8 mediaName, + NWFSE_MEDIA_NAME_LIST N_FAR * fseMediaNameList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLoadedMediaNumList +( + NWCONN_HANDLE conn, + NWFSE_LOADED_MEDIA_NUM_LIST N_FAR * fseLoadedMediaNumList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetGeneralRouterAndSAPInfo +( + NWCONN_HANDLE conn, + NWFSE_GENERAL_ROUTER_SAP_INFO N_FAR * fseGeneralRouterSAPInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNetworkRouterInfo +( + NWCONN_HANDLE conn, + nuint32 networkNum, + NWFSE_NETWORK_ROUTER_INFO N_FAR * fseNetworkRouterInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNetworkRoutersInfo +( + NWCONN_HANDLE conn, + nuint32 networkNum, + nuint32 startNum, + NWFSE_NETWORK_ROUTERS_INFO N_FAR * fseNetworkRoutersInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetKnownNetworksInfo +( + NWCONN_HANDLE conn, + nuint32 startNum, + NWFSE_KNOWN_NETWORKS_INFO N_FAR * fseKnownNetworksInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetServerInfo +( + NWCONN_HANDLE conn, + nuint32 serverType, + const nstr8 N_FAR * serverName, + NWFSE_SERVER_INFO N_FAR * fseServerInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetServerSourcesInfo +( + NWCONN_HANDLE conn, + nuint32 startNum, + nuint32 serverType, + const nstr8 N_FAR * serverName, + NWFSE_SERVER_SRC_INFO N_FAR * fseServerSrcInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetKnownServersInfo +( + NWCONN_HANDLE conn, + nuint32 startNum, + nuint32 serverType, + NWFSE_KNOWN_SERVER_INFO N_FAR * fseKnownServerInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetServerSetCommandsInfo +( + NWCONN_HANDLE conn, + nuint32 startNum, + NWFSE_SERVER_SET_CMDS_INFO N_FAR * fseServerSetCmdsInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetServerSetCategories +( + NWCONN_HANDLE conn, + nuint32 startNum, + NWFSE_SERVER_SET_CATEGORIES N_FAR * fseServerSetCategories +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetMLIDBoardInfo +( + NWCONN_HANDLE conn, + nuint32 MLIDBoardNum, + NWFSE_MLID_BOARD_INFO N_FAR * fseMLIDBoardInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWEnumNetAddresses +( + NWCONN_HANDLE conn, + pnuint32 searchNumber, + SERVER_AND_VCONSOLE_INFO N_FAR * serverTimeAndVConsoleInfo, + pnuint16 reserved, + NW_GUID N_FAR * fseServerGUID, + nuint32 itemsInArray, + pnuint32 itemsReturned, + NWFSE_NETWORK_ADDRESS N_FAR * fseNetworkAddresses +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGenerateGUIDs +( + NWCONN_HANDLE connHandle, + nuint32 GUIDSize, + NW_GUID N_FAR * GUIDList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetServerConnInfo +( + NWCONN_HANDLE conn, + nuint32 retInfoMask, + nuint32 connectionNumber, + SERVER_AND_VCONSOLE_INFO N_FAR * serverTimeAndVConsoleInfo, + pnuint16 reserved, + NWFSE_NETWORK_ADDRESS N_FAR * networkAddress, + NWFSE_LOGIN_TIME N_FAR * loginTime, + NWFSE_LOGIN_NAME N_FAR * loginName, + NWFSE_LOCK_INFO N_FAR * lockInfo, + NWFSE_PRINT_INFO N_FAR * printInfo, + NWFSE_STATS_INFO N_FAR * statsInfo, + NWFSE_ACCT_INFO N_FAR * acctInfo, + NWFSE_AUTH_INFO N_FAR * authInfo +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwitr.h b/c_clientlogin/xplatincl/nwitr.h new file mode 100644 index 00000000..5d8ef2de --- /dev/null +++ b/c_clientlogin/xplatincl/nwitr.h @@ -0,0 +1,119 @@ +/****************************************************************************** + + %name: nwitr.h % + %version: 11 % + %date_modified: Wed May 3 10:00:12 2000 % + $Copyright: + + Copyright (c) 1998 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +/* Public include file for Large Virtual List Iterator */ + +#if !defined( NWITR_H ) +#define NWITR_H + +#include "ntypes.h" +#include "nwdsbuft.h" + +#define DS_ITR_FIRST 0 /* First entry position in list */ +#define DS_ITR_LAST 1000 /* Last entry position in list */ +#define DS_ITR_EOF 1001 /* End-of-file position. */ + +#define DS_ITR_UNICODE_STRING 0 /* Indicates a unicode string */ +#define DS_ITR_BYTE_STRING 2 /* Indicates a byte string */ + +#define DS_ITR_PREFER_SCALABLE 0 /* If can't get scalable, emulate [not supported in FCS] */ +#define DS_ITR_REQUIRE_SCALABLE 1 /* If can't get scalable, return error */ +#define DS_ITR_FORCE_EMULATION 2 /* Always force emulation mode */ +#define DS_ITR_ANY_SERVER 3 /* Get any server */ + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrCreateList +( + NWDSContextHandle context, + pnstr8 baseObjectName, /* Starting object to search */ + pnstr8 className, /* Class name if List operation */ + pnstr8 subordinateName, /* RDN if List operation */ + nuint32 scalability, /* Require or prefer SKADS server */ + nuint32 timeout, /* Timeout in milliseconds */ + pnuint32 pIterator /* Returned Iterator Ptr */ +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrCreateSearch +( + NWDSContextHandle context, + pnstr8 baseObjectName, /* Starting object to search */ + nint scope, /* Object, immed subord or subtree */ + nbool8 searchAliases, /* True to follow aliases */ + pBuf_T filter, /* Search filter */ + pTimeStamp_T pTimeFilter, /* Filter on modification time */ + nuint32 infoType, /* Names only, or names and attrib */ + nbool8 allAttrs, /* True = return all attributes */ + pBuf_T attrNames, /* List of attributes to return */ + pnstr8 indexSelect, /* Index selection string */ + pnstr8 sortKey, /* Attributes to sort on */ + nuint32 scalability, /* Require or prefer SKADS server */ + nuint32 timeout, /* Timeout in milliseconds */ + pnuint32 pIterator /* Returned Iterator Ptr */ +); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrDestroy(nuint32 Iterator); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrClone(nuint32 Iterator, pnuint32 pNewIterator); + +N_EXTERN_LIBRARY (nbool8) +NWDSItrAtFirst(nuint32 Iterator); + +N_EXTERN_LIBRARY (nbool8) +NWDSItrAtEOF(nuint32 Iterator); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrGetInfo(nuint32 Iterator, pnbool8 pIsScalable, pnbool8 pIisPositionable); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrGetPosition(nuint32 Iterator, pnuint32 pPosition, nuint32 timeout); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrSetPosition(nuint32 Iterator, nuint32 position, nuint32 timeout); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrSetPositionFromIterator(nuint32 Iterator, nuint32 srcIterator, + nuint32 timeout); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrTypeDown(nuint32 Iterator, pnstr8 attrString, pnstr8 value, + nuint32 byteUniFlag, nuint32 timeout); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrSkip(nuint32 Iterator, nint32 numToSkip, nuint32 timeout, + pnint32 pNumSkipped); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrGetNext(nuint32 Iterator, nuint32 numEntries, nuint32 timeout, + pnint32 pIterationHandle, pBuf_T pData); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrGetPrev(nuint32 Iterator, nuint32 numEntries, nuint32 timeout, + pnint32 pIterationHandle, pBuf_T pData); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrGetCurrent(nuint32 Iterator, pnint32 pIterationHandle, pBuf_T pData); + +N_EXTERN_LIBRARY (NWDSCCODE) +NWDSItrCount(nuint32 Iterator, nuint32 timeout, nuint32 maxCount, + nbool8 updatePosition, pnuint32 pCount); + +#endif diff --git a/c_clientlogin/xplatincl/nwlocale.h b/c_clientlogin/xplatincl/nwlocale.h new file mode 100644 index 00000000..bd83df64 --- /dev/null +++ b/c_clientlogin/xplatincl/nwlocale.h @@ -0,0 +1,490 @@ + +/*-------------------------------------------------------------------------- + + %name: nwlocale.h % + %version: 12 % + %date_modified: Wed Apr 13 15:29:18 2005 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + +--------------------------------------------------------------------------*/ + + +#if !defined( NWLOCALE_H ) +#define NWLOCALE_H + + +/* make sure size_t is defined */ +#include + +/* make sure va_list is defined */ +#include + +#if defined N_PLAT_UNIX +#include +#include +#include +#include +#endif + +#ifndef NTYPES_H +# include "ntypes.h" +#endif + +#include "npackon.h" + + +#if defined N_PLAT_DOS +# define NWLCODE nuint +#endif + +#define NUMBER_TYPE nint32 + +/* (in imitation of stdlib.h) */ + +#if defined N_PLAT_UNIX +#define L_MB_LEN_MAX MB_LEN_MAX +#define MERIDLEN (2 * MB_LEN_MAX + 1) +#else +#define L_MB_LEN_MAX 2 /* (in imitation of limits.h) */ +#define MERIDLEN 5 +#define NWSINGLE_BYTE 1 +#define NWDOUBLE_BYTE 2 +#endif + + +#ifndef NLC_ALL +# define NLC_ALL 0 +#endif +#ifndef LC_ALL +# define LC_ALL NLC_ALL +#endif + +#ifndef NLC_COLLATE +# define NLC_COLLATE 1 +#endif +#ifndef LC_COLLATE +# define LC_COLLATE NLC_COLLATE +#endif + +#ifndef NLC_CTYPE +# define NLC_CTYPE 2 +#endif +#ifndef LC_CTYPE +# define LC_CTYPE NLC_CTYPE +#endif + +#ifndef NLC_MONETARY +# define NLC_MONETARY 3 +#endif +#ifndef LC_MONETARY +# define LC_MONETARY NLC_MONETARY +#endif + +#ifndef NLC_NUMERIC +# define NLC_NUMERIC 4 +#endif +#ifndef LC_NUMERIC +# define LC_NUMERIC NLC_NUMERIC +#endif + +#ifndef NLC_TIME +# define NLC_TIME 5 +#endif +#ifndef LC_TIME +# define LC_TIME NLC_TIME +#endif + +#ifndef NLC_TOTAL +# define NLC_TOTAL 6 +#endif +#ifndef LC_TOTAL +# define LC_TOTAL NLC_TOTAL +#endif + + +/* ------------------------------------------------------------------------- + * country definitions + * ------------------------------------------------------------------------- + */ + +#define ARABIC 785 +#define WBAHRAIN 973 +#define WCYPRUS 357 /* ??? */ +#define WEGYPT 20 +#define WETHIOPIA 251 +#define WIRAN 98 +#define WIRAQ 964 +#define WJORDAN 962 +#define WKUWAIT 965 +#define WLIBYA 218 +#define WMALTA 356 /* ??? */ +#define WMOROCCO 212 /* SHOULD THIS BE FRENCH?? */ +#define WPAKISTAN 92 +#define WQATAR 974 /* ??? */ +#define WSAUDI 966 +#define WTANZANIA 255 /* ??? */ +#define WTUNISIA 216 /* ??? */ +#define WTURKEY 90 /* ??? */ +#define WUAE 971 +#define WYEMEN 967 /* ??? */ +#define AUSTRALIA 61 +#define BELGIUM 32 +#define CANADA_FR 2 +#define CANADA 2 +#define DENMARK 45 +#define FINLAND 358 +#define FRANCE 33 +#define GERMANY 49 +#define GERMANYE 37 +#define HEBREW 972 +#define IRELAND 353 +#define ITALY 39 +#define LATIN_AMERICA 3 +#define WARGENTINA 54 +#define WBOLIVIA 591 +#define WCHILE 56 +#define WCOLOMBIA 57 +#define WCOSTARICA 506 +#define WECUADOR 593 +#define WELSALVADOR 503 +#define WGUATEMALA 502 +#define WHONDURAS 504 +#define WMEXICO 52 +#define WNICARAGUA 505 +#define WPANAMA 507 +#define WPARAGUAY 595 +#define WPERU 51 +#define WURUGUAY 598 +#define WVENEZUELA 58 +#define NETHERLANDS 31 +#define NORWAY 47 +#define PORTUGAL 351 +#define SPAIN 34 +#define SWEDEN 46 +#define SWITZERLAND 41 +#define UK 44 +#define USA 1 +#define JAPAN 81 +#define KOREA 82 +#define PRC 86 +#define TAIWAN 886 +#define TAIWAN2 88 +#define WTAIWAN 886 +#define ASIAN_ENGLISH 99 +#define NEWZEALAND 64 + + +/* ------------------------------------------------------------------------- + * typedef Llconv + * ------------------------------------------------------------------------- + */ + +typedef struct Llconv + { + char decimal_point[4]; /* non-monetary decimal point */ + char thousands_sep[4]; /* non-monetary separator for digits + left of the decimal-point */ + char grouping[4]; /* String indicating size of groups + of digits*/ + /* + The international currency symbol applicable to + the current locale. The first three characters + contain the alphabetic international currency + symbol in accordance with those specified in ISO + 4217 "codes for the representation of currency + and funds." The fourth character is the character + used to separate the international currency + symbol from the monetary quantity. + */ + char int_curr_symbol[8]; + char currency_symbol[4]; /* Currency symbol for current locale */ + char mon_decimal_point[4]; /* monetary decimal point */ + char mon_thousands_sep[4]; /* monetary separator for digits left + of the decimal-point */ + char mon_grouping[8]; /* String indicating size of + groups of digits */ + char positive_sign[4]; /* String indicating positive + monetary value */ + char negative_sign[4]; /* String indicating negative + monetary value */ + char int_frac_digits; /* Num of fractional digits in + monetary display */ + char frac_digits; /* Num of fractional digits in + non-monetary display*/ + char p_cs_precedes; /* 1=precede or 0=succeeds + (pos currency symbol)*/ + char p_sep_by_space; /* 1=space separator or + 0=no space separator + (currency symbol) */ + char n_cs_precedes; /* location of currency_symbol + for neg monetary quantity */ + char n_sep_by_space; /* separation of currency symbol + in neg monetary quantity */ + char p_sign_posn; /* value indicating position of + positive_sign for positive + monetary quantity */ + char n_sign_posn; /* value indicating position of + negative_sign for negative + monetary quantity.*/ + + /* Novell Additions to the ANSI definition:*/ + nint code_page; + nint country_id; + char data_list_separator[2]; + char date_separator[2]; + char time_separator[2]; + char time_format; + nint date_format; + char am[MERIDLEN]; + char pm[MERIDLEN]; + char reserved[40]; +} LCONV; + + +/* ------------------------------------------------------------------------- + * function prototypes + * ------------------------------------------------------------------------- + */ + +#if defined(__cplusplus) +extern "C" { +#endif + +N_EXTERN_LIBRARY(LCONV N_FAR *) NWLlocaleconv(LCONV N_FAR *lconvPtr); + +N_EXTERN_LIBRARY(nint) NWLmblen(const nstr N_FAR * string, size_t maxBytes); + +N_EXTERN_LIBRARY(pnstr) NWLsetlocale(nint category, const nstr N_FAR *locale); + +N_EXTERN_LIBRARY(pnstr) NWLstrchr(const nstr N_FAR * string, nint find); + +N_EXTERN_LIBRARY(nint) NWLstricmp +( + const nstr N_FAR *str1, + const nstr N_FAR *str2 +); + +/* NWLstrcoll (see below) */ + +N_EXTERN_LIBRARY(size_t) NWLstrcspn +( + const nstr N_FAR *string1, + const nstr N_FAR *string2 +); + +#if !defined NWL_EXCLUDE_TIME +N_EXTERN_LIBRARY(size_t) NWLstrftime +( + pnstr dst, + size_t max, + const nstr N_FAR *fmt, + const struct tm N_FAR *ptm +); +#endif + +N_EXTERN_LIBRARY(pnstr) NWLstrpbrk(pnstr string1, const nstr N_FAR *string2); + +N_EXTERN_LIBRARY(pnstr) NWLstrrchr(const nstr N_FAR * string, nint find); + +N_EXTERN_LIBRARY(pnstr) NWLstrrev(pnstr string1, pnstr string2); + +N_EXTERN_LIBRARY(size_t) NWLstrspn +( + const nstr N_FAR *string1, + const nstr N_FAR *string2 +); + +N_EXTERN_LIBRARY(pnstr) NWLstrstr(const nstr N_FAR * string, + const nstr N_FAR * searchString); + +N_EXTERN_LIBRARY(pnstr) NWLstrtok(pnstr parse, const nstr N_FAR * delim); + +N_EXTERN_LIBRARY(pnstr) NWLstrtok_r(pnstr parse, + const nstr N_FAR * delim, + ppnstr last); + +/* NWLstrupr ( see below )*/ + +N_EXTERN_LIBRARY(pnstr) NWIncrement(const nstr N_FAR * string, + size_t numChars); + +N_EXTERN_LIBRARY(pnstr) NWstrImoney(pnstr buffer, NUMBER_TYPE Value); + +N_EXTERN_LIBRARY(pnstr) NWstrmoney(pnstr buffer, NUMBER_TYPE Value); + +N_EXTERN_LIBRARY(nint) NWstrncoll(const nstr N_FAR * string1, + const nstr N_FAR * string2, + size_t maxChars); + +N_EXTERN_LIBRARY(pnstr) NWstrncpy(pnstr target_string, + const nstr N_FAR * source_string, + nint numChars); + +N_EXTERN_LIBRARY(pnstr) NWLstrbcpy +( + pnstr dest, + const nstr N_FAR *src, + size_t maxlen +); + +N_EXTERN_LIBRARY(pnstr) NWstrnum(pnstr buffer, NUMBER_TYPE Value); + +N_EXTERN_LIBRARY(nint) NWstrlen +( + const nstr N_FAR *string +); + +N_EXTERN_LIBRARY(size_t) NWLmbslen +( + const nuint8 N_FAR *string +); + +N_EXTERN_LIBRARY(nint) NWLTruncateString(pnchar8 pStr, nint iMaxLen); + +N_EXTERN_LIBRARY(nint) NWLInsertChar(pnstr src, + const nstr N_FAR * insertableChar); + +N_EXTERN_LIBRARY_C(nint) +NWprintf(const nstr N_FAR *format, ...); + +#ifndef NWL_EXCLUDE_FILE +# ifdef N_PLAT_DOS +N_EXTERN_LIBRARY_C(nint) NWfprintf +( + FILE N_FAR *stream, + const nstr N_FAR *format, + ... +); +# endif +#endif + +#if defined N_PLAT_MSW && defined N_ARCH_32 +# if !defined(__BORLANDC__) +# define NWsprintf _NWsprintf +# endif +#elif defined N_PLAT_MSW && defined N_ARCH_16 +# define NWsprintf NWSPRINTF +#endif +N_EXTERN_LIBRARY_C(nint) NWsprintf +( + pnstr buffer, + const nstr N_FAR *format, + ... +); + +/* + * NWwsprintf has been set as obsolete. These prototypes and macros are + * scheduled for removal by September 1999. + */ +#if defined N_PLAT_MSW && defined N_ARCH_32 +# if !defined(__BORLANDC__) +# define NWwsprintf _NWwsprintf +# endif +#elif defined N_PLAT_MSW && defined N_ARCH_16 +# define NWwsprintf NWWSPRINTF +#endif + +N_EXTERN_LIBRARY_C(nint) NWwsprintf(pnstr buffer, pnstr format, ...); + + +/* Functions using variable parameter lists have the pointer to the */ +/* variable list declared as void instead of va_list to enable the user to */ +/* compile without including stdarg.h in every module. */ + +N_EXTERN_LIBRARY(nint) +NWvprintf(const nstr N_FAR *format, va_list arglist); + +#ifndef NWL_EXCLUDE_FILE +# ifdef N_PLAT_DOS +N_EXTERN_LIBRARY(nint) NWvfprintf +( + FILE N_FAR *stream, + const nstr N_FAR *format, + va_list arglist +); +# endif +#endif + +N_EXTERN_LIBRARY(nint) +NWvsprintf(pnstr buffer, const nstr N_FAR *format, va_list arglist); + +N_EXTERN_LIBRARY(nint) NWatoi(const nstr N_FAR * string); + +N_EXTERN_LIBRARY(pnstr) NWitoa(nint value, pnstr string, nuint radix); +N_EXTERN_LIBRARY(pnstr) NWutoa(nuint value, pnstr string, nuint radix); +N_EXTERN_LIBRARY(pnstr) NWltoa(nint32 value, pnstr buf, nuint radix); +N_EXTERN_LIBRARY(pnstr) NWultoa(nuint32 value, pnstr buf, nuint radix); + +N_EXTERN_LIBRARY(nint) NWisalpha(nuint ch); +N_EXTERN_LIBRARY(nint) NWisalnum(nuint ch); +N_EXTERN_LIBRARY(nint) NWisdigit(nuint ch); +N_EXTERN_LIBRARY(nint) NWisxdigit(nuint ch); + +N_EXTERN_LIBRARY(void) NWGetNWLOCALEVersion(pnuint8 majorVersion, + pnuint8 minorVersion, + pnuint8 revisionLevel, + pnuint8 betaReleaseLevel); + +#if defined N_PLAT_DOS && !defined N_LOC_NO_OLD_FUNCS +N_EXTERN_LIBRARY(NWLCODE) NWGetShortMachineName(pnstr shortMachineName); +#endif + +/* This call is not needed for Windows */ +N_EXTERN_LIBRARY(nint) NWGetCollateTable(pnstr retCollateTable, size_t maxLen); + +#if (defined N_PLAT_MSW && defined N_ARCH_16) && !defined N_LOC_NO_OLD_MACROS +# define NWNextChar(s) AnsiNext(s) +# define NWPrevChar(t, s) AnsiPrev(t, s) +# define NWLstrupr(s) AnsiUpper(s) +# define NWLstrcoll(s1, s2) lstrcmp(s1, s2) +# define NWLstrxfrm(s1, s2, t) strxfrm(s1, s2, t) +# define NWCharUpr(c) (nint)(LOWORD((DWORD)AnsiUpper((LPSTR)(DWORD)c))) +#else + +N_EXTERN_LIBRARY(pnstr) NWNextChar(const nstr N_FAR *string); +#if defined N_PLAT_UNIX +N_EXTERN_LIBRARY(pnstr) NWNextChar_r(const nstr N_FAR *string, mbstate_t *state); +#endif +N_EXTERN_LIBRARY(pnstr) NWPrevChar(const nstr N_FAR *string, pnstr position); +N_EXTERN_LIBRARY(pnstr) NWLstrupr(pnstr string); +N_EXTERN_LIBRARY(nint) NWLstrcoll(const nstr N_FAR * string1, + const nstr N_FAR * string2); +N_EXTERN_LIBRARY(size_t) NWLstrxfrm(pnstr string1, + const nstr N_FAR * string2, + size_t numBytes); +N_EXTERN_LIBRARY(nint) NWCharUpr(nint chr); +#endif /* (N_PLAT_MSW && N_ARCH_16) && !N_LOC_NO_OLD_MACROS */ + +N_EXTERN_LIBRARY(pnstr) NWLstrlwr(pnstr string); +N_EXTERN_LIBRARY(nint) NWCharLwr(nint chr); + +N_EXTERN_LIBRARY(nint) NWCharType(nint ch); +N_EXTERN_LIBRARY(nint) NWCharVal(const nstr N_FAR *string); + +N_EXTERN_LIBRARY(nint) NWLIsAnsi(); +N_EXTERN_LIBRARY(void) NWLOemToAnsi(const nstr8 N_FAR * oemStr, pnstr8 ansiStr); +N_EXTERN_LIBRARY(void) NWLAnsiToOem(const nstr8 N_FAR * ansiStr, pnstr8 oemStr); + +#if defined(__cplusplus) +} +#endif + +#ifdef INCLUDE_OBSOLETE +# include "obsolete/o_locale.h" +#endif + +#include "npackoff.h" + +#endif /* NWLOCALE_H */ + + diff --git a/c_clientlogin/xplatincl/nwmigrat.h b/c_clientlogin/xplatincl/nwmigrat.h new file mode 100644 index 00000000..a3043cd7 --- /dev/null +++ b/c_clientlogin/xplatincl/nwmigrat.h @@ -0,0 +1,176 @@ +/****************************************************************************** + + %name: nwmigrat.h % + %version: 4 % + %date_modified: Tue Oct 19 13:44:22 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWMIGRAT_H ) +#define NWMIGRAT_H + +#if ! defined ( NTYPES_H ) +# include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_NUM_OF_DATA_STREAMS 3 +#define MAX_SIZE_OF_SM_STRING 128 +#define MAX_SIZE_OF_SM_INFO 128 +#define MAX_NUM_OF_SM 32 + +#define ERR_INVALID_SM_ID 240 +#define ERR_SM_ALREADY_REGISTERED 241 +#define ERR_SM_CREATE_FAILED 242 +#define ERR_SM_CLOSE_FAILED 243 +#define ERR_SM_WRITE_NO_SPACE 244 +#define ERR_SM_WRITE_IO_ERROR 245 +#define ERR_SM_READ_IO_ERROR 246 +#define ERR_SM_OPEN_FAILED 247 +#define ERR_SM_DELETE_FAILED 248 + +typedef struct +{ + nuint32 IOStatus; + nuint32 InfoBlockSize; + nuint32 AvailSpace; + nuint32 UsedSpace; + /* A length preceded string is followed by SMInfo data */ + nuint8 SMInfo[MAX_SIZE_OF_SM_STRING + MAX_SIZE_OF_SM_INFO]; +} SUPPORT_MODULE_INFO; + +typedef struct +{ + nuint32 numberOfSMs; + nuint32 SMIDs[MAX_NUM_OF_SM]; +} SUPPORT_MODULE_IDS; + +#if defined( N_PLAT_NLM ) + #define NWMoveFileToDM NWMoveFileToDM2 + #define NWMoveFileFromDM NWMoveFileFromDM2 + #define NWGetDMFileInfo NWGetDMFileInfo2 + #define NWGetDMVolumeInfo NWGetDMVolumeInfo2 + #define NWGetDefaultSupportModule NWGetDefaultSupportModule2 + #define NWSetDefaultSupportModule NWSetDefaultSupportModule2 + #define NWGetDataMigratorInfo NWGetDataMigratorInfo2 + #define NWGetSupportModuleInfo NWGetSupportModuleInfo2 +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWMoveFileToDM +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 nameSpace, + nuint32 supportModuleID, + nuint32 saveKeyFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWMoveFileFromDM +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 nameSpace +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDMFileInfo +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 nameSpace, + pnuint32 supportModuleID, + pnuint32 restoreTime, + pnuint32 dataStreams +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDMVolumeInfo +( + NWCONN_HANDLE conn, + nuint16 volume, + nuint32 supportModuleID, + pnuint32 numberOfFilesMigrated, + pnuint32 totalMigratedSize, + pnuint32 spaceUsedOnDM, + pnuint32 limboSpaceUsedOnDM, + pnuint32 spaceMigrated, + pnuint32 filesInLimbo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetSupportModuleInfo +( + NWCONN_HANDLE conn, + nuint32 infomationLevel, + nuint32 supportModuleID, + pnuint8 returnInfo, + pnuint32 returnInfoLen +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDataMigratorInfo +( + NWCONN_HANDLE conn, + pnuint32 DMPresentFlag, + pnuint32 majorVersion, + pnuint32 minorVersion, + pnuint32 DMSMRegistered +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDefaultSupportModule +( + NWCONN_HANDLE conn, + pnuint32 supportModuleID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetDefaultSupportModule +( + NWCONN_HANDLE conn, + pnuint32 supportModuleID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetSupportModuleCapacity +( + NWCONN_HANDLE conn, + nuint32 luSupportModuleID, + nuint32 luVolume, + nuint32 luDirectoryBase, + pnuint32 pluSMBlockSizeInSectors, + pnuint32 pluSMTotalBlocks, + pnuint32 pluSMUsedBlocks +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwmisc.h b/c_clientlogin/xplatincl/nwmisc.h new file mode 100644 index 00000000..44c17fa4 --- /dev/null +++ b/c_clientlogin/xplatincl/nwmisc.h @@ -0,0 +1,461 @@ +/****************************************************************************** + + %name: nwmisc.h % + %version: 8 % + %date_modified: Tue Jan 04 18:39:45 2005 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWMISC_H ) +#define NWMISC_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef NW_SHORT_NAME_SERVER +# define NW_SHORT_NAME_SERVER 0 +#endif + +#ifndef NW_LONG_NAME_SERVER +# define NW_LONG_NAME_SERVER 1 +#endif + +#ifndef NW_ENCP_SERVER +#define NW_ENCP_SERVER 1 +#endif + +#ifndef NW_EXTENDED_NCP_SERVER +#define NW_EXTENDED_NCP_SERVER 1 +#endif + +#ifndef _NETX_COM +#define _NETX_COM 0x0001 +#define _NETX_VLM 0x0002 +#define _REDIR_LOADED 0x4000 +#define _VLM_LOADED 0x8000 +#endif + +#ifdef N_PLAT_UNIX +#define NWWordSwap(x) ((nuint16) ( \ + (((nuint16)((x) & 0x00FF)) << 8) | \ + (((nuint16)((x) & 0xFF00)) >> 8) )) +#define NWLongSwap(x) ((nuint32) ( \ + (((nuint32)((x) & 0x000000FFL)) << 24) | \ + (((nuint32)((x) & 0x0000FF00L)) << 8) | \ + (((nuint32)((x) & 0x00FF0000L)) >> 8) | \ + (((nuint32)((x) & 0xFF000000L)) >> 24) )) +#endif + +typedef struct +{ + nuint8 day; + nuint8 month; + nuint16 year; +} NW_DATE; + +/* hours is a nuint16 so that this structure will be the same length as a dword */ +typedef struct +{ + nuint8 seconds; + nuint8 minutes; + nuint16 hours; +} NW_TIME; + +typedef enum +{ + NW_LONG_NAME_REQUESTER, + NW_SHORT_NAME_REQUESTER, + NW_ERROR_ON_REQUESTER_TYPE +} NW_REQUESTER_TYPE; + +#ifndef NW_FRAGMENT_DEFINED +#define NW_FRAGMENT_DEFINED +typedef struct +{ + nptr fragAddress; +#if defined(N_PLAT_NLM) || defined(WIN32) || defined(N_PLAT_UNIX) + nuint32 fragSize; +#else + nuint16 fragSize; +#endif +} NW_FRAGMENT; +#endif + +typedef struct +{ + nuint16 taskNumber; + nuint8 taskState; +} CONN_TASK; + +typedef struct +{ + nuint16 serverVersion; /* use NW_ constants from nwserver.h */ + nuint8 lockState; + nuint16 waitingTaskNumber; + nuint32 recordStart; + nuint32 recordEnd; + nuint8 volNumber; + nuint32 dirEntry; /* this field is only valid in 3.11 */ + nuint8 nameSpace; /* this field is only valid in 3.11 */ + nuint16 dirID; /* this field is only valid in 2.x */ + nstr8 lockedName[256]; + nuint8 taskCount; + CONN_TASK tasks[256]; +} CONN_TASK_INFO; + +typedef struct +{ + nuint8 volNumber; + nuint32 dirEntry; +} DIR_ENTRY; + +N_EXTERN_LIBRARY( void ) +NWUnpackDateTime +( + nuint32 dateTime, + NW_DATE N_FAR * sDate, + NW_TIME N_FAR * sTime +); + +N_EXTERN_LIBRARY( void ) +NWUnpackDate +( + nuint16 date, + NW_DATE N_FAR * sDate +); + +N_EXTERN_LIBRARY( void ) +NWUnpackTime +( + nuint16 time, + NW_TIME N_FAR * sTime +); + +N_EXTERN_LIBRARY( nuint32 ) +NWPackDateTime +( + const NW_DATE N_FAR * sDate, + const NW_TIME N_FAR * sTime +); + +N_EXTERN_LIBRARY( nuint16 ) +NWPackDate +( + const NW_DATE N_FAR * sDate +); + +N_EXTERN_LIBRARY( nuint16 ) +NWPackTime +( + const NW_TIME N_FAR * sTime +); + +/* Avoid using the following three NWConvert{Date/Time} functions, + they just call the NWUnpack{Date/Time} functions. They are here for + compatibility reasons only. */ +N_EXTERN_LIBRARY( void ) +NWConvertDateTime +( + nuint32 dateTime, + NW_DATE N_FAR * sDate, + NW_TIME N_FAR * sTime +); + +N_EXTERN_LIBRARY( void ) +NWConvertDate +( + nuint16 date, + NW_DATE N_FAR * sDate +); + +N_EXTERN_LIBRARY( void ) +NWConvertTime +( + nuint16 time, + NW_TIME N_FAR * sTime +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRequest +( + NWCONN_HANDLE conn, + nuint16 function, + nuint16 numReqFrags, + const NW_FRAGMENT N_FAR * reqFrags, + nuint16 numReplyFrags, + NW_FRAGMENT N_FAR * replyFrags +); + +N_EXTERN_LIBRARY( NWCCODE ) +_NWGetRequesterType +( + NW_REQUESTER_TYPE N_FAR * type +); + +#ifndef N_PLAT_UNIX + +N_EXTERN_LIBRARY( nuint16 ) +NWWordSwap +( + nuint16 swapWord +); + +N_EXTERN_LIBRARY( nuint32 ) +NWLongSwap +( + nuint32 swapLong +); + +#endif + +N_EXTERN_LIBRARY( nint16 ) +NWInitDBCS +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWConvertPathToDirEntry +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + DIR_ENTRY N_FAR * dirEntry +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetTaskInformationByConn +( + NWCONN_HANDLE conn, + nuint16 connNum, + CONN_TASK_INFO N_FAR * taskInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetRequesterVersion +( + pnuint8 majorVer, + pnuint8 minorVer, + pnuint8 revision +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIsLNSSupportedOnVolume +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWConvertFileHandle +( + NWFILE_HANDLE fileHandle, + nuint16 handleType, + pnuint8 NWHandle, + NWCONN_HANDLE N_FAR * conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWConvertFileHandleConnRef +( + NWFILE_HANDLE fileHandle, + nuint16 handleType, + pnuint8 NWHandle, + pnuint32 connRef +); + +N_EXTERN_LIBRARY( void ) +_NWConvert4ByteTo6ByteHandle +( + pnuint8 NW4ByteHandle, + pnuint8 NW6ByteHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWEndOfJob +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCallsInit +( + nptr reserved1, + nptr reserved2 +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCallsTerm +( + nptr reserved +); + +N_EXTERN_LIBRARY( nuint16 ) +NWGetClientType +( + void +); + +#ifndef WIN32 +N_EXTERN_LIBRARY( nuint16 ) +__NWGetNWCallsState +( + void +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetNetWareErrorMode +( + nuint8 errorMode, + pnuint8 prevMode +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetEndOfJobStatus +( + nuint8 endOfJobStatus, + pnuint8 prevStatus +); +#else +N_EXTERN_LIBRARY( NWCCODE ) +NWFSRequest +( + nuint32 request, + nptr inBuf, + nuint16 inLen, + nptr outBuf, + nuint16 outLen +); +#endif + +N_EXTERN_LIBRARY( void ) +NWGetNWCallsVersion +( + pnuint8 majorVer, + pnuint8 minorVer, + pnuint8 revLevel, + pnuint8 betaLevel +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWConvertHandle +( + NWCONN_HANDLE conn, + nuint8 accessMode, + const void N_FAR * NWHandle, + nuint16 handleSize, + nuint32 fileSize, + NWFILE_HANDLE N_FAR * fileHandle +); + +/* The stuff below this line may NOT be documented. Use with care. */ +#if !defined(NWOS2) && !defined(WIN32) +#ifndef _REGISTERS_DEF +#define _REGISTERS_DEF + +typedef struct +{ + nuint16 si; + nuint16 ds; + nuint16 di; + nuint16 es; + nuint8 al, ah; + nuint8 bl, bh; + nuint8 cl, ch; + nuint8 dl, dh; +} BYTE_REGISTERS; + +typedef struct +{ + nuint16 si; + nuint16 ds; + nuint16 di; + nuint16 es; + nuint16 ax; + nuint16 bx; + nuint16 cx; + nuint16 dx; + nuint16 bp; + nuint16 flags; +} WORD_REGISTERS; + +typedef struct +{ + nptr requestBuffer; + nptr replyBuffer; +} PTR_REGISTERS; + +typedef struct +{ + nptr ds_si; + nptr es_di; +} SEG_OFF_REGISTERS; + +typedef union +{ + WORD_REGISTERS w; + BYTE_REGISTERS b; + PTR_REGISTERS p; + SEG_OFF_REGISTERS s; +} REGISTERS; +#endif + +#ifndef USE_DS +#define USE_DS 1 +#define USE_ES 2 +#define USE_DOS 0x80 +#endif + +N_EXTERN_LIBRARY( nint ) +NWShellRequest +( + REGISTERS N_FAR * , + nuint16 +); + + +N_EXTERN_LIBRARY( nuint16 ) +NWVLMRequest +( + nuint16 callerID, + nuint16 destID, + nuint16 destFunc, + REGISTERS N_FAR * regs, + nuint16 mask +); +#endif + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_misc.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwmsg.h b/c_clientlogin/xplatincl/nwmsg.h new file mode 100644 index 00000000..c1e0ee79 --- /dev/null +++ b/c_clientlogin/xplatincl/nwmsg.h @@ -0,0 +1,97 @@ +/****************************************************************************** + + %name: nwmsg.h % + %version: 8 % + %date_modified: Fri Oct 22 15:04:41 1999 % + $Copyright: + + Copyright (c) 1989-1996 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWMSG_H ) +#define NWMSG_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWDisableBroadcasts +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWEnableBroadcasts +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSendBroadcastMessage +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * message, + nuint16 connCount, + const nuint16 N_FAR * connList, + pnuint8 resultList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetBroadcastMessage +( + NWCONN_HANDLE conn, + pnstr8 message +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetBroadcastMode +( + NWCONN_HANDLE conn, + nuint16 mode +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWBroadcastToConsole +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * message +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSendConsoleBroadcast +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * message, + nuint16 connCount, + pnuint16 connList +); + + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_msg.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#endif diff --git a/c_clientlogin/xplatincl/nwnamspc.h b/c_clientlogin/xplatincl/nwnamspc.h new file mode 100644 index 00000000..f117e37e --- /dev/null +++ b/c_clientlogin/xplatincl/nwnamspc.h @@ -0,0 +1,987 @@ +/****************************************************************************** + + %name: nwnamspc.h % + %version: 18 % + %date_modified: Fri Sep 09 18:06:36 2005 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWNAMSPC_H ) +#define NWNAMSPC_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#if ! defined ( NWDIRECT_H ) +#include "nwdirect.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef SUCCESSFUL +#define SUCCESSFUL 0 +#endif + +#define MORE_NS_TO_READ 0 +#define NO_EXTENDED_NS_INFO 9 +#define NS_EOF 0x8910 + +#define NW_NS_DOS 0 +#define NW_NS_MAC 1 +#define NW_NS_NFS 2 +#define NW_NS_FTAM 3 +#define NW_NS_OS2 4 +#define NW_NS_LONG 4 + +#define NW_DS_DOS 0 +#define NW_DS_MAC 1 +#define NW_DS_FTAM 2 + +typedef struct +{ + nuint8 volNumber; + nuint8 srcNameSpace; + nuint32 srcDirBase; + nuint8 dstNameSpace; + nuint32 dstDirBase; +} NW_IDX; + +typedef struct NWNSINFO +{ + nuint32 NSInfoBitMask; + nuint32 fixedBitMask; + nuint32 reservedBitMask; + nuint32 extendedBitMask; + nuint16 fixedBitsDefined; + nuint16 reservedBitsDefined; + nuint16 extendedBitsDefined; + nuint32 fieldsLenTable[32]; + nuint8 hugeStateInfo[16]; + nuint32 hugeDataLength; +} NW_NS_INFO; + +typedef struct +{ + nuint32 spaceAlloc; + nuint32 attributes; + nuint16 flags; + nuint32 dataStreamSize; + nuint32 totalStreamSize; + nuint16 numberOfStreams; + nuint16 creationTime; + nuint16 creationDate; + nuint32 creatorID; + nuint16 modifyTime; + nuint16 modifyDate; + nuint32 modifierID; + nuint16 lastAccessDate; + nuint16 archiveTime; + nuint16 archiveDate; + nuint32 archiverID; + nuint16 inheritedRightsMask; + nuint32 dirEntNum; + nuint32 DosDirNum; + nuint32 volNumber; + nuint32 EADataSize; + nuint32 EAKeyCount; + nuint32 EAKeySize; + nuint32 NSCreator; + nuint8 nameLength; + nstr8 entryName[256]; +} NW_ENTRY_INFO; + +typedef struct +{ + nuint32 spaceAlloc; + nuint32 attributes; + nuint16 flags; + nuint32 dataStreamSize; + nuint32 totalStreamSize; + nuint16 numberOfStreams; + nuint16 creationTime; + nuint16 creationDate; + nuint32 creatorID; + nuint16 modifyTime; + nuint16 modifyDate; + nuint32 modifierID; + nuint16 lastAccessDate; + nuint16 archiveTime; + nuint16 archiveDate; + nuint32 archiverID; + nuint16 inheritedRightsMask; + nuint32 dirEntNum; + nuint32 DosDirNum; + nuint32 volNumber; + nuint32 EADataSize; + nuint32 EAKeyCount; + nuint32 EAKeySize; + nuint32 NSCreator; + nuint16 nameLength; + nstr8 entryName[766]; /* 255*3 + 1 */ +} NW_ENTRY_INFO_EXT; + +typedef struct +{ + nuint32 dataStreamNumber; + nuint32 dataStreamFATBlocksSize; +} NW_DATA_STREAM_FAT_INFO; + +typedef struct +{ + nuint32 dataStreamNumber; + nuint32 dataStreamSize; +} NW_DATA_STREAM_SIZE_INFO; + +typedef struct +{ + nuint32 MACCreateTime; + nuint32 MACBackupTime; +} NW_MAC_TIME; + +typedef struct +{ + nuint32 spaceAlloc; + nuint32 attributes; + nuint16 flags; + nuint32 dataStreamSize; + nuint32 totalStreamSize; + nuint16 numberOfStreams; + nuint32 EADataSize; + nuint32 EAKeyCount; + nuint32 EAKeySize; + nuint16 archiveTime; + nuint16 archiveDate; + nuint32 archiverID; + nuint16 modifyTime; + nuint16 modifyDate; + nuint32 modifierID; + nuint16 lastAccessDate; + nuint16 creationTime; + nuint16 creationDate; + nuint32 creatorID; + nuint32 NSCreator; + nuint32 dirEntNum; + nuint32 DosDirNum; + nuint32 volNumber; + nuint16 inheritedRightsMask; + nuint16 currentReferenceID; + nuint32 NSFileAttributes; + nuint32 numberOfDataStreamFATInfo; + NW_DATA_STREAM_FAT_INFO dataStreamFATInfo[3]; + nuint32 numberOfDataStreamSizeInfo; + NW_DATA_STREAM_SIZE_INFO dataStreamSizeInfo[3]; + nint32 secondsRelativeToTheYear2000; + nuint8 DOSNameLen; + nstr8 DOSName[13]; + nuint32 flushTime; + nuint32 parentBaseID; + nuint8 MacFinderInfo[32]; + nuint32 siblingCount; + nuint32 effectiveRights; + NW_MAC_TIME MacTime; + nuint16 lastAccessedTime; + nuint8 nameLength; + nstr8 entryName[256]; +} NW_ENTRY_INFO2; + +typedef struct +{ + nuint32 spaceAlloc; + nuint32 attributes; + nuint16 flags; + nuint32 dataStreamSize; + nuint32 totalStreamSize; + nuint16 numberOfStreams; + nuint32 EADataSize; + nuint32 EAKeyCount; + nuint32 EAKeySize; + nuint16 archiveTime; + nuint16 archiveDate; + nuint32 archiverID; + nuint16 modifyTime; + nuint16 modifyDate; + nuint32 modifierID; + nuint16 lastAccessDate; + nuint16 creationTime; + nuint16 creationDate; + nuint32 creatorID; + nuint32 NSCreator; + nuint32 dirEntNum; + nuint32 DosDirNum; + nuint32 volNumber; + nuint16 inheritedRightsMask; + nuint16 currentReferenceID; + nuint32 NSFileAttributes; + nuint32 numberOfDataStreamFATInfo; + NW_DATA_STREAM_FAT_INFO dataStreamFATInfo[3]; + nuint32 numberOfDataStreamSizeInfo; + NW_DATA_STREAM_SIZE_INFO dataStreamSizeInfo[3]; + nint32 secondsRelativeToTheYear2000; + nuint8 DOSNameLen; + nstr8 DOSName[37]; /* 12*3 + 1 */ + nuint32 flushTime; + nuint32 parentBaseID; + nuint8 MacFinderInfo[32]; + nuint32 siblingCount; + nuint32 effectiveRights; + NW_MAC_TIME MacTime; + nuint16 lastAccessedTime; + nuint64 fileSize64; + nuint16 nameLength; + nstr8 entryName[766]; /* 255*3 + 1 */ +} NW_ENTRY_INFO2_EXT; + +typedef struct _MODIFY_DOS_INFO +{ + nuint32 attributes; + nuint16 createDate; + nuint16 createTime; + nuint32 creatorID; + nuint16 modifyDate; + nuint16 modifyTime; + nuint32 modifierID; + nuint16 archiveDate; + nuint16 archiveTime; + nuint32 archiverID; + nuint16 lastAccessDate; + nuint16 inheritanceGrantMask; + nuint16 inheritanceRevokeMask; + nuint32 maximumSpace; +} MODIFY_DOS_INFO; + +typedef struct +{ + nuint8 volNumber; + nuint32 dirNumber; + nuint32 searchDirNumber; +} SEARCH_SEQUENCE; + +typedef struct +{ + pnstr8 srcPath; + pnstr8 dstPath; + nuint16 dstPathSize; +} NW_NS_PATH; + +typedef struct +{ + nuint8 openCreateMode; + nuint16 searchAttributes; + nuint32 reserved; + nuint32 createAttributes; + nuint16 accessRights; + nuint32 NetWareHandle; + nuint8 openCreateAction; +} NW_NS_OPENCREATE, NW_NS_OPEN; + + +/* open/create modes */ +#define OC_MODE_OPEN 0x01 +#define OC_MODE_TRUNCATE 0x02 +#define OC_MODE_REPLACE 0x02 +#define OC_MODE_CREATE 0x08 + +/* open/create results */ +#define OC_ACTION_NONE 0x00 +#define OC_ACTION_OPEN 0x01 +#define OC_ACTION_CREATE 0x02 +#define OC_ACTION_TRUNCATE 0x04 +#define OC_ACTION_REPLACE 0x04 + +/* return info mask */ +#define IM_NAME 0x00000001L +#define IM_ENTRY_NAME 0x00000001L +#define IM_SPACE_ALLOCATED 0x00000002L +#define IM_ATTRIBUTES 0x00000004L +#define IM_SIZE 0x00000008L +#define IM_TOTAL_SIZE 0x00000010L +#define IM_EA 0x00000020L +#define IM_ARCHIVE 0x00000040L +#define IM_MODIFY 0x00000080L +#define IM_CREATION 0x00000100L +#define IM_OWNING_NAMESPACE 0x00000200L +#define IM_DIRECTORY 0x00000400L +#define IM_RIGHTS 0x00000800L +#define IM_ALMOST_ALL 0x00000FEDL +#define IM_ALL 0x00000FFFL +#define IM_REFERENCE_ID 0x00001000L +#define IM_NS_ATTRIBUTES 0x00002000L +#define IM_DATASTREAM_SIZES 0x00004000L +#define IM_DATASTREAM_ACTUAL 0x00004000L +#define IM_DATASTREAM_LOGICAL 0x00008000L +#define IM_LASTUPDATEDINSECONDS 0x00010000L +#define IM_DOSNAME 0x00020000L +#define IM_FLUSHTIME 0x00040000L +#define IM_PARENTBASEID 0x00080000L +#define IM_MACFINDER 0x00100000L +#define IM_SIBLINGCOUNT 0x00200000L +#define IM_EFECTIVERIGHTS 0x00400000L +#define IM_MACTIME 0x00800000L +#define IM_LASTACCESSEDTIME 0x01000000L +#define IM_64BIT_SIZE 0x04000000L +#define IM_EXTENDED_ALL 0x05FFF000L +#define IM_NSS_LARGE_SIZES 0x40000000L +#define IM_COMPRESSED_INFO 0x80000000L +#define IM_NS_SPECIFIC_INFO 0x80000000L + +/* access rights attributes */ +#ifndef AR_READ_ONLY +#define AR_READ 0x0001 +#define AR_WRITE 0x0002 +#define AR_READ_ONLY 0x0001 +#define AR_WRITE_ONLY 0x0002 +#define AR_DENY_READ 0x0004 +#define AR_DENY_WRITE 0x0008 +#define AR_COMPATIBILITY 0x0010 +#define AR_WRITE_THROUGH 0x0040 +#define AR_OPEN_COMPRESSED 0x0100 +#endif + +/* Trustee Access Rights in a network directory */ +/* NOTE: TA_OPEN is obsolete in 3.x */ +#ifndef TA_NONE +#define TA_NONE 0x00 +#define TA_READ 0x01 +#define TA_WRITE 0x02 +#define TA_CREATE 0x08 +#define TA_DELETE 0x10 +#define TA_ACCESSCONTROL 0x20 +#define TA_SEEFILES 0x40 +#define TA_MODIFY 0x80 +#define TA_ALL 0xFB +/* Old names for rights */ +#define TA_OPEN 0x04 +#define TA_OWNERSHIP 0x20 +#define TA_SEARCH 0x40 +/* Misc defines */ +#define TA_SUPERVISOR 0x0100 +#define TA_ALL_16 0x01FB +#endif + +/* search attributes */ +#ifndef SA_HIDDEN +#define SA_NORMAL 0x0000 +#define SA_HIDDEN 0x0002 +#define SA_SYSTEM 0x0004 +#define SA_SUBDIR_ONLY 0x0010 +#define SA_SUBDIR_FILES 0x8000 +#define SA_ALL 0x8006 +#endif + +#define NW_TYPE_FILE 0x8000 +#define NW_TYPE_SUBDIR 0x0010 + +#define NW_NAME_CONVERT 0x03 +#define NW_NO_NAME_CONVERT 0x04 + +/* modify mask - use with MODIFY_DOS_INFO structure */ +#define DM_FILENAME 0x0001L +#define DM_ATTRIBUTES 0x0002L +#define DM_CREATE_DATE 0x0004L +#define DM_CREATE_TIME 0x0008L +#define DM_CREATOR_ID 0x0010L +#define DM_ARCHIVE_DATE 0x0020L +#define DM_ARCHIVE_TIME 0x0040L +#define DM_ARCHIVER_ID 0x0080L +#define DM_MODIFY_DATE 0x0100L +#define DM_MODIFY_TIME 0x0200L +#define DM_MODIFIER_ID 0x0400L +#define DM_LAST_ACCESS_DATE 0x0800L +#define DM_INHERITED_RIGHTS_MASK 0x1000L +#define DM_MAXIMUM_SPACE 0x2000L + +#if defined( N_PLAT_NLM ) + #define NWGetNSLoadedList NWGetNSLoadedList2 + #define NWGetNSInfo NWGetNSInfo2 +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDirectoryBase +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 dstNamSpc, + NW_IDX N_FAR * idxStruct +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDirectoryBaseExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 dstNamSpc, + NW_IDX N_FAR * idxStruct +); + + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNSEntryInfo +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + nuint16 attrs, + SEARCH_SEQUENCE N_FAR * sequence, + const nstr8 N_FAR * searchPattern, + nuint32 retInfoMask, + NW_ENTRY_INFO N_FAR * entryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNSEntryInfoExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + nuint16 attrs, + SEARCH_SEQUENCE N_FAR * sequence, + const nstr8 N_FAR * searchPattern, + nuint32 retInfoMask, + NW_ENTRY_INFO_EXT N_FAR * entryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNSEntryInfo2 +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + nuint16 attrs, + SEARCH_SEQUENCE N_FAR * sequence, + const nstr8 N_FAR * searchPattern, + nuint32 retInfoMask, + NW_ENTRY_INFO2 N_FAR * entryInfo2 +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSLoadedList +( + NWCONN_HANDLE conn, + nuint8 volNum, + nuint8 maxListLen, + pnuint8 NSLoadedList, + pnuint8 actualListLen +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetOwningNameSpace +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + pnuint8 namSpc +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenCreateNSEntry +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + const nstr8 N_FAR * path, + NW_NS_OPENCREATE N_FAR * NSOpenCreate, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenCreateNSEntryExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + const nstr8 N_FAR * path, + NW_NS_OPENCREATE N_FAR * NSOpenCreate, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenNSEntry +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + nuint8 dataStream, + const nstr8 N_FAR * path, + NW_NS_OPEN N_FAR * NSOpen, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenNSEntryExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + nuint8 dataStream, + const nstr8 N_FAR * path, + NW_NS_OPEN N_FAR * NSOpen, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetLongName +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + const nstr8 N_FAR * dstPath, + nuint16 dstType, + const nstr8 N_FAR * longName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLongName +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 srcNamSpc, + nuint8 dstNamSpc, + pnstr8 longName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLongNameExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 srcNamSpc, + nuint8 dstNamSpc, + pnstr8 longName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSInfo +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + NW_NS_INFO N_FAR * NSInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWWriteNSInfo +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + const NW_NS_INFO N_FAR * NSInfo, + const nuint8 N_FAR * data +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWWriteNSInfoExt +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + const NW_NS_INFO N_FAR * NSInfo, + const nuint8 N_FAR * data +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWWriteExtendedNSInfo +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + NW_NS_INFO N_FAR * NSInfo, + const nuint8 N_FAR * data +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadNSInfo +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + const NW_NS_INFO N_FAR * NSInfo, + pnuint8 data +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadNSInfoExt +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + const NW_NS_INFO N_FAR * NSInfo, + pnuint8 data +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadExtendedNSInfo +( + NWCONN_HANDLE conn, + const NW_IDX N_FAR * idxStruct, + NW_NS_INFO N_FAR * NSInfo, + pnuint8 data +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSPath +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint16 fileFlag, + nuint8 srcNamSpc, + nuint8 dstNamSpc, + NW_NS_PATH N_FAR *NSPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSPathExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint16 fileFlag, + nuint8 srcNamSpc, + nuint8 dstNamSpc, + NW_NS_PATH N_FAR *NSPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAllocTempNSDirHandle2 +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 namSpc, + pnuint8 newDirHandle, + nuint8 newNamSpc +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAllocTempNSDirHandle2Ext +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 namSpc, + pnuint8 newDirHandle, + nuint8 newNamSpc +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSEntryInfo +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 srcNamSpc, + nuint8 dstNamSpc, + nuint16 searchAttrs, + nuint32 retInfoMask, + NW_ENTRY_INFO N_FAR * entryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSEntryInfoExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 srcNamSpc, + nuint8 dstNamSpc, + nuint16 searchAttrs, + nuint32 retInfoMask, + NW_ENTRY_INFO_EXT N_FAR * entryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSEntryInfo2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * pbstrPath, + nuint8 buNamSpc, + nuint8 buDstNamSpc, + nuint16 suSrchAttrs, + nuint32 luRetMask, + NW_ENTRY_INFO2 N_FAR * pEntryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNSEntryInfo2Ext +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * pbstrPath, + nuint8 buNamSpc, + nuint8 buDstNamSpc, + nuint16 suSrchAttrs, + nuint32 luRetMask, + NW_ENTRY_INFO2_EXT N_FAR * pEntryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWNSGetMiscInfo +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 dstNameSpace, + NW_IDX N_FAR * idxStruct +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenDataStream +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * fileName, + nuint16 dataStream, + nuint16 attrs, + nuint16 accessMode, + pnuint32 NWHandle, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWNSRename +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + const nstr8 N_FAR * oldName, + nuint16 oldType, + const nstr8 N_FAR * newName, + nuint8 renameFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWNSRenameExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + nuint8 namSpc, + const nstr8 N_FAR * oldName, + nuint16 oldType, + const nstr8 N_FAR * newName, + nuint8 renameFlag +); + + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetNSEntryDOSInfo +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 namSpc, + nuint16 searchAttrs, + nuint32 modifyDOSMask, + MODIFY_DOS_INFO N_FAR * dosInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetNSEntryDOSInfoExt +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + const nstr8 N_FAR * path, + nuint8 namSpc, + nuint16 searchAttrs, + nuint32 modifyDOSMask, + MODIFY_DOS_INFO N_FAR * dosInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFullPath +( + NWCONN_HANDLE conn, + nuint8 volNum, + nuint32 dirBase, + nuint16 handleFlag, + nint srcNamSpc, + nint dstNamSpc, + nuint16 maxPathLen, + pnstr8 path, + pnuint16 pathType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteNSEntry +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * fileName, + nuint8 nameSpace, + nuint16 searchAttr +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteNSEntryExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * fileName, + nuint8 nameSpace, + nuint16 searchAttr +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWNSGetDefaultNS +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + pnuint8 pbuDefaultNameSpace +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNSEntryInfoSet +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint8 buNameSpace, + nuint16 suAttr, + SEARCH_SEQUENCE N_FAR * pIterHnd, + const nstr8 N_FAR * pbstrSrchPattern, + nuint32 luRetMask, + pnuint8 pbuMoreEntriesFlag, + pnuint16 psuNumReturned, + nuint16 suNumItems, + NW_ENTRY_INFO N_FAR * pEntryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNSEntryInfoSetExt +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint8 buNameSpace, + nuint16 suAttr, + SEARCH_SEQUENCE N_FAR * pIterHnd, + const nstr8 N_FAR * pbstrSrchPattern, + nuint32 luRetMask, + pnuint8 pbuMoreEntriesFlag, + pnuint16 psuNumReturned, + nuint16 suNumItems, + NW_ENTRY_INFO_EXT N_FAR * pEntryInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNSEntryInfoSet2 +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint8 buNameSpace, + nuint16 suAttr, + SEARCH_SEQUENCE N_FAR * pIterHnd, + const nstr8 N_FAR * pbstrSrchPattern, + nuint32 luRetMask, + pnuint8 pbuMoreEntriesFlag, + pnuint16 psuNumReturned, + nuint16 suNumItems, + NW_ENTRY_INFO2 N_FAR * pEntryInfo2 +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNSEntryInfoSet2Ext +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + nuint8 buNameSpace, + nuint16 suAttr, + SEARCH_SEQUENCE N_FAR * pIterHnd, + const nstr8 N_FAR * pbstrSrchPattern, + nuint32 luRetMask, + pnuint8 pbuMoreEntriesFlag, + pnuint16 psuNumReturned, + nuint16 suNumItems, + NW_ENTRY_INFO2_EXT N_FAR * pEntryInfo2 +); + + +N_EXTERN_LIBRARY( NWCCODE ) +NWAddTrusteeToNSDirectory +( + NWCONN_HANDLE conn, + nuint8 namSpc, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint32 trusteeID, + nuint8 rightsMask +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDeleteTrusteeFromNSDirectory +( + NWCONN_HANDLE conn, + nuint8 namSpc, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * dirPath, + nuint32 objID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNSDirectoryForTrustees +( + NWCONN_HANDLE conn, + nuint8 namSpc, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * pbstrSrchPath, + pnuint32 pluIterHnd, + pnstr8 pbstrDirName, + pnuint32 pluDirDateTime, + pnuint32 pluOwnerID, + TRUSTEE_INFO N_FAR * trusteeList +); + +#ifdef NWDOS +#define __NWGetCurNS(a, b, c) NW_NS_DOS +#else +N_EXTERN_LIBRARY( nuint16 ) +__NWGetCurNS +( + NWCONN_HANDLE conn, + nuint8 dirHandle, + pnstr8 path +); +#endif + +#if defined N_PLAT_NLM +N_EXTERN_LIBRARY( nuint8 ) +SetCurrentNameSpace +( + nuint8 newNameSpace +); + +N_EXTERN_LIBRARY( nuint8 ) +SetTargetNameSpace +( + nuint8 newNameSpace +); + + +#endif + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_namspc.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwncpext.h b/c_clientlogin/xplatincl/nwncpext.h new file mode 100644 index 00000000..fe6def07 --- /dev/null +++ b/c_clientlogin/xplatincl/nwncpext.h @@ -0,0 +1,184 @@ +/****************************************************************************** + + %name: nwncpext.h % + %version: 7 % + %date_modified: Mon Oct 18 15:48:25 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWNCPEXT_H ) +#define NWNCPEXT_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#if ! defined ( NWMISC_H ) /* Needed to defined NWFRAGMENT */ +# include "nwmisc.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define BEGIN_SCAN_NCP_EXTENSIONS 0xFFFFFFFF +#define NW_NCPX_BEGIN_SCAN 0xFFFFFFFF +#define MAX_NCP_EXTENSION_NAME_BYTES 33 + +#if defined( N_PLAT_NLM ) + #define NWGetNCPExtensionInfo NWGetNCPExtensionInfo2 + #define NWScanNCPExtensions NWScanNCPExtensions2 + +N_EXTERN_LIBRARY_C( nint ) +NWDeRegisterNCPExtension +( + nptr queryData +); + +N_EXTERN_LIBRARY( nint ) +NWRegisterNCPExtension +( + nstr8 NCPExtensionName, + nuint8 (*NCPExtensionHandler)( + struct NCPExtensionClient *NCPExtensionClient, + nptr requestData, + nuint32 requestDataLen, + nptr replyData, + pnuint32 replyDataLen), + void (*ConnectionEventHandler)( + nuint32 connection, + nuint32 eventType), + void (*ReplyBufferManager)( + struct NCPExtensionClient *NCPExtensionClient, + nptr replyBuffer), + nuint8 majorVersion, + nuint8 minorVersion, + nuint8 revision, + pnptr queryData +); + +typedef struct NCPExtensionClient NCPExtensionClient; + +struct NCPExtensionClient { + nuint32 connection; + nuint32 task; +}; + +N_EXTERN_LIBRARY( nint ) +NWRegisterNCPExtensionByID +( + nuint32 NCPExtensionID, + nstr8 NCPExtensionName, + nuint8 (*NCPExtensionHandler)( + struct NCPExtensionClient *NCPExtensionClient, + nptr requestData, + nuint32 requestDataLen, + nptr replyData, + pnuint32 replyDataLen), + void (*ConnectionEventHandler)( + nuint32 connection, + nuint32 eventType), + void (*ReplyBufferManager)( + struct NCPExtensionClient *NCPExtensionClient, + nptr replyBuffer), + nuint8 majorVersion, + nuint8 minorVersion, + nuint8 revision, + pnptr queryData +); + +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNCPExtensionInfo +( + NWCONN_HANDLE conn, + nuint32 NCPExtensionID, + pnstr8 NCPExtensionName, + pnuint8 majorVersion, + pnuint8 minorVersion, + pnuint8 revision, + pnuint8 queryData +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWNCPExtensionRequest +( + NWCONN_HANDLE conn, + nuint32 NCPExtensionID, + const void N_FAR * requestData, + nuint16 requestDataLen, + nptr replyData, + pnuint16 replyDataLen +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFragNCPExtensionRequest +( + NWCONN_HANDLE conn, + nuint32 NCPExtensionID, + nuint16 reqFragCount, + NW_FRAGMENT N_FAR * reqFragList, + nuint16 replyFragCount, + NW_FRAGMENT N_FAR * replyFragList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanNCPExtensions +( + NWCONN_HANDLE conn, + pnuint32 NCPExtensionID, + pnstr8 NCPExtensionName, + pnuint8 majorVersion, + pnuint8 minorVersion, + pnuint8 revision, + pnuint8 queryData +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNCPExtensionInfoByName +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * NCPExtensionName, + pnuint32 NCPExtensionID, + pnuint8 majorVersion, + pnuint8 minorVersion, + pnuint8 revision, + pnuint8 queryData +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNCPExtensionsList +( + NWCONN_HANDLE conn, + pnuint32 startNCPExtensionID, + pnuint16 itemsInList, + pnuint32 NCPExtensionIDList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNumberNCPExtensions +( + NWCONN_HANDLE conn, + pnuint32 numNCPExtensions +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwndscon.h b/c_clientlogin/xplatincl/nwndscon.h new file mode 100644 index 00000000..afde6739 --- /dev/null +++ b/c_clientlogin/xplatincl/nwndscon.h @@ -0,0 +1,70 @@ +/****************************************************************************** + + %name: nwndscon.h % + %version: 9 % + %date_modified: Tue Aug 29 17:19:36 2000 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWNDSCON_H ) +#define NWNDSCON_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#define NWNDS_CONNECTION 0x0001 +#define NWNDS_LICENSED 0x0002 +#define NWNDS_AUTHENTICATED 0x0004 +#define NWNDS_PACKET_BURST_AVAIL 0x0001 +#define NWNDS_NEEDED_MAX_IO 0x0040 +#define SYSTEM_LOCK 0x0 +#define TASK_LOCK 0x4 +#define SYSTEM_DISCONNECT 0x0 +#define TASK_DISCONNECT 0x1 + +#define ALLREADY_ATTACHED 0x1 +#define ATTACHED_NOT_AUTH 0X2 +#define ATTACHED_AND_AUTH 0X4 + +#ifdef __cplusplus + extern "C" { +#endif + + +N_EXTERN_LIBRARY (NWCCODE) +NWSetPreferredDSTree +( + nuint16 length, + pnuint8 treeName +); + + +#ifdef __cplusplus + } +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_ndscon.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#endif /* NWNDSCON_H */ diff --git a/c_clientlogin/xplatincl/nwnet.h b/c_clientlogin/xplatincl/nwnet.h new file mode 100644 index 00000000..3fd53f24 --- /dev/null +++ b/c_clientlogin/xplatincl/nwnet.h @@ -0,0 +1,110 @@ +/****************************************************************************** + + %name: nwnet.h % + %version: 6 % + %date_modified: Fri Nov 20 09:55:30 1998 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWNET_H ) +#define NWNET_H + +#if ! defined ( NWDSTYPE_H ) +#include "nwdstype.h" +#endif + +#if ! defined ( NWALIAS_H ) +#include "nwalias.h" +#endif + +#if ! defined ( NWDSDEFS_H ) +#include "nwdsdefs.h" +#endif + +#if ! defined ( NWDSERR_H ) +#include "nwdserr.h" +#endif + +#if ! defined ( NWDSNAME_H ) +#include "nwdsname.h" +#endif + +#if ! defined ( NWDSFILT_H ) +#include "nwdsfilt.h" +#endif + +#if ! defined ( NWDSDC_H ) +#include "nwdsdc.h" +#endif + +#if ! defined ( NWDSMISC_H ) +#include "nwdsmisc.h" +#endif + +#if ! defined ( NWDSACL_H ) +#include "nwdsacl.h" +#endif + +#if ! defined ( NWDSAUD_H ) +#include "nwdsaud.h" +#endif + +#if ! defined ( NWDSDSA_H ) +#include "nwdsdsa.h" +#endif + +#if ! defined ( NWDSSCH_H ) +#include "nwdssch.h" +#endif + +#if ! defined ( NWDSATTR_H ) +#include "nwdsattr.h" +#endif + +#if ! defined ( NWDSASA_H ) +#include "nwdsasa.h" +#endif + +#if ! defined ( NWDSPART_H ) +#include "nwdspart.h" +#endif + +#if ! defined ( NWDSBUFT_H ) +#include "nwdsbuft.h" +#endif + +#if ! defined ( NWDSNMTP_H ) +#include "nwdsnmtp.h" +#endif + +#if ! defined ( NUNICODE_H ) +#include "nunicode.h" +#endif + +#if ! defined ( NWAUDIT_H ) +#include "nwaudit.h" +#endif + +#if ! defined ( NWNDSCON_H ) +#include "nwndscon.h" +#endif + +#if ! defined ( NWDSCONN_H ) +#include "nwdsconn.h" +#endif + +#if !defined( NWITR_H ) +#include "nwitr.h" +#endif + +#endif /* NWNET_H */ diff --git a/c_clientlogin/xplatincl/nwprint.h b/c_clientlogin/xplatincl/nwprint.h new file mode 100644 index 00000000..06bcccf9 --- /dev/null +++ b/c_clientlogin/xplatincl/nwprint.h @@ -0,0 +1,503 @@ +/****************************************************************************** + + %name: nwprint.h % + %version: 6 % + %date_modified: Wed Oct 20 10:33:30 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWPRINT_H ) +#define NWPRINT_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define LPT1 1 +#define LPT2 2 +#define LPT3 3 +#define LPT4 4 +#define LPT5 5 +#define LPT6 6 +#define LPT7 7 +#define LPT8 8 +#define LPT9 9 + +#define START_CAPTURE 1 +#define END_CAPTURE 2 +#define CANCEL_CAPTURE 3 +#define GET_PRINT_JOB_FLAGS 4 +#define SET_PRINT_JOB_FLAGS 5 +#define GET_BANNER_USER_NAME 6 +#define SET_BANNER_USER_NAME 7 +#define GET_PRINTER_SETUP_STRING 8 +#define SET_PRINTER_SETUP_STRING 9 +#define GET_PRINTER_RESET_STRING 10 +#define SET_PRINTER_RESET_STRING 11 + +typedef struct +{ + nuint8 clientStation; + nuint8 clientTask; + nuint32 clientID; + nuint32 targetServerID; + nuint8 targetExecutionTime[6]; + nuint8 jobEntryTime[6]; + nuint16 jobNumber; + nuint16 formType; + nuint8 jobPosition; + nuint8 jobControlFlags; + nuint8 jobFileName[14]; + nuint8 jobFileHandle[6]; + nuint8 servicingServerStation; + nuint8 servicingServerTask; + nuint32 servicingServerID; + nuint8 jobDescription[50]; + nuint8 clientJobInfoVer; + nuint8 tabSize; + nuint16 numberCopies; + nuint16 printFlags; + nuint16 maxLines; + nuint16 maxChars; + nuint8 formName[16]; + nuint8 reserved[6]; /* must be set to zeros */ + nuint8 bannerUserName[13]; + nuint8 bannerFileName[13]; + nuint8 bannerHeaderFileName[14]; + nuint8 filePathName[80]; +} PrintJobStruct; + +typedef struct +{ + nuint32 clientStation; + nuint32 clientTask; + nuint32 clientID; + nuint32 targetServerID; + nuint8 targetExecutionTime[6]; + nuint8 jobEntryTime[6]; + nuint32 jobNumber; + nuint16 formType; + nuint16 jobPosition; + nuint16 jobControlFlags; + nuint8 jobFileName[14]; + nuint32 jobFileHandle; + nuint32 servicingServerStation; + nuint32 servicingServerTask; + nuint32 servicingServerID; + nuint8 jobDescription[50]; + nuint8 clientJobInfoVer; + nuint8 tabSize; + nuint16 numberCopies; + nuint16 printFlags; + nuint16 maxLines; + nuint16 maxChars; + nuint8 formName[16]; + nuint8 reserved[6]; /* must be set to zeros */ + nuint8 bannerUserName[13]; + nuint8 bannerFileName[13]; + nuint8 bannerHeaderFileName[14]; + nuint8 filePathName[80]; +} NWPrintJobStruct; + +typedef struct PRINTER_STATUS +{ + nuint8 printerHalted; + nuint8 printerOffline; + nuint8 currentFormType; + nuint8 redirectedPrinter; +} PRINTER_STATUS; + +typedef struct +{ + nuint8 jobDescription[ 50 ]; /* OS/2, VLM only */ + /* VLM returns or sets only 12 characters */ + /* plus the NULL -- a total of 13 nuint8's */ + nuint8 jobControlFlags; /* OS/2, VLM only */ + nuint8 tabSize; + nuint16 numCopies; + nuint16 printFlags; + nuint16 maxLines; + nuint16 maxChars; + nuint8 formName[ 13 ]; + nuint8 reserved[ 9 ]; + nuint16 formType; + nuint8 bannerText[ 13 ]; + nuint8 reserved2; + nuint16 flushCaptureTimeout; /* DOS/WIN only */ + nuint8 flushCaptureOnClose; /* DOS/WIN only */ +} NWCAPTURE_FLAGSRW; + +#define NWCAPTURE_FLAGS1 NWCAPTURE_FLAGSRW + +typedef struct +{ + NWCONN_HANDLE connID; + nuint32 queueID; + nuint16 setupStringMaxLen; + nuint16 resetStringMaxLen; + nuint8 LPTCaptureFlag; /* DOS/WIN only */ + nuint8 fileCaptureFlag; /* DOS/WIN only */ + nuint8 timingOutFlag; /* DOS/WIN only */ + nuint8 inProgress; /* DOS/WIN only */ + nuint8 printQueueFlag; /* DOS/WIN only */ + nuint8 printJobValid; /* DOS/WIN only */ + nstr8 queueName[ 65 ]; /* VLM only */ +} NWCAPTURE_FLAGSRO; + +#define NWCAPTURE_FLAGS2 NWCAPTURE_FLAGSRO + +typedef struct +{ + nuint32 connRef; + nuint32 queueID; + nuint16 setupStringMaxLen; + nuint16 resetStringMaxLen; + nuint8 LPTCaptureFlag; /* DOS/WIN only */ + nuint8 fileCaptureFlag; /* DOS/WIN only */ + nuint8 timingOutFlag; /* DOS/WIN only */ + nuint8 inProgress; /* DOS/WIN only */ + nuint8 printQueueFlag; /* DOS/WIN only */ + nuint8 printJobValid; /* DOS/WIN only */ + nstr8 queueName[ 65 ]; /* VLM only */ +} NWCAPTURE_FLAGSRO3; + +#define NWCAPTURE_FLAGS3 NWCAPTURE_FLAGSRO3 + +#ifdef N_PLAT_OS2 + +#define N_APIPIPE "\\PIPE\\NWSPOOL\\API" /*IPC to API*/ +#define NET_SPOOL_SEG "\\sharemem\\nwspool\\seg1" +#define NET_SPOOL_SEM1 "\\sem\\nwspool\\sem1" +#define NET_SPOOL_SEM2 "\\sem\\nwspool\\sem2" +#define NET_SPOOL_SEM3 "\\sem\\nwspool\\sem3" + +typedef struct +{ + nuint32 targetServerID; + nuint8 targetExecutionTime[6]; + nuint8 jobDescription[50]; + nuint8 jobControlFlags; + nuint8 tabSize; + nuint16 numberCopies; + nuint16 printFlags; + nuint16 maxLines; + nuint16 maxChars; + nuint8 formName[16]; + nuint8 reserved1[6]; /* must be set to zeros */ + nuint16 formType; + nuint8 bannerFileName[13]; + nuint8 reserved2; /* must be set to zero */ + + /* The following fields can be gotten, but not set */ + NWCONN_HANDLE connID; + nuint32 queueID; + nuint16 setupStringMaxLength; + nuint16 resetStringMaxLength; +} SpoolFlagsStruct; + +typedef struct _NWPipeStruct +{ + nuint16 fwCommand; + nuint16 idSession; + nuint32 idQueue; + nuint16 idConnection; + nuint16 idDevice; + nuint16 fwMode; + nuint16 fwScope; + nuint16 cbBufferLength; + nuint8 fbValidBuffer; + SpoolFlagsStruct nwsSpoolFlags; + nuint8 szBannerUserName[13]; + nuint16 rc; +} NWPipeStruct; + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolGetPrintJobFlags +( + nuint16 deviceID, + SpoolFlagsStruct N_FAR * flagsBuffer, + nuint16 mode, + pnuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolSetPrintJobFlags +( + nuint16 deviceID, + SpoolFlagsStruct N_FAR * flagsBuffer, + nuint16 unused +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolGetPrinterSetupString +( + nuint16 deviceID, + pnuint16 bufferLen, + pnstr8 buffer, + nuint16 mode, + pnuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolSetPrinterSetupString +( + nuint16 deviceID, + nuint16 bufferLen, + pnstr8 buffer, + nuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolGetPrinterResetString +( + nuint16 deviceID, + pnuint16 bufferLen, + pnstr8 buffer, + nuint16 mode, + pnuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolSetPrinterResetString +( + nuint16 deviceID, + nuint16 bufferLen, + pnstr8 buffer, + nuint16 scope +); + +#else + +typedef struct +{ + nuint8 status; + nuint8 flags; + nuint8 tabSize; + nuint8 serverPrinter; + nuint8 numberCopies; + nuint8 formType; + nuint8 reserved; + nuint8 bannerText[13]; + nuint8 reserved2; + nuint8 localLPTDevice; + nuint16 captureTimeOutCount; + nuint8 captureOnDeviceClose; +} CaptureFlagsStruct; + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetPrinterDefaults +( + pnuint8 status, + pnuint8 flags, + pnuint8 tabSize, + pnuint8 serverPrinter, + pnuint8 numberCopies, + pnuint8 formType, + pnstr8 bannerText, + pnuint8 localLPTDevice, + pnuint16 captureTimeOutCount, + pnuint8 captureOnDeviceClose +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetPrinterDefaults +( + nuint8 flags, + nuint8 tabSize, + nuint8 serverPrinter, + nuint8 numberCopies, + nuint8 formType, + pnstr8 bannerText, + nuint8 localLPTDevice, + nuint16 captureTimeOutCount, + nuint8 captureOnDeviceClose +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWStartLPTCapture +( + nuint16 deviceID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetLPTCaptureStatus +( + NWCONN_HANDLE N_FAR * conn +); + +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolStartCapture +( + nuint16 deviceID, + nuint32 queueID, + NWCONN_HANDLE conn, + nuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolEndCapture +( + nuint16 deviceID, + nuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolCancelCapture +( + nuint16 deviceID, + nuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolGetBannerUserName +( + pnstr8 username, + nuint16 mode, + pnuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSpoolSetBannerUserName +( + const nstr8 N_FAR * username, + nuint16 scope +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetPrinterStatus +( + NWCONN_HANDLE conn, + nuint16 printerNumber, + PRINTER_STATUS N_FAR * status +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWStartQueueCapture +( + NWCONN_HANDLE conn, + nuint8 LPTDevice, + nuint32 queueID, + const nstr8 N_FAR * queueName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetCaptureStatus +( + nuint8 LPTDevice +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFlushCapture +( + nuint8 LPTDevice +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWEndCapture +( + nuint8 LPTDevice +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCancelCapture +( + nuint8 LPTDevice +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetBannerUserName +( + pnstr8 userName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetBannerUserName +( + const nstr8 N_FAR * userName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetCaptureFlags +( + nuint8 LPTDevice, + NWCAPTURE_FLAGS1 N_FAR * captureFlags1, + NWCAPTURE_FLAGS2 N_FAR * captureFlags2 +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetCaptureFlagsConnRef +( + nuint8 LPTDevice, + NWCAPTURE_FLAGS1 N_FAR * captureFlags1, + NWCAPTURE_FLAGS3 N_FAR * captureFlags3 +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetCaptureFlags +( + NWCONN_HANDLE conn, + nuint8 LPTDevice, + const NWCAPTURE_FLAGS1 N_FAR * captureFlags1 +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetPrinterStrings +( + nuint8 LPTDevice, + pnuint16 setupStringLen, + pnstr8 setupString, + pnuint16 resetStringLen, + pnstr8 resetString +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetPrinterStrings +( + nuint8 LPTDevice, + nuint16 setupStringLen, + const nstr8 N_FAR * setupString, + nuint16 resetStringLen, + const nstr8 N_FAR * resetString +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetMaxPrinters +( + pnuint16 numPrinters +); + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_print.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwqms.h b/c_clientlogin/xplatincl/nwqms.h new file mode 100644 index 00000000..c4157d11 --- /dev/null +++ b/c_clientlogin/xplatincl/nwqms.h @@ -0,0 +1,502 @@ +/****************************************************************************** + + %name: nwqms.h % + %version: 5 % + %date_modified: Fri Oct 15 11:31:46 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWQMS_H ) +#define NWQMS_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define QF_AUTO_START 0x08 +#define QF_ENTRY_RESTART 0x10 +#define QF_ENTRY_OPEN 0x20 +#define QF_USER_HOLD 0x40 +#define QF_OPERATOR_HOLD 0x80 + +#define QS_CANT_ADD_JOBS 0x01 +#define QS_SERVERS_CANT_ATTACH 0x02 +#define QS_CANT_SERVICE_JOBS 0x04 + +/* +This struct is taken from NLM platform in the nwqueue.h file. This +structure is the format for a print queue only. Other queue types +might have different structures. Used with the clientRecordArea field +in some of the structures listed below. +*/ +typedef struct +{ +nuint8 versionNumber; +nuint8 tabSize; +nuint16 numberOfCopies; +nuint16 printControlFlags; +nuint16 maxLinesPerPage; +nuint16 maxCharsPerLine; +nuint8 formName[13]; +nuint8 reserve[9]; +nuint8 bannerNameField[13]; +nuint8 bannerFileField[13]; +nuint8 bannerFileName[14]; +nuint8 directoryPath[80]; +} QueuePrintJobStruct; + + +typedef struct +{ + nuint8 clientStation; + nuint8 clientTask; + nuint32 clientID; + nuint32 targetServerID; + nuint8 targetExecutionTime[6]; + nuint8 jobEntryTime[6]; + nuint16 jobNumber; + nuint16 jobType; + nuint8 jobPosition; + nuint8 jobControlFlags; + nuint8 jobFileName[14]; + nuint8 jobFileHandle[6]; + nuint8 servicingServerStation; + nuint8 servicingServerTask; + nuint32 servicingServerID; + nuint8 jobDescription[50]; + nuint8 clientRecordArea[152]; +} QueueJobStruct; + +typedef struct +{ + nuint8 clientStation; + nuint8 clientTask; + nuint32 clientID; + nuint32 targetServerID; + nuint8 targetExecutionTime[6]; + nuint8 jobEntryTime[6]; + nuint16 jobNumber; + nuint16 jobType; + nuint8 jobPosition; + nuint8 jobControlFlags; + nuint8 jobFileName[14]; + nuint8 jobFileHandle[6]; + nuint8 servicingServerStation; + nuint8 servicingServerTask; + nuint32 servicingServerID; +} ReplyJobStruct; + +typedef struct +{ + nuint32 clientStation; + nuint32 clientTask; + nuint32 clientID; + nuint32 targetServerID; + nuint8 targetExecutionTime[6]; + nuint8 jobEntryTime[6]; + nuint32 jobNumber; + nuint16 jobType; + nuint16 jobPosition; + nuint16 jobControlFlags; + nuint8 jobFileName[14]; + nuint32 jobFileHandle; + nuint32 servicingServerStation; + nuint32 servicingServerTask; + nuint32 servicingServerID; + nuint8 jobDescription[50]; + nuint8 clientRecordArea[152]; +} NWQueueJobStruct; + +typedef struct +{ + nuint32 clientStation; + nuint32 clientTask; + nuint32 clientID; + nuint32 targetServerID; + nuint8 targetExecutionTime[6]; + nuint8 jobEntryTime[6]; + nuint32 jobNumber; + nuint16 jobType; + nuint16 jobPosition; + nuint16 jobControlFlags; + nuint8 jobFileName[14]; + nuint32 jobFileHandle; + nuint32 servicingServerStation; + nuint32 servicingServerTask; + nuint32 servicingServerID; +} NWReplyJobStruct; + +typedef struct +{ + nuint32 totalQueueJobs; + nuint32 replyQueueJobNumbers; + nuint32 jobNumberList[250]; /* 250 to hold job #'s for old NCP*/ +} QueueJobListReply; + +N_EXTERN_LIBRARY( NWCCODE ) +NWCreateQueueFile +( + NWCONN_HANDLE conn, + nuint32 queueID, + QueueJobStruct N_FAR * job, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCreateQueueFile2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + NWQueueJobStruct N_FAR * job, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseFileAndStartQueueJob +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 jobNumber, + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseFileAndStartQueueJob2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 jobNumber, + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseFileAndAbortQueueJob +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 jobNumber, + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseFileAndAbortQueueJob2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 jobNumber, + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRemoveJobFromQueue +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 jobNumber +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRemoveJobFromQueue2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 jobNumber +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetQueueJobList +( + NWCONN_HANDLE conn, + nuint32 queueID, + pnuint16 jobCount, + pnuint16 jobList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetQueueJobList2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 queueStartPos, + QueueJobListReply N_FAR * job +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadQueueJobEntry +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 jobNumber, + QueueJobStruct N_FAR * job +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadQueueJobEntry2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 jobNumber, + NWQueueJobStruct N_FAR * job +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetQueueJobFileSize +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 jobNumber, + pnuint32 fileSize +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetQueueJobFileSize2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 jobNumber, + pnuint32 fileSize +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangeQueueJobEntry +( + NWCONN_HANDLE conn, + nuint32 queueID, + const QueueJobStruct N_FAR * job +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangeQueueJobEntry2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + const NWQueueJobStruct N_FAR * job +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangeQueueJobPosition +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 jobNumber, + nuint8 newJobPos +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangeQueueJobPosition2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 jobNumber, + nuint32 newJobPos +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWServiceQueueJob +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 targetJobType, + QueueJobStruct N_FAR * job, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWServiceQueueJob2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 targetJobType, + NWQueueJobStruct N_FAR * job, + NWFILE_HANDLE N_FAR * fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAbortServicingQueueJob +( + NWCONN_HANDLE conn, + nuint32 QueueID, + nuint16 JobNumber, + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAbortServicingQueueJob2 +( + NWCONN_HANDLE conn, + nuint32 QueueID, + nuint32 JobNumber, + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangeToClientRights +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 jobNumber +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWChangeToClientRights2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 jobNumber +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFinishServicingQueueJob +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint16 jobNumber, + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWFinishServicingQueueJob2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 jobNumber, + NWFILE_HANDLE fileHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetPrinterQueueID +( + NWCONN_HANDLE conn, + nuint16 printerNum, + pnuint32 queueID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCreateQueue +( + NWCONN_HANDLE conn, + pnstr8 queueName, + nuint16 queueType, + nuint8 dirPath, + pnstr8 path, + pnuint32 queueID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDestroyQueue +( + NWCONN_HANDLE conn, + nuint32 queueID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadQueueCurrentStatus +( + NWCONN_HANDLE conn, + nuint32 queueID, + pnuint8 queueStatus, + pnuint16 numberOfJobs, + pnuint16 numberOfServers, + pnuint32 serverIDlist, + pnuint16 serverConnList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadQueueCurrentStatus2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + pnuint32 queueStatus, + pnuint32 numberOfJobs, + pnuint32 numberOfServers, + pnuint32 serverIDlist, + pnuint32 serverConnList +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetQueueCurrentStatus +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint8 queueStatus +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetQueueCurrentStatus2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 queueStatus +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadQueueServerCurrentStatus +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 serverID, + nuint16 serverConn, + nptr statusRec +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWReadQueueServerCurrentStatus2 +( + NWCONN_HANDLE conn, + nuint32 queueID, + nuint32 serverID, + nuint32 serverConn, + nptr statusRec +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAttachQueueServerToQueue +( + NWCONN_HANDLE conn, + nuint32 queueID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDetachQueueServerFromQueue +( + NWCONN_HANDLE conn, + nuint32 queueID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRestoreQueueServerRights +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetQueueServerCurrentStatus +( + NWCONN_HANDLE conn, + nuint32 queueID, + const void N_FAR * statusRec +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwredir.h b/c_clientlogin/xplatincl/nwredir.h new file mode 100644 index 00000000..5267e26c --- /dev/null +++ b/c_clientlogin/xplatincl/nwredir.h @@ -0,0 +1,115 @@ +/****************************************************************************** + + %name: nwredir.h % + %version: 3 % + %date_modified: Wed Dec 18 12:09:08 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWREDIR_H ) +#define NWREDIR_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(NWOS2) || !defined(WIN32) + +#ifndef REDIR_SIGNATURE +#define REDIR_SIGNATURE 'WN' + +typedef struct tNW_REDIR_ENTRY +{ + nuint16 index; + nuint8 deviceStatus; + nuint8 deviceType; + nuint16 storedValue; + nstr8 localName[16]; + nstr8 networkName[128]; +} NW_REDIR_ENTRY; +#endif + +/* obsolete +NWCCODE N_API NWRedirLogin +( + pnstr8 pbstrServerName, + pnstr8 pbstrUserName, + pnstr8 pbstrPassword +); +*/ + +N_EXTERN_LIBRARY( NWCCODE ) +NWRedirLogout +( + pnstr8 pbstrServerName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRedirectDevice +( + pnstr8 pbstrUNCPath, + nuint8 buDevice +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCancelRedirection +( + nuint8 buDevice +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetRedirectionEntry +( + NW_REDIR_ENTRY N_FAR * entry +); + +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWParseUNCPath +( + pnstr8 pbstrUNCPath, + NWCONN_HANDLE N_FAR * conn, + pnstr8 pbstrServerName, + pnstr8 pbstrVolName, + pnstr8 pbstrPath, + pnstr8 pbstrNWPath +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWParseUNCPathConnRef +( + pnstr8 pbstrUNCPath, + pnuint32 pluConnRef, + pnstr8 pbstrServerName, + pnstr8 pbstrVolName, + pnstr8 pbstrPath, + pnstr8 pbstrNWPath +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif /* NWREDIR_H */ diff --git a/c_clientlogin/xplatincl/nwserver.h b/c_clientlogin/xplatincl/nwserver.h new file mode 100644 index 00000000..817ad100 --- /dev/null +++ b/c_clientlogin/xplatincl/nwserver.h @@ -0,0 +1,286 @@ +/****************************************************************************** + + %name: nwserver.h % + %version: 9 % + %date_modified: Tue Aug 29 18:44:54 2000 % + $Copyright: + + Copyright (c) 1989-1996 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWSERVER_H ) +#define NWSERVER_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define LNS_CHECK 0 + +#ifndef NW_SHORT_NAME_SERVER +# define NW_SHORT_NAME_SERVER 0 +#endif + +#ifndef NW_LONG_NAME_SERVER +#define NW_LONG_NAME_SERVER 1 +#endif + +#ifndef NW_ENCP_SERVER +#define NW_ENCP_SERVER 1 +#endif + +#ifndef NW_EXTENDED_NCP_SERVER +#define NW_EXTENDED_NCP_SERVER 1 +#endif + +#define VERSION_CHECK 1 +# define NW_2X 0 +# define NW_30 1 +# define NW_311 2 +# define NW_32 3 +# define NW_40 4 + +typedef struct +{ + nuint8 serverName[48]; + nuint8 fileServiceVersion; + nuint8 fileServiceSubVersion; + nuint16 maximumServiceConnections; + nuint16 connectionsInUse; + nuint16 maxNumberVolumes; + nuint8 revision; + nuint8 SFTLevel; + nuint8 TTSLevel; + nuint16 maxConnectionsEverUsed; + nuint8 accountVersion; + nuint8 VAPVersion; + nuint8 queueVersion; + nuint8 printVersion; + nuint8 virtualConsoleVersion; + nuint8 restrictionLevel; + nuint8 internetBridge; + nuint8 reserved[60]; +} VERSION_INFO; + +typedef struct +{ + nuint16 majorVersion; + nuint16 minorVersion; + nuint16 revision; +} NETWARE_PRODUCT_VERSION; + +/* Defines that are used for the NWCheckNetWareVersion call for values + that can be returned in the compatibilityFlag nuint8. */ +#define COMPATIBLE 0x00 +#define VERSION_NUMBER_TOO_LOW 0x01 +#define SFT_LEVEL_TOO_LOW 0x02 +#define TTS_LEVEL_TOO_LOW 0x04 + +N_EXTERN_LIBRARY( NWCCODE ) +NWCheckConsolePrivileges +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDownFileServer +( + NWCONN_HANDLE conn, + nuint8 forceFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileServerDateAndTime +( + NWCONN_HANDLE conn, + pnuint8 dateTimeBuffer +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetFileServerDateAndTime +( + NWCONN_HANDLE conn, + nuint8 year, + nuint8 month, + nuint8 day, + nuint8 hour, + nuint8 minute, + nuint8 second +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCheckNetWareVersion +( + NWCONN_HANDLE conn, + nuint16 minVer, + nuint16 minSubVer, + nuint16 minRev, + nuint16 minSFT, + nuint16 minTTS, + pnuint8 compatibilityFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileServerVersionInfo +( + NWCONN_HANDLE conn, + VERSION_INFO N_FAR * versBuffer +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNetWareProductVersion +( + NWCONN_HANDLE conn, + NETWARE_PRODUCT_VERSION N_FAR * version +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileServerInformation +( + NWCONN_HANDLE conn, + pnstr8 serverName, + pnuint8 majorVer, + pnuint8 minVer, + pnuint8 rev, + pnuint16 maxConns, + pnuint16 maxConnsUsed, + pnuint16 connsInUse, + pnuint16 numVolumes, + pnuint8 SFTLevel, + pnuint8 TTSLevel +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileServerExtendedInfo +( + NWCONN_HANDLE conn, + pnuint8 accountingVer, + pnuint8 VAPVer, + pnuint8 queueingVer, + pnuint8 printServerVer, + pnuint8 virtualConsoleVer, + pnuint8 securityVer, + pnuint8 internetBridgeVer +); + +N_EXTERN_LIBRARY( NWCCODE ) +_NWGetFileServerType +( + NWCONN_HANDLE conn, + nuint16 typeFlag, + pnuint16 serverType +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAttachToFileServer +( + const nstr8 N_FAR * serverName, + nuint16 scopeFlag, + NWCONN_HANDLE N_FAR * newConnID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileServerLoginStatus +( + NWCONN_HANDLE conn, + pnuint8 loginEnabledFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWLogoutFromFileServer +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWLoginToFileServer +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * objName, + nuint16 objType, + const nstr8 N_FAR * password +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWEnableFileServerLogin +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDisableFileServerLogin +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetFileServerDescription +( + NWCONN_HANDLE conn, + pnstr8 companyName, + pnstr8 revision, + pnstr8 revisionDate, + pnstr8 copyrightNotice +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWAttachToFileServerByConn +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * serverName, + nuint16 scopeFlag, + NWCONN_HANDLE N_FAR * newConnID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetNetworkSerialNumber +( + NWCONN_HANDLE conn, + pnuint32 serialNum, + pnuint16 appNum +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWIsManager +( + NWCONN_HANDLE conn +); + +#ifdef NWOS2 +N_EXTERN_LIBRARY( NWCCODE ) +NWLogoutWithLoginID +( + nuint32 citrixLoginID +); +#endif + +#ifdef __cplusplus +} +#endif + + /* The NLM LibC x-plat libraries do not support obsolete apis + */ +#include +#if !defined(__NOVELL_LIBC__) + #ifdef INCLUDE_OBSOLETE + #include "obsolete/o_server.h" + #endif +#endif /* !defined(__NOVELL_LIBC__) */ + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwsm.h b/c_clientlogin/xplatincl/nwsm.h new file mode 100644 index 00000000..8136ae42 --- /dev/null +++ b/c_clientlogin/xplatincl/nwsm.h @@ -0,0 +1,140 @@ +/****************************************************************************** + + %name: nwsm.h % + %version: 5 % + %date_modified: Mon Oct 18 11:01:32 1999 % + $Copyright: + + Copyright (c) 1989-1996 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#if ! defined ( NWSM_H ) +#define NWSM_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWAPIDEF_H ) +#include "nwapidef.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWNAMSPC_H ) +#include "nwnamspc.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define LOAD_COULD_NOT_FIND_FILE 1 +#define LOAD_ERROR_READING_FILE 2 +#define LOAD_NOT_NLM_FILE_FORMAT 3 +#define LOAD_WRONG_NLM_FILE_VERSION 4 +#define LOAD_REENTRANT_INITIALIZE_FAILURE 5 +#define LOAD_CAN_NOT_LOAD_MULTIPLE_COPIES 6 +#define LOAD_ALREADY_IN_PROGRESS 7 +#define LOAD_NOT_ENOUGH_MEMORY 8 +#define LOAD_INITIALIZE_FAILURE 9 +#define LOAD_INCONSISTENT_FILE_FORMAT 10 +#define LOAD_CAN_NOT_LOAD_AT_STARTUP 11 +#define LOAD_AUTO_LOAD_MODULES_NOT_LOADED 12 +#define LOAD_UNRESOLVED_EXTERNAL 13 +#define LOAD_PUBLIC_ALREADY_DEFINED 14 +#define LOAD_XDC_DATA_ERROR 15 +#define LOAD_NOT_OS_DOMAIN 16 + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMLoadNLM +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * loadCommand +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMLoadNLM2 +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * loadCommand, + pnuint32 loadNLMReturnCode +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMUnloadNLM +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * NLMName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMMountVolume +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * volumeName, + pnuint32 volumeNumber +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMDismountVolumeByNumber +( + NWCONN_HANDLE connHandle, + nuint16 volumeNumber +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMDismountVolumeByName +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * volumeName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMAddNSToVolume +( + NWCONN_HANDLE connHandle, + nuint16 volNumber, + nuint8 namspc +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMSetDynamicCmdStrValue +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * setCommandName, + const nstr8 N_FAR * cmdValue +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMSetDynamicCmdIntValue +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * setCommandName, + nuint32 cmdValue +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSMExecuteNCFFile +( + NWCONN_HANDLE connHandle, + const nstr8 N_FAR * NCFFileName +); + +#include "npackoff.h" +#ifdef __cplusplus +} +#endif +#endif diff --git a/c_clientlogin/xplatincl/nwssdefs.h b/c_clientlogin/xplatincl/nwssdefs.h new file mode 100644 index 00000000..a0a0854f --- /dev/null +++ b/c_clientlogin/xplatincl/nwssdefs.h @@ -0,0 +1,202 @@ +/****************************************************************************** + + %name: nwssdefs.h % + %version: 3 % + %date_modified: Wed Dec 18 12:09:20 1996 % + $Copyright: + + Copyright (c) 1996 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ +#ifndef NWSSDEFS_H +#define NWSSDEFS_H + +#ifndef NTYPES_H +#include "ntypes.h" +#endif + +#ifndef NWDSDEFS_H +#include "nwdsdefs.h" +#endif + +#ifndef NWDSDC_H +#include "nwdsdc.h" +#endif + +#ifndef NWDSDC_H +#include "nwdsdc.h" +#endif + +#ifndef __NWDSERR_H +#include "nwdserr.h" +#endif + + + +/* ##################### DECLARATIONS START HERE ######################### */ + +#define NWSS_GLOBAL_RCODE N_EXTERN_LIBRARY(NWRCODE) + +/* ############################## ERROR CODES ############################ */ + +#define NWSS_SUCCESS 0x00000000 /* 0 */ +#define NWSS_ERR_BAD_HANDLE 0xFFFFFCE0 /* -800 */ +#define NWSS_ERR_ENCODING_ASN1ID 0xFFFFFCDF /* -801 */ +#define NWSS_ERR_INVALID_APP 0xFFFFFCDE /* -802 */ +#define NWSS_ERR_APP_EXISTS 0xFFFFFCDD /* -803 */ +#define NWSS_ERR_ACCESS_DENIED 0xFFFFFCDC /* -804 */ +#define NWSS_ERR_OBJ_READ_FAILED 0xFFFFFCDB /* -805 */ +#define NWSS_ERR_KEYCHAIN_EXISTS 0xFFFFFCDA /* -806 */ +#define NWSS_ERR_CMC_FAILURE 0xFFFFFCD9 /* -807 */ +#define NWSS_ERR_INVALID_KEYCHAIN 0xFFFFFCD8 /* -808 */ +#define NWSS_ERR_SHORT_ASN1ID 0xFFFFFCD7 /* -809 */ +#define NWSS_ERR_ID_EXISTS 0xFFFFFCD6 /* -810 */ +#define NWSS_ERR_INVALID_USER_ID 0xFFFFFCD5 /* -811 */ +#define NWSS_ERR_HANDLE_ALLOC_FAILED 0xFFFFFCD4 /* -812 */ +#define NWSS_ERR_NOT_LOGGED_IN 0xFFFFFCD3 /* -813 */ +#define NWSS_ERR_ALREADY_REVOKED 0xFFFFFCD2 /* -814 */ +#define NWSS_ERR_SECRET_ALREADY_EXIST 0xFFFFFCD1 /* -815 */ +#define NWSS_ERR_ILLEGAL_PASSWORD 0xFFFFFCD0 /* -816 */ +#define NWSS_ERR_WRONG_VERSION 0xFFFFFCCF /* -817 */ +#define NWSS_ERR_POLICY_RES_FAILED 0xFFFFFCCE /* -818 */ +#define NWSS_ERR_TTS_DISABLED 0xFFFFFCCD /* -819 */ +#define NWSS_ERR_NO_NDS_CONTEXT 0xFFFFFCCC /* -820 */ +#define NWSS_ERR_KC_SCHEMA_EXT_FAILED 0xFFFFFCCB /* -821 */ +#define NWSS_ERR_APP_SCHEMA_EXT_FAILED 0xFFFFFCCA /* -822 */ +#define NWSS_ERR_MEM_ALLOC_FAILED 0xFFFFFCC9 /* -823 */ +#define NWSS_ERR_OBJ_CREATION_FAILED 0xFFFFFCC8 /* -824 */ +#define NWSS_ERR_BAD_POINTER 0xFFFFFCC7 /* -825 */ +#define NWSS_ERR_OBJ_MODIFY_FAILED 0xFFFFFCC6 /* -826 */ +#define NWSS_ERR_CANT_REMOVE_KC 0xFFFFFCC5 /* -827 */ +#define NWSS_ERR_ASN1ID_NOT_EQUAL 0xFFFFFCC4 /* -828 */ + +/* ########################### FLAG DEFINITIONS ######################### */ + +/* application flags */ +#define SS_APP_ENABLED_C 0x0001 + +/* Secret Store Application flags */ +#define SS_MODIFYENABLED_C 0x0001 + +/* ########################### STRUCTURED DEFINITIONS ######################### */ + + +/* String and Data type */ +typedef struct _ss_string_type +{ + nuint16 length; + nuint8 *dataByte; +} SS_Data_T; + + + +/* Distinguished name type */ +typedef nuint8 SS_DN_T; + +/* Case Ignore String */ +typedef SS_Data_T SS_String_T; + +/* Application User ID */ +typedef SS_Data_T SS_AppUID_T; + +/* Application Secrets Contents */ +typedef SS_Data_T SS_AppSC_T; + +/* ASN1 ID */ +typedef SS_Data_T SS_ASN1ID_T; + + + +/* User Name List */ +typedef struct _ss_app_uid_list +{ + nuint16 userCount; + SS_AppUID_T N_FAR *userID[MAX_RDN_BYTES]; +} SS_AppUIDList_T; + + +/* Keychain List */ +typedef struct _ss_keychain_list +{ + SS_DN_T appName[MAX_DN_BYTES]; + nuint16 kcDNCount; + SS_DN_T N_FAR *kcDN[MAX_DN_BYTES]; +} SS_KeychainList_T; + + +/* ########################## FUNCTION PROTOTYPES ######################### */ + + +/****************************************************************** + ************************** ENABLING APIS ************************* + ******************************************************************/ + +NWSS_GLOBAL_RCODE NWSSOpenSecretStore +( + nuint32 N_FAR *ssHandle, + SS_DN_T N_FAR *owner, + SS_ASN1ID_T N_FAR *appID, + SS_KeychainList_T N_FAR *kcDN, + SS_AppUIDList_T N_FAR *appUID +); + + +NWSS_GLOBAL_RCODE NWSSCloseSecretStore +( + nuint32 ssHandle +); + + +NWSS_GLOBAL_RCODE NWSSAppUserLogin +( + nuint32 ssHandle, + nuint16 N_FAR *flags, + SS_DN_T N_FAR *appDN, + SS_DN_T N_FAR *kcDN, + SS_AppUID_T N_FAR *userID, + SS_AppSC_T N_FAR *appSecrets +); + + + +NWSS_GLOBAL_RCODE NWSSSaveAppSecretsOnKeychain +( + nuint32 ssHandle, + SS_DN_T N_FAR *appDN, + SS_DN_T N_FAR *kcDN, + SS_AppUID_T N_FAR *userID, + SS_AppSC_T N_FAR *appSecrets +); + + +NWSS_GLOBAL_RCODE NWSSRevokeKeychain +( + nuint32 ssHandle, + SS_DN_T N_FAR *kcDN +); + + +NWSS_GLOBAL_RCODE NWSSEncodeAppASN1ID +( + nuint16 N_FAR *oid, + SS_ASN1ID_T N_FAR *appID +); + +NWSS_GLOBAL_RCODE NWSSSetDefaultAppUserID +( + nuint32 ssHandle, + SS_DN_T N_FAR *owner, + SS_KeychainList_T N_FAR *kcDN, + SS_AppUIDList_T N_FAR *userID +); +/* ########################## CODE ENDS HERE ##################### */ + +#endif /* NWSSDEFS_H */ diff --git a/c_clientlogin/xplatincl/nwsync.h b/c_clientlogin/xplatincl/nwsync.h new file mode 100644 index 00000000..6d4843f8 --- /dev/null +++ b/c_clientlogin/xplatincl/nwsync.h @@ -0,0 +1,249 @@ +/****************************************************************************** + + %name: nwsync.h % + %version: 5 % + %date_modified: Tue Oct 19 15:48:50 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWSYNC_H ) +#define NWSYNC_H + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + nuint16 connNumber; + nuint16 taskNumber; + nuint8 lockStatus; +} LOGICAL_LOCK; + +typedef struct +{ + nuint16 useCount; + nuint16 shareableLockCount; + nuint8 locked; + nuint16 nextRequest; + nuint16 numRecords; + LOGICAL_LOCK logicalLock[128]; + nuint16 curRecord; +} LOGICAL_LOCKS; + +typedef struct +{ + nuint16 taskNumber; + nuint8 lockStatus; + nstr8 logicalName[128]; +} CONN_LOGICAL_LOCK; + +typedef struct +{ + nuint16 nextRequest; + nuint16 numRecords; + nuint8 records[508]; + nuint16 curOffset; + nuint16 curRecord; +} CONN_LOGICAL_LOCKS; + +typedef struct +{ + nuint16 loggedCount; + nuint16 shareableLockCount; + nuint32 recordStart; + nuint32 recordEnd; + nuint16 connNumber; + nuint16 taskNumber; + nuint8 lockType; +} PHYSICAL_LOCK; + +typedef struct +{ + nuint16 nextRequest; + nuint16 numRecords; + PHYSICAL_LOCK locks[32]; + nuint16 curRecord; + nuint8 reserved[8]; +} PHYSICAL_LOCKS; + +typedef struct +{ + nuint16 taskNumber; + nuint8 lockType; + nuint32 recordStart; + nuint32 recordEnd; +} CONN_PHYSICAL_LOCK; + +typedef struct +{ + nuint16 nextRequest; + nuint16 numRecords; + CONN_PHYSICAL_LOCK locks[51]; + nuint16 curRecord; + nuint8 reserved[22]; +} CONN_PHYSICAL_LOCKS; + +typedef struct +{ + nuint16 connNumber; + nuint16 taskNumber; +} SEMAPHORE; + +typedef struct +{ + nuint16 nextRequest; + nuint16 openCount; + nuint16 semaphoreValue; + nuint16 semaphoreCount; + SEMAPHORE semaphores[170]; + nuint16 curRecord; +} SEMAPHORES; + +typedef struct +{ + nuint16 openCount; + nuint16 semaphoreValue; + nuint16 taskNumber; + nstr8 semaphoreName[128]; +} CONN_SEMAPHORE; + +typedef struct +{ + nuint16 nextRequest; + nuint16 numRecords; + nuint8 records[508]; + nuint16 curOffset; + nuint16 curRecord; +} CONN_SEMAPHORES; + + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanPhysicalLocksByFile +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 dataStream, + pnint16 iterHandle, + PHYSICAL_LOCK N_FAR * lock, + PHYSICAL_LOCKS N_FAR * locks +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanLogicalLocksByConn +( + NWCONN_HANDLE conn, + nuint16 connNum, + pnint16 iterHandle, + CONN_LOGICAL_LOCK N_FAR * logicalLock, + CONN_LOGICAL_LOCKS N_FAR * logicalLocks +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanPhysicalLocksByConnFile +( + NWCONN_HANDLE conn, + nuint16 connNum, + NWDIR_HANDLE dirHandle, + const nstr8 N_FAR * path, + nuint8 dataStream, + pnint16 iterHandle, + CONN_PHYSICAL_LOCK N_FAR * lock, + CONN_PHYSICAL_LOCKS N_FAR * locks +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanLogicalLocksByName +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * logicalName, + pnint16 iterHandle, + LOGICAL_LOCK N_FAR * logicalLock, + LOGICAL_LOCKS N_FAR * logicalLocks +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanSemaphoresByConn +( + NWCONN_HANDLE conn, + nuint16 connNum, + pnint16 iterHandle, + CONN_SEMAPHORE N_FAR * semaphore, + CONN_SEMAPHORES N_FAR * semaphores +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanSemaphoresByName +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * semName, + pnint16 iterHandle, + SEMAPHORE N_FAR * semaphore, + SEMAPHORES N_FAR * semaphores +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSignalSemaphore +( + NWCONN_HANDLE conn, + nuint32 semHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWCloseSemaphore +( + NWCONN_HANDLE conn, + nuint32 semHandle +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWOpenSemaphore +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * semName, + nint16 initSemHandle, + pnuint32 semHandle, + pnuint16 semOpenCount +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWExamineSemaphore +( + NWCONN_HANDLE conn, + nuint32 semHandle, + pnint16 semValue, + pnuint16 semOpenCount +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWWaitOnSemaphore +( + NWCONN_HANDLE conn, + nuint32 semHandle, + nuint16 timeOutValue +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwtts.h b/c_clientlogin/xplatincl/nwtts.h new file mode 100644 index 00000000..9ecd5514 --- /dev/null +++ b/c_clientlogin/xplatincl/nwtts.h @@ -0,0 +1,160 @@ +/****************************************************************************** + + %name: nwtts.h % + %version: 3 % + %date_modified: Wed Dec 18 12:07:23 1996 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWTTS_H ) +#define NWTTS_H + +#if ! defined ( NWCALDEF_H ) +# include "nwcaldef.h" +#endif + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + nuint32 systemElapsedTime; + nuint8 TTS_Supported; + nuint8 TTS_Enabled; + nuint16 TTS_VolumeNumber; + nuint16 TTS_MaxOpenTransactions; + nuint16 TTS_MaxTransactionsOpened; + nuint16 TTS_CurrTransactionsOpen; + nuint32 TTS_TotalTransactions; + nuint32 TTS_TotalWrites; + nuint32 TTS_TotalBackouts; + nuint16 TTS_UnfilledBackouts; + nuint16 TTS_DiskBlocksInUse; + nuint32 TTS_FATAllocations; + nuint32 TTS_FileSizeChanges; + nuint32 TTS_FilesTruncated; + nuint8 numberOfTransactions; + struct + { + nuint8 connNumber; + nuint8 taskNumber; + } connTask[235]; +} TTS_STATS; + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSAbortTransaction +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSBeginTransaction +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSIsAvailable +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSGetControlFlags +( + NWCONN_HANDLE conn, + pnuint8 controlFlags +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSSetControlFlags +( + NWCONN_HANDLE conn, + nuint8 controlFlags +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSEndTransaction +( + NWCONN_HANDLE conn, + pnuint32 transactionNum +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSTransactionStatus +( + NWCONN_HANDLE conn, + nuint32 transactionNum +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSGetProcessThresholds +( + NWCONN_HANDLE conn, + pnuint8 logicalLockLevel, + pnuint8 physicalLockLevel +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSSetProcessThresholds +( + NWCONN_HANDLE conn, + nuint8 logicalLockLevel, + nuint8 physicalLockLevel +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSGetConnectionThresholds +( + NWCONN_HANDLE conn, + pnuint8 logicalLockLevel, + pnuint8 physicalLockLevel +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWTTSSetConnectionThresholds +( + NWCONN_HANDLE conn, + nuint8 logicalLockLevel, + nuint8 physicalLockLevel +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWEnableTTS +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWDisableTTS +( + NWCONN_HANDLE conn +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetTTSStats +( + NWCONN_HANDLE conn, + TTS_STATS N_FAR * ttsStats +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/nwvol.h b/c_clientlogin/xplatincl/nwvol.h new file mode 100644 index 00000000..d8c5998d --- /dev/null +++ b/c_clientlogin/xplatincl/nwvol.h @@ -0,0 +1,290 @@ +/****************************************************************************** + + %name: nwvol.h % + %version: 7 % + %date_modified: Tue Oct 19 13:37:06 1999 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + + *****************************************************************************/ + +#if ! defined ( NWVOL_H ) +#define NWVOL_H + +#if ! defined ( NTYPES_H ) +#include "ntypes.h" +#endif + +#if ! defined ( NWCALDEF_H ) +#include "nwcaldef.h" +#endif + +#if ! defined ( NWAPIDEF_H ) +#include "nwapidef.h" +#endif + + +#include "npackon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* define volume types */ + +#define VINetWare386 0 +#define VINetWare286 1 +#define VINetWare386v30 2 +#define VINetWare386v31 3 + +/* define the extended volume information status flag bits */ + +#define NWSubAllocEnabledBit 0x01 +#define NWCompressionEnabledBit 0x02 +#define NWMigrationEnabledBit 0x04 +#define NWAuditingEnabledBit 0x08 +#define NWReadOnlyEnabledBit 0x10 +#define NWPSSEnabledBit 0x80000000L + +/* define the constant for volume request flag for NWScanMountedVolumeList */ + +#define NW_VOLUME_NUMBER_ONLY 0 +#define NW_VOLUME_NUMBER_AND_NAME 1 + +typedef struct +{ + nuint32 objectID; + nuint32 restriction; +} NWOBJ_REST; + +typedef struct +{ + nuint8 numberOfEntries; + struct + { + nuint32 objectID; + nuint32 restriction; + } resInfo[12]; +} NWVolumeRestrictions; + +typedef struct +{ + nuint8 numberOfEntries; + struct + { + nuint32 objectID; + nuint32 restriction; + } resInfo[16]; +} NWVOL_RESTRICTIONS; + +typedef struct +{ + nint32 systemElapsedTime; + nuint8 volumeNumber; + nuint8 logicalDriveNumber; + nuint16 sectorsPerBlock; + nuint16 startingBlock; + nuint16 totalBlocks; + nuint16 availableBlocks; + nuint16 totalDirectorySlots; + nuint16 availableDirectorySlots; + nuint16 maxDirectorySlotsUsed; + nuint8 isHashing; + nuint8 isCaching; + nuint8 isRemovable; + nuint8 isMounted; + nstr8 volumeName[16]; +} VOL_STATS; + + +typedef struct ExtendedVolInfo_tag +{ + nuint32 volType; + nuint32 statusFlag; + nuint32 sectorSize; + nuint32 sectorsPerCluster; + nuint32 volSizeInClusters; + nuint32 freeClusters; + nuint32 subAllocFreeableClusters; + nuint32 freeableLimboSectors; + nuint32 nonfreeableLimboSectors; + nuint32 availSubAllocSectors; /* non freeable */ + nuint32 nonuseableSubAllocSectors; + nuint32 subAllocClusters; + nuint32 numDataStreams; + nuint32 numLimboDataStreams; + nuint32 oldestDelFileAgeInTicks; + nuint32 numCompressedDataStreams; + nuint32 numCompressedLimboDataStreams; + nuint32 numNoncompressibleDataStreams; + nuint32 precompressedSectors; + nuint32 compressedSectors; + nuint32 numMigratedDataStreams; + nuint32 migratedSectors; + nuint32 clustersUsedByFAT; + nuint32 clustersUsedByDirs; + nuint32 clustersUsedByExtDirs; + nuint32 totalDirEntries; + nuint32 unusedDirEntries; + nuint32 totalExtDirExtants; + nuint32 unusedExtDirExtants; + nuint32 extAttrsDefined; + nuint32 extAttrExtantsUsed; + nuint32 DirectoryServicesObjectID; + nuint32 volLastModifiedDateAndTime; +} NWVolExtendedInfo; + +typedef struct NWVolMountNumWithName_tag +{ + nuint32 volumeNumber; + nstr8 volumeName[NW_MAX_VOLUME_NAME_LEN]; +} NWVolMountNumWithName; + + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetDiskUtilization +( + NWCONN_HANDLE conn, + nuint32 objID, + nuint8 volNum, + pnuint16 usedDirectories, + pnuint16 usedFiles, + pnuint16 usedBlocks +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetObjDiskRestrictions +( + NWCONN_HANDLE conn, + nuint8 volNumber, + nuint32 objectID, + pnuint32 restriction, + pnuint32 inUse +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanVolDiskRestrictions +( + NWCONN_HANDLE conn, + nuint8 volNum, + pnuint32 iterhandle, + NWVolumeRestrictions N_FAR * volInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanVolDiskRestrictions2 +( + NWCONN_HANDLE conn, + nuint8 volNum, + pnuint32 iterhandle, + NWVOL_RESTRICTIONS N_FAR * volInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWRemoveObjectDiskRestrictions +( + NWCONN_HANDLE conn, + nuint8 volNum, + nuint32 objID +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWSetObjectVolSpaceLimit +( + NWCONN_HANDLE conn, + nuint16 volNum, + nuint32 objID, + nuint32 restriction +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetVolumeInfoWithHandle +( + NWCONN_HANDLE conn, + NWDIR_HANDLE dirHandle, + pnstr8 volName, + pnuint16 totalBlocks, + pnuint16 sectorsPerBlock, + pnuint16 availableBlocks, + pnuint16 totalDirEntries, + pnuint16 availableDirEntries, + pnuint16 volIsRemovableFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetVolumeInfoWithNumber +( + NWCONN_HANDLE conn, + nuint16 volNum, + pnstr8 volName, + pnuint16 totalBlocks, + pnuint16 sectorsPerBlock, + pnuint16 availableBlocks, + pnuint16 totalDirEntries, + pnuint16 availableDirEntries, + pnuint16 volIsRemovableFlag +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetVolumeName +( + NWCONN_HANDLE conn, + nuint16 volNum, + pnstr8 volName +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetVolumeNumber +( + NWCONN_HANDLE conn, + const nstr8 N_FAR * volName, + pnuint16 volNum +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetVolumeStats +( + NWCONN_HANDLE conn, + nuint8 volNum, + VOL_STATS N_FAR * volInfo +); + +#if defined( N_PLAT_NLM ) + #define NWGetExtendedVolumeInfo NWGetExtendedVolumeInfo2 +#endif + +N_EXTERN_LIBRARY( NWCCODE ) +NWGetExtendedVolumeInfo +( + NWCONN_HANDLE conn, + nuint16 volNum, + NWVolExtendedInfo N_FAR * volInfo +); + +N_EXTERN_LIBRARY( NWCCODE ) +NWScanMountedVolumeList +( + NWCONN_HANDLE conn, + nuint32 volRequestFlags, + nuint32 nameSpace, + pnuint32 iterHandle, + nuint32 numberItems, + pnuint32 numberReturned, + NWVolMountNumWithName N_FAR * volMountArr +); + +#ifdef __cplusplus +} +#endif + +#include "npackoff.h" +#endif diff --git a/c_clientlogin/xplatincl/unicode.h b/c_clientlogin/xplatincl/unicode.h new file mode 100644 index 00000000..4a614c0e --- /dev/null +++ b/c_clientlogin/xplatincl/unicode.h @@ -0,0 +1,1025 @@ + +/*-------------------------------------------------------------------------- + + %name: unicode.h % + %version: 15 % + %date_modified: Thu Feb 21 12:47:36 2002 % + $Copyright: + + Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved. + + THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND + TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED + COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, + EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED + WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION + OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO + CRIMINAL AND CIVIL LIABILITY.$ + +--------------------------------------------------------------------------*/ + + +#if !defined( UNICODE_H ) +#define UNICODE_H + +#include /* size_t */ + +#ifndef _SIZE_T_DEFINED +#define _SIZE_T_DEFINED +# ifndef _SIZE_T +# define _SIZE_T +# ifndef __size_t +# define __size_t +typedef unsigned int size_t; +# endif +# endif +#endif + +#ifdef N_PLAT_OS2 +# define PN_API * N_API /* OS2 requires different declaration than MS */ +#else +# define PN_API N_API * +#endif + +#if !defined( NTYPES_H ) +# include "ntypes.h" +#endif + +#if !defined _CONVERT_H +/* + Data types +*/ +#ifndef UNICODE_TYPE_DEFINED +#define UNICODE_TYPE_DEFINED +typedef unsigned short unicode; /* Unicode data must be 16 bits */ +#endif +typedef unicode N_FAR * punicode; +typedef unicode N_FAR * N_FAR * ppunicode; + +#define nwunisize(x) (sizeof(x)/sizeof(unicode)) + +/* + Converter handle +*/ + +typedef void *CONVERT; +typedef CONVERT N_FAR * pCONVERT; + +#endif + + +/****************************************************************************/ +/* + Type definitions for converter based APIs +*/ + +/* + IBM C/Set compiler requires "typedef nint (* N_API xxx)" + MSW and NLM platforms require "typedef nint (N_API * xxx)" + The PN_API symbol is defined to satisfy both situations. +*/ + +/* + Function called when non-mappable bytes are found +*/ +typedef nint (PN_API NMBYTE) +( + pCONVERT byteUniHandle,/* Handle to Byte <-> Uni converter */ + punicode output, /* Pointer to current output position*/ + nuint outputLeft, /* Space left in output buffer */ + pnuint outputUsed, /* Space used in output buffer */ + nuint8 N_FAR * badInput, /* Pointer to unmappable bytes */ + nuint badInputSize /* Size of unmappable input */ +); + +/* + Function called when non-mappable unicode characters are found +*/ +typedef nint (PN_API NMUNI) +( + pCONVERT byteUniHandle,/* Handle to Byte <-> Uni converter */ + pnuint8 output, /* Pointer to current output position*/ + nuint outputLeft, /* Space left in output buffer */ + pnuint outputUsed, /* Space used in output buffer */ + unicode N_FAR * badInput, /* Ptr to unmappable unicode chars */ + nuint badInputSize /* Size of unmappable input */ +); + +/* + Function called to scan for special byte input +*/ +typedef pnuint8 (PN_API SCBYTE) +( + pCONVERT byteUniHandle,/* Handle to Byte <-> Uni converter */ + nuint8 N_FAR * input, /* Input to scan for special bytes */ + nint scanmax /* Maximum # of bytes to scan or -1 */ +); + +/* + Function called to scan for special Unicode input +*/ +typedef punicode (PN_API SCUNI) +( + pCONVERT byteUniHandle,/* Handle to Byte <-> Uni converter */ + unicode N_FAR * input, /* Input to scan for special chars */ + nint scanmax /* Maximum # of bytes to scan or -1 */ +); + +/* + Function called to parse special byte input +*/ +typedef nint (PN_API PRBYTE) +( + pCONVERT byteUniHandle,/* Handle to Byte <-> Uni converter */ + punicode output, /* Buffer for Unicode output */ + nuint outputleft, /* Space left in output buffer */ + pnuint outputUsed, /* Space used in output buffer */ + nuint8 N_FAR * input, /* Buffer containing byte input */ + pnuint inputUsed /* Number of bytes of input used */ +); + +/* + Function called to parse special Unicode input +*/ +typedef nint (PN_API PRUNI) +( + pCONVERT byteUniHandle,/* Handle to Byte <-> Uni converter */ + pnuint8 output, /* Buffer for bytes output */ + nuint outputLeft, /* Space left in output buffer */ + pnuint outputUsed, /* Space used in output buffer */ + unicode N_FAR * input, /* Buffer containing byte input */ + pnuint inputUsed /* Number of Unicodes of input used */ +); + + +/****************************************************************************/ +/* + Macros used by and returned from converter based API calls + (i.e. NWUS*, NWUX*) +*/ + +/* + Novell-defined Unicode characters. + Consult with the Internationalization group before adding to this list. +*/ +#define UNI_CHANGE_NAMESPACE 0xf8f4 +#define UNI_PREVIOUS_DIR 0xf8f5 +#define UNI_CURRENT_DIR 0xf8f6 +#define UNI_PATH_SEPARATOR 0xF8F7 +#define UNI_VOLUMENAME_ROOT 0xf8f8 +#define UNI_VOLUME_ROOT 0xf8f9 +#define UNI_NDS_ROOT 0xf8fa +#define UNI_WILD_QMARK 0xf8fb +#define UNI_WILD_ASTERISK 0xf8fc +#define UNI_WILD_AUG_QMARK 0xf8fd +#define UNI_WILD_AUG_ASTERISK 0xf8fe +#define UNI_WILD_AUG_PERIOD 0xf8ff + +/* + Actions to take when an unmappable byte or uni character is encountered. + Used in SetNoMapAction call. +*/ +#define NWU_UNCHANGED_ACTION -1 /* Leave action unchanged */ +#define NWU_RETURN_ERROR 0 /* Return error code NWU_UNMAPPABLE_CHAR */ +#define NWU_SUBSTITUTE 1 /* Use the current substitution character */ +#define NWU_CALL_HANDLER 2 /* Call the no map handler function */ + +/* + Codes to enable the Scan and Parse handler functions. + Used in SetScanAction call. +*/ +#define NWU_DISABLED 0 /* Disable Scan/Parse functions */ +#define NWU_ENABLED 2 /* Enable Scan/Parse functions */ + +/* + Flags to pass to NWUXGetCaseConverter to specify whether to load + a converter which converts to upper, lower or title case. +*/ +#define NWU_LOWER_CASE 0 /* Lower case */ +#define NWU_UPPER_CASE 1 /* Upper case */ +#define NWU_TITLE_CASE 2 /* Title case */ + +/* + Flags to pass to NWUXGetNormalizeConverter to specify whether to + load a converter which converts to pre-composed or de-composed + unicode characters. +*/ +#define NWU_PRECOMPOSED 0 /* Precomposed */ +#define NWU_DECOMPOSED 1 /* Decomposed */ + +/* + For use in SetByte/UniFunction calls +*/ +#define NWU_UNCHANGED_FUNCTION ((void N_FAR *)-1) +#define NWU_RESET_TO_DEFAULT NULL + +/* + Error codes. FFFFFDE0 to FFFFFDFF reserved for new unicode APIs. +*/ +#define NWU_NO_CONVERTER -544 /* Default converter not loaded */ +#define NWU_CONVERTER_NOT_FOUND -543 /* Converter file was not found */ +#define NWU_TOO_MANY_FILES -542 /* Too many open files */ +#define NWU_NO_PERMISSION -541 /* Access to file was denied */ +#define NWU_OPEN_FAILED -540 /* File open failed */ +#define NWU_READ_FAILED -539 /* File read failed */ +#define NWU_OUT_OF_MEMORY -538 /* Insufficient memory */ +#define NWU_CANT_LOAD_CONVERTER -537 /* Unable to load converter */ +#define NWU_CONVERTER_CORRUPT -536 /* The converter is invalid */ +#define NWU_NULL_HANDLE -535 /* Converter handle was NULL */ +#define NWU_BAD_HANDLE -534 /* Converter handle is invalid */ +#define NWU_HANDLE_MISMATCH -533 /* Handle doesn't match operation */ +#define NWU_UNMAPPABLE_CHAR -532 /* Unmappable character found */ +#define NWU_RANGE_ERROR -531 /* Invalid constant passed to fn */ +#define NWU_BUFFER_FULL -530 /* Buffer too small for output */ +#define NWU_INPUT_MAX -529 /* Processed max # of input chars */ +#define UNI_PARSER_ERROR -528 /* Error from user-written parser */ +#define NWU_OLD_CONVERTER_VERSION -527 /* Outdated converter DLL */ +#define NWU_UNSUPPORTED_AUX_FUNCTION -526 /* Unsupported AUX function */ +#define NWU_EMBEDDED_NULL -525 /* Embedded null in len spec string */ +#define NWU_GET_CODE_PAGE_FAILED -524 /* Failed to get system cp or cc */ + +#define NWU_ILLEGAL_UTF8_CHARACTER -506 /* Cannot convert UTF8 char to Uni*/ +#define NWU_INSUFFICIENT_BUFFER -500 + + +/* + Error codes for translator based APIs (i.e. NW prefix) +*/ +#define UNI_ALREADY_LOADED -489 /* Already loaded another country or code page */ +#define UNI_FUTURE_OPCODE -490 /* Rule table has unimplimented rules*/ +#define UNI_NO_SUCH_FILE -491 /* No such file or directory */ +#define UNI_TOO_MANY_FILES -492 /* Too many files already open */ +#define UNI_NO_PERMISSION -493 /* Permission denied on file open */ +#define UNI_NO_MEMORY -494 /* Not enough memory */ +#define UNI_LOAD_FAILED -495 /* NWLoadRuleTable failed, don't know why */ +#define UNI_HANDLE_BAD -496 /* Rule table handle was bad */ +#define UNI_HANDLE_MISMATCH -497 /* Rule table handle doesn't match operation*/ +#define UNI_RULES_CORRUPT -498 /* Rule table is corrupt */ +#define UNI_NO_DEFAULT -499 /* No default rule and no 'No map' character*/ +#define UNI_INSUFFICIENT_BUFFER -500 +#define UNI_OPEN_FAILED -501 /* Open failed in NWLoadRuleTable */ +#define UNI_NO_LOAD_DIR -502 /* Load directory could not be determined */ +#define UNI_BAD_FILE_HANDLE -503 /* File handle was bad */ +#define UNI_READ_FAILED -504 /* File read of rule table failed */ +#define UNI_TRANS_CORRUPT -505 /* Translator is corrupt */ + +#define UNI_ILLEGAL_UTF8_CHARACTER -506 /* Illegal UTF-8 character encountered */ + + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************/ +/* + Unicode converter prototypes - These APIs are preferred over the older + non-converter counterparts (i.e. NWUnicodeToLocal, NWLocalToUnicode, etc.) +*/ +/* + These are the Standard API's +*/ +N_EXTERN_LIBRARY(nint) NWUSStandardUnicodeInit +( /* Initialize standard converters */ + void +); + +N_EXTERN_LIBRARY(nint) NWUSStandardUnicodeOverride +( /* Replace standard converter. */ + nuint codepage +); + +N_EXTERN_LIBRARY(void) NWUSStandardUnicodeRelease +( /* Release the standard converters */ + void +); + +N_EXTERN_LIBRARY(nint) NWUSGetCodePage +( /* Get the native code page and country */ + pnuint pCodePage, + pnuint pCountry +); + +/* NOTE: The actualLength parameter returned by the conversion routines + does *not* include the null terminator. +*/ + +N_EXTERN_LIBRARY(nint) NWUSByteToUnicode +( /* Convert bytes to Unicode */ + punicode unicodeOutput, /* Buffer for resulting Unicode */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const nuint8 N_FAR * byteInput, /* Buffer for input bytes */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUSByteToUnicodePath +( /* Convert bytes to Unicode for file path */ + punicode unicodeOutput, /* Buffer for resulting Unicode */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const nuint8 N_FAR * byteInput, /* Buffer for input bytes */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUSLenByteToUnicode +( /* Convert bytes to Unicode */ + punicode unicodeOutput, /* Buffer for resulting Unicode */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const nuint8 N_FAR * byteInput, /* Buffer for input bytes */ + nint inLength, /* Input str length in bytes or -1 */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUSLenByteToUnicodePath +( /* Convert bytes to Unicode for file path */ + punicode unicodeOutput, /* Buffer for resulting Unicode */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const nuint8 N_FAR * byteInput, /* Buffer for input bytes */ + nint inLength, /* Input str length in bytes or -1 */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUSUnicodeToByte +( /* Convert Unicode to bytes */ + pnuint8 byteOutput, /* Buffer for output bytes */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in bytes */ +); + +N_EXTERN_LIBRARY(nint) NWUSUnicodeToBytePath +( /* Convert Unicode to bytes for file path */ + pnuint8 byteOutput, /* Buffer for output bytes */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in bytes */ +); + +N_EXTERN_LIBRARY(nint) NWUSUnicodeToUntermByte +( /* Convert Unicode to bytes */ + pnuint8 byteOutput, /* Buffer for output bytes */ + nuint outputBufferLen,/* Length of output buffer */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in bytes */ +); + +N_EXTERN_LIBRARY(nint) NWUSUnicodeToUntermBytePath +( /* Convert Unicode to bytes for file path */ + pnuint8 byteOutput, /* Buffer for output bytes */ + nuint outputBufferLen,/* Length of output buffer */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in bytes */ +); + +N_EXTERN_LIBRARY(nint) NWUSUnicodeToLowerCase +( /* Convert Unicode to lower case */ + punicode lowerCaseOutput,/* Buffer for lower cased output */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUSUnicodeToUpperCase +( /* Convert Unicode to upper case */ + punicode upperCaseOutput,/* Buffer for upper cased output */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in uni chars */ +); + +/* + These are the Extended API's +*/ +N_EXTERN_LIBRARY(nint) NWUXLoadByteUnicodeConverter +( /* Load a Byte <-> Unicode converter */ + nuint codepage, /* Codepage number */ + pCONVERT N_FAR * byteUniHandle /* Converter handle returned here */ +); + +N_EXTERN_LIBRARY(nint) NWUXLoadCaseConverter +( /* Load a Unicode -> Case converter */ + nuint caseFlag, /* Want upper, lower or title casing? */ + pCONVERT N_FAR * caseHandle /* Converter handle returned here */ +); + +N_EXTERN_LIBRARY(nint) NWUXLoadCollationConverter +( /* Load a Unicode -> Collation converter */ + nuint countryCode, /* Country code for this locale */ + pCONVERT N_FAR * collationHandle /* Converter handle returned here */ +); + +N_EXTERN_LIBRARY(nint) NWUXLoadNormalizeConverter +( /* Load a Unicode -> Normalized converter */ + nuint preDeFlag, /* Want precomposed or decomposed flag?*/ + pCONVERT N_FAR * normalizeHandle /* Converter handle returned here */ +); + +N_EXTERN_LIBRARY(nint) NWUXUnloadConverter +( /* Release a converter from memory */ + pCONVERT converterHandle /* Handle to converter to be released */ +); + +N_EXTERN_LIBRARY(nint) NWUXByteToUnicode +( /* Convert bytes to Unicode */ + pCONVERT byteUniHandle, /* Handle to Byte <-> Uni converter*/ + punicode unicodeOutput, /* Buffer for resulting Unicode */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const nuint8 N_FAR * byteInput, /* Buffer for input bytes */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUXByteToUnicodePath +( /* Convert bytes to Unicode for file path */ + pCONVERT byteUniHandle, /* Handle to Byte <-> Uni converter*/ + punicode unicodeOutput, /* Buffer for resulting Unicode */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const nuint8 N_FAR * byteInput, /* Buffer for input bytes */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUXLenByteToUnicode +( /* Convert bytes to Unicode */ + pCONVERT byteUniHandle, /* Handle to Byte <-> Uni converter*/ + punicode unicodeOutput, /* Buffer for resulting Unicode */ + nuint outputBufferLen,/* Length of output buffer */ + const nuint8 N_FAR * byteInput, /* Buffer for input bytes */ + nint inLength, /* Input str length in bytes or -1 */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUXLenByteToUnicodePath +( /* Convert bytes to Unicode for file path */ + pCONVERT byteUniHandle, /* Handle to Byte <-> Uni converter*/ + punicode unicodeOutput, /* Buffer for resulting Unicode */ + nuint outputBufferLen,/* Length of output buffer */ + const nuint8 N_FAR * byteInput, /* Buffer for input bytes */ + nint inLength, /* Input str length in bytes or -1 */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUXUnicodeToByte +( /* Convert Unicode to bytes */ + pCONVERT byteUniHandle, /* Handle to Byte <-> Uni converter*/ + pnuint8 byteOutput, /* Buffer for output bytes */ + nuint outputBufferLen,/* Length of output buffer */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in bytes */ +); + +N_EXTERN_LIBRARY(nint) NWUXUnicodeToBytePath +( /* Convert Unicode to bytes for file path */ + pCONVERT byteUniHandle, /* Handle to Byte <-> Uni converter*/ + pnuint8 byteOutput, /* Buffer for output bytes */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in bytes */ +); + +N_EXTERN_LIBRARY(nint) NWUXUnicodeToUntermByte +( /* Convert Unicode to bytes */ + pCONVERT byteUniHandle, /* Handle to Byte <-> Uni converter*/ + pnuint8 byteOutput, /* Buffer for output bytes */ + nuint outputBufferLen,/* Length of output buffer */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in bytes */ +); + +N_EXTERN_LIBRARY(nint) NWUXUnicodeToUntermBytePath +( /* Convert Unicode to bytes for file path */ + pCONVERT byteUniHandle, /* Handle to Byte <-> Uni converter*/ + pnuint8 byteOutput, /* Buffer for output bytes */ + nuint outputBufferLen,/* Length of output buffer */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in bytes */ +); + +N_EXTERN_LIBRARY(nint) NWUXUnicodeToCase +( /* Convert to upper, lower or title case */ + pCONVERT caseHandle, /* Handle to converter */ + punicode monocasedOutput,/* Buffer for output */ + nuint outputBufferLen,/* Length of output buffer. Or 0 */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in uni chars */ +); + +N_EXTERN_LIBRARY(nint) NWUXUnicodeToCollation +( /* Convert Unicode to Collation weights */ + pCONVERT collationHandle, /* Handle to converter */ + punicode collationWeights,/* Buffer for collation weights */ + nuint outputBufferLen, /* Length of output buffer. Or 0 */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in uni chars*/ +); + +N_EXTERN_LIBRARY(nint) NWUXUnicodeToNormalized +( /* Convert Unicode to normalized */ + pCONVERT normalizeHandle, /* Handle to converter */ + punicode normalizedOutput,/* Buffer for normalized output */ + nuint outputBufferLen, /* Length of output buffer. Or 0 */ + const unicode N_FAR * unicodeInput, /* Buffer for Unicode input */ + pnuint actualLength /* Length of results in uni chars*/ +); + +N_EXTERN_LIBRARY(nint) NWUXGetCharSize +( /* Convert Unicode to bytes for file path */ + pCONVERT byteUniHandle,/* Handle to Byte <-> Uni converter */ + const nuint8 N_FAR * byteInput, /* Ptr to single or double-byte char */ + pnuint pCharSize /* # bytes in character (1 or 2) */ +); + +N_EXTERN_LIBRARY(nint) NWUXSetNoMapAction +( /* Set action to be taken for no map chars */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + nint noMapByteAction, /* Action to take for unmappable bytes */ + nint noMapUniAction /* Action to take for unmappable unicode */ +); + +N_EXTERN_LIBRARY(nint) NWUXGetNoMapAction +( /* Get action to be taken for no map chars */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + pnint noMapByteAction, /* Action to take for unmappable bytes */ + pnint noMapUniAction /* Action to take for unmappable unicode */ +); + +N_EXTERN_LIBRARY(nint) NWUXSetScanAction +( /* Enable or disable scan/parse functions */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + nint scanByteAction, /* Set action for scan/parse byte functions */ + nint scanUniAction /* Set action for scan/parse uni functions */ +); + +N_EXTERN_LIBRARY(nint) NWUXGetScanAction +( /* Get status of scan/parse functions */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + pnint scanByteAction, /* Status of scan/parse byte functions */ + pnint scanUniAction /* Status of scan/parse uni functions */ +); + +N_EXTERN_LIBRARY(nint) NWUXSetSubByte +( /* Set substitution byte for converter */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + nuint8 substituteByte /* Byte to be substituted */ +); + +N_EXTERN_LIBRARY(nint) NWUXGetSubByte +( /* Get substitution byte for converter */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + pnuint8 substituteByte /* Substitution byte returned here */ +); + +N_EXTERN_LIBRARY(nint) NWUXSetSubUni +( /* Set substitute uni char for converter */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + unicode substituteUni /* Unicode character to be substituted */ +); + +N_EXTERN_LIBRARY(nint) NWUXGetSubUni +( /* Get substitute uni char for converter */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + punicode substituteUni /* Substitution unicode char returned here */ +); + +N_EXTERN_LIBRARY(nint) NWUXSetByteFunctions +( /* Set up unmappable byte handling */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + NMBYTE noMapByteFunc, /* Function called for unmappable bytes */ + SCBYTE scanByteFunc, /* Byte scanning function */ + PRBYTE parseByteFunc /* Byte parsing function */ +); + +N_EXTERN_LIBRARY(nint) NWUXGetByteFunctions +( /* Get unmappable byte handling functions */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + NMBYTE N_FAR *noMapByteFunc,/* Handler function returned here */ + SCBYTE N_FAR *scanByteFunc, /* Byte scanning function */ + PRBYTE N_FAR *parseByteFunc /* Byte parsing function */ +); + +N_EXTERN_LIBRARY(nint) NWUXSetUniFunctions +( /* Set up unmappable character handling */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + NMUNI noMapUniFunc, /* Function called for unmappable uni chars */ + SCUNI scanUniFunc, /* Unicode scanning function */ + PRUNI parseUniFunc /* Unicode parsing function */ +); + +N_EXTERN_LIBRARY(nint) NWUXGetUniFunctions +( /* Set up unmappable unicode char handling */ + pCONVERT byteUniHandle, /* Handle to a Byte <-> Unicode converter */ + NMUNI N_FAR *noMapUniFunc, /* Function called for unmappable uni chars */ + SCUNI N_FAR *scanUniFunc, /* Unicode scan function */ + PRUNI N_FAR *parseUniFunc /* Unicode parse function */ +); + +N_EXTERN_LIBRARY(nint) NWUXEnableOemEuro +( + pCONVERT convert /* Set up converter to use the NW OEM Euro */ +); + +N_EXTERN_LIBRARY(nint) NWUXResetConverter +( + pCONVERT convert /* Reset a converter to default state */ +); + +/****************************************************************************/ + +/* + Table based Unicode/Local text conversion APIs. The converter based + APIs are preferred over these. +*/ +N_EXTERN_LIBRARY(nint) NWInitUnicodeTables +( + nint countryCode, + nint codePage +); + +N_EXTERN_LIBRARY(NWRCODE) NWLSetPrimaryUnicodeSearchPath +( + const nstr N_FAR *strSearchPath +); + +N_EXTERN_LIBRARY(nint) NWFreeUnicodeTables +( + void +); + +N_EXTERN_LIBRARY(nint) NWLoadRuleTable +( + pnstr ruleTableName, /* Name of the rule table */ + pnptr ruleHandle /* Where to put the rule table handle */ +); + +N_EXTERN_LIBRARY(nint) NWUnloadRuleTable +( + nptr ruleHandle /* Rule table handle */ +); + + +#if defined N_PLAT_NLM + +/* NWUSByteToUnicode or NWUXByteToUnicode are preferred */ +N_EXTERN_LIBRARY(nint) +NWLocalToUnicode /* Convert local to Unicode */ +( + nptr ruleHandle, /* Rule table handle */ + punicode dest, /* Buffer for resulting Unicode */ + nuint32 maxLen, /* Size of results buffer */ + const void N_FAR * src, /* Buffer with source local code */ + unicode noMap, /* No map character */ + pnuint len, /* Number of unicode chars in output */ + nuint32 allowNoMapFlag /* Flag indicating default map is allowable */ +); + +/* NWUSUnicodeToByte or NWUXUnicodeToByte are preferred */ +N_EXTERN_LIBRARY(nint) +NWUnicodeToLocal /* Convert Unicode to local code */ +( + nptr ruleHandle, /* Rule table handle */ + nptr dest, /* Buffer for resulting local code */ + nuint32 maxLen, /* Size of results buffer */ + const unicode N_FAR * src, /* Buffer with source Unicode */ + nuint8 noMap, /* No Map character */ + pnuint len, /* Number of bytes in output */ + nuint32 allowNoMapFlag /* Flag indicating default map is allowable */ +); + +#if !defined(EXCLUDE_UNICODE_NLM_COMPATIBILITY_MACROS) +#define NWLocalToUnicode(P1,P2,P3,P4,P5,P6) NWLocalToUnicode(P1,P2,P3,P4,P5,P6, 1) +#define NWUnicodeToLocal(P1,P2,P3,P4,P5,P6) NWUnicodeToLocal(P1,P2,P3,P4,P5,P6, 1) +#endif + +/* If I could make size_t be nuint32 for N_PLAT_NLM all of the functions */ +/* below here could be single sourced. */ +#if 0 +N_EXTERN_LIBRARY(nint) +NWUnicodeToCollation /* Convert Unicode to collation */ +( + nptr ruleHandle, /* Rule table handle */ + punicode dest, /* Buffer for resulting Unicode weights*/ + nuint32 maxLen, /* Size of results buffer */ + const unicode N_FAR * src, /* Buffer with source Unicode */ + unicode noMap, /* No map character */ + pnuint32 len /* Number of unicode chars in output */ +); + +N_EXTERN_LIBRARY(nint) +NWUnicodeCompare /* Compare two unicode characters */ +( + nptr ruleHandle, /* Rule table handle */ + unicode chr1, /* 1st character */ + unicode chr2 /* 2nd character */ +); + +N_EXTERN_LIBRARY(nint) +NWUnicodeToMonocase /* Convert Unicode to collation */ +( + nptr ruleHandle, /* Rule table handle */ + punicode dest, /* Buffer for resulting Unicode weights*/ + nuint32 maxLen, /* Size of results buffer */ + const unicode N_FAR * src, /* Buffer with source Unicode */ + pnuint32 len /* Number of unicode chars in output */ +); + +#endif + +#else /* not N_PLAT_NLM */ + +/* NWUSByteToUnicode or NWUXByteToUnicode are preferred */ +N_EXTERN_LIBRARY(nint) +NWLocalToUnicode /* Convert local to Unicode */ +( + nptr ruleHandle, /* Rule table handle */ + punicode dest, /* Buffer for resulting Unicode */ + size_t maxLen, /* Size of results buffer */ + const nuint8 N_FAR * src, /* Buffer with source local code */ + unicode noMap, /* No map character */ + size_t N_FAR * len /* Number of unicode chars in output */ +); + +/* NWUSUnicodeToByte or NWUXUnicodeToByte are preferred */ +N_EXTERN_LIBRARY(nint) +NWUnicodeToLocal /* Convert Unicode to local code */ +( + nptr ruleHandle, /* Rule table handle */ + pnuint8 dest, /* Buffer for resulting local code */ + size_t maxLen, /* Size of results buffer */ + const unicode N_FAR * src, /* Buffer with source Unicode */ + unsigned char noMap, /* No Map character */ + size_t N_FAR * len /* Number of bytes in output */ +); + +#endif /* not N_PLAT_NLM */ + +N_EXTERN_LIBRARY(nint) +NWUnicodeToCollation /* Convert Unicode to collation */ +( + nptr ruleHandle, /* Rule table handle */ + punicode dest, /* Buffer for resulting Unicode weights*/ + size_t maxLen, /* Size of results buffer */ + const unicode N_FAR * src, /* Buffer with source Unicode */ + unicode noMap, /* No map character */ + size_t N_FAR * len /* Number of unicode chars in output */ +); + +N_EXTERN_LIBRARY(nint) +NWUnicodeCompare /* Compare two unicode characters */ +( + nptr ruleHandle, /* Rule table handle */ + unicode chr1, /* 1st character */ + unicode chr2 /* 2nd character */ +); + +N_EXTERN_LIBRARY(nint) +NWUnicodeToMonocase /* Convert Unicode to collation */ +( + nptr ruleHandle, /* Rule table handle */ + punicode dest, /* Buffer for resulting Unicode weights*/ + size_t maxLen, /* Size of results buffer */ + const unicode N_FAR * src, /* Buffer with source Unicode */ + size_t N_FAR * len /* Number of unicode chars in output */ +); + + +/* + * Functions that work with XLate Tables + */ + +#if defined N_PLAT_DOS && defined N_UNI_NEW_TABLES + +# define N_UNI_LOAD_MONOCASE 0x0001 +# define N_UNI_LOAD_COLLATION 0x0002 + +N_EXTERN_LIBRARY(nint) NWLInitXlateTables +( + nint codePage, + nflag8 flags +); + +N_EXTERN_LIBRARY(nint) NWLFreeXlateTables +( + void +); + +N_EXTERN_LIBRARY(nint) NWLLoadXlateTable +( + pnstr ruleTableName, /* Name of the rule table */ + pnptr ruleHandle /* Where to put the rule table handle */ +); + +N_EXTERN_LIBRARY(nint) NWLUnloadXlateTable +( + const void N_FAR * ruleHandle /* Rule table handle */ +); + +# define NWInitUnicodeTables(CountryCode, CodePage) \ + NWLInitXlateTables( \ + CodePage, \ + N_UNI_LOAD_MONOCASE | N_UNI_LOAD_COLLATION \ + ) +# define NWFreeUnicodeTables NWLFreeXlateTables +# define NWLoadRuleTable NWLLoadXlateTable +# define NWUnloadRuleTable NWLUnloadXlateTable + +#endif + + +N_EXTERN_LIBRARY(nint) NWGetUnicodeToLocalHandle +( + pnptr handle +); + +N_EXTERN_LIBRARY(nint) NWGetLocalToUnicodeHandle +( + pnptr handle +); + +N_EXTERN_LIBRARY(nint) NWGetMonocaseHandle +( + pnptr handle +); + +N_EXTERN_LIBRARY(nint) NWGetCollationHandle +( + pnptr handle +); + +/****************************************************************************/ + +/* + Redefine these functions to use the new unicode API monocase routines. +*/ +#ifdef N_PLAT_NLM +# define uniicmp(s1, s2) nwusuniicmp(s1, s2) +# define uninicmp(s1, s2, l) nwusuninicmp(s1, s2, l) +#endif + + +/* + Unicode string functions that work like those in string.h +*/ + +N_EXTERN_LIBRARY(punicode) unicat /* Corresponds to strcat */ +( + punicode s1, /* Original string */ + const unicode N_FAR * s2 /* String to be appended */ +); + +N_EXTERN_LIBRARY(punicode) unichr /* Corresponds to strchr */ +( + const unicode N_FAR * s, /* String to be scanned */ + unicode c /* Character to be found */ +); + +N_EXTERN_LIBRARY(punicode) unicpy /* Corresponds to strcpy */ +( + punicode s1, /* Destination string */ + const unicode N_FAR * s2 /* Source string */ +); + +N_EXTERN_LIBRARY(size_t) unicspn /* Corresponds to strcspn */ +( + const unicode N_FAR * s1, /* String to be scanned */ + const unicode N_FAR * s2 /* Character set */ +); + +N_EXTERN_LIBRARY(size_t) unilen /* Corresponds to strlen */ +( + const unicode N_FAR * s /* String to determine length of */ +); + +N_EXTERN_LIBRARY(punicode) unincat /* Corresponds to strncat */ +( + punicode s1, /* Original string */ + const unicode N_FAR * s2, /* String to be appended */ + size_t n /* Maximum characters to be appended */ +); + +N_EXTERN_LIBRARY(punicode) unincpy /* Corresponds to strncpy */ +( + punicode s1, /* Destination string */ + const unicode N_FAR * s2, /* Source string */ + size_t n /* Maximum length */ +); + +N_EXTERN_LIBRARY(punicode) uninset /* Corresponds to strnset */ +( + punicode s, /* String to be modified */ + unicode c, /* Fill character */ + size_t n /* Maximum length */ +); + +N_EXTERN_LIBRARY(punicode) unipbrk /* Corresponds to strpbrk */ +( + const unicode N_FAR * s1, /* String to be scanned */ + const unicode N_FAR * s2 /* Character set */ +); + +N_EXTERN_LIBRARY (punicode) unipcpy /* Corresponds to strpcpy */ +( + punicode s1, /* Destination string */ + const unicode N_FAR * s2 /* Source string */ +); + +N_EXTERN_LIBRARY(punicode) unirchr /* Corresponds to strrchr */ +( + const unicode N_FAR * s, /* String to be scanned */ + unicode c /* Character to be found */ +); + +N_EXTERN_LIBRARY(punicode) unirev /* Corresponds to strrev */ +( + punicode s /* String to be reversed */ +); + +N_EXTERN_LIBRARY(punicode) uniset /* Corresponds to strset */ +( + punicode s, /* String to modified */ + unicode c /* Fill character */ +); + +N_EXTERN_LIBRARY(size_t) unispn /* Corresponds to strspn */ +( + const unicode N_FAR * s1, /* String to be tested */ + const unicode N_FAR * s2 /* Character set */ +); + +N_EXTERN_LIBRARY(punicode) unistr /* Corresponds to strstr */ +( + const unicode N_FAR * s1, /* String to be scanned */ + const unicode N_FAR * s2 /* String to be located */ +); + +N_EXTERN_LIBRARY(punicode) unitok /* Corresponds to strtok */ +( + punicode s1, /* String to be parsed */ + const unicode N_FAR * s2 /* Delimiter values */ +); + +N_EXTERN_LIBRARY(nint) uniicmp /* Corresponds to stricmp */ +( + const unicode N_FAR * s1, /* 1st string to be compared */ + const unicode N_FAR * s2 /* 2nd string to be compared */ +); + +N_EXTERN_LIBRARY(nint) uninicmp /* Corresponds to strnicmp */ +( + const unicode N_FAR * s1, /* 1st string to be compared */ + const unicode N_FAR * s2, /* 2nd string to be compared */ + size_t len /* Maximum length */ +); + +N_EXTERN_LIBRARY(nint) unicmp /* Unicode compare */ +( + const unicode N_FAR * s1, + const unicode N_FAR * s2 +); + +N_EXTERN_LIBRARY(nint) unincmp /* Unicode length compare */ +( + const unicode N_FAR * s1, + const unicode N_FAR * s2, + size_t len +); + +N_EXTERN_LIBRARY(size_t) unisize /* Corresponds to sizeof */ +( + const unicode N_FAR * s +); + +/* + * UTF-8 <--> Unicode Conversion APIS + */ +N_EXTERN_LIBRARY(nint) NWLUnicodeToUTF8 +( + const unicode N_FAR * uniStr, + nuint maxSize, + pnuint8 utf8Str, + pnuint utf8Size +); + +N_EXTERN_LIBRARY(nint) NWLUTF8ToUnicode +( + const nuint8 N_FAR * utf8Str, + nuint maxSize, + punicode uniStr, + pnuint uniSize, + ppnstr badSequence +); + +N_EXTERN_LIBRARY(nint) NWLUTF8ToUnicodeSize +( + const nuint8 N_FAR * utf8Str, + pnuint size +); + +N_EXTERN_LIBRARY(nuint) NWLUnicodeToUTF8Size +( + const unicode N_FAR * uniStr +); + +#ifdef __cplusplus +} +#endif + +#endif + +/****************************************************************************/ + diff --git a/c_clientlogin/xplatlib/libclnlnx.so b/c_clientlogin/xplatlib/libclnlnx.so new file mode 100644 index 0000000000000000000000000000000000000000..9bba3a48bb084198267790f463d36efa7ca02787 GIT binary patch literal 35677 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≀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 z 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 literal 0 HcmV?d00001