diff options
Diffstat (limited to 'include/net/irda')
-rw-r--r-- | include/net/irda/discovery.h | 6 | ||||
-rw-r--r-- | include/net/irda/ircomm_core.h | 2 | ||||
-rw-r--r-- | include/net/irda/ircomm_tty.h | 2 | ||||
-rw-r--r-- | include/net/irda/irda.h | 32 | ||||
-rw-r--r-- | include/net/irda/irda_device.h | 4 | ||||
-rw-r--r-- | include/net/irda/iriap.h | 2 | ||||
-rw-r--r-- | include/net/irda/irias_object.h | 18 | ||||
-rw-r--r-- | include/net/irda/irlan_client.h | 2 | ||||
-rw-r--r-- | include/net/irda/irlan_common.h | 27 | ||||
-rw-r--r-- | include/net/irda/irlap.h | 6 | ||||
-rw-r--r-- | include/net/irda/irlmp.h | 43 | ||||
-rw-r--r-- | include/net/irda/irmod.h | 8 | ||||
-rw-r--r-- | include/net/irda/irqueue.h | 29 | ||||
-rw-r--r-- | include/net/irda/irttp.h | 4 | ||||
-rw-r--r-- | include/net/irda/irtty.h | 2 | ||||
-rw-r--r-- | include/net/irda/qos.h | 11 | ||||
-rw-r--r-- | include/net/irda/timer.h | 2 |
17 files changed, 115 insertions, 85 deletions
diff --git a/include/net/irda/discovery.h b/include/net/irda/discovery.h index 90b8abd41..dccf1246c 100644 --- a/include/net/irda/discovery.h +++ b/include/net/irda/discovery.h @@ -44,8 +44,8 @@ /* * The DISCOVERY structure is used for both discovery requests and responses */ -typedef struct { - queue_t q; /* Must be first! */ +typedef struct discovery_t { + irda_queue_t q; /* Must be first! */ __u32 saddr; /* Which link the device was discovered */ __u32 daddr; /* Remote device address */ @@ -59,10 +59,12 @@ typedef struct { int gen_addr_bit; /* Need to generate a new device address? */ int nslots; /* Number of slots to use when discovering */ unsigned long timestamp; /* Time discovered */ + unsigned long first_timestamp; /* First time discovered */ } discovery_t; void irlmp_add_discovery(hashbin_t *cachelog, discovery_t *discovery); void irlmp_add_discovery_log(hashbin_t *cachelog, hashbin_t *log); void irlmp_expire_discoveries(hashbin_t *log, __u32 saddr, int force); +struct irda_device_info *irlmp_copy_discoveries(hashbin_t *log, int *pn, __u16 mask); #endif diff --git a/include/net/irda/ircomm_core.h b/include/net/irda/ircomm_core.h index b555b37e2..3e891c201 100644 --- a/include/net/irda/ircomm_core.h +++ b/include/net/irda/ircomm_core.h @@ -53,7 +53,7 @@ typedef struct { } call_t; struct ircomm_cb { - queue_t queue; + irda_queue_t queue; magic_t magic; notify_t notify; diff --git a/include/net/irda/ircomm_tty.h b/include/net/irda/ircomm_tty.h index 3946ebb98..d66686510 100644 --- a/include/net/irda/ircomm_tty.h +++ b/include/net/irda/ircomm_tty.h @@ -48,7 +48,7 @@ * IrCOMM TTY driver state */ struct ircomm_tty_cb { - queue_t queue; /* Must be first */ + irda_queue_t queue; /* Must be first */ magic_t magic; int state; /* Connect state */ diff --git a/include/net/irda/irda.h b/include/net/irda/irda.h index 3bb5e4e77..8bdfee75a 100644 --- a/include/net/irda/irda.h +++ b/include/net/irda/irda.h @@ -110,8 +110,14 @@ if(!(expr)) { \ typedef enum { FLOW_STOP, FLOW_START } LOCAL_FLOW; +/* A few forward declarations (to make compiler happy) */ +struct tsap_cb; /* in <net/irda/irttp.h> */ +struct lsap_cb; /* in <net/irda/irlmp.h> */ +struct iriap_cb; /* in <net/irda/iriap.h> */ +struct ias_value; /* in <net/irda/irias_object.h> */ +struct discovery_t; /* in <net/irda/discovery.h> */ + /* IrDA Socket */ -struct tsap_cb; struct irda_sock { __u32 saddr; /* my local address */ __u32 daddr; /* peer address */ @@ -137,14 +143,18 @@ struct irda_sock { struct ias_object *ias_obj; /* Our service name + lsap in IAS */ struct iriap_cb *iriap; /* Used to query remote IAS */ - struct ias_value *ias_result; /* Used by getsockopt(IRLMP_IAS_QUERY) */ + struct ias_value *ias_result; /* Result of remote IAS query */ + + hashbin_t *cachelog; /* Result of discovery query */ + struct discovery_t *cachediscovery; /* Result of selective discovery query */ int nslots; /* Number of slots to use for discovery */ int errno; /* status of the IAS query */ struct sock *sk; - wait_queue_head_t ias_wait; /* Wait for LM-IAS answer */ + wait_queue_head_t query_wait; /* Wait for the answer to a query */ + struct timer_list watchdog; /* Timeout for discovery */ LOCAL_FLOW tx_flow; LOCAL_FLOW rx_flow; @@ -166,12 +176,14 @@ typedef union { * (must not exceed 48 bytes, check with struct sk_buff) */ struct irda_skb_cb { - magic_t magic; /* Be sure that we can trust the information */ - __u32 speed; /* The Speed this frame should be sent with */ - __u16 mtt; /* Minimum turn around time */ - int xbofs; /* Number of xbofs required, used by SIR mode */ - __u8 line; /* Used by IrCOMM in IrLPT mode */ - void (*destructor)(struct sk_buff *skb); /* Used for flow control */ + magic_t magic; /* Be sure that we can trust the information */ + __u32 speed; /* The Speed this frame should be sent with */ + __u16 mtt; /* Minimum turn around time */ + __u16 xbofs; /* Number of xbofs required, used by SIR mode */ + void *context; /* May be used by drivers */ + void (*destructor)(struct sk_buff *skb); /* Used for flow control */ + __u16 xbofs_delay; /* Number of xbofs used for generating the mtt */ + __u8 line; /* Used by IrCOMM in IrLPT mode */ }; /* Misc status information */ @@ -232,6 +244,8 @@ typedef struct { void (*disconnect_indication)(void *instance, void *sap, LM_REASON reason, struct sk_buff *); void (*flow_indication)(void *instance, void *sap, LOCAL_FLOW flow); + void (*status_indication)(void *instance, + LINK_STATUS link, LOCK_STATUS lock); void *instance; /* Layer instance pointer */ char name[16]; /* Name of layer */ } notify_t; diff --git a/include/net/irda/irda_device.h b/include/net/irda/irda_device.h index d6733d60b..ac66f61bd 100644 --- a/include/net/irda/irda_device.h +++ b/include/net/irda/irda_device.h @@ -79,7 +79,7 @@ struct irda_task; typedef int (*IRDA_TASK_CALLBACK) (struct irda_task *task); struct irda_task { - queue_t q; + irda_queue_t q; magic_t magic; IRDA_TASK_STATE state; @@ -111,7 +111,7 @@ typedef struct { /* Dongle registration info */ struct dongle_reg { - queue_t q; /* Must be first */ + irda_queue_t q; /* Must be first */ IRDA_DONGLE type; void (*open)(dongle_t *dongle, struct qos_info *qos); diff --git a/include/net/irda/iriap.h b/include/net/irda/iriap.h index cd0dff5a9..8aed55b1c 100644 --- a/include/net/irda/iriap.h +++ b/include/net/irda/iriap.h @@ -58,7 +58,7 @@ typedef void (*CONFIRM_CALLBACK)(int result, __u16 obj_id, struct ias_value *value, void *priv); struct iriap_cb { - queue_t q; /* Must be first */ + irda_queue_t q; /* Must be first */ magic_t magic; /* Magic cookie */ int mode; /* Client or server */ diff --git a/include/net/irda/irias_object.h b/include/net/irda/irias_object.h index cfa8e28ed..ff6b0b7b9 100644 --- a/include/net/irda/irias_object.h +++ b/include/net/irda/irias_object.h @@ -34,11 +34,15 @@ #define IAS_OCT_SEQ 2 #define IAS_STRING 3 +/* Object ownership of attributes (user or kernel) */ +#define IAS_KERNEL_ATTR 0 +#define IAS_USER_ATTR 1 + /* * LM-IAS Object */ struct ias_object { - queue_t q; /* Must be first! */ + irda_queue_t q; /* Must be first! */ magic_t magic; char *name; @@ -51,6 +55,7 @@ struct ias_object { */ struct ias_value { __u8 type; /* Value description */ + __u8 owner; /* Managed from user/kernel space */ int charset; /* Only used by string type */ int len; @@ -66,7 +71,7 @@ struct ias_value { * Attributes used by LM-IAS objects */ struct ias_attrib { - queue_t q; /* Must be first! */ + irda_queue_t q; /* Must be first! */ int magic; char *name; /* Attribute name */ @@ -78,12 +83,15 @@ char *strdup(char *str); struct ias_object *irias_new_object(char *name, int id); void irias_insert_object(struct ias_object *obj); int irias_delete_object(struct ias_object *obj); +int irias_delete_attrib(struct ias_object *obj, struct ias_attrib *attrib); void __irias_delete_object(struct ias_object *obj); -void irias_add_integer_attrib(struct ias_object *obj, char *name, int value); -void irias_add_string_attrib(struct ias_object *obj, char *name, char *value); +void irias_add_integer_attrib(struct ias_object *obj, char *name, int value, + int user); +void irias_add_string_attrib(struct ias_object *obj, char *name, char *value, + int user); void irias_add_octseq_attrib(struct ias_object *obj, char *name, __u8 *octets, - int len); + int len, int user); int irias_object_change_attribute(char *obj_name, char *attrib_name, struct ias_value *new_value); struct ias_object *irias_find_object(char *name); diff --git a/include/net/irda/irlan_client.h b/include/net/irda/irlan_client.h index 62ea6157a..2aab19e90 100644 --- a/include/net/irda/irlan_client.h +++ b/include/net/irda/irlan_client.h @@ -34,7 +34,7 @@ #include <net/irda/irlan_event.h> void irlan_client_start_kick_timer(struct irlan_cb *self, int timeout); -void irlan_client_discovery_indication(discovery_t *); +void irlan_client_discovery_indication(discovery_t *, void *); void irlan_client_wakeup(struct irlan_cb *self, __u32 saddr, __u32 daddr); void irlan_client_open_ctrl_tsap( struct irlan_cb *self); diff --git a/include/net/irda/irlan_common.h b/include/net/irda/irlan_common.h index 9ed6a9c36..02ecaf8e3 100644 --- a/include/net/irda/irlan_common.h +++ b/include/net/irda/irlan_common.h @@ -161,28 +161,26 @@ struct irlan_provider_cb { * IrLAN control block */ struct irlan_cb { - queue_t q; /* Must be first */ + irda_queue_t q; /* Must be first */ int magic; struct net_device dev; /* Ethernet device structure*/ struct net_device_stats stats; - __u32 saddr; /* Source device address */ - __u32 daddr; /* Destination device address */ - int netdev_registered; - int notify_irmanager; + __u32 saddr; /* Source device address */ + __u32 daddr; /* Destination device address */ + int disconnect_reason; /* Why we got disconnected */ - int media; /* Media type */ - __u8 version[2]; /* IrLAN version */ + int media; /* Media type */ + __u8 version[2]; /* IrLAN version */ - struct tsap_cb *tsap_data; + struct tsap_cb *tsap_data; /* Data TSAP */ - int master; /* Master instance? */ - int use_udata; /* Use Unit Data transfers */ + int use_udata; /* Use Unit Data transfers */ - __u8 stsap_sel_data; /* Source data TSAP selector */ - __u8 dtsap_sel_data; /* Destination data TSAP selector */ - __u8 dtsap_sel_ctrl; /* Destination ctrl TSAP selector */ + __u8 stsap_sel_data; /* Source data TSAP selector */ + __u8 dtsap_sel_data; /* Destination data TSAP selector */ + __u8 dtsap_sel_ctrl; /* Destination ctrl TSAP selector */ struct irlan_client_cb client; /* Client specific fields */ struct irlan_provider_cb provider; /* Provider specific fields */ @@ -190,10 +188,11 @@ struct irlan_cb { __u32 max_sdu_size; __u8 max_header_size; + wait_queue_head_t open_wait; struct timer_list watchdog_timer; }; -struct irlan_cb *irlan_open(__u32 saddr, __u32 daddr, int netdev); +struct irlan_cb *irlan_open(__u32 saddr, __u32 daddr); void irlan_close(struct irlan_cb *self); void irlan_close_tsaps(struct irlan_cb *self); void irlan_mod_inc_use_count(void); diff --git a/include/net/irda/irlap.h b/include/net/irda/irlap.h index 36c1c03fd..3c1b95f50 100644 --- a/include/net/irda/irlap.h +++ b/include/net/irda/irlap.h @@ -81,7 +81,7 @@ #define irda_incomp (*self->decompressor.cp->incomp) struct irda_compressor { - queue_t q; + irda_queue_t q; struct compressor *cp; void *state; /* Not used by IrDA */ @@ -90,7 +90,7 @@ struct irda_compressor { /* Main structure of IrLAP */ struct irlap_cb { - queue_t q; /* Must be first */ + irda_queue_t q; /* Must be first */ magic_t magic; struct net_device *netdev; @@ -214,7 +214,7 @@ void irlap_unitdata_indication(struct irlap_cb *, struct sk_buff *); void irlap_disconnect_request(struct irlap_cb *); void irlap_disconnect_indication(struct irlap_cb *, LAP_REASON reason); -void irlap_status_indication(int quality_of_link); +void irlap_status_indication(struct irlap_cb *, int quality_of_link); void irlap_test_request(__u8 *info, int len); diff --git a/include/net/irda/irlmp.h b/include/net/irda/irlmp.h index 9c9fab54d..0fe946693 100644 --- a/include/net/irda/irlmp.h +++ b/include/net/irda/irlmp.h @@ -71,22 +71,23 @@ typedef enum { S_END, } SERVICE; -typedef void (*DISCOVERY_CALLBACK1) (discovery_t *); -typedef void (*DISCOVERY_CALLBACK2) (hashbin_t *); +typedef void (*DISCOVERY_CALLBACK1) (discovery_t *, void *); +typedef void (*DISCOVERY_CALLBACK2) (hashbin_t *, void *); typedef struct { - queue_t queue; /* Must be first */ + irda_queue_t queue; /* Must be first */ __u16 hints; /* Hint bits */ } irlmp_service_t; typedef struct { - queue_t queue; /* Must be first */ + irda_queue_t queue; /* Must be first */ __u16 hint_mask; - DISCOVERY_CALLBACK1 callback1; - DISCOVERY_CALLBACK2 callback2; + DISCOVERY_CALLBACK1 disco_callback; /* Selective discovery */ + DISCOVERY_CALLBACK1 expir_callback; /* Selective expiration */ + void *priv; /* Used to identify client */ } irlmp_client_t; struct lap_cb; /* Forward decl. */ @@ -95,7 +96,7 @@ struct lap_cb; /* Forward decl. */ * Information about each logical LSAP connection */ struct lsap_cb { - queue_t queue; /* Must be first */ + irda_queue_t queue; /* Must be first */ magic_t magic; int connected; @@ -121,7 +122,7 @@ struct lsap_cb { * Information about each registred IrLAP layer */ struct lap_cb { - queue_t queue; /* Must be first */ + irda_queue_t queue; /* Must be first */ magic_t magic; int reason; /* LAP disconnect reason */ @@ -174,10 +175,10 @@ struct irlmp_cb { hashbin_t *clients; hashbin_t *services; - hashbin_t *cachelog; - int running; + hashbin_t *cachelog; /* Current discovery log */ + spinlock_t log_lock; /* discovery log spinlock */ - spinlock_t lock; + int running; __u16_host_order hints; /* Hint bits */ }; @@ -191,11 +192,12 @@ void irlmp_close_lsap( struct lsap_cb *self); __u16 irlmp_service_to_hint(int service); __u32 irlmp_register_service(__u16 hints); int irlmp_unregister_service(__u32 handle); -__u32 irlmp_register_client(__u16 hint_mask, DISCOVERY_CALLBACK1 callback1, - DISCOVERY_CALLBACK2 callback2); +__u32 irlmp_register_client(__u16 hint_mask, DISCOVERY_CALLBACK1 disco_clb, + DISCOVERY_CALLBACK1 expir_clb, void *priv); int irlmp_unregister_client(__u32 handle); int irlmp_update_client(__u32 handle, __u16 hint_mask, - DISCOVERY_CALLBACK1, DISCOVERY_CALLBACK2); + DISCOVERY_CALLBACK1 disco_clb, + DISCOVERY_CALLBACK1 expir_clb, void *priv); void irlmp_register_link(struct irlap_cb *, __u32 saddr, notify_t *); void irlmp_unregister_link(__u32 saddr); @@ -214,8 +216,10 @@ int irlmp_disconnect_request(struct lsap_cb *, struct sk_buff *userdata); void irlmp_discovery_confirm(hashbin_t *discovery_log); void irlmp_discovery_request(int nslots); +struct irda_device_info *irlmp_get_discoveries(int *pn, __u16 mask); void irlmp_do_discovery(int nslots); discovery_t *irlmp_get_discovery_response(void); +void irlmp_discovery_expiry(discovery_t *expiry); int irlmp_data_request(struct lsap_cb *, struct sk_buff *); void irlmp_data_indication(struct lsap_cb *, struct sk_buff *); @@ -229,7 +233,7 @@ void irlmp_connless_data_indication(struct lsap_cb *, struct sk_buff *); #endif /* CONFIG_IRDA_ULTRA */ void irlmp_status_request(void); -void irlmp_status_indication(LINK_STATUS link, LOCK_STATUS lock); +void irlmp_status_indication(struct lap_cb *, LINK_STATUS link, LOCK_STATUS lock); int irlmp_slsap_inuse(__u8 slsap); __u8 irlmp_find_free_slsap(void); @@ -248,9 +252,12 @@ static inline hashbin_t *irlmp_get_cachelog(void) { return irlmp->cachelog; } static inline int irlmp_get_lap_tx_queue_len(struct lsap_cb *self) { - ASSERT(self != NULL, return 0;); - ASSERT(self->lap != NULL, return 0;); - ASSERT(self->lap->irlap != NULL, return 0;); + if (self == NULL) + return 0; + if (self->lap == NULL) + return 0; + if (self->lap->irlap == NULL) + return 0; return IRLAP_GET_TX_QUEUE_LEN(self->lap->irlap); } diff --git a/include/net/irda/irmod.h b/include/net/irda/irmod.h index ae61c8682..f2ccb854c 100644 --- a/include/net/irda/irmod.h +++ b/include/net/irda/irmod.h @@ -69,7 +69,7 @@ typedef void (*TODO_CALLBACK)( void *self, __u32 param); * addtional information */ struct irda_event { - queue_t q; /* Must be first */ + irda_queue_t q; /* Must be first */ struct irmanager_event event; }; @@ -78,7 +78,7 @@ struct irda_event { * Funtions with needs to be called with a process context */ struct irda_todo { - queue_t q; /* Must be first */ + irda_queue_t q; /* Must be first */ void *self; TODO_CALLBACK callback; @@ -94,8 +94,8 @@ struct irda_cb { int in_use; - queue_t *event_queue; /* Events queued for the irmanager */ - queue_t *todo_queue; /* Todo list */ + irda_queue_t *event_queue; /* Events queued for the irmanager */ + irda_queue_t *todo_queue; /* Todo list */ }; int irmod_init_module(void); diff --git a/include/net/irda/irqueue.h b/include/net/irda/irqueue.h index 3b5bfd492..f7c1ba659 100644 --- a/include/net/irda/irqueue.h +++ b/include/net/irda/irqueue.h @@ -30,8 +30,8 @@ #include <linux/types.h> #include <linux/spinlock.h> -#ifndef QUEUE_H -#define QUEUE_H +#ifndef IRDA_QUEUE_H +#define IRDA_QUEUE_H #define NAME_SIZE 32 @@ -62,39 +62,40 @@ typedef void (*FREE_FUNC)(void *arg); */ #define GET_HASHBIN(x) ( x & HASHBIN_MASK ) -struct irqueue { - struct irqueue *q_next; - struct irqueue *q_prev; +struct irda_queue { + struct irda_queue *q_next; + struct irda_queue *q_prev; char q_name[NAME_SIZE]; __u32 q_hash; }; -typedef struct irqueue queue_t; +typedef struct irda_queue irda_queue_t; typedef struct hashbin_t { __u32 magic; int hb_type; int hb_size; spinlock_t hb_mutex[HASHBIN_SIZE] ALIGN; - queue_t *hb_queue[HASHBIN_SIZE] ALIGN; + irda_queue_t *hb_queue[HASHBIN_SIZE] ALIGN; - queue_t* hb_current; + irda_queue_t* hb_current; } hashbin_t; hashbin_t *hashbin_new(int type); int hashbin_delete(hashbin_t* hashbin, FREE_FUNC func); int hashbin_clear(hashbin_t* hashbin, FREE_FUNC free_func); -void hashbin_insert(hashbin_t* hashbin, queue_t* entry, __u32 hashv, +void hashbin_insert(hashbin_t* hashbin, irda_queue_t* entry, __u32 hashv, char* name); void* hashbin_find(hashbin_t* hashbin, __u32 hashv, char* name); void* hashbin_remove(hashbin_t* hashbin, __u32 hashv, char* name); void* hashbin_remove_first(hashbin_t *hashbin); -queue_t *hashbin_get_first(hashbin_t *hashbin); -queue_t *hashbin_get_next(hashbin_t *hashbin); +void* hashbin_remove_this( hashbin_t* hashbin, irda_queue_t* entry); +irda_queue_t *hashbin_get_first(hashbin_t *hashbin); +irda_queue_t *hashbin_get_next(hashbin_t *hashbin); -void enqueue_last(queue_t **queue, queue_t* element); -void enqueue_first(queue_t **queue, queue_t* element); -queue_t *dequeue_first(queue_t **queue); +void enqueue_last(irda_queue_t **queue, irda_queue_t* element); +void enqueue_first(irda_queue_t **queue, irda_queue_t* element); +irda_queue_t *dequeue_first(irda_queue_t **queue); #define HASHBIN_GET_SIZE(hashbin) hashbin->hb_size diff --git a/include/net/irda/irttp.h b/include/net/irda/irttp.h index 2b2547fa2..a3193d758 100644 --- a/include/net/irda/irttp.h +++ b/include/net/irda/irttp.h @@ -63,7 +63,7 @@ * connection. */ struct tsap_cb { - queue_t q; /* Must be first */ + irda_queue_t q; /* Must be first */ magic_t magic; /* Just in case */ __u8 stsap_sel; /* Source TSAP */ @@ -129,6 +129,8 @@ int irttp_connect_response(struct tsap_cb *self, __u32 max_sdu_size, int irttp_disconnect_request(struct tsap_cb *self, struct sk_buff *skb, int priority); void irttp_flow_request(struct tsap_cb *self, LOCAL_FLOW flow); +void irttp_status_indication(void *instance, + LINK_STATUS link, LOCK_STATUS lock); struct tsap_cb *irttp_dup(struct tsap_cb *self, void *instance); static __inline __u32 irttp_get_saddr(struct tsap_cb *self) diff --git a/include/net/irda/irtty.h b/include/net/irda/irtty.h index f96976bc3..c6c54e1ad 100644 --- a/include/net/irda/irtty.h +++ b/include/net/irda/irtty.h @@ -45,7 +45,7 @@ struct irtty_info { #define IRTTY_IOC_MAXNR 2 struct irtty_cb { - queue_t q; /* Must be first */ + irda_queue_t q; /* Must be first */ magic_t magic; struct net_device *netdev; /* Yes! we are some kind of netdevice */ diff --git a/include/net/irda/qos.h b/include/net/irda/qos.h index e88f0a3bd..d95f7ead9 100644 --- a/include/net/irda/qos.h +++ b/include/net/irda/qos.h @@ -86,6 +86,9 @@ struct qos_info { #endif }; +extern int sysctl_max_baud_rate; +extern int sysctl_max_inactive_time; + extern __u32 baud_rates[]; extern __u32 data_sizes[]; extern __u32 min_turn_times[]; @@ -100,15 +103,7 @@ __u32 irlap_requested_line_capacity(struct qos_info *qos); __u32 irlap_min_turn_time_in_bytes(__u32 speed, __u32 min_turn_time); int msb_index(__u16 byte); -int value_index(__u32 value, __u32 *array); -__u32 byte_value(__u8 byte, __u32 *array); -__u32 index_value(int index, __u32 *array); - void irda_qos_bits_to_value(struct qos_info *qos); #endif - - - - diff --git a/include/net/irda/timer.h b/include/net/irda/timer.h index af843bee3..f2cc642ec 100644 --- a/include/net/irda/timer.h +++ b/include/net/irda/timer.h @@ -76,12 +76,14 @@ inline void irlap_start_wd_timer(struct irlap_cb *self, int timeout); inline void irlap_start_backoff_timer(struct irlap_cb *self, int timeout); void irlap_start_mbusy_timer(struct irlap_cb *); +void irlap_stop_mbusy_timer(struct irlap_cb *); struct lsap_cb; struct lap_cb; inline void irlmp_start_watchdog_timer(struct lsap_cb *, int timeout); inline void irlmp_start_discovery_timer(struct irlmp_cb *, int timeout); inline void irlmp_start_idle_timer(struct lap_cb *, int timeout); +inline void irlmp_stop_idle_timer(struct lap_cb *self); #endif |