diff options
author | David Vrabel <david.vrabel@csr.com> | 2008-10-27 16:48:09 +0000 |
---|---|---|
committer | David Vrabel <david.vrabel@csr.com> | 2008-10-28 12:09:17 +0000 |
commit | 1cde7f68ced8d10a20dd2370e9d1d22ab3c1ea5c (patch) | |
tree | 2fb65bbb93eae73e02fa1e9608212536259f8802 /include | |
parent | 4d2bea4ca0adb4cebfbf89d34869c74081c42577 (diff) | |
download | op-kernel-dev-1cde7f68ced8d10a20dd2370e9d1d22ab3c1ea5c.zip op-kernel-dev-1cde7f68ced8d10a20dd2370e9d1d22ab3c1ea5c.tar.gz |
uwb: order IEs by element ID
ECMA-368 requires that IEs in a beacon must be sorted by element ID. Most
hardware uses the ordering in the Set IE URC command so get the ordering
right on the host.
Also refactor the IE management code:
- use uwb_ie_next() instead of uwb_ie_for_each().
- remove unnecessary functions.
- API is now only uwb_rc_ie_add() and uwb_rc_ie_rm().
Signed-off-by: David Vrabel <david.vrabel@csr.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/uwb.h | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/include/linux/uwb.h b/include/linux/uwb.h index 010ee70..6d93f54 100644 --- a/include/linux/uwb.h +++ b/include/linux/uwb.h @@ -444,7 +444,6 @@ ssize_t uwb_rc_vcmd(struct uwb_rc *rc, const char *cmd_name, struct uwb_rccb *cmd, size_t cmd_size, u8 expected_type, u16 expected_event, struct uwb_rceb **preply); -ssize_t uwb_rc_get_ie(struct uwb_rc *, struct uwb_rc_evt_get_ie **); int uwb_bg_joined(struct uwb_rc *rc); size_t __uwb_addr_print(char *, size_t, const unsigned char *, int); @@ -653,22 +652,9 @@ static inline int edc_inc(struct edc *err_hist, u16 max_err, u16 timeframe) /* Information Element handling */ -/* For representing the state of writing to a buffer when iterating */ -struct uwb_buf_ctx { - char *buf; - size_t bytes, size; -}; - -typedef int (*uwb_ie_f)(struct uwb_dev *, const struct uwb_ie_hdr *, - size_t, void *); struct uwb_ie_hdr *uwb_ie_next(void **ptr, size_t *len); -ssize_t uwb_ie_for_each(struct uwb_dev *uwb_dev, uwb_ie_f fn, void *data, - const void *buf, size_t size); -int uwb_ie_dump_hex(struct uwb_dev *, const struct uwb_ie_hdr *, - size_t, void *); -int uwb_rc_set_ie(struct uwb_rc *, struct uwb_rc_cmd_set_ie *); -struct uwb_ie_hdr *uwb_ie_next(void **ptr, size_t *len); - +int uwb_rc_ie_add(struct uwb_rc *uwb_rc, const struct uwb_ie_hdr *ies, size_t size); +int uwb_rc_ie_rm(struct uwb_rc *uwb_rc, enum uwb_ie element_id); /* * Transmission statistics |