Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6


tipc.h
001: /*
002:  * include/linux/tipc.h: Include file for TIPC socket interface
003:  *
004:  * Copyright (c) 2003-2006, Ericsson AB
005:  * Copyright (c) 2005, 2010-2011, Wind River Systems
006:  * All rights reserved.
007:  *
008:  * Redistribution and use in source and binary forms, with or without
009:  * modification, are permitted provided that the following conditions are met:
010:  *
011:  * 1. Redistributions of source code must retain the above copyright
012:  *    notice, this list of conditions and the following disclaimer.
013:  * 2. Redistributions in binary form must reproduce the above copyright
014:  *    notice, this list of conditions and the following disclaimer in the
015:  *    documentation and/or other materials provided with the distribution.
016:  * 3. Neither the names of the copyright holders nor the names of its
017:  *    contributors may be used to endorse or promote products derived from
018:  *    this software without specific prior written permission.
019:  *
020:  * Alternatively, this software may be distributed under the terms of the
021:  * GNU General Public License ("GPL") version 2 as published by the Free
022:  * Software Foundation.
023:  *
024:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
025:  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
026:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
027:  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
028:  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
029:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
030:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
031:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
032:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
033:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
034:  * POSSIBILITY OF SUCH DAMAGE.
035:  */
036: 
037: #ifndef _LINUX_TIPC_H_
038: #define _LINUX_TIPC_H_
039: 
040: #include <linux/types.h>
041: 
042: /*
043:  * TIPC addressing primitives
044:  */
045: 
046: struct tipc_portid {
047:         __u32 ref;
048:         __u32 node;
049: };
050: 
051: struct tipc_name {
052:         __u32 type;
053:         __u32 instance;
054: };
055: 
056: struct tipc_name_seq {
057:         __u32 type;
058:         __u32 lower;
059:         __u32 upper;
060: };
061: 
062: static __inline__ __u32 tipc_addr(unsigned int zone,
063:                               unsigned int cluster,
064:                               unsigned int node)
065: {
066:         return (zone << 24) | (cluster << 12) | node;
067: }
068: 
069: static __inline__ unsigned int tipc_zone(__u32 addr)
070: {
071:         return addr >> 24;
072: }
073: 
074: static __inline__ unsigned int tipc_cluster(__u32 addr)
075: {
076:         return (addr >> 12) & 0xfff;
077: }
078: 
079: static __inline__ unsigned int tipc_node(__u32 addr)
080: {
081:         return addr & 0xfff;
082: }
083: 
084: /*
085:  * Application-accessible port name types
086:  */
087: 
088: #define TIPC_CFG_SRV            0       /* configuration service name type */
089: #define TIPC_TOP_SRV            1       /* topology service name type */
090: #define TIPC_RESERVED_TYPES     64      /* lowest user-publishable name type */
091: 
092: /*
093:  * Publication scopes when binding port names and port name sequences
094:  */
095: 
096: #define TIPC_ZONE_SCOPE         1
097: #define TIPC_CLUSTER_SCOPE      2
098: #define TIPC_NODE_SCOPE         3
099: 
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
210: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/