1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*4882a593Smuzhiyun /* atmsvc.h - ATM signaling kernel-demon interface definitions */ 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun /* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifndef _LINUX_ATMSVC_H 8*4882a593Smuzhiyun #define _LINUX_ATMSVC_H 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #include <linux/atmapi.h> 11*4882a593Smuzhiyun #include <linux/atm.h> 12*4882a593Smuzhiyun #include <linux/atmioc.h> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #define ATMSIGD_CTRL _IO('a',ATMIOC_SPECIAL) 16*4882a593Smuzhiyun /* become ATM signaling demon control socket */ 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun enum atmsvc_msg_type { as_catch_null, as_bind, as_connect, as_accept, as_reject, 19*4882a593Smuzhiyun as_listen, as_okay, as_error, as_indicate, as_close, 20*4882a593Smuzhiyun as_itf_notify, as_modify, as_identify, as_terminate, 21*4882a593Smuzhiyun as_addparty, as_dropparty }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun struct atmsvc_msg { 24*4882a593Smuzhiyun enum atmsvc_msg_type type; 25*4882a593Smuzhiyun atm_kptr_t vcc; 26*4882a593Smuzhiyun atm_kptr_t listen_vcc; /* indicate */ 27*4882a593Smuzhiyun int reply; /* for okay and close: */ 28*4882a593Smuzhiyun /* < 0: error before active */ 29*4882a593Smuzhiyun /* (sigd has discarded ctx) */ 30*4882a593Smuzhiyun /* ==0: success */ 31*4882a593Smuzhiyun /* > 0: error when active (still */ 32*4882a593Smuzhiyun /* need to close) */ 33*4882a593Smuzhiyun struct sockaddr_atmpvc pvc; /* indicate, okay (connect) */ 34*4882a593Smuzhiyun struct sockaddr_atmsvc local; /* local SVC address */ 35*4882a593Smuzhiyun struct atm_qos qos; /* QOS parameters */ 36*4882a593Smuzhiyun struct atm_sap sap; /* SAP */ 37*4882a593Smuzhiyun unsigned int session; /* for p2pm */ 38*4882a593Smuzhiyun struct sockaddr_atmsvc svc; /* SVC address */ 39*4882a593Smuzhiyun } __ATM_API_ALIGN; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun /* 42*4882a593Smuzhiyun * Message contents: see ftp://icaftp.epfl.ch/pub/linux/atm/docs/isp-*.tar.gz 43*4882a593Smuzhiyun */ 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun /* 46*4882a593Smuzhiyun * Some policy stuff for atmsigd and for net/atm/svc.c. Both have to agree on 47*4882a593Smuzhiyun * what PCR is used to request bandwidth from the device driver. net/atm/svc.c 48*4882a593Smuzhiyun * tries to do better than that, but only if there's no routing decision (i.e. 49*4882a593Smuzhiyun * if signaling only uses one ATM interface). 50*4882a593Smuzhiyun */ 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #define SELECT_TOP_PCR(tp) ((tp).pcr ? (tp).pcr : \ 53*4882a593Smuzhiyun (tp).max_pcr && (tp).max_pcr != ATM_MAX_PCR ? (tp).max_pcr : \ 54*4882a593Smuzhiyun (tp).min_pcr ? (tp).min_pcr : ATM_MAX_PCR) 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun #endif 57