cregit-Linux how code gets into the kernel

Release 4.7 net/irda/irnet/irnet_ppp.h

Directory: net/irda/irnet
/*
 *      IrNET protocol module : Synchronous PPP over an IrDA socket.
 *
 *              Jean II - HPL `00 - <jt@hpl.hp.com>
 *
 * This file contains all definitions and declarations necessary for the
 * PPP part of the IrNET module.
 * This file is a private header, so other modules don't want to know
 * what's in there...
 */

#ifndef IRNET_PPP_H

#define IRNET_PPP_H

/***************************** INCLUDES *****************************/

#include "irnet.h"		/* Module global include */

/************************ CONSTANTS & MACROS ************************/

/* /dev/irnet file constants */

#define IRNET_MAJOR	10	
/* Misc range */

#define IRNET_MINOR	187	
/* Official allocation */

/* IrNET control channel stuff */

#define IRNET_MAX_COMMAND	256	
/* Max length of a command line */

/* PPP hardcore stuff */

/* Bits in rbits (PPP flags in irnet struct) */

#define SC_RCV_BITS	(SC_RCV_B7_1|SC_RCV_B7_0|SC_RCV_ODDP|SC_RCV_EVNP)

/* Bit numbers in busy */

#define XMIT_BUSY	0

#define RECV_BUSY	1

#define XMIT_WAKEUP	2

#define XMIT_FULL	3

/* Queue management */

#define PPPSYNC_MAX_RQLEN	32	
/* arbitrary */

/****************************** TYPES ******************************/


/**************************** PROTOTYPES ****************************/

/* ----------------------- CONTROL CHANNEL ----------------------- */
static inline ssize_t
	irnet_ctrl_write(irnet_socket *,
			 const char *,
			 size_t);
static inline ssize_t
	irnet_ctrl_read(irnet_socket *,
			struct file *,
			char *,
			size_t);
static inline unsigned int
	irnet_ctrl_poll(irnet_socket *,
			struct file *,
			poll_table *);
/* ----------------------- CHARACTER DEVICE ----------------------- */
static int
	dev_irnet_open(struct inode *,	/* fs callback : open */
		       struct file *),
	dev_irnet_close(struct inode *,
			struct file *);
static ssize_t
	dev_irnet_write(struct file *,
			const char __user *,
			size_t,
			loff_t *),
	dev_irnet_read(struct file *,
		       char __user *,
		       size_t,
		       loff_t *);
static unsigned int
	dev_irnet_poll(struct file *,
		       poll_table *);
static long
	dev_irnet_ioctl(struct file *,
			unsigned int,
			unsigned long);
/* ------------------------ PPP INTERFACE ------------------------ */
static inline struct sk_buff *
	irnet_prepare_skb(irnet_socket *,
			  struct sk_buff *);
static int
	ppp_irnet_send(struct ppp_channel *,
		      struct sk_buff *);
static int
	ppp_irnet_ioctl(struct ppp_channel *,
			unsigned int,
			unsigned long);

/**************************** VARIABLES ****************************/

/* Filesystem callbacks (to call us) */

static const struct file_operations irnet_device_fops =
{
	.owner		= THIS_MODULE,
	.read		= dev_irnet_read,
	.write		= dev_irnet_write,
	.poll		= dev_irnet_poll,
	.unlocked_ioctl	= dev_irnet_ioctl,
	.open		= dev_irnet_open,
	.release	= dev_irnet_close,
	.llseek		= noop_llseek,
  /* Also : llseek, readdir, mmap, flush, fsync, fasync, lock, readv, writev */
};

/* Structure so that the misc major (drivers/char/misc.c) take care of us... */

static struct miscdevice irnet_misc_device =
{
	IRNET_MINOR,
	"irnet",
	&irnet_device_fops
};

#endif /* IRNET_PPP_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git28289.52%111.11%
art haasart haas123.81%111.11%
arnd bergmannarnd bergmann61.90%111.11%
jean tourrilhesjean tourrilhes51.59%111.11%
linus torvaldslinus torvalds51.59%222.22%
al viroal viro20.63%111.11%
alan coxalan cox20.63%111.11%
stephen hemmingerstephen hemminger10.32%111.11%
Total315100.00%9100.00%
Directory: net/irda/irnet
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}