⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 divert_init.c

📁 linux-2.6.15.6
💻 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);}/**********************//* 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");}module_init(divert_init);module_exit(divert_exit);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -