Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

iriap.c File Reference

#include <linux/config.h>
#include <linux/types.h>
#include <linux/skbuff.h>
#include <linux/string.h>
#include <linux/init.h>
#include <asm/byteorder.h>
#include <asm/unaligned.h>
#include <net/irda/irda.h>
#include <net/irda/irttp.h>
#include <net/irda/irmod.h>
#include <net/irda/irlmp.h>
#include <net/irda/irias_object.h>
#include <net/irda/iriap_event.h>
#include <net/irda/iriap.h>

Include dependency graph for iriap.c:

Go to the source code of this file.

Functions

static void __iriap_close (struct iriap_cb *self)
static int iriap_register_lsap (struct iriap_cb *self, __u8 slsap_sel, int mode)
static void iriap_disconnect_indication (void *instance, void *sap, LM_REASON reason, struct sk_buff *skb)
static void iriap_connect_indication (void *instance, void *sap, struct qos_info *qos, __u32 max_sdu_size, __u8 max_header_size, struct sk_buff *skb)
static void iriap_connect_confirm (void *instance, void *sap, struct qos_info *qos, __u32 max_sdu_size, __u8 max_header_size, struct sk_buff *skb)
static int iriap_data_indication (void *instance, void *sap, struct sk_buff *skb)
int __init iriap_init (void)
void iriap_cleanup (void)
iriap_cbiriap_open (__u8 slsap_sel, int mode, void *priv, CONFIRM_CALLBACK callback)
void iriap_close (struct iriap_cb *self)
void iriap_disconnect_request (struct iriap_cb *self)
void iriap_getinfobasedetails_request (void)
void iriap_getinfobasedetails_confirm (void)
void iriap_getobjects_request (void)
void iriap_getobjects_confirm (void)
void iriap_getvalue (void)
int iriap_getvaluebyclass_request (struct iriap_cb *self, __u32 saddr, __u32 daddr, char *name, char *attr)
void iriap_getvaluebyclass_confirm (struct iriap_cb *self, struct sk_buff *skb)
void iriap_getvaluebyclass_response (struct iriap_cb *self, __u16 obj_id, __u8 ret_code, struct ias_value *value)
void iriap_getvaluebyclass_indication (struct iriap_cb *self, struct sk_buff *skb)
void iriap_send_ack (struct iriap_cb *self)
void iriap_connect_request (struct iriap_cb *self)
void iriap_call_indication (struct iriap_cb *self, struct sk_buff *skb)
void iriap_watchdog_timer_expired (void *data)

Variables

static const char * ias_charset_types []
static hashbin_tiriap = NULL
static __u32 service_handle
char * lmp_reasons []


Function Documentation

static void __iriap_close struct iriap_cb self  )  [static]
 

Definition at line 199 of file iriap.c.

References ASSERT, del_timer(), dev_kfree_skb, IAS_MAGIC, IRDA_DEBUG, kfree(), iriap_cb::magic, NULL, iriap_cb::skb, and iriap_cb::watchdog_timer.

Referenced by iriap_cleanup(), and iriap_close().

Here is the call graph for this function:

void iriap_call_indication struct iriap_cb self,
struct sk_buff skb
 

Definition at line 913 of file iriap.c.

References ASSERT, sk_buff::data, fp, GET_INFO_BASE, GET_VALUE_BY_CLASS, IAS_MAGIC, IRDA_DEBUG, iriap_getvaluebyclass_indication(), iriap_cb::magic, NULL, opcode, WARNING, and x80.

Referenced by state_r_receiving().

Here is the call graph for this function:

void iriap_cleanup void   ) 
 

Definition at line 141 of file iriap.c.

References __iriap_close(), __irias_delete_object(), hashbin_delete(), irlmp_unregister_service(), objects, and service_handle.

Here is the call graph for this function:

void iriap_close struct iriap_cb self  ) 
 

Definition at line 221 of file iriap.c.

References __iriap_close(), ASSERT, entry, hashbin_remove(), IAS_MAGIC, IRDA_DEBUG, irlmp_close_lsap(), iriap_cb::lsap, iriap_cb::magic, and NULL.

Referenced by __irlan_close(), ircomm_tty_detach_cable(), ircomm_tty_getvalue_confirm(), irda_destroy_socket(), irda_getvalue_confirm(), irda_shutdown(), irda_simple_getvalue_confirm(), iriap_disconnect_indication(), and irlan_client_get_value_confirm().

Here is the call graph for this function:

static void iriap_connect_confirm void *  instance,
void *  sap,
struct qos_info qos,
__u32  max_sdu_size,
__u8  max_header_size,
struct sk_buff skb
[static]
 

Definition at line 741 of file iriap.c.

References ASSERT, del_timer(), IAP_LM_CONNECT_CONFIRM, IAS_MAGIC, iriap_do_client_event(), and NULL.

Referenced by iriap_register_lsap().

Here is the call graph for this function:

static void iriap_connect_indication void *  instance,
void *  sap,
struct qos_info qos,
__u32  max_sdu_size,
__u8  max_header_size,
struct sk_buff skb
[static]
 

Definition at line 768 of file iriap.c.

References ASSERT, dev_kfree_skb, IAP_LM_CONNECT_INDICATION, IAS_MAGIC, IAS_SERVER, IRDA_DEBUG, iriap_do_server_event(), iriap_open(), irlmp_dup(), LSAP_ANY, LSAP_DISCONNECTED, LSAP_IAS, and NULL.

Referenced by iriap_register_lsap().

Here is the call graph for this function:

void iriap_connect_request struct iriap_cb self  ) 
 

Definition at line 719 of file iriap.c.

References ASSERT, iriap_cb::daddr, IAS_DISCONNECT, IAS_MAGIC, IRDA_DEBUG, irlmp_connect_request(), iriap_cb::lsap, LSAP_IAS, iriap_cb::magic, NULL, iriap_cb::priv, ret, and iriap_cb::saddr.

Referenced by state_s_disconnect().

Here is the call graph for this function:

static int iriap_data_indication void *  instance,
void *  sap,
struct sk_buff skb
[static]
 

Definition at line 814 of file iriap.c.

References ASSERT, sk_buff::data, dev_kfree_skb, GET_INFO_BASE, GET_VALUE_BY_CLASS, IAP_ACK, IAP_LST, IAP_RECV_F_LST, IAS_ATTRIB_UNKNOWN, IAS_CLASS_UNKNOWN, IAS_MAGIC, IAS_SERVER, IAS_SUCCESS, IRDA_DEBUG, iriap_disconnect_request(), iriap_do_call_event(), iriap_do_r_connect_event(), iriap_getvaluebyclass_confirm(), NULL, opcode, and WARNING.

Referenced by iriap_register_lsap().

Here is the call graph for this function:

static void iriap_disconnect_indication void *  instance,
void *  sap,
LM_REASON  reason,
struct sk_buff skb
[static]
 

Definition at line 274 of file iriap.c.

References ASSERT, del_timer(), dev_kfree_skb, IAP_LM_DISCONNECT_INDICATION, IAS_CLIENT, IAS_DISCONNECT, IAS_MAGIC, IRDA_DEBUG, iriap_close(), iriap_do_client_event(), iriap_do_server_event(), lmp_reasons, and NULL.

Referenced by iriap_register_lsap().

Here is the call graph for this function:

void iriap_disconnect_request struct iriap_cb self  ) 
 

Definition at line 321 of file iriap.c.

References ASSERT, IAS_MAGIC, IRDA_DEBUG, irlmp_disconnect_request(), LMP_MAX_HEADER, iriap_cb::lsap, iriap_cb::magic, and NULL.

Referenced by iriap_data_indication(), and iriap_getvaluebyclass_confirm().

Here is the call graph for this function:

void iriap_getinfobasedetails_confirm void   ) 
 

Definition at line 350 of file iriap.c.

References IRDA_DEBUG.

void iriap_getinfobasedetails_request void   ) 
 

Definition at line 345 of file iriap.c.

References IRDA_DEBUG.

void iriap_getobjects_confirm void   ) 
 

Definition at line 360 of file iriap.c.

References IRDA_DEBUG.

void iriap_getobjects_request void   ) 
 

Definition at line 355 of file iriap.c.

References IRDA_DEBUG.

void iriap_getvalue void   ) 
 

Definition at line 365 of file iriap.c.

References IRDA_DEBUG.

void iriap_getvaluebyclass_confirm struct iriap_cb self,
struct sk_buff skb
 

Definition at line 433 of file iriap.c.

References ASSERT, be16_to_cpu, charset, iriap_cb::confirm, CS_ASCII, sk_buff::data, dev_kfree_skb, fp, get_unaligned, ias_charset_types, IAS_INTEGER, IAS_MAGIC, IAS_OCT_SEQ, IAS_STRING, IAS_SUCCESS, IRDA_DEBUG, iriap_disconnect_request(), irias_delete_value(), irias_new_integer_value(), irias_new_missing_value(), irias_new_octseq_value(), irias_new_string_value(), len, iriap_cb::magic, memcpy, n, NULL, iriap_cb::priv, ias_value::t, type, and value.

Referenced by iriap_data_indication().

Here is the call graph for this function:

void iriap_getvaluebyclass_indication struct iriap_cb self,
struct sk_buff skb
 

Definition at line 630 of file iriap.c.

References ASSERT, attr, sk_buff::data, dev_kfree_skb, fp, IAS_ATTRIB_UNKNOWN, IAS_CLASS_UNKNOWN, IAS_MAGIC, IAS_SUCCESS, ias_object::id, IRDA_DEBUG, iriap_getvaluebyclass_response(), irias_find_attrib(), irias_find_object(), iriap_cb::magic, memcpy, missing, n, ias_object::name, name, NULL, and ias_attrib::value.

Referenced by iriap_call_indication().

Here is the call graph for this function:

int iriap_getvaluebyclass_request struct iriap_cb self,
__u32  saddr,
__u32  daddr,
char *  name,
char *  attr
 

Definition at line 376 of file iriap.c.

References ASSERT, sk_buff::data, ENOMEM, GET_VALUE_BY_CLASS, HZ, IAP_CALL_REQUEST_GVBC, IAP_LST, IAS_MAGIC, iriap_do_client_event(), iriap_start_watchdog_timer(), iriap_cb::magic, memcpy, NULL, and strlen.

Referenced by ircomm_tty_state_idle(), ircomm_tty_state_query_parameters(), ircomm_tty_state_search(), irda_find_lsap_sel(), irda_getsockopt(), and irlan_client_state_idle().

Here is the call graph for this function:

void iriap_getvaluebyclass_response struct iriap_cb self,
__u16  obj_id,
__u8  ret_code,
struct ias_value value
 

Definition at line 544 of file iriap.c.

References __constant_htons, ASSERT, cpu_to_be16, cpu_to_be32, fp, GET_VALUE_BY_CLASS, IAP_CALL_RESPONSE, IAP_LST, IAS_INTEGER, IAS_MAGIC, IAS_MISSING, IAS_OCT_SEQ, IAS_STRING, IRDA_DEBUG, iriap_do_r_connect_event(), ias_value::len, iriap_cb::magic, iriap_cb::max_header_size, memcpy, n, NULL, ias_value::t, and ias_value::type.

Referenced by iriap_getvaluebyclass_indication().

Here is the call graph for this function:

int __init iriap_init void   ) 
 

Definition at line 84 of file iriap.c.

References ENOMEM, hashbin_new(), HB_LOCAL, IAS_DEVICE_ID, IAS_SERVER, IRDA_DEBUG, iriap_open(), iriap_register_lsap(), irias_add_octseq_attrib(), irias_add_string_attrib(), irias_insert_object(), irias_new_object(), irlmp_register_service(), irlmp_service_to_hint(), LSAP_IAS, NULL, objects, S_COMPUTER, service_handle, and WARNING.

Referenced by irda_init().

Here is the call graph for this function:

struct iriap_cb* iriap_open __u8  slsap_sel,
int  mode,
void *  priv,
CONFIRM_CALLBACK  callback
 

Definition at line 154 of file iriap.c.

References hashbin_insert(), IAS_CLIENT, IAS_MAGIC, init_timer(), IRDA_DEBUG, iriap_next_call_state(), iriap_next_client_state(), iriap_next_r_connect_state(), iriap_next_server_state(), iriap_register_lsap(), kmalloc(), memset, NULL, R_DISCONNECT, R_WAITING, S_DISCONNECT, S_MAKE_CALL, and WARNING.

Referenced by ircomm_tty_state_idle(), ircomm_tty_state_query_parameters(), ircomm_tty_state_search(), irda_find_lsap_sel(), irda_getsockopt(), iriap_connect_indication(), iriap_init(), and irlan_client_state_idle().

Here is the call graph for this function:

static int iriap_register_lsap struct iriap_cb self,
__u8  slsap_sel,
int  mode
[static]
 

Definition at line 241 of file iriap.c.

References notify_t::connect_confirm, notify_t::connect_indication, notify_t::data_indication, notify_t::disconnect_indication, ERROR, IAS_CLIENT, notify_t::instance, IRDA_DEBUG, irda_notify_init(), iriap_connect_confirm(), iriap_connect_indication(), iriap_data_indication(), iriap_disconnect_indication(), irlmp_open_lsap(), iriap_cb::lsap, notify_t::name, NULL, and strcpy.

Referenced by iriap_init(), and iriap_open().

Here is the call graph for this function:

void iriap_send_ack struct iriap_cb self  ) 
 

Definition at line 694 of file iriap.c.

References ASSERT, IAP_ACK, IAP_LST, IAS_MAGIC, IRDA_DEBUG, irlmp_data_request(), iriap_cb::lsap, iriap_cb::magic, iriap_cb::max_header_size, and NULL.

Here is the call graph for this function:

void iriap_watchdog_timer_expired void *  data  ) 
 

Definition at line 951 of file iriap.c.

References ASSERT, IAS_MAGIC, and NULL.

Referenced by iriap_start_watchdog_timer().


Variable Documentation

const char* ias_charset_types[] [static]
 

Initial value:

 {
        "CS_ASCII",
        "CS_ISO_8859_1",
        "CS_ISO_8859_2",
        "CS_ISO_8859_3",
        "CS_ISO_8859_4",
        "CS_ISO_8859_5",
        "CS_ISO_8859_6",
        "CS_ISO_8859_7",
        "CS_ISO_8859_8",
        "CS_ISO_8859_9",
        "CS_UNICODE"
}

Definition at line 44 of file iriap.c.

Referenced by iriap_getvaluebyclass_confirm().

hashbin_t* iriap = NULL [static]
 

Definition at line 58 of file iriap.c.

char* lmp_reasons[]
 

Definition at line 54 of file irlmp.c.

__u32 service_handle [static]
 

Definition at line 59 of file iriap.c.

Referenced by iriap_cleanup(), and iriap_init().