18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/* net/atm/common.h - ATM sockets (common part for PVC and SVC) */
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ci/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#ifndef NET_ATM_COMMON_H
88c2ecf20Sopenharmony_ci#define NET_ATM_COMMON_H
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#include <linux/net.h>
118c2ecf20Sopenharmony_ci#include <linux/poll.h> /* for poll_table */
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciint vcc_create(struct net *net, struct socket *sock, int protocol, int family, int kern);
158c2ecf20Sopenharmony_ciint vcc_release(struct socket *sock);
168c2ecf20Sopenharmony_ciint vcc_connect(struct socket *sock, int itf, short vpi, int vci);
178c2ecf20Sopenharmony_ciint vcc_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
188c2ecf20Sopenharmony_ci		int flags);
198c2ecf20Sopenharmony_ciint vcc_sendmsg(struct socket *sock, struct msghdr *m, size_t total_len);
208c2ecf20Sopenharmony_ci__poll_t vcc_poll(struct file *file, struct socket *sock, poll_table *wait);
218c2ecf20Sopenharmony_ciint vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
228c2ecf20Sopenharmony_ciint vcc_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
238c2ecf20Sopenharmony_ciint vcc_setsockopt(struct socket *sock, int level, int optname,
248c2ecf20Sopenharmony_ci		   sockptr_t optval, unsigned int optlen);
258c2ecf20Sopenharmony_ciint vcc_getsockopt(struct socket *sock, int level, int optname,
268c2ecf20Sopenharmony_ci		   char __user *optval, int __user *optlen);
278c2ecf20Sopenharmony_civoid vcc_process_recv_queue(struct atm_vcc *vcc);
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciint atmpvc_init(void);
308c2ecf20Sopenharmony_civoid atmpvc_exit(void);
318c2ecf20Sopenharmony_ciint atmsvc_init(void);
328c2ecf20Sopenharmony_civoid atmsvc_exit(void);
338c2ecf20Sopenharmony_ciint atm_sysfs_init(void);
348c2ecf20Sopenharmony_civoid atm_sysfs_exit(void);
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci#ifdef CONFIG_PROC_FS
378c2ecf20Sopenharmony_ciint atm_proc_init(void);
388c2ecf20Sopenharmony_civoid atm_proc_exit(void);
398c2ecf20Sopenharmony_ci#else
408c2ecf20Sopenharmony_cistatic inline int atm_proc_init(void)
418c2ecf20Sopenharmony_ci{
428c2ecf20Sopenharmony_ci	return 0;
438c2ecf20Sopenharmony_ci}
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_cistatic inline void atm_proc_exit(void)
468c2ecf20Sopenharmony_ci{
478c2ecf20Sopenharmony_ci	/* nothing */
488c2ecf20Sopenharmony_ci}
498c2ecf20Sopenharmony_ci#endif /* CONFIG_PROC_FS */
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci/* SVC */
528c2ecf20Sopenharmony_ciint svc_change_qos(struct atm_vcc *vcc,struct atm_qos *qos);
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_civoid atm_dev_release_vccs(struct atm_dev *dev);
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci#endif
57