18ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* atm.h - Functions useful for ATM applications */ 28ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 38ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Written 1995-2000 by Werner Almesberger, EPFL-LRC/ICA */ 48ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 58ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 68ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef _ATM_H 78ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define _ATM_H 88ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 98ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#include <stdint.h> 108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#include <sys/socket.h> 118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#include <linux/atm.h> 128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * For versions of glibc < 2.1 168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef AF_ATMPVC 198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AF_ATMPVC 8 208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef AF_ATMSVC 238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AF_ATMSVC 20 248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef PF_ATMPVC 278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PF_ATMPVC AF_ATMPVC 288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef PF_ATMSVC 318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PF_ATMSVC AF_ATMSVC 328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef SOL_ATM 358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define SOL_ATM 264 368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef SOL_AAL 398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define SOL_AAL 265 408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define HOSTS_ATM "/etc/hosts.atm" 448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* text2atm flags */ 468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2A_PVC 1 /* address is PVC */ 478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2A_SVC 2 /* address is SVC */ 488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2A_UNSPEC 4 /* allow unspecified parts in PVC address */ 498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2A_WILDCARD 8 /* allow wildcards in PVC or SVC address */ 508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2A_NNI 16 /* allow NNI VPI range (PVC) */ 518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2A_NAME 32 /* allow name resolution */ 528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2A_REMOTE 64 /* OBSOLETE */ 538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2A_LOCAL 128 /* don't use ANS */ 548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* atm2text flags */ 568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define A2T_PRETTY 1 /* add syntactic sugar */ 578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define A2T_NAME 2 /* attempt name lookup */ 588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define A2T_REMOTE 4 /* OBSOLETE */ 598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define A2T_LOCAL 8 /* don't use ANS */ 608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* atm_equal flags */ 628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AXE_WILDCARD 1 /* allow wildcard match */ 638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AXE_PRVOPT 2 /* private part of SVC address is optional */ 648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* text2qos flags */ 668ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2Q_DEFAULTS 1 /* structure contains default values */ 678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* text2sap flags */ 698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2S_NAME 1 /* attempt name lookup */ 708ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define T2S_LOCAL 2 /* we may support NIS or such in the future */ 718ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 728ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* sap2text flags */ 738ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define S2T_NAME 1 /* attempt name lookup */ 748ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define S2T_LOCAL 2 /* we may support NIS or such in the future */ 758ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 768ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* sap_equal flags */ 778ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define SXE_COMPATIBLE 1 /* check for compatibility instead of identity*/ 788ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define SXE_NEGOTIATION 2 /* allow negotiation; requires SXE_COMPATIBLE; 798ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project assumes "a" defines the available 808ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project capabilities */ 818ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define SXE_RESULT 4 /* return selected SAP */ 828ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 838ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define MAX_ATM_ADDR_LEN (2*ATM_ESA_LEN+ATM_E164_LEN+5) 848ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project /* 4 dots, 1 plus */ 858ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define MAX_ATM_NAME_LEN 256 /* wild guess */ 868ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define MAX_ATM_QOS_LEN 116 /* 5+4+2*(3+3*(7+9)+2)+1 */ 878ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define MAX_ATM_SAP_LEN 255 /* BHLI(27)+1+3*BLLI(L2=33,L3=41,+1)+2 */ 888ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 898ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 908ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint text2atm(const char *text,struct sockaddr *addr,int length,int flags); 918ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint atm2text(char *buffer,int length,const struct sockaddr *addr,int flags); 928ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint atm_equal(const struct sockaddr *a,const struct sockaddr *b,int len, 938ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int flags); 948ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 958ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint sdu2cell(int s,int sizes,const int *sdu_size,int *num_sdu); 968ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 978ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint text2qos(const char *text,struct atm_qos *qos,int flags); 988ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint qos2text(char *buffer,int length,const struct atm_qos *qos,int flags); 998ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint qos_equal(const struct atm_qos *a,const struct atm_qos *b); 1008ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1018ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint text2sap(const char *text,struct atm_sap *sap,int flags); 1028ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint sap2text(char *buffer,int length,const struct atm_sap *sap,int flags); 1038ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint sap_equal(const struct atm_sap *a,const struct atm_sap *b,int flags,...); 1048ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1058ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint __t2q_get_rate(const char **text,int up); 1068ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint __atmlib_fetch(const char **pos,...); /* internal use only */ 1078ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1088ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 109