linux/include/uapi/linux/atm.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/* atm.h - general ATM declarations */
 
/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
 

/*
 * WARNING: User-space programs should not #include <linux/atm.h> directly.
 *          Instead, #include <atm.h>
 */

#ifndef _UAPI_LINUX_ATM_H
#define _UAPI_LINUX_ATM_H

/*
 * BEGIN_xx and END_xx markers are used for automatic generation of
 * documentation. Do not change them.
 */

#include <linux/compiler.h>
#include <linux/atmapi.h>
#include <linux/atmsap.h>
#include <linux/atmioc.h>
#include <linux/types.h>


/* general ATM constants */
#define ATM_CELL_SIZE
#define ATM_CELL_PAYLOAD
#define ATM_AAL0_SDU
#define ATM_MAX_AAL34_PDU
#define ATM_AAL5_TRAILER
#define ATM_MAX_AAL5_PDU
#define ATM_MAX_CDV
#define ATM_NOT_RSV_VCI

#define ATM_MAX_VPI
#define ATM_MAX_VPI_NNI
#define ATM_MAX_VCI


/* "protcol" values for the socket system call */
#define ATM_NO_AAL
#define ATM_AAL0
#define ATM_AAL1
#define ATM_AAL2
#define ATM_AAL34
#define ATM_AAL5

/*
 * socket option name coding functions
 *
 * Note that __SO_ENCODE and __SO_LEVEL are somewhat a hack since the
 * << 22 only reserves 9 bits for the level.  On some architectures
 * SOL_SOCKET is 0xFFFF, so that's a bit of a problem
 */

#define __SO_ENCODE(l,n,t)
#define __SO_LEVEL_MATCH(c,m)
#define __SO_NUMBER(c)
#define __SO_SIZE(c)

/*
 * ATM layer
 */

#define SO_SETCLP
			    /* set CLP bit value - TODO */
#define SO_CIRANGE
			    /* connection identifier range; socket must be
			       bound or connected */
#define SO_ATMQOS
			    /* Quality of Service setting */
#define SO_ATMSAP
			    /* Service Access Point */
#define SO_ATMPVC
			    /* "PVC" address (also for SVCs); get only */
#define SO_MULTIPOINT
			    /* make this vc a p2mp */


/*
 * Note @@@: since the socket layers don't really distinguish the control and
 * the data plane but generally seems to be data plane-centric, any layer is
 * about equally wrong for the SAP. If you have a better idea about this,
 * please speak up ...
 */


/* ATM cell header (for AAL0) */

/* BEGIN_CH */
#define ATM_HDR_GFC_MASK
#define ATM_HDR_GFC_SHIFT
#define ATM_HDR_VPI_MASK
#define ATM_HDR_VPI_SHIFT
#define ATM_HDR_VCI_MASK
#define ATM_HDR_VCI_SHIFT
#define ATM_HDR_PTI_MASK
#define ATM_HDR_PTI_SHIFT
#define ATM_HDR_CLP
/* END_CH */


/* PTI codings */

/* BEGIN_PTI */
#define ATM_PTI_US0
#define ATM_PTI_US1
#define ATM_PTI_UCES0
#define ATM_PTI_UCES1
#define ATM_PTI_SEGF5
#define ATM_PTI_E2EF5
#define ATM_PTI_RSV_RM
#define ATM_PTI_RSV
/* END_PTI */


/*
 * The following items should stay in linux/atm.h, which should be linked to
 * netatm/atm.h
 */

/* Traffic description */

#define ATM_NONE
#define ATM_UBR
#define ATM_CBR
#define ATM_VBR
#define ATM_ABR
#define ATM_ANYCLASS

#define ATM_MAX_PCR

struct atm_trafprm {};

struct atm_qos {};

/* PVC addressing */

#define ATM_ITF_ANY
#define ATM_VPI_ANY
#define ATM_VCI_ANY
#define ATM_VPI_UNSPEC
#define ATM_VCI_UNSPEC


struct sockaddr_atmpvc {};

/* SVC addressing */

#define ATM_ESA_LEN
#define ATM_E164_LEN

#define ATM_AFI_DCC
#define ATM_AFI_ICD
#define ATM_AFI_E164
#define ATM_AFI_LOCAL 

#define ATM_AFI_DCC_GROUP
#define ATM_AFI_ICD_GROUP
#define ATM_AFI_E164_GROUP
#define ATM_AFI_LOCAL_GROUP

#define ATM_LIJ_NONE
#define ATM_LIJ
#define ATM_LIJ_RPJ
#define ATM_LIJ_NJ


struct sockaddr_atmsvc {};


static __inline__ int atmsvc_addr_in_use(struct sockaddr_atmsvc addr)
{}


static __inline__ int atmpvc_addr_in_use(struct sockaddr_atmpvc addr)
{}


/*
 * Some stuff for linux/sockios.h
 */

struct atmif_sioc {};


atm_backend_t;
#endif /* _UAPI_LINUX_ATM_H */