Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Types | Data Fields
uwb_est_entry Struct Reference

#include <uwb.h>

Public Types

enum  { UWB_EST_16 = 0, UWB_EST_8 = 1 }
 

Data Fields

size_t size
 
unsigned offset
 
enum uwb_est_entry:: { ... }  type
 

Detailed Description

UWB radio controller Event Size Entry (for creating entry tables)

WUSB and WHCI define events and notifications, and they might have fixed or variable size.

Each event/notification has a size which is not necessarily known in advance based on the event code. As well, vendor specific events/notifications will have a size impossible to determine unless we know about the device's specific details.

It was way too smart of the spec writers not to think that it would be impossible for a generic driver to skip over vendor specific events/notifications if there are no LENGTH fields in the HEADER of each message...the transaction size cannot be counted on as the spec does not forbid to pack more than one event in a single transaction.

Thus, we guess sizes with tables (or for events, when you know the size ahead of time you can use uwb_rc_neh_extra_size*()). We register tables with the known events and their sizes, and then we traverse those tables. For those with variable length, we provide a way to lookup the size inside the event/notification's payload. This allows device-specific event size tables to be registered.

: Size of the payload

: if != 0, at offset -1 starts a field with a length that has to be added to . The format of the field is given by .

: Type and length of the offset field. Most common is LE 16 bits (that's why that is zero); others are there mostly to cover for bugs and weirdos.

Definition at line 674 of file uwb.h.

Member Enumeration Documentation

anonymous enum
Enumerator:
UWB_EST_16 
UWB_EST_8 

Definition at line 677 of file uwb.h.

Field Documentation

unsigned offset

Definition at line 676 of file uwb.h.

size_t size

Definition at line 675 of file uwb.h.

enum { ... } type

The documentation for this struct was generated from the following file: