162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/* net/atm/common.h - ATM sockets (common part for PVC and SVC) */
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#ifndef NET_ATM_COMMON_H
862306a36Sopenharmony_ci#define NET_ATM_COMMON_H
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/net.h>
1162306a36Sopenharmony_ci#include <linux/poll.h> /* for poll_table */
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciint vcc_create(struct net *net, struct socket *sock, int protocol, int family, int kern);
1562306a36Sopenharmony_ciint vcc_release(struct socket *sock);
1662306a36Sopenharmony_ciint vcc_connect(struct socket *sock, int itf, short vpi, int vci);
1762306a36Sopenharmony_ciint vcc_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
1862306a36Sopenharmony_ci		int flags);
1962306a36Sopenharmony_ciint vcc_sendmsg(struct socket *sock, struct msghdr *m, size_t total_len);
2062306a36Sopenharmony_ci__poll_t vcc_poll(struct file *file, struct socket *sock, poll_table *wait);
2162306a36Sopenharmony_ciint vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
2262306a36Sopenharmony_ciint vcc_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
2362306a36Sopenharmony_ciint vcc_setsockopt(struct socket *sock, int level, int optname,
2462306a36Sopenharmony_ci		   sockptr_t optval, unsigned int optlen);
2562306a36Sopenharmony_ciint vcc_getsockopt(struct socket *sock, int level, int optname,
2662306a36Sopenharmony_ci		   char __user *optval, int __user *optlen);
2762306a36Sopenharmony_civoid vcc_process_recv_queue(struct atm_vcc *vcc);
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciint atmpvc_init(void);
3062306a36Sopenharmony_civoid atmpvc_exit(void);
3162306a36Sopenharmony_ciint atmsvc_init(void);
3262306a36Sopenharmony_civoid atmsvc_exit(void);
3362306a36Sopenharmony_ciint atm_sysfs_init(void);
3462306a36Sopenharmony_civoid atm_sysfs_exit(void);
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#ifdef CONFIG_PROC_FS
3762306a36Sopenharmony_ciint atm_proc_init(void);
3862306a36Sopenharmony_civoid atm_proc_exit(void);
3962306a36Sopenharmony_ci#else
4062306a36Sopenharmony_cistatic inline int atm_proc_init(void)
4162306a36Sopenharmony_ci{
4262306a36Sopenharmony_ci	return 0;
4362306a36Sopenharmony_ci}
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cistatic inline void atm_proc_exit(void)
4662306a36Sopenharmony_ci{
4762306a36Sopenharmony_ci	/* nothing */
4862306a36Sopenharmony_ci}
4962306a36Sopenharmony_ci#endif /* CONFIG_PROC_FS */
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci/* SVC */
5262306a36Sopenharmony_ciint svc_change_qos(struct atm_vcc *vcc,struct atm_qos *qos);
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_civoid atm_dev_release_vccs(struct atm_dev *dev);
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci#endif
57