/* atm.h - Functions useful for ATM applications */ /* Written 1995-2000 by Werner Almesberger, EPFL-LRC/ICA */ #ifndef _ATM_H #define _ATM_H #include <stdint.h> #include <sys/socket.h> #include <linux/atm.h> /* * For versions of glibc < 2.1 */ #ifndef AF_ATMPVC #define AF_ATMPVC 8 #endif #ifndef AF_ATMSVC #define AF_ATMSVC 20 #endif #ifndef PF_ATMPVC #define PF_ATMPVC AF_ATMPVC #endif #ifndef PF_ATMSVC #define PF_ATMSVC AF_ATMSVC #endif #ifndef SOL_ATM #define SOL_ATM 264 #endif #ifndef SOL_AAL #define SOL_AAL 265 #endif #define HOSTS_ATM "/etc/hosts.atm" /* text2atm flags */ #define T2A_PVC 1 /* address is PVC */ #define T2A_SVC 2 /* address is SVC */ #define T2A_UNSPEC 4 /* allow unspecified parts in PVC address */ #define T2A_WILDCARD 8 /* allow wildcards in PVC or SVC address */ #define T2A_NNI 16 /* allow NNI VPI range (PVC) */ #define T2A_NAME 32 /* allow name resolution */ #define T2A_REMOTE 64 /* OBSOLETE */ #define T2A_LOCAL 128 /* don't use ANS */ /* atm2text flags */ #define A2T_PRETTY 1 /* add syntactic sugar */ #define A2T_NAME 2 /* attempt name lookup */ #define A2T_REMOTE 4 /* OBSOLETE */ #define A2T_LOCAL 8 /* don't use ANS */ /* atm_equal flags */ #define AXE_WILDCARD 1 /* allow wildcard match */ #define AXE_PRVOPT 2 /* private part of SVC address is optional */ /* text2qos flags */ #define T2Q_DEFAULTS 1 /* structure contains default values */ /* text2sap flags */ #define T2S_NAME 1 /* attempt name lookup */ #define T2S_LOCAL 2 /* we may support NIS or such in the future */ /* sap2text flags */ #define S2T_NAME 1 /* attempt name lookup */ #define S2T_LOCAL 2 /* we may support NIS or such in the future */ /* sap_equal flags */ #define SXE_COMPATIBLE 1 /* check for compatibility instead of identity*/ #define SXE_NEGOTIATION 2 /* allow negotiation; requires SXE_COMPATIBLE; assumes "a" defines the available capabilities */ #define SXE_RESULT 4 /* return selected SAP */ #define MAX_ATM_ADDR_LEN (2*ATM_ESA_LEN+ATM_E164_LEN+5) /* 4 dots, 1 plus */ #define MAX_ATM_NAME_LEN 256 /* wild guess */ #define MAX_ATM_QOS_LEN 116 /* 5+4+2*(3+3*(7+9)+2)+1 */ #define MAX_ATM_SAP_LEN 255 /* BHLI(27)+1+3*BLLI(L2=33,L3=41,+1)+2 */ int text2atm(const char *text,struct sockaddr *addr,int length,int flags); int atm2text(char *buffer,int length,const struct sockaddr *addr,int flags); int atm_equal(const struct sockaddr *a,const struct sockaddr *b,int len, int flags); int sdu2cell(int s,int sizes,const int *sdu_size,int *num_sdu); int text2qos(const char *text,struct atm_qos *qos,int flags); int qos2text(char *buffer,int length,const struct atm_qos *qos,int flags); int qos_equal(const struct atm_qos *a,const struct atm_qos *b); int text2sap(const char *text,struct atm_sap *sap,int flags); int sap2text(char *buffer,int length,const struct atm_sap *sap,int flags); int sap_equal(const struct atm_sap *a,const struct atm_sap *b,int flags,...); int __t2q_get_rate(const char **text,int up); int __atmlib_fetch(const char **pos,...); /* internal use only */ #endif