111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_ATM_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_ATM_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/compiler.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/atmapi.h>
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/atmsap.h>
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/atmioc.h>
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_CELL_SIZE 53
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_CELL_PAYLOAD 48
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AAL0_SDU 52
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_MAX_AAL34_PDU 65535
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AAL5_TRAILER 8
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_MAX_AAL5_PDU 65535
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_MAX_CDV 9999
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_NOT_RSV_VCI 32
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_MAX_VPI 255
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_MAX_VPI_NNI 4096
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_MAX_VCI 65535
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_NO_AAL 0
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AAL0 13
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AAL1 1
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AAL2 2
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AAL34 3
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AAL5 5
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SO_ENCODE(l,n,t) ((((l) & 0x1FF) << 22) | ((n) << 16) |   sizeof(t))
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SO_LEVEL_MATCH(c,m) (((c) >> 22) == ((m) & 0x1FF))
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SO_NUMBER(c) (((c) >> 16) & 0x3f)
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SO_SIZE(c) ((c) & 0x3fff)
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SO_SETCLP __SO_ENCODE(SOL_ATM,0,int)
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SO_CIRANGE __SO_ENCODE(SOL_ATM,1,struct atm_cirange)
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SO_ATMQOS __SO_ENCODE(SOL_ATM,2,struct atm_qos)
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SO_ATMSAP __SO_ENCODE(SOL_ATM,3,struct atm_sap)
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SO_ATMPVC __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SO_MULTIPOINT __SO_ENCODE(SOL_ATM, 5, int)
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_GFC_MASK 0xf0000000
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_GFC_SHIFT 28
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_VPI_MASK 0x0ff00000
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_VPI_SHIFT 20
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_VCI_MASK 0x000ffff0
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_VCI_SHIFT 4
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_PTI_MASK 0x0000000e
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_PTI_SHIFT 1
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_HDR_CLP 0x00000001
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_PTI_US0 0
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_PTI_US1 1
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_PTI_UCES0 2
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_PTI_UCES1 3
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_PTI_SEGF5 4
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_PTI_E2EF5 5
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_PTI_RSV_RM 6
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_PTI_RSV 7
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_NONE 0
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_UBR 1
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_CBR 2
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_VBR 3
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_ABR 4
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_ANYCLASS 5
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_MAX_PCR -1
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct atm_trafprm {
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char traffic_class;
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int max_pcr;
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int pcr;
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int min_pcr;
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int max_cdv;
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int max_sdu;
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int icr;
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int tbe;
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int frtt : 24;
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int rif : 4;
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int rdf : 4;
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int nrm_pres :1;
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int trm_pres :1;
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int adtf_pres :1;
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int cdf_pres :1;
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int nrm :3;
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int trm :3;
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int adtf :10;
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int cdf :3;
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int spare :9;
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct atm_qos {
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct atm_trafprm txtp;
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct atm_trafprm rxtp __ATM_API_ALIGN;
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char aal __ATM_API_ALIGN;
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_ITF_ANY -1
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_VPI_ANY -1
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_VCI_ANY -1
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_VPI_UNSPEC -2
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_VCI_UNSPEC -2
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct sockaddr_atmpvc {
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short sap_family;
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct {
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short itf;
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short vpi;
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int vci;
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } sap_addr __ATM_API_ALIGN;
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_ESA_LEN 20
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_E164_LEN 12
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AFI_DCC 0x39
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AFI_ICD 0x47
13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AFI_E164 0x45
13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AFI_LOCAL 0x49
13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AFI_DCC_GROUP 0xBD
14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AFI_ICD_GROUP 0xC5
14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AFI_E164_GROUP 0xC3
14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_AFI_LOCAL_GROUP 0xC7
14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_LIJ_NONE 0
14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_LIJ 1
14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_LIJ_RPJ 2
14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ATM_LIJ_NJ 3
14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct sockaddr_atmsvc {
15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short sas_family;
15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct {
15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char prv[ATM_ESA_LEN];
15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char pub[ATM_E164_LEN+1];
15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char lij_type;
15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert uint32_t lij_id;
15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } sas_addr __ATM_API_ALIGN;
15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
16011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned short atm_backend_t;
16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
162