The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/ngatm/netnatm/api/atmapi.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2003-2004
    3  *      Hartmut Brandt
    4  *      All rights reserved.
    5  *
    6  * Copyright (c) 2001-2002
    7  *      Fraunhofer Institute for Open Communication Systems (FhG Fokus).
    8  *      All rights reserved.
    9  *
   10  * Author: Harti Brandt <harti@freebsd.org>
   11  *
   12  * Redistribution of this software and documentation and use in source and
   13  * binary forms, with or without modification, are permitted provided that
   14  * the following conditions are met:
   15  *
   16  * 1. Redistributions of source code or documentation must retain the above
   17  *    copyright notice, this list of conditions and the following disclaimer.
   18  * 2. Redistributions in binary form must reproduce the above copyright
   19  *    notice, this list of conditions and the following disclaimer in the
   20  *    documentation and/or other materials provided with the distribution.
   21  *
   22  * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE AUTHORS
   23  * AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
   24  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   25  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
   26  * THE AUTHORS OR ITS CONTRIBUTORS  BE LIABLE FOR ANY DIRECT, INDIRECT,
   27  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   28  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
   29  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   30  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   31  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
   32  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   33  *
   34  * $Begemot: libunimsg/netnatm/api/atmapi.h,v 1.1 2004/07/08 08:21:48 brandt Exp $
   35  *
   36  * ATM API as defined per af-saa-0108
   37  */
   38 #ifndef _NETNATM_API_ATMAPI_H_
   39 #define _NETNATM_API_ATMAPI_H_
   40 
   41 #include <sys/types.h>
   42 
   43 /* size of an endpointlen including trailing \0 */
   44 #define ATM_EPNAMSIZ    65
   45 
   46 enum atmstate {
   47         ATM_A0,         /* non existent */
   48         ATM_A1,         /* initial */
   49         ATM_A2,         /* outgoing call preparation */
   50         ATM_A3,         /* outgoing call requested */
   51         ATM_A4,         /* incoming call preparation */
   52         ATM_A5,         /* wait incoming call */
   53         ATM_A6,         /* incoming call present */
   54         ATM_A7,         /* incoming call requested */
   55         ATM_A8,         /* p2p data transfer */
   56         ATM_A9,         /* p2mp root data transfer */
   57         ATM_A10,        /* p2mp leaf data transfer */
   58         ATM_A11,        /* terminated */
   59 };
   60 
   61 enum atmop {
   62         ATMOP_RESP,                             /* 0 */
   63         ATMOP_ABORT_CONNECTION,
   64         ATMOP_ACCEPT_INCOMING_CALL,
   65         ATMOP_ADD_PARTY,
   66         ATMOP_ADD_PARTY_REJECT,
   67         ATMOP_ADD_PARTY_SUCCESS,                /* 5 */
   68         ATMOP_ARRIVAL_OF_INCOMING_CALL,
   69         ATMOP_CALL_RELEASE,
   70         ATMOP_CONNECT_OUTGOING_CALL,
   71         ATMOP_DROP_PARTY,
   72         ATMOP_GET_LOCAL_PORT_INFO,              /* 10 */
   73         ATMOP_P2MP_CALL_ACTIVE,
   74         ATMOP_P2P_CALL_ACTIVE,
   75         ATMOP_PREPARE_INCOMING_CALL,
   76         ATMOP_PREPARE_OUTGOING_CALL,
   77         ATMOP_QUERY_CONNECTION_ATTRIBUTES,      /* 15 */
   78         ATMOP_REJECT_INCOMING_CALL,
   79         ATMOP_SET_CONNECTION_ATTRIBUTES,
   80         ATMOP_WAIT_ON_INCOMING_CALL,
   81         ATMOP_SET_CONNECTION_ATTRIBUTES_X,
   82         ATMOP_QUERY_CONNECTION_ATTRIBUTES_X,    /* 20 */
   83         ATMOP_QUERY_STATE,
   84 };
   85 
   86 #define ATM_DEFINE_ERRORS                                               \
   87    DEF(ATMERR_OK,                0, "OK")                               \
   88    DEF(ATMERR_SYS,              -1, "syscall error")                    \
   89    DEF(ATMERR_BAD_OP,           -2, "bad operation")                    \
   90    DEF(ATMERR_BAD_ARGS,         -3, "bad arguments for operation")      \
   91    DEF(ATMERR_BAD_STATE,        -4, "operation in bad state")           \
   92    DEF(ATMERR_BAD_ATTR,         -5, "unknown attribute")                \
   93    DEF(ATMERR_BAD_VALUE,        -6, "bad attribute value")              \
   94    DEF(ATMERR_BUSY,             -7, "busy")                             \
   95    DEF(ATMERR_RDONLY,           -8, "read-only attribute")              \
   96    DEF(ATMERR_BAD_SAP,          -9, "bad SAP")                          \
   97    DEF(ATMERR_OVERLAP,          -10,"overlaping SAP")                   \
   98    DEF(ATMERR_BAD_ENDPOINT,     -11,"bad ATM endpoint")                 \
   99    DEF(ATMERR_PREVIOUSLY_ABORTED,-12,"previously aborted")              \
  100    DEF(ATMERR_NO_CALL,          -13,"no incoming call")                 \
  101    DEF(ATMERR_BAD_LEAF_IDENT,   -14,"bad leaf identifier")              \
  102    DEF(ATMERR_BAD_PORT,         -15,"unknown port")                     \
  103    DEF(ATMERR_BAD_SIGNAL,       -29-UNIAPI_ERROR_BAD_SIGNAL, "bad signal")\
  104    DEF(ATMERR_BADCU,            -29-UNIAPI_ERROR_BADCU, "bad coordinator state")\
  105    DEF(ATMERR_BAD_CALLSTATE,    -29-UNIAPI_ERROR_BAD_CALLSTATE, "bad call state")\
  106    DEF(ATMERR_BAD_EPSTATE,      -29-UNIAPI_ERROR_BAD_EPSTATE, "bad party state")\
  107    DEF(ATMERR_BAD_UNIARG,       -29-UNIAPI_ERROR_BAD_ARG, "bad uni argument")\
  108    DEF(ATMERR_BAD_CALL,         -29-UNIAPI_ERROR_BAD_CALL, "unknown call")\
  109    DEF(ATMERR_BAD_PARTY,        -29-UNIAPI_ERROR_BAD_PARTY, "unknown party")\
  110    DEF(ATMERR_BAD_CTYPE,        -29-UNIAPI_ERROR_BAD_CTYPE, "wrong call type")\
  111    DEF(ATMERR_BAD_IE,           -29-UNIAPI_ERROR_BAD_IE, "bad information element")\
  112    DEF(ATMERR_EPREF_INUSE,      -29-UNIAPI_ERROR_EPREF_INUSE, "endpoint reference in use")\
  113    DEF(ATMERR_MISSING_IE,       -29-UNIAPI_ERROR_MISSING_IE, "missing information element")\
  114    DEF(ATMERR_ENCODING,         -29-UNIAPI_ERROR_ENCODING, "encoding error")\
  115    DEF(ATMERR_NOMEM,            -29-UNIAPI_ERROR_NOMEM, "no memory")\
  116    DEF(ATMERR_UNIBUSY,          -29-UNIAPI_ERROR_BUSY, "uni process busy")
  117 
  118 #define ATM_MKUNIERR(E) (-29 - (E))
  119 
  120 enum atm_error {
  121 #define DEF(NAME,VAL,STR)       NAME = (VAL),
  122 ATM_DEFINE_ERRORS
  123 #undef DEF
  124 };
  125 
  126 enum atm_attribute {
  127         ATM_ATTR_NONE = 0,
  128         ATM_ATTR_BLLI_SELECTOR,
  129         ATM_ATTR_BLLI,
  130         ATM_ATTR_BEARER,
  131         ATM_ATTR_TRAFFIC,
  132         ATM_ATTR_QOS,
  133         ATM_ATTR_EXQOS,
  134         ATM_ATTR_CALLED,
  135         ATM_ATTR_CALLEDSUB,
  136         ATM_ATTR_CALLING,
  137         ATM_ATTR_CALLINGSUB,
  138         ATM_ATTR_AAL,
  139         ATM_ATTR_EPREF,
  140         ATM_ATTR_CONNED,
  141         ATM_ATTR_CONNEDSUB,
  142         ATM_ATTR_EETD,
  143         ATM_ATTR_ABRSETUP,
  144         ATM_ATTR_ABRADD,
  145         ATM_ATTR_CONNID,
  146         ATM_ATTR_MDCR,
  147 };
  148 
  149 struct atm_resp {
  150         int32_t         resp;
  151         uint32_t        data;           /* type of attached data */
  152 };
  153 enum {
  154         ATMRESP_NONE,                   /* no data */
  155         ATMRESP_ATTRS,                  /* attribute(s) */
  156         ATMRESP_PORTS,                  /* port info */
  157         ATMRESP_STATE,                  /* endpoint state */
  158         ATMRESP_EXSTAT,                 /* extended status */
  159 };
  160 
  161 struct atm_abort_connection {
  162         struct uni_ie_cause cause;
  163 };
  164 
  165 struct atm_query_connection_attributes {
  166         uint32_t        attr;
  167 };
  168 struct atm_set_connection_attributes {
  169         uint32_t        attr;
  170 };
  171 struct atm_query_connection_attributes_x {
  172         uint32_t        count;
  173 #if defined(__GNUC__) && __GNUC__ < 3
  174         uint32_t        attr[0];
  175 #else
  176         uint32_t        attr[];
  177 #endif
  178 };
  179 struct atm_set_connection_attributes_x {
  180         uint32_t        count;
  181 #if defined(__GNUC__) && __GNUC__ < 3
  182         uint32_t        attr[0];
  183 #else
  184         uint32_t        attr[];
  185 #endif
  186 };
  187 struct atm_prepare_incoming_call {
  188         struct uni_sap  sap;
  189         uint32_t        queue_size;
  190 };
  191 struct atm_connect_outgoing_call {
  192         struct uni_ie_called    called;
  193 };
  194 struct atm_call_release {
  195         struct uni_ie_cause     cause[2];
  196 };
  197 struct atm_p2p_call_active {
  198         struct uni_ie_connid    connid;
  199 };
  200 struct atm_p2mp_call_active {
  201         struct uni_ie_connid    connid;
  202 };
  203 struct atm_accept_incoming_call {
  204         char    newep[ATM_EPNAMSIZ];
  205 };
  206 struct atm_reject_incoming_call {
  207         struct uni_ie_cause     cause;
  208 };
  209 struct atm_add_party {
  210         uint16_t                leaf_ident;
  211         struct uni_ie_called    called;
  212 };
  213 struct atm_add_party_success {
  214         uint16_t                leaf_ident;
  215 };
  216 struct atm_add_party_reject {
  217         uint16_t                leaf_ident;
  218         struct uni_ie_cause     cause;
  219 };
  220 struct atm_drop_party {
  221         uint16_t                leaf_ident;
  222         struct uni_ie_cause     cause;
  223 };
  224 
  225 /*
  226  * Get local port info. If port is 0, information on all ports is returned,
  227  * otherwise only on the named port.
  228  * The response consists of a header with two counters, a list of ports
  229  * (struct atm_port_info) and a list of addresses (struct uni_addr).
  230  * The port to which an address belongs is implicit in the num_addrs field
  231  * of the port.
  232  */
  233 struct atm_get_local_port_info {
  234         uint32_t        port;
  235 };
  236 
  237 struct atm_port_list {
  238         uint32_t        num_ports;      /* number of ports */
  239         uint32_t        num_addrs;      /* total number of addresses */
  240 };
  241 
  242 struct atm_port_info {
  243         uint32_t        port;
  244         uint32_t        pcr;
  245         uint32_t        max_vpi_bits;
  246         uint32_t        max_vci_bits;
  247         uint32_t        max_svpc_vpi;
  248         uint32_t        max_svcc_vpi;
  249         uint32_t        min_svcc_vci;
  250         u_char          esi[6];
  251         uint32_t        num_addrs;      /* number of addresses on this port */
  252 };
  253 
  254 /*
  255  * Endpoint state info
  256  */
  257 struct atm_epstate {
  258         char    name[ATM_EPNAMSIZ];
  259         uint8_t state;
  260 };
  261 
  262 /*
  263  * Extended status information.
  264  */
  265 struct atm_exstatus {
  266         uint32_t        neps;           /* endpoints */
  267         uint32_t        nports;         /* ports */
  268         uint32_t        nconns;         /* connections */
  269         uint32_t        nparties;       /* number of parties */
  270 };
  271 struct atm_exstatus_ep {
  272         char            name[ATM_EPNAMSIZ];
  273         uint8_t         state;          /* Ux */
  274 };
  275 struct atm_exstatus_port {
  276         uint32_t        portno;
  277         uint8_t         state;
  278 };
  279 struct atm_exstatus_conn {
  280         uint32_t        id;
  281         uint32_t        cref;           /* (flag << 23) | cref */
  282         uint32_t        port;
  283         char            ep[ATM_EPNAMSIZ];       /* \0 - none */
  284         uint8_t         state;          /* Cx */
  285 };
  286 struct atm_exstatus_party {
  287         uint32_t        connid;
  288         uint16_t        epref;
  289         uint8_t         state;          /* Px */
  290 };
  291 #endif

Cache object: 6715ccee4c9ea003ae5860f4ca307013


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.