Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
kcapi.c File Reference
#include "kcapi.h"
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/proc_fs.h>
#include <linux/sched.h>
#include <linux/seq_file.h>
#include <linux/skbuff.h>
#include <linux/workqueue.h>
#include <linux/capi.h>
#include <linux/kernelcapi.h>
#include <linux/init.h>
#include <linux/moduleparam.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <asm/uaccess.h>
#include <linux/isdn/capicmd.h>
#include <linux/isdn/capiutil.h>
#include <linux/b1lli.h>
#include <linux/mutex.h>
#include <linux/rcupdate.h>

Go to the source code of this file.

Data Structures

struct  capictr_event
 

Macros

#define AVMB1_COMPAT
 
#define NCCI2CTRL(ncci)   (((ncci) >> 24) & 0x7f)
 

Functions

 MODULE_DESCRIPTION ("CAPI4Linux: kernel CAPI layer")
 
 MODULE_AUTHOR ("Carsten Paeth")
 
 MODULE_LICENSE ("GPL")
 
 module_param (showcapimsgs, uint, 0)
 
 LIST_HEAD (capi_drivers)
 
 DEFINE_MUTEX (capi_drivers_lock)
 
 DEFINE_MUTEX (capi_controller_lock)
 
int register_capictr_notifier (struct notifier_block *nb)
 
 EXPORT_SYMBOL_GPL (register_capictr_notifier)
 
int unregister_capictr_notifier (struct notifier_block *nb)
 
 EXPORT_SYMBOL_GPL (unregister_capictr_notifier)
 
void capi_ctr_handle_message (struct capi_ctr *ctr, u16 appl, struct sk_buff *skb)
 
 EXPORT_SYMBOL (capi_ctr_handle_message)
 
void capi_ctr_ready (struct capi_ctr *ctr)
 
 EXPORT_SYMBOL (capi_ctr_ready)
 
void capi_ctr_down (struct capi_ctr *ctr)
 
 EXPORT_SYMBOL (capi_ctr_down)
 
void capi_ctr_suspend_output (struct capi_ctr *ctr)
 
 EXPORT_SYMBOL (capi_ctr_suspend_output)
 
void capi_ctr_resume_output (struct capi_ctr *ctr)
 
 EXPORT_SYMBOL (capi_ctr_resume_output)
 
int attach_capi_ctr (struct capi_ctr *ctr)
 
 EXPORT_SYMBOL (attach_capi_ctr)
 
int detach_capi_ctr (struct capi_ctr *ctr)
 
 EXPORT_SYMBOL (detach_capi_ctr)
 
void register_capi_driver (struct capi_driver *driver)
 
 EXPORT_SYMBOL (register_capi_driver)
 
void unregister_capi_driver (struct capi_driver *driver)
 
 EXPORT_SYMBOL (unregister_capi_driver)
 
u16 capi20_isinstalled (void)
 
 EXPORT_SYMBOL (capi20_isinstalled)
 
u16 capi20_register (struct capi20_appl *ap)
 
 EXPORT_SYMBOL (capi20_register)
 
u16 capi20_release (struct capi20_appl *ap)
 
 EXPORT_SYMBOL (capi20_release)
 
u16 capi20_put_message (struct capi20_appl *ap, struct sk_buff *skb)
 
 EXPORT_SYMBOL (capi20_put_message)
 
u16 capi20_get_manufacturer (u32 contr, u8 *buf)
 
 EXPORT_SYMBOL (capi20_get_manufacturer)
 
u16 capi20_get_version (u32 contr, struct capi_version *verp)
 
 EXPORT_SYMBOL (capi20_get_version)
 
u16 capi20_get_serial (u32 contr, u8 *serial)
 
 EXPORT_SYMBOL (capi20_get_serial)
 
u16 capi20_get_profile (u32 contr, struct capi_profile *profp)
 
 EXPORT_SYMBOL (capi20_get_profile)
 
int capi20_manufacturer (unsigned int cmd, void __user *data)
 
 EXPORT_SYMBOL (capi20_manufacturer)
 
 module_init (kcapi_init)
 
 module_exit (kcapi_exit)
 

Variables

struct capi_ctrcapi_controller [CAPI_MAXCONTR]
 
struct capi20_applcapi_applications [CAPI_MAXAPPL]
 

Macro Definition Documentation

#define AVMB1_COMPAT

Definition at line 13 of file kcapi.c.

#define NCCI2CTRL (   ncci)    (((ncci) >> 24) & 0x7f)

Definition at line 62 of file kcapi.c.

Function Documentation

int attach_capi_ctr ( struct capi_ctr ctr)

attach_capi_ctr() - register CAPI controller : controller descriptor structure.

Called by hardware driver to register a controller with the CAPI subsystem. Return value: 0 on success, error code < 0 on error

Definition at line 509 of file kcapi.c.

u16 capi20_get_manufacturer ( u32  contr,
u8 buf 
)

capi20_get_manufacturer() - CAPI 2.0 operation CAPI_GET_MANUFACTURER : controller number. : result buffer (64 bytes).

Retrieve information about the manufacturer of the specified ISDN controller or (for == 0) the driver itself. Return value: CAPI result code

Definition at line 848 of file kcapi.c.

u16 capi20_get_profile ( u32  contr,
struct capi_profile profp 
)

capi20_get_profile() - CAPI 2.0 operation CAPI_GET_PROFILE : controller number. : result structure.

Retrieve capability information for the specified ISDN controller or (for == 0) the number of installed controllers. Return value: CAPI result code

Definition at line 953 of file kcapi.c.

u16 capi20_get_serial ( u32  contr,
u8 serial 
)

capi20_get_serial() - CAPI 2.0 operation CAPI_GET_SERIAL_NUMBER : controller number. : result buffer (8 bytes).

Retrieve the serial number of the specified ISDN controller or (for == 0) the driver itself. Return value: CAPI result code

Definition at line 918 of file kcapi.c.

u16 capi20_get_version ( u32  contr,
struct capi_version verp 
)

capi20_get_version() - CAPI 2.0 operation CAPI_GET_VERSION : controller number. : result structure.

Retrieve version information for the specified ISDN controller or (for == 0) the driver itself. Return value: CAPI result code

Definition at line 883 of file kcapi.c.

u16 capi20_isinstalled ( void  )

capi20_isinstalled() - CAPI 2.0 operation CAPI_INSTALLED

Return value: CAPI result code (CAPI_NOERROR if at least one ISDN controller is ready for use, CAPI_REGNOTINSTALLED otherwise)

Definition at line 631 of file kcapi.c.

int capi20_manufacturer ( unsigned int  cmd,
void __user data 
)

capi20_manufacturer() - CAPI 2.0 operation CAPI_MANUFACTURER : command. : parameter.

Perform manufacturer specific command. Return value: CAPI result code

Definition at line 1187 of file kcapi.c.

u16 capi20_put_message ( struct capi20_appl ap,
struct sk_buff skb 
)

capi20_put_message() - CAPI 2.0 operation CAPI_PUT_MESSAGE : CAPI application descriptor structure. : CAPI message.

Transfer a single message to CAPI. Return value: CAPI result code

Definition at line 768 of file kcapi.c.

u16 capi20_register ( struct capi20_appl ap)

capi20_register() - CAPI 2.0 operation CAPI_REGISTER : CAPI application descriptor structure.

Register an application's presence with CAPI. A unique application ID is assigned and stored in ->applid. After this function returns successfully, the message receive callback function ->recv_message() may be called at any time until capi20_release() has been called for the same . Return value: CAPI result code

Definition at line 664 of file kcapi.c.

u16 capi20_release ( struct capi20_appl ap)

capi20_release() - CAPI 2.0 operation CAPI_RELEASE : CAPI application descriptor structure.

Terminate an application's registration with CAPI. After this function returns successfully, the message receive callback function ->recv_message() will no longer be called. Return value: CAPI result code

Definition at line 725 of file kcapi.c.

void capi_ctr_down ( struct capi_ctr ctr)

capi_ctr_down() - signal CAPI controller not ready : controller descriptor structure.

Called by hardware driver to signal that the controller is down and unavailable for use.

Definition at line 448 of file kcapi.c.

void capi_ctr_handle_message ( struct capi_ctr ctr,
u16  appl,
struct sk_buff skb 
)

capi_ctr_handle_message() - handle incoming CAPI message : controller descriptor structure. : application ID. : message.

Called by hardware driver to pass a CAPI message to the application.

Definition at line 343 of file kcapi.c.

void capi_ctr_ready ( struct capi_ctr ctr)

capi_ctr_ready() - signal CAPI controller ready : controller descriptor structure.

Called by hardware driver to signal that the controller is up and running.

Definition at line 430 of file kcapi.c.

void capi_ctr_resume_output ( struct capi_ctr ctr)

capi_ctr_resume_output() - resume controller : controller descriptor structure.

Called by hardware driver to resume data flow.

Note: The caller is responsible for synchronizing concurrent state changes as well as invocations of capi_ctr_handle_message.

Definition at line 488 of file kcapi.c.

void capi_ctr_suspend_output ( struct capi_ctr ctr)

capi_ctr_suspend_output() - suspend controller : controller descriptor structure.

Called by hardware driver to stop data flow.

Note: The caller is responsible for synchronizing concurrent state changes as well as invocations of capi_ctr_handle_message.

Definition at line 467 of file kcapi.c.

DEFINE_MUTEX ( capi_drivers_lock  )
DEFINE_MUTEX ( capi_controller_lock  )
int detach_capi_ctr ( struct capi_ctr ctr)

detach_capi_ctr() - unregister CAPI controller : controller descriptor structure.

Called by hardware driver to remove the registration of a controller with the CAPI subsystem. Return value: 0 on success, error code < 0 on error

Definition at line 559 of file kcapi.c.

EXPORT_SYMBOL ( capi_ctr_handle_message  )
EXPORT_SYMBOL ( capi_ctr_ready  )
EXPORT_SYMBOL ( capi_ctr_down  )
EXPORT_SYMBOL ( capi_ctr_suspend_output  )
EXPORT_SYMBOL ( capi_ctr_resume_output  )
EXPORT_SYMBOL ( attach_capi_ctr  )
EXPORT_SYMBOL ( detach_capi_ctr  )
EXPORT_SYMBOL ( register_capi_driver  )
EXPORT_SYMBOL ( unregister_capi_driver  )
EXPORT_SYMBOL ( capi20_isinstalled  )
EXPORT_SYMBOL ( capi20_register  )
EXPORT_SYMBOL ( capi20_release  )
EXPORT_SYMBOL ( capi20_put_message  )
EXPORT_SYMBOL ( capi20_get_manufacturer  )
EXPORT_SYMBOL ( capi20_get_version  )
EXPORT_SYMBOL ( capi20_get_serial  )
EXPORT_SYMBOL ( capi20_get_profile  )
EXPORT_SYMBOL ( capi20_manufacturer  )
EXPORT_SYMBOL_GPL ( register_capictr_notifier  )
EXPORT_SYMBOL_GPL ( unregister_capictr_notifier  )
LIST_HEAD ( capi_drivers  )
MODULE_AUTHOR ( "Carsten Paeth"  )
MODULE_DESCRIPTION ( "CAPI4Linux: kernel CAPI layer"  )
module_exit ( kcapi_exit  )
module_init ( kcapi_init  )
MODULE_LICENSE ( "GPL"  )
module_param ( showcapimsgs  ,
uint  ,
 
)
void register_capi_driver ( struct capi_driver driver)

register_capi_driver() - register CAPI driver : driver descriptor structure.

Called by hardware driver to register itself with the CAPI subsystem.

Definition at line 595 of file kcapi.c.

int register_capictr_notifier ( struct notifier_block nb)

Definition at line 299 of file kcapi.c.

void unregister_capi_driver ( struct capi_driver driver)

unregister_capi_driver() - unregister CAPI driver : driver descriptor structure.

Called by hardware driver to unregister itself from the CAPI subsystem.

Definition at line 611 of file kcapi.c.

int unregister_capictr_notifier ( struct notifier_block nb)

Definition at line 305 of file kcapi.c.

Variable Documentation

struct capi20_appl* capi_applications[CAPI_MAXAPPL]

Definition at line 70 of file kcapi.c.

struct capi_ctr* capi_controller[CAPI_MAXCONTR]

Definition at line 67 of file kcapi.c.