linux/net/atm/common.c

// SPDX-License-Identifier: GPL-2.0-only
/* net/atm/common.c - ATM sockets (common part for PVC and SVC) */

/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */

#define pr_fmt(fmt)

#include <linux/module.h>
#include <linux/kmod.h>
#include <linux/net.h>		/* struct socket, struct proto_ops */
#include <linux/atm.h>		/* ATM stuff */
#include <linux/atmdev.h>
#include <linux/socket.h>	/* SOL_SOCKET */
#include <linux/errno.h>	/* error codes */
#include <linux/capability.h>
#include <linux/mm.h>
#include <linux/sched/signal.h>
#include <linux/time64.h>	/* 64-bit time for seconds */
#include <linux/skbuff.h>
#include <linux/bitops.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <net/sock.h>		/* struct sock */
#include <linux/uaccess.h>
#include <linux/poll.h>

#include <linux/atomic.h>

#include "resources.h"		/* atm_find_dev */
#include "common.h"		/* prototypes */
#include "protocols.h"		/* atm_init_<transport> */
#include "addr.h"		/* address registry */
#include "signaling.h"		/* for WAITING and sigd_attach */

struct hlist_head vcc_hash[VCC_HTABLE_SIZE];
EXPORT_SYMBOL();

DEFINE_RWLOCK();
EXPORT_SYMBOL();

static ATOMIC_NOTIFIER_HEAD(atm_dev_notify_chain);

static void __vcc_insert_socket(struct sock *sk)
{}

void vcc_insert_socket(struct sock *sk)
{}
EXPORT_SYMBOL();

static void vcc_remove_socket(struct sock *sk)
{}

static bool vcc_tx_ready(struct atm_vcc *vcc, unsigned int size)
{}

static void vcc_sock_destruct(struct sock *sk)
{}

static void vcc_def_wakeup(struct sock *sk)
{}

static inline int vcc_writable(struct sock *sk)
{}

static void vcc_write_space(struct sock *sk)
{}

static void vcc_release_cb(struct sock *sk)
{}

static struct proto vcc_proto =;

int vcc_create(struct net *net, struct socket *sock, int protocol, int family, int kern)
{}

static void vcc_destroy_socket(struct sock *sk)
{}

int vcc_release(struct socket *sock)
{}

void vcc_release_async(struct atm_vcc *vcc, int reply)
{}
EXPORT_SYMBOL();

void vcc_process_recv_queue(struct atm_vcc *vcc)
{}
EXPORT_SYMBOL();

void atm_dev_signal_change(struct atm_dev *dev, char signal)
{}
EXPORT_SYMBOL();

void atm_dev_release_vccs(struct atm_dev *dev)
{}
EXPORT_SYMBOL();

static int adjust_tp(struct atm_trafprm *tp, unsigned char aal)
{}

static int check_ci(const struct atm_vcc *vcc, short vpi, int vci)
{}

static int find_ci(const struct atm_vcc *vcc, short *vpi, int *vci)
{}

static int __vcc_connect(struct atm_vcc *vcc, struct atm_dev *dev, short vpi,
			 int vci)
{}

int vcc_connect(struct socket *sock, int itf, short vpi, int vci)
{}

int vcc_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
		int flags)
{}

int vcc_sendmsg(struct socket *sock, struct msghdr *m, size_t size)
{}

__poll_t vcc_poll(struct file *file, struct socket *sock, poll_table *wait)
{}

static int atm_change_qos(struct atm_vcc *vcc, struct atm_qos *qos)
{}

static int check_tp(const struct atm_trafprm *tp)
{}

static int check_qos(const struct atm_qos *qos)
{}

int vcc_setsockopt(struct socket *sock, int level, int optname,
		   sockptr_t optval, unsigned int optlen)
{}

int vcc_getsockopt(struct socket *sock, int level, int optname,
		   char __user *optval, int __user *optlen)
{}

int register_atmdevice_notifier(struct notifier_block *nb)
{}
EXPORT_SYMBOL_GPL();

void unregister_atmdevice_notifier(struct notifier_block *nb)
{}
EXPORT_SYMBOL_GPL();

static int __init atm_init(void)
{}

static void __exit atm_exit(void)
{}

subsys_initcall(atm_init);

module_exit(atm_exit);

MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS_NETPROTO();
MODULE_ALIAS_NETPROTO();