Subversion Repositories SvarDOS

Rev

Rev 616 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
207 mateuszvis 1
/*!\file net/if_dl.h
2
 * Link-level sockaddr_dl definition.
3
 */
4
 
5
/*      $NetBSD: if_dl.h,v 1.8 1995/03/26 20:30:13 jtc Exp $    */
6
 
7
/*
8
 * Copyright (c) 1990, 1993
9
 *	The Regents of the University of California.  All rights reserved.
10
 *
11
 * Redistribution and use in source and binary forms, with or without
12
 * modification, are permitted provided that the following conditions
13
 * are met:
14
 * 1. Redistributions of source code must retain the above copyright
15
 *    notice, this list of conditions and the following disclaimer.
16
 * 2. Redistributions in binary form must reproduce the above copyright
17
 *    notice, this list of conditions and the following disclaimer in the
18
 *    documentation and/or other materials provided with the distribution.
19
 * 3. All advertising materials mentioning features or use of this software
20
 *    must display the following acknowledgement:
21
 *	This product includes software developed by the University of
22
 *	California, Berkeley and its contributors.
23
 * 4. Neither the name of the University nor the names of its contributors
24
 *    may be used to endorse or promote products derived from this software
25
 *    without specific prior written permission.
26
 *
27
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
28
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
31
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
33
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
36
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37
 * SUCH DAMAGE.
38
 *
39
 *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
40
 */
41
#ifndef __NET_IF_DL_H
42
#define __NET_IF_DL_H
43
 
44
#ifndef __SYS_W32API_H
45
#include <sys/w32api.h>
46
#endif
47
 
48
#ifndef __SYS_CDEFS_H
49
#include <sys/cdefs.h>
50
#endif
51
 
52
/*
53
 * A Link-Level Sockaddr may specify the interface in one of two
54
 * ways: either by means of a system-provided index number (computed
55
 * anew and possibly differently on every reboot), or by a human-readable
56
 * string such as "il0" (for managerial convenience).
57
 *
58
 * Census taking actions, such as something akin to SIOCGCONF would return
59
 * both the index and the human name.
60
 *
61
 * High volume transactions (such as giving a link-level ``from'' address
62
 * in a recvfrom or recvmsg call) may be likely only to provide the indexed
63
 * form, (which requires fewer copy operations and less space).
64
 *
65
 * The form and interpretation  of the link-level address is purely a matter
66
 * of convention between the device driver and its consumers; however, it is
67
 * expected that all drivers for an interface of a given if_type will agree.
68
 */
69
 
70
/*
71
 * Structure of a Link-Level sockaddr:
72
 */
73
struct sockaddr_dl {
74
	u_char	  sdl_len;	/* Total length of sockaddr */
75
	u_char	  sdl_family;	/* AF_DLI */
76
	u_int16_t sdl_index;	/* if != 0, system given index for interface */
77
	u_char	  sdl_type;	/* interface type */
78
	u_char	  sdl_nlen;	/* interface name length, no trailing 0 reqd. */
79
	u_char	  sdl_alen;	/* link level address length */
80
	u_char	  sdl_slen;	/* link layer selector length */
81
	char	  sdl_data[12];	/* minimum work area, can be larger;
82
				   contains both if name and ll address */
83
};
84
 
85
#define LLADDR(s) ((caddr_t)((s)->sdl_data + (s)->sdl_nlen))
86
 
87
 
88
__BEGIN_DECLS
89
 
90
W32_FUNC void  link_addr (const char *, struct sockaddr_dl *);
91
W32_FUNC char *link_ntoa (const struct sockaddr_dl *);
92
 
93
__END_DECLS
94
 
95
#endif