cregit-Linux how code gets into the kernel

Release 4.7 drivers/isdn/divert/divert_init.c

/* $Id divert_init.c,v 1.5.6.2 2001/01/24 22:18:17 kai Exp $
 *
 * Module init for DSS1 diversion services for i4l.
 *
 * Copyright 1999       by Werner Cornelius (werner@isdn4linux.de)
 *
 * This software may be used and distributed according to the terms
 * of the GNU General Public License, incorporated herein by reference.
 *
 */

#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>

#include "isdn_divert.h"

MODULE_DESCRIPTION("ISDN4Linux: Call diversion support");
MODULE_AUTHOR("Werner Cornelius");
MODULE_LICENSE("GPL");

/****************************************/
/* structure containing interface to hl */
/****************************************/

isdn_divert_if divert_if = {
	DIVERT_IF_MAGIC,	/* magic value */
	DIVERT_CMD_REG,		/* register cmd */
	ll_callback,		/* callback routine from ll */
	NULL,			/* command still not specified */
	NULL,			/* drv_to_name */
	NULL,			/* name_to_drv */
};

/*************************/
/* Module interface code */
/* no cmd line parms     */
/*************************/

static int __init divert_init(void) { int i; if (divert_dev_init()) { printk(KERN_WARNING "dss1_divert: cannot install device, not loaded\n"); return (-EIO); } if ((i = DIVERT_REG_NAME(&divert_if)) != DIVERT_NO_ERR) { divert_dev_deinit(); printk(KERN_WARNING "dss1_divert: error %d registering module, not loaded\n", i); return (-EIO); } printk(KERN_INFO "dss1_divert module successfully installed\n"); return (0); }

Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git7296.00%150.00%
linus torvaldslinus torvalds34.00%150.00%
Total75100.00%2100.00%

/**********************/ /* Module deinit code */ /**********************/
static void __exit divert_exit(void) { unsigned long flags; int i; spin_lock_irqsave(&divert_lock, flags); divert_if.cmd = DIVERT_CMD_REL; /* release */ if ((i = DIVERT_REG_NAME(&divert_if)) != DIVERT_NO_ERR) { printk(KERN_WARNING "dss1_divert: error %d releasing module\n", i); spin_unlock_irqrestore(&divert_lock, flags); return; } if (divert_dev_deinit()) { printk(KERN_WARNING "dss1_divert: device busy, remove cancelled\n"); spin_unlock_irqrestore(&divert_lock, flags); return; } spin_unlock_irqrestore(&divert_lock, flags); deleterule(-1); /* delete all rules and free mem */ deleteprocs(); printk(KERN_INFO "dss1_divert module successfully removed \n"); }

Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git8980.91%120.00%
steffen a. morksteffen a. mork1614.55%120.00%
linus torvaldslinus torvalds54.55%360.00%
Total110100.00%5100.00%

module_init(divert_init); module_exit(divert_exit);

Overall Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git20178.21%114.29%
linus torvaldslinus torvalds3614.01%342.86%
steffen a. morksteffen a. mork166.23%114.29%
adrian bunkadrian bunk31.17%114.29%
joe perchesjoe perches10.39%114.29%
Total257100.00%7100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}