~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/caif/caif_socket.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 /* linux/caif_socket.h
  3  * CAIF Definitions for CAIF socket and network layer
  4  * Copyright (C) ST-Ericsson AB 2010
  5  * Author:       Sjur Brendeland
  6  * License terms: GNU General Public License (GPL) version 2
  7  */
  8 
  9 #ifndef _LINUX_CAIF_SOCKET_H
 10 #define _LINUX_CAIF_SOCKET_H
 11 
 12 #include <linux/types.h>
 13 #include <linux/socket.h>
 14 
 15 /**
 16  * enum caif_link_selector -    Physical Link Selection.
 17  * @CAIF_LINK_HIGH_BANDW:       Physical interface for high-bandwidth
 18  *                              traffic.
 19  * @CAIF_LINK_LOW_LATENCY:      Physical interface for low-latency
 20  *                              traffic.
 21  *
 22  * CAIF Link Layers can register their link properties.
 23  * This enum is used for choosing between CAIF Link Layers when
 24  * setting up CAIF Channels when multiple CAIF Link Layers exists.
 25  */
 26 enum caif_link_selector {
 27         CAIF_LINK_HIGH_BANDW,
 28         CAIF_LINK_LOW_LATENCY
 29 };
 30 
 31 /**
 32  * enum caif_channel_priority - CAIF channel priorities.
 33  *
 34  * @CAIF_PRIO_MIN:      Min priority for a channel.
 35  * @CAIF_PRIO_LOW:      Low-priority channel.
 36  * @CAIF_PRIO_NORMAL:   Normal/default priority level.
 37  * @CAIF_PRIO_HIGH:     High priority level
 38  * @CAIF_PRIO_MAX:      Max priority for channel
 39  *
 40  * Priority can be set on CAIF Channels in order to
 41  * prioritize between traffic on different CAIF Channels.
 42  * These priority levels are recommended, but the priority value
 43  * is not restricted to the values defined in this enum, any value
 44  * between CAIF_PRIO_MIN and CAIF_PRIO_MAX could be used.
 45  */
 46 enum caif_channel_priority {
 47         CAIF_PRIO_MIN    = 0x01,
 48         CAIF_PRIO_LOW    = 0x04,
 49         CAIF_PRIO_NORMAL = 0x0f,
 50         CAIF_PRIO_HIGH   = 0x14,
 51         CAIF_PRIO_MAX    = 0x1F
 52 };
 53 
 54 /**
 55  * enum caif_protocol_type  -   CAIF Channel type.
 56  * @CAIFPROTO_AT:               Classic AT channel.
 57  * @CAIFPROTO_DATAGRAM: Datagram channel.
 58  * @CAIFPROTO_DATAGRAM_LOOP:    Datagram loopback channel, used for testing.
 59  * @CAIFPROTO_UTIL:             Utility (Psock) channel.
 60  * @CAIFPROTO_RFM:              Remote File Manager
 61  * @CAIFPROTO_DEBUG:            Debug link
 62  *
 63  * This enum defines the CAIF Channel type to be used. This defines
 64  * the service to connect to on the modem.
 65  */
 66 enum caif_protocol_type {
 67         CAIFPROTO_AT,
 68         CAIFPROTO_DATAGRAM,
 69         CAIFPROTO_DATAGRAM_LOOP,
 70         CAIFPROTO_UTIL,
 71         CAIFPROTO_RFM,
 72         CAIFPROTO_DEBUG,
 73         _CAIFPROTO_MAX
 74 };
 75 #define CAIFPROTO_MAX _CAIFPROTO_MAX
 76 
 77 /**
 78  * enum caif_at_type - AT Service Endpoint
 79  * @CAIF_ATTYPE_PLAIN:       Connects to a plain vanilla AT channel.
 80  */
 81 enum caif_at_type {
 82         CAIF_ATTYPE_PLAIN = 2
 83 };
 84  /**
 85  * enum caif_debug_type - Content selection for debug connection
 86  * @CAIF_DEBUG_TRACE_INTERACTIVE: Connection will contain
 87  *                              both trace and interactive debug.
 88  * @CAIF_DEBUG_TRACE:           Connection contains trace only.
 89  * @CAIF_DEBUG_INTERACTIVE:     Connection to interactive debug.
 90  */
 91 enum caif_debug_type {
 92         CAIF_DEBUG_TRACE_INTERACTIVE = 0,
 93         CAIF_DEBUG_TRACE,
 94         CAIF_DEBUG_INTERACTIVE,
 95 };
 96 
 97 /**
 98  * enum caif_debug_service - Debug Service Endpoint
 99  * @CAIF_RADIO_DEBUG_SERVICE:   Debug service on the Radio sub-system
100  * @CAIF_APP_DEBUG_SERVICE:     Debug for the applications sub-system
101  */
102 enum caif_debug_service {
103         CAIF_RADIO_DEBUG_SERVICE = 1,
104         CAIF_APP_DEBUG_SERVICE
105 };
106 
107 /**
108  * struct sockaddr_caif - the sockaddr structure for CAIF sockets.
109  * @family:                  Address family number, must be AF_CAIF.
110  * @u:                       Union of address data 'switched' by family.
111  * :
112  * @u.at:                    Applies when family = CAIFPROTO_AT.
113  *
114  * @u.at.type:               Type of AT link to set up (enum caif_at_type).
115  *
116  * @u.util:                  Applies when family = CAIFPROTO_UTIL
117  *
118  * @u.util.service:          Utility service name.
119  *
120  * @u.dgm:                   Applies when family = CAIFPROTO_DATAGRAM
121  *
122  * @u.dgm.connection_id:     Datagram connection id.
123  *
124  * @u.dgm.nsapi:             NSAPI of the PDP-Context.
125  *
126  * @u.rfm:                   Applies when family = CAIFPROTO_RFM
127  *
128  * @u.rfm.connection_id:     Connection ID for RFM.
129  *
130  * @u.rfm.volume:            Volume to mount.
131  *
132  * @u.dbg:                    Applies when family = CAIFPROTO_DEBUG.
133  *
134  * @u.dbg.type:                      Type of debug connection to set up
135  *                            (caif_debug_type).
136  *
137  * @u.dbg.service:            Service sub-system to connect (caif_debug_service
138  * Description:
139  * This structure holds the connect parameters used for setting up a
140  * CAIF Channel. It defines the service to connect to on the modem.
141  */
142 struct sockaddr_caif {
143         __kernel_sa_family_t  family;
144         union {
145                 struct {
146                         __u8  type;             /* type: enum caif_at_type */
147                 } at;                           /* CAIFPROTO_AT */
148                 struct {
149                         char      service[16];
150                 } util;                         /* CAIFPROTO_UTIL */
151                 union {
152                         __u32 connection_id;
153                         __u8  nsapi;
154                 } dgm;                          /* CAIFPROTO_DATAGRAM(_LOOP)*/
155                 struct {
156                         __u32 connection_id;
157                         char      volume[16];
158                 } rfm;                          /* CAIFPROTO_RFM */
159                 struct {
160                         __u8  type;             /* type:enum caif_debug_type */
161                         __u8  service;          /* service:caif_debug_service */
162                 } dbg;                          /* CAIFPROTO_DEBUG */
163         } u;
164 };
165 
166 /**
167  * enum caif_socket_opts - CAIF option values for getsockopt and setsockopt.
168  *
169  * @CAIFSO_LINK_SELECT:         Selector used if multiple CAIF Link layers are
170  *                              available. Either a high bandwidth
171  *                              link can be selected (CAIF_LINK_HIGH_BANDW) or
172  *                              a low latency link (CAIF_LINK_LOW_LATENCY).
173  *                              This option is of type __u32.
174  *                              Alternatively SO_BINDTODEVICE can be used.
175  *
176  * @CAIFSO_REQ_PARAM:           Used to set the request parameters for a
177  *                              utility channel. (maximum 256 bytes). This
178  *                              option must be set before connecting.
179  *
180  * @CAIFSO_RSP_PARAM:           Gets the response parameters for a utility
181  *                              channel. (maximum 256 bytes). This option
182  *                              is valid after a successful connect.
183  *
184  *
185  * This enum defines the CAIF Socket options to be used on a socket
186  * of type PF_CAIF.
187  *
188  */
189 enum caif_socket_opts {
190         CAIFSO_LINK_SELECT      = 127,
191         CAIFSO_REQ_PARAM        = 128,
192         CAIFSO_RSP_PARAM        = 129,
193 };
194 
195 #endif /* _LINUX_CAIF_SOCKET_H */
196 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php