OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [linux/] [tipc.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
/*
2
 * include/uapi/linux/tipc.h: Header for TIPC socket interface
3
 *
4
 * Copyright (c) 2003-2006, Ericsson AB
5
 * Copyright (c) 2005, 2010-2011, Wind River Systems
6
 * All rights reserved.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions are met:
10
 *
11
 * 1. Redistributions of source code must retain the above copyright
12
 *    notice, this list of conditions and the following disclaimer.
13
 * 2. Redistributions in binary form must reproduce the above copyright
14
 *    notice, this list of conditions and the following disclaimer in the
15
 *    documentation and/or other materials provided with the distribution.
16
 * 3. Neither the names of the copyright holders nor the names of its
17
 *    contributors may be used to endorse or promote products derived from
18
 *    this software without specific prior written permission.
19
 *
20
 * Alternatively, this software may be distributed under the terms of the
21
 * GNU General Public License ("GPL") version 2 as published by the Free
22
 * Software Foundation.
23
 *
24
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
 * POSSIBILITY OF SUCH DAMAGE.
35
 */
36
 
37
#ifndef _LINUX_TIPC_H_
38
#define _LINUX_TIPC_H_
39
 
40
#include <linux/types.h>
41
 
42
/*
43
 * TIPC addressing primitives
44
 */
45
 
46
struct tipc_portid {
47
        __u32 ref;
48
        __u32 node;
49
};
50
 
51
struct tipc_name {
52
        __u32 type;
53
        __u32 instance;
54
};
55
 
56
struct tipc_name_seq {
57
        __u32 type;
58
        __u32 lower;
59
        __u32 upper;
60
};
61
 
62
static __inline__ __u32 tipc_addr(unsigned int zone,
63
                              unsigned int cluster,
64
                              unsigned int node)
65
{
66
        return (zone << 24) | (cluster << 12) | node;
67
}
68
 
69
static __inline__ unsigned int tipc_zone(__u32 addr)
70
{
71
        return addr >> 24;
72
}
73
 
74
static __inline__ unsigned int tipc_cluster(__u32 addr)
75
{
76
        return (addr >> 12) & 0xfff;
77
}
78
 
79
static __inline__ unsigned int tipc_node(__u32 addr)
80
{
81
        return addr & 0xfff;
82
}
83
 
84
/*
85
 * Application-accessible port name types
86
 */
87
 
88
#define TIPC_CFG_SRV            0        /* configuration service name type */
89
#define TIPC_TOP_SRV            1       /* topology service name type */
90
#define TIPC_RESERVED_TYPES     64      /* lowest user-publishable name type */
91
 
92
/*
93
 * Publication scopes when binding port names and port name sequences
94
 */
95
 
96
#define TIPC_ZONE_SCOPE         1
97
#define TIPC_CLUSTER_SCOPE      2
98
#define TIPC_NODE_SCOPE         3
99
 
100
/*
101
 * Limiting values for messages
102
 */
103
 
104
#define TIPC_MAX_USER_MSG_SIZE  66000U
105
 
106
/*
107
 * Message importance levels
108
 */
109
 
110
#define TIPC_LOW_IMPORTANCE             0
111
#define TIPC_MEDIUM_IMPORTANCE          1
112
#define TIPC_HIGH_IMPORTANCE            2
113
#define TIPC_CRITICAL_IMPORTANCE        3
114
 
115
/*
116
 * Msg rejection/connection shutdown reasons
117
 */
118
 
119
#define TIPC_OK                 0
120
#define TIPC_ERR_NO_NAME        1
121
#define TIPC_ERR_NO_PORT        2
122
#define TIPC_ERR_NO_NODE        3
123
#define TIPC_ERR_OVERLOAD       4
124
#define TIPC_CONN_SHUTDOWN      5
125
 
126
/*
127
 * TIPC topology subscription service definitions
128
 */
129
 
130
#define TIPC_SUB_PORTS          0x01    /* filter for port availability */
131
#define TIPC_SUB_SERVICE        0x02    /* filter for service availability */
132
#define TIPC_SUB_CANCEL         0x04    /* cancel a subscription */
133
 
134
#define TIPC_WAIT_FOREVER       (~0)    /* timeout for permanent subscription */
135
 
136
struct tipc_subscr {
137
        struct tipc_name_seq seq;       /* name sequence of interest */
138
        __u32 timeout;                  /* subscription duration (in ms) */
139
        __u32 filter;                   /* bitmask of filter options */
140
        char usr_handle[8];             /* available for subscriber use */
141
};
142
 
143
#define TIPC_PUBLISHED          1       /* publication event */
144
#define TIPC_WITHDRAWN          2       /* withdraw event */
145
#define TIPC_SUBSCR_TIMEOUT     3       /* subscription timeout event */
146
 
147
struct tipc_event {
148
        __u32 event;                    /* event type */
149
        __u32 found_lower;              /* matching name seq instances */
150
        __u32 found_upper;              /*    "      "    "     "      */
151
        struct tipc_portid port;        /* associated port */
152
        struct tipc_subscr s;           /* associated subscription */
153
};
154
 
155
/*
156
 * Socket API
157
 */
158
 
159
#ifndef AF_TIPC
160
#define AF_TIPC         30
161
#endif
162
 
163
#ifndef PF_TIPC
164
#define PF_TIPC         AF_TIPC
165
#endif
166
 
167
#ifndef SOL_TIPC
168
#define SOL_TIPC        271
169
#endif
170
 
171
#define TIPC_ADDR_NAMESEQ       1
172
#define TIPC_ADDR_MCAST         1
173
#define TIPC_ADDR_NAME          2
174
#define TIPC_ADDR_ID            3
175
 
176
struct sockaddr_tipc {
177
        unsigned short family;
178
        unsigned char  addrtype;
179
        signed   char  scope;
180
        union {
181
                struct tipc_portid id;
182
                struct tipc_name_seq nameseq;
183
                struct {
184
                        struct tipc_name name;
185
                        __u32 domain;
186
                } name;
187
        } addr;
188
};
189
 
190
/*
191
 * Ancillary data objects supported by recvmsg()
192
 */
193
 
194
#define TIPC_ERRINFO    1       /* error info */
195
#define TIPC_RETDATA    2       /* returned data */
196
#define TIPC_DESTNAME   3       /* destination name */
197
 
198
/*
199
 * TIPC-specific socket option values
200
 */
201
 
202
#define TIPC_IMPORTANCE         127     /* Default: TIPC_LOW_IMPORTANCE */
203
#define TIPC_SRC_DROPPABLE      128     /* Default: based on socket type */
204
#define TIPC_DEST_DROPPABLE     129     /* Default: based on socket type */
205
#define TIPC_CONN_TIMEOUT       130     /* Default: 8000 (ms)  */
206
#define TIPC_NODE_RECVQ_DEPTH   131     /* Default: none (read only) */
207
#define TIPC_SOCK_RECVQ_DEPTH   132     /* Default: none (read only) */
208
 
209
#endif

powered by: WebSVN 2.1.0

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