summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-11-28 03:58:46 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-11-28 03:58:46 +0000
commitb63ad0882a16a5d28003e57f2b0b81dee3fb322b (patch)
tree0a343ce219e2b8b38a5d702d66032c57b83d9720 /include/net
parenta9d7bff9a84dba79609a0002e5321b74c4d64c64 (diff)
Merge with 2.4.0-test11.
Diffstat (limited to 'include/net')
-rw-r--r--include/net/ax25.h10
-rw-r--r--include/net/dn_nsp.h24
-rw-r--r--include/net/irda/discovery.h6
-rw-r--r--include/net/irda/ircomm_core.h2
-rw-r--r--include/net/irda/ircomm_tty.h2
-rw-r--r--include/net/irda/irda.h32
-rw-r--r--include/net/irda/irda_device.h4
-rw-r--r--include/net/irda/iriap.h2
-rw-r--r--include/net/irda/irias_object.h18
-rw-r--r--include/net/irda/irlan_client.h2
-rw-r--r--include/net/irda/irlan_common.h27
-rw-r--r--include/net/irda/irlap.h6
-rw-r--r--include/net/irda/irlmp.h43
-rw-r--r--include/net/irda/irmod.h8
-rw-r--r--include/net/irda/irqueue.h29
-rw-r--r--include/net/irda/irttp.h4
-rw-r--r--include/net/irda/irtty.h2
-rw-r--r--include/net/irda/qos.h11
-rw-r--r--include/net/irda/timer.h2
-rw-r--r--include/net/x25.h6
20 files changed, 145 insertions, 95 deletions
diff --git a/include/net/ax25.h b/include/net/ax25.h
index 50d4aa889..525786901 100644
--- a/include/net/ax25.h
+++ b/include/net/ax25.h
@@ -159,15 +159,13 @@ typedef struct {
unsigned short slave_timeout; /* when? */
} ax25_dama_info;
-#ifndef _LINUX_SYSCTL_H
-#include <linux/sysctl.h>
-#endif
+struct ctl_table;
typedef struct ax25_dev {
struct ax25_dev *next;
- struct net_device *dev;
- struct net_device *forward;
- struct ctl_table systable[AX25_MAX_VALUES+1];
+ struct net_device *dev;
+ struct net_device *forward;
+ struct ctl_table *systable;
int values[AX25_MAX_VALUES];
#if defined(CONFIG_AX25_DAMA_SLAVE) || defined(CONFIG_AX25_DAMA_MASTER)
ax25_dama_info dama;
diff --git a/include/net/dn_nsp.h b/include/net/dn_nsp.h
index 498ea16fd..8b628d2e5 100644
--- a/include/net/dn_nsp.h
+++ b/include/net/dn_nsp.h
@@ -39,9 +39,27 @@ extern int dn_nsp_backlog_rcv(struct sock *sk, struct sk_buff *skb);
extern struct sk_buff *dn_alloc_skb(struct sock *sk, int size, int pri);
extern struct sk_buff *dn_alloc_send_skb(struct sock *sk, int *size, int noblock, int *err);
-#define NSP_REASON_NR 1
-#define NSP_REASON_DC 42
-#define NSP_REASON_NL 41
+#define NSP_REASON_OK 0 /* No error */
+#define NSP_REASON_NR 1 /* No resources */
+#define NSP_REASON_UN 2 /* Unrecognised node name */
+#define NSP_REASON_SD 3 /* Node shutting down */
+#define NSP_REASON_ID 4 /* Invalid destination end user */
+#define NSP_REASON_ER 5 /* End user lacks resources */
+#define NSP_REASON_OB 6 /* Object too busy */
+#define NSP_REASON_US 7 /* Unspecified error */
+#define NSP_REASON_TP 8 /* Third-Party abort */
+#define NSP_REASON_EA 9 /* End user has aborted the link */
+#define NSP_REASON_IF 10 /* Invalid node name format */
+#define NSP_REASON_LS 11 /* Local node shutdown */
+#define NSP_REASON_LL 32 /* Node lacks logical-link resources */
+#define NSP_REASON_LE 33 /* End user lacks logical-link resources */
+#define NSP_REASON_UR 34 /* Unacceptable RQSTRID or PASSWORD field */
+#define NSP_REASON_UA 36 /* Unacceptable ACCOUNT field */
+#define NSP_REASON_TM 38 /* End user timed out logical link */
+#define NSP_REASON_NU 39 /* Node unreachable */
+#define NSP_REASON_NL 41 /* No-link message */
+#define NSP_REASON_DC 42 /* Disconnect confirm */
+#define NSP_REASON_IO 43 /* Image data field overflow */
#define NSP_DISCINIT 0x38
#define NSP_DISCCONF 0x48
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
diff --git a/include/net/x25.h b/include/net/x25.h
index fc3d83ee4..257618d44 100644
--- a/include/net/x25.h
+++ b/include/net/x25.h
@@ -169,6 +169,7 @@ extern void x25_limit_facilities(struct x25_facilities *, struct x25_neigh *);
/* x25_in.c */
extern int x25_process_rx_frame(struct sock *, struct sk_buff *);
+extern int x25_backlog_rcv(struct sock *, struct sk_buff *);
/* x25_link.c */
extern void x25_link_control(struct sk_buff *, struct x25_neigh *, unsigned short);
@@ -220,5 +221,8 @@ extern unsigned long x25_display_timer(struct sock *);
/* sysctl_net_x25.c */
extern void x25_register_sysctl(void);
extern void x25_unregister_sysctl(void);
-
+struct x25_skb_cb {
+ unsigned flags;
+};
+#define X25_SKB_CB(s) ((struct x25_skb_cb *) ((s)->cb))
#endif