linux/net/atm/svc.c

// SPDX-License-Identifier: GPL-2.0
/* net/atm/svc.c - ATM SVC sockets */

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

#define pr_fmt(fmt)

#include <linux/string.h>
#include <linux/net.h>		/* struct socket, struct proto_ops */
#include <linux/errno.h>	/* error codes */
#include <linux/kernel.h>	/* printk */
#include <linux/skbuff.h>
#include <linux/wait.h>
#include <linux/sched/signal.h>
#include <linux/fcntl.h>	/* O_NONBLOCK */
#include <linux/init.h>
#include <linux/atm.h>		/* ATM stuff */
#include <linux/atmsap.h>
#include <linux/atmsvc.h>
#include <linux/atmdev.h>
#include <linux/bitops.h>
#include <net/sock.h>		/* for sock_no_* */
#include <linux/uaccess.h>
#include <linux/export.h>

#include "resources.h"
#include "common.h"		/* common for PVCs and SVCs */
#include "signaling.h"
#include "addr.h"

#ifdef CONFIG_COMPAT
/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */
#define COMPAT_ATM_ADDPARTY
#endif

static int svc_create(struct net *net, struct socket *sock, int protocol,
		      int kern);

/*
 * Note: since all this is still nicely synchronized with the signaling demon,
 *       there's no need to protect sleep loops with clis. If signaling is
 *       moved into the kernel, that would change.
 */


static int svc_shutdown(struct socket *sock, int how)
{}

static void svc_disconnect(struct atm_vcc *vcc)
{}

static int svc_release(struct socket *sock)
{}

static int svc_bind(struct socket *sock, struct sockaddr *sockaddr,
		    int sockaddr_len)
{}

static int svc_connect(struct socket *sock, struct sockaddr *sockaddr,
		       int sockaddr_len, int flags)
{}

static int svc_listen(struct socket *sock, int backlog)
{}

static int svc_accept(struct socket *sock, struct socket *newsock,
		      struct proto_accept_arg *arg)
{}

static int svc_getname(struct socket *sock, struct sockaddr *sockaddr,
		       int peer)
{}

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

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

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

static int svc_addparty(struct socket *sock, struct sockaddr *sockaddr,
			int sockaddr_len, int flags)
{}

static int svc_dropparty(struct socket *sock, int ep_ref)
{}

static int svc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{}

#ifdef CONFIG_COMPAT
static int svc_compat_ioctl(struct socket *sock, unsigned int cmd,
			    unsigned long arg)
{}
#endif /* CONFIG_COMPAT */

static const struct proto_ops svc_proto_ops =;


static int svc_create(struct net *net, struct socket *sock, int protocol,
		      int kern)
{}

static const struct net_proto_family svc_family_ops =;


/*
 *	Initialize the ATM SVC protocol family
 */

int __init atmsvc_init(void)
{}

void atmsvc_exit(void)
{}