No empty .Rs/.Re
[netbsd-mini2440.git] / sys / netsmb / netbios.h
blob9a7ea4d3f0e7c0b92387bad1b8babfd0d14b1636
1 /* $NetBSD: netbios.h,v 1.6 2005/12/11 00:06:21 elad Exp $ */
3 /*
4 * Copyright (c) 2000-2001 Boris Popov
5 * All rights reserved.
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. All advertising materials mentioning features or use of this software
16 * must display the following acknowledgement:
17 * This product includes software developed by Boris Popov.
18 * 4. Neither the name of the author nor the names of any co-contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
34 * FreeBSD: src/sys/netsmb/netbios.h,v 1.1 2001/04/10 07:59:05 bp Exp
36 #ifndef _NETSMB_NETBIOS_H_
37 #define _NETSMB_NETBIOS_H_
40 * make this file dirty...
42 #ifndef _NETINET_IN_H_
43 #include <netinet/in.h>
44 #endif
46 #ifndef NetBSD
47 #ifndef _NETIPX_IPX_H_
48 #include <netipx/ipx.h>
49 #endif
50 #endif
52 #define AF_NETBIOS AF_NS /* XXX: should go to socket.h */
53 #define PF_NETBIOS AF_NETBIOS
55 #define NBPROTO_TCPSSN 1 /* NETBIOS session over TCP */
56 #define NBPROTO_IPXSSN 11 /* NETBIOS over IPX */
58 #define NB_NAMELEN 16
59 #define NB_ENCNAMELEN (NB_NAMELEN * 2)
60 #define NB_MAXLABLEN 63
62 #define NB_MINSALEN (sizeof(struct sockaddr_nb))
65 * name types
67 #define NBT_WKSTA 0x00
68 #define NBT_SERVER 0x20
71 * Session packet types
73 #define NB_SSN_MESSAGE 0x0
74 #define NB_SSN_REQUEST 0x81
75 #define NB_SSN_POSRESP 0x82
76 #define NB_SSN_NEGRESP 0x83
77 #define NB_SSN_RTGRESP 0x84
78 #define NB_SSN_KEEPALIVE 0x85
81 * resolver: Opcodes
83 #define NBNS_OPCODE_QUERY 0x00
84 #define NBNS_OPCODE_REGISTER 0x05
85 #define NBNS_OPCODE_RELEASE 0x06
86 #define NBNS_OPCODE_WACK 0x07
87 #define NBNS_OPCODE_REFRESH 0x08
88 #define NBNS_OPCODE_RESPONSE 0x10 /* or'ed with other opcodes */
91 * resolver: NM_FLAGS
93 #define NBNS_NMFLAG_BCAST 0x01
94 #define NBNS_NMFLAG_RA 0x08 /* recursion available */
95 #define NBNS_NMFLAG_RD 0x10 /* recursion desired */
96 #define NBNS_NMFLAG_TC 0x20 /* truncation occurred */
97 #define NBNS_NMFLAG_AA 0x40 /* authoritative answer */
100 * resolver: Question types
102 #define NBNS_QUESTION_TYPE_NB 0x0020
103 #define NBNS_QUESTION_TYPE_NBSTAT 0x0021
106 * resolver: Question class
108 #define NBNS_QUESTION_CLASS_IN 0x0001
111 * resolver: Limits
113 #define NBNS_MAXREDIRECTS 3 /* maximum number of accepted redirects */
114 #define NBDG_MAXSIZE 576 /* maximum nbns datagram size */
117 * NETBIOS addressing
119 union nb_tran {
120 struct sockaddr_in x_in;
123 struct nb_name {
124 u_int nn_type;
125 u_char nn_name[NB_NAMELEN + 1];
126 u_char * nn_scope;
130 * Socket address
132 struct sockaddr_nb {
133 u_char snb_len;
134 u_char snb_family;
135 union nb_tran snb_tran; /* transport */
136 u_char snb_name[1 + NB_ENCNAMELEN + 1]; /* encoded */
139 #define snb_addrin snb_tran.x_in
141 #endif /* !_NETSMB_NETBIOS_H_ */