summaryrefslogtreecommitdiffstats
path: root/private/os2/inc/netb.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/os2/inc/netb.h')
-rw-r--r--private/os2/inc/netb.h133
1 files changed, 133 insertions, 0 deletions
diff --git a/private/os2/inc/netb.h b/private/os2/inc/netb.h
new file mode 100644
index 000000000..b0866f62e
--- /dev/null
+++ b/private/os2/inc/netb.h
@@ -0,0 +1,133 @@
+/*++
+
+Copyright (c) 1991 Microsoft Corporation
+
+Module Name:
+
+ netbios.h
+
+Abstract:
+
+ This is the main include file for the component of netbios that runs
+ in the user process.
+
+Author:
+
+ Colin Watson (ColinW) 24-Jun-91
+
+Revision History:
+
+--*/
+
+#include <nt.h>
+#include <ntrtl.h>
+#include <nturtl.h>
+#include <windows.h>
+#include <nb30.h>
+#include "nb30p.h"
+
+//
+// Internal version of the ncb layout that uses the reserved area to hold
+// the list entry when passing ncb's to the worker thread and the IO status
+// block used when the ncb is passed to the netbios device driver.
+//
+
+#pragma pack(1)
+
+//
+// Use packing to ensure that the cu union is not forced to word alignment.
+// All elements of this structure are naturally aligned.
+//
+
+typedef struct _NCBI {
+ UCHAR ncb_command; /* command code */
+ volatile UCHAR ncb_retcode; /* return code */
+ UCHAR ncb_lsn; /* local session number */
+ UCHAR ncb_num; /* number of our network name */
+ PUCHAR ncb_buffer; /* address of message buffer */
+ WORD ncb_length; /* size of message buffer */
+ union {
+ UCHAR ncb_callname[NCBNAMSZ];/* blank-padded name of remote */
+ struct _CHAIN_SEND {
+ WORD ncb_length2;
+ PUCHAR ncb_buffer2;
+ } ncb_chain;
+ } cu;
+ UCHAR ncb_name[NCBNAMSZ]; /* our blank-padded netname */
+ UCHAR ncb_rto; /* rcv timeout/retry count */
+ UCHAR ncb_sto; /* send timeout/sys timeout */
+ void (CALLBACK *ncb_post)( struct _NCB * );
+ /* POST routine address */
+ UCHAR ncb_lana_num; /* lana (adapter) number */
+ volatile UCHAR ncb_cmd_cplt; /* 0xff => commmand pending */
+
+ // Make driver specific use of the reserved area of the NCB.
+ WORD ncb_reserved; /* return to natural alignment */
+ union {
+ LIST_ENTRY ncb_next; /* queued to worker thread */
+ IO_STATUS_BLOCK ncb_iosb; /* used for Nt I/O interface */
+ } u;
+
+ HANDLE ncb_event; /* HANDLE to Win32 event */
+ } NCBI, *PNCBI;
+
+#pragma pack()
+
+VOID
+QueueToWorker(
+ IN PNCBI pncb
+ );
+
+DWORD
+Worker(
+ IN LPVOID Parameter
+ );
+
+VOID
+SendNcbToDriver(
+ IN PNCBI pncb
+ );
+
+VOID
+PostRoutineCaller(
+ PVOID Context,
+ PIO_STATUS_BLOCK Status,
+ ULONG Reserved
+ );
+
+VOID
+ChainSendPostRoutine(
+ PVOID Context,
+ PIO_STATUS_BLOCK Status,
+ ULONG Reserved
+ );
+
+VOID
+HangupConnection(
+ PNCBI pUserNcb
+ );
+
+#if DBG
+
+VOID
+DisplayNcb(
+ IN PNCBI pncbi
+ );
+
+#define NbPrintf(String) NbPrint String;
+
+VOID
+NbPrint(
+ char *Format,
+ ...
+ );
+
+#else
+
+// Dispose of debug statements in non-debug builds.
+#define DisplayNcb( pncb ) {};
+
+#define NbPrintf( String ) {};
+
+#endif
+// End of Debug related definitions