OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.18.0/] [newlib/] [libc/] [sys/] [linux/] [include/] [netns/] [ns.h] - Blame information for rev 301

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 207 jeremybenn
/*
2
 * Copyright (c) 1984, 1985, 1986, 1987, 1993
3
 *      The Regents of the University of California.  All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
7
 * are met:
8
 * 1. Redistributions of source code must retain the above copyright
9
 *    notice, this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright
11
 *    notice, this list of conditions and the following disclaimer in the
12
 *    documentation and/or other materials provided with the distribution.
13
 * 3. All advertising materials mentioning features or use of this software
14
 *    must display the following acknowledgement:
15
 *      This product includes software developed by the University of
16
 *      California, Berkeley and its contributors.
17
 * 4. Neither the name of the University nor the names of its contributors
18
 *    may be used to endorse or promote products derived from this software
19
 *    without specific prior written permission.
20
 *
21
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
 * SUCH DAMAGE.
32
 *
33
 *      @(#)ns.h        8.1 (Berkeley) 6/10/93
34
 * $FreeBSD: src/sys/netns/ns.h,v 1.15 2002/03/20 02:39:27 alfred Exp $
35
 */
36
 
37
#ifndef _NETNS_NS_H_
38
#define _NETNS_NS_H_
39
 
40
/*
41
 * Constants and Structures defined by the Xerox Network Software
42
 * per "Internet Transport Protocols", XSIS 028112, December 1981
43
 */
44
 
45
/*
46
 * Protocols
47
 */
48
#define NSPROTO_RI      1               /* Routing Information */
49
#define NSPROTO_ECHO    2               /* Echo Protocol */
50
#define NSPROTO_ERROR   3               /* Error Protocol */
51
#define NSPROTO_PE      4               /* Packet Exchange */
52
#define NSPROTO_SPP     5               /* Sequenced Packet */
53
#define NSPROTO_RAW     255             /* Placemarker*/
54
#define NSPROTO_MAX     256             /* Placemarker*/
55
 
56
 
57
/*
58
 * Port/Socket numbers: network standard functions
59
 */
60
 
61
#define NSPORT_RI       1               /* Routing Information */
62
#define NSPORT_ECHO     2               /* Echo */
63
#define NSPORT_RE       3               /* Router Error */
64
 
65
/*
66
 * Ports < NSPORT_RESERVED are reserved for priveleged
67
 * processes (e.g. root).
68
 */
69
#define NSPORT_RESERVED         3000
70
 
71
/* flags passed to ns_output as last parameter */
72
 
73
#define NS_FORWARDING           0x1     /* most of idp header exists */
74
#define NS_ROUTETOIF            0x10    /* same as SO_DONTROUTE */
75
#define NS_ALLOWBROADCAST       SO_BROADCAST    /* can send broadcast packets */
76
 
77
#define NS_MAXHOPS              15
78
 
79
/* flags passed to get/set socket option */
80
#define SO_HEADERS_ON_INPUT     1
81
#define SO_HEADERS_ON_OUTPUT    2
82
#define SO_DEFAULT_HEADERS      3
83
#define SO_LAST_HEADER          4
84
#define SO_NSIP_ROUTE           5
85
#define SO_SEQNO                6
86
#define SO_ALL_PACKETS          7
87
#define SO_MTU                  8
88
 
89
 
90
/*
91
 * NS addressing
92
 */
93
union ns_host {
94
        u_char  c_host[6];
95
        u_short s_host[3];
96
};
97
 
98
union ns_net {
99
        u_char  c_net[4];
100
        u_short s_net[2];
101
};
102
 
103
union ns_net_u {
104
        union ns_net    net_e;
105
        u_long          long_e;
106
};
107
 
108
struct ns_addr {
109
        union ns_net    x_net;
110
        union ns_host   x_host;
111
        u_short x_port;
112
};
113
 
114
/*
115
 * Socket address, Xerox style
116
 */
117
struct sockaddr_ns {
118
        u_char          sns_len;
119
        u_char          sns_family;
120
        struct ns_addr  sns_addr;
121
        char            sns_zero[2];
122
};
123
#define sns_port sns_addr.x_port
124
 
125
#define ns_neteqnn(a,b) (((a).s_net[0]==(b).s_net[0]) && \
126
                                        ((a).s_net[1]==(b).s_net[1]))
127
#define ns_neteq(a,b) ns_neteqnn((a).x_net, (b).x_net)
128
#define satons_addr(sa) (((struct sockaddr_ns *)&(sa))->sns_addr)
129
#define ns_hosteqnh(s,t) ((s).s_host[0] == (t).s_host[0] && \
130
        (s).s_host[1] == (t).s_host[1] && (s).s_host[2] == (t).s_host[2])
131
#define ns_hosteq(s,t) (ns_hosteqnh((s).x_host,(t).x_host))
132
#define ns_nullhost(x) (((x).x_host.s_host[0]==0) && \
133
        ((x).x_host.s_host[1]==0) && ((x).x_host.s_host[2]==0))
134
 
135
#ifdef _KERNEL
136
extern struct domain nsdomain;
137
union ns_host ns_thishost;
138
union ns_host ns_zerohost;
139
union ns_host ns_broadhost;
140
union ns_net ns_zeronet;
141
union ns_net ns_broadnet;
142
u_short ns_cksum();
143
#else
144
 
145
#include <sys/cdefs.h>
146
 
147
__BEGIN_DECLS
148
extern struct ns_addr ns_addr(const char *);
149
extern char *ns_ntoa(struct ns_addr);
150
__END_DECLS
151
 
152
#endif
153
 
154
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.