linux-old/net/irda/irsyms.c
<<
>>
Prefs
   1/*********************************************************************
   2 *                
   3 * Filename:      irsyms.c
   4 * Version:       0.9
   5 * Description:   IrDA module symbols
   6 * Status:        Experimental.
   7 * Author:        Dag Brattli <dagb@cs.uit.no>
   8 * Created at:    Mon Dec 15 13:55:39 1997
   9 * Modified at:   Wed Jan  5 15:12:41 2000
  10 * Modified by:   Dag Brattli <dagb@cs.uit.no>
  11 * 
  12 *     Copyright (c) 1997, 1999-2000 Dag Brattli, All Rights Reserved.
  13 *     Copyright (c) 2000-2001 Jean Tourrilhes <jt@hpl.hp.com>
  14 *      
  15 *     This program is free software; you can redistribute it and/or 
  16 *     modify it under the terms of the GNU General Public License as 
  17 *     published by the Free Software Foundation; either version 2 of 
  18 *     the License, or (at your option) any later version.
  19 *  
  20 *     Neither Dag Brattli nor University of Tromsø admit liability nor
  21 *     provide warranty for any of this software. This material is 
  22 *     provided "AS-IS" and at no charge.
  23 *     
  24 ********************************************************************/
  25
  26#include <linux/config.h>
  27#include <linux/module.h>
  28
  29#include <linux/init.h>
  30#include <linux/poll.h>
  31#include <linux/proc_fs.h>
  32#include <linux/smp_lock.h>
  33
  34#include <asm/segment.h>
  35
  36#include <net/irda/irda.h>
  37#include <net/irda/irmod.h>
  38#include <net/irda/irlap.h>
  39#include <net/irda/irlmp.h>
  40#include <net/irda/iriap.h>
  41#include <net/irda/irias_object.h>
  42#include <net/irda/irttp.h>
  43#include <net/irda/irda_device.h>
  44#include <net/irda/wrapper.h>
  45#include <net/irda/timer.h>
  46#include <net/irda/parameters.h>
  47#include <net/irda/crc.h>
  48
  49extern struct proc_dir_entry *proc_irda;
  50
  51extern void irda_proc_register(void);
  52extern void irda_proc_unregister(void);
  53extern int  irda_sysctl_register(void);
  54extern void irda_sysctl_unregister(void);
  55
  56extern int irda_proto_init(void);
  57extern void irda_proto_cleanup(void);
  58
  59extern int irda_device_init(void);
  60extern int irlan_init(void);
  61extern int irlan_client_init(void);
  62extern int irlan_server_init(void);
  63extern int ircomm_init(void);
  64extern int ircomm_tty_init(void);
  65extern int irlpt_client_init(void);
  66extern int irlpt_server_init(void);
  67
  68/* IrTTP */
  69EXPORT_SYMBOL(irttp_open_tsap);
  70EXPORT_SYMBOL(irttp_close_tsap);
  71EXPORT_SYMBOL(irttp_connect_response);
  72EXPORT_SYMBOL(irttp_data_request);
  73EXPORT_SYMBOL(irttp_disconnect_request);
  74EXPORT_SYMBOL(irttp_flow_request);
  75EXPORT_SYMBOL(irttp_connect_request);
  76EXPORT_SYMBOL(irttp_udata_request);
  77EXPORT_SYMBOL(irttp_dup);
  78
  79/* Main IrDA module */
  80#ifdef CONFIG_IRDA_DEBUG
  81EXPORT_SYMBOL(irda_debug);
  82#endif
  83EXPORT_SYMBOL(irda_notify_init);
  84#ifdef CONFIG_PROC_FS
  85EXPORT_SYMBOL(proc_irda);
  86#endif
  87EXPORT_SYMBOL(irda_param_insert);
  88EXPORT_SYMBOL(irda_param_extract);
  89EXPORT_SYMBOL(irda_param_extract_all);
  90EXPORT_SYMBOL(irda_param_pack);
  91EXPORT_SYMBOL(irda_param_unpack);
  92
  93/* IrIAP/IrIAS */
  94EXPORT_SYMBOL(iriap_open);
  95EXPORT_SYMBOL(iriap_close);
  96EXPORT_SYMBOL(iriap_getvaluebyclass_request);
  97EXPORT_SYMBOL(irias_object_change_attribute);
  98EXPORT_SYMBOL(irias_add_integer_attrib);
  99EXPORT_SYMBOL(irias_add_octseq_attrib);
 100EXPORT_SYMBOL(irias_add_string_attrib);
 101EXPORT_SYMBOL(irias_insert_object);
 102EXPORT_SYMBOL(irias_new_object);
 103EXPORT_SYMBOL(irias_delete_object);
 104EXPORT_SYMBOL(irias_delete_value);
 105EXPORT_SYMBOL(irias_find_object);
 106EXPORT_SYMBOL(irias_find_attrib);
 107EXPORT_SYMBOL(irias_new_integer_value);
 108EXPORT_SYMBOL(irias_new_string_value);
 109EXPORT_SYMBOL(irias_new_octseq_value);
 110
 111/* IrLMP */
 112EXPORT_SYMBOL(irlmp_discovery_request);
 113EXPORT_SYMBOL(irlmp_get_discoveries);
 114EXPORT_SYMBOL(sysctl_discovery_timeout);
 115EXPORT_SYMBOL(irlmp_register_client);
 116EXPORT_SYMBOL(irlmp_unregister_client);
 117EXPORT_SYMBOL(irlmp_update_client);
 118EXPORT_SYMBOL(irlmp_register_service);
 119EXPORT_SYMBOL(irlmp_unregister_service);
 120EXPORT_SYMBOL(irlmp_service_to_hint);
 121EXPORT_SYMBOL(irlmp_data_request);
 122EXPORT_SYMBOL(irlmp_open_lsap);
 123EXPORT_SYMBOL(irlmp_close_lsap);
 124EXPORT_SYMBOL(irlmp_connect_request);
 125EXPORT_SYMBOL(irlmp_connect_response);
 126EXPORT_SYMBOL(irlmp_disconnect_request);
 127EXPORT_SYMBOL(irlmp_get_daddr);
 128EXPORT_SYMBOL(irlmp_get_saddr);
 129EXPORT_SYMBOL(irlmp_dup);
 130EXPORT_SYMBOL(lmp_reasons);
 131
 132/* Queue */
 133EXPORT_SYMBOL(hashbin_find);
 134EXPORT_SYMBOL(hashbin_new);
 135EXPORT_SYMBOL(hashbin_insert);
 136EXPORT_SYMBOL(hashbin_delete);
 137EXPORT_SYMBOL(hashbin_remove);
 138EXPORT_SYMBOL(hashbin_remove_this);
 139EXPORT_SYMBOL(hashbin_get_next);
 140EXPORT_SYMBOL(hashbin_get_first);
 141
 142/* IrLAP */
 143EXPORT_SYMBOL(irlap_open);
 144EXPORT_SYMBOL(irlap_close);
 145EXPORT_SYMBOL(irda_init_max_qos_capabilies);
 146EXPORT_SYMBOL(irda_qos_bits_to_value);
 147EXPORT_SYMBOL(irda_device_setup);
 148EXPORT_SYMBOL(irda_device_set_media_busy);
 149EXPORT_SYMBOL(irda_device_txqueue_empty);
 150
 151EXPORT_SYMBOL(irda_device_dongle_init);
 152EXPORT_SYMBOL(irda_device_dongle_cleanup);
 153EXPORT_SYMBOL(irda_device_register_dongle);
 154EXPORT_SYMBOL(irda_device_unregister_dongle);
 155EXPORT_SYMBOL(irda_task_execute);
 156EXPORT_SYMBOL(irda_task_kick);
 157EXPORT_SYMBOL(irda_task_next_state);
 158EXPORT_SYMBOL(irda_task_delete);
 159
 160EXPORT_SYMBOL(async_wrap_skb);
 161EXPORT_SYMBOL(async_unwrap_char);
 162EXPORT_SYMBOL(irda_calc_crc16);
 163EXPORT_SYMBOL(irda_crc16_table);
 164EXPORT_SYMBOL(irda_start_timer);
 165EXPORT_SYMBOL(setup_dma);
 166EXPORT_SYMBOL(infrared_mode);
 167
 168#ifdef CONFIG_IRTTY
 169EXPORT_SYMBOL(irtty_set_dtr_rts);
 170EXPORT_SYMBOL(irtty_register_dongle);
 171EXPORT_SYMBOL(irtty_unregister_dongle);
 172EXPORT_SYMBOL(irtty_set_packet_mode);
 173#endif
 174
 175int __init irda_init(void)
 176{
 177        IRDA_DEBUG(0, "%s()\n", __FUNCTION__);
 178
 179        irlmp_init();
 180        irlap_init();
 181        
 182        iriap_init();
 183        irttp_init();
 184        
 185#ifdef CONFIG_PROC_FS
 186        irda_proc_register();
 187#endif
 188#ifdef CONFIG_SYSCTL
 189        irda_sysctl_register();
 190#endif
 191        /* 
 192         * Initialize modules that got compiled into the kernel 
 193         */
 194#ifdef CONFIG_IRLAN
 195        irlan_init();
 196#endif
 197#ifdef CONFIG_IRCOMM
 198        ircomm_init();
 199        ircomm_tty_init();
 200#endif
 201        return 0;
 202}
 203
 204void __exit irda_cleanup(void)
 205{
 206#ifdef CONFIG_SYSCTL
 207        irda_sysctl_unregister();
 208#endif  
 209
 210#ifdef CONFIG_PROC_FS
 211        irda_proc_unregister();
 212#endif
 213        /* Remove higher layers */
 214        irttp_cleanup();
 215        iriap_cleanup();
 216
 217        /* Remove lower layers */
 218        irda_device_cleanup();
 219        irlap_cleanup(); /* Must be done before irlmp_cleanup()! DB */
 220
 221        /* Remove middle layer */
 222        irlmp_cleanup();
 223}
 224
 225/*
 226 * Function irda_notify_init (notify)
 227 *
 228 *    Used for initializing the notify structure
 229 *
 230 */
 231void irda_notify_init(notify_t *notify)
 232{
 233        notify->data_indication = NULL;
 234        notify->udata_indication = NULL;
 235        notify->connect_confirm = NULL;
 236        notify->connect_indication = NULL;
 237        notify->disconnect_indication = NULL;
 238        notify->flow_indication = NULL;
 239        notify->status_indication = NULL;
 240        notify->instance = NULL;
 241        strncpy(notify->name, "Unknown", NOTIFY_MAX_NAME);
 242}
 243
 244
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.