Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset d4da860 in mainline


Ignore:
Timestamp:
2017-10-27T00:20:51Z (3 years ago)
Author:
jzr <zarevucky.jiri@…>
Branches:
master
Children:
0798689, 584121d
Parents:
37e8c4a
Message:

Break circular dependency between libdrv and libusb.

Location:
uspace/lib
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/Makefile

    r37e8c4a rd4da860  
    3232        -Iinclude \
    3333        -Igeneric/private \
    34         -I$(LIBUSB_PREFIX)/include \
    3534        -I$(LIBPCM_PREFIX)/include
    3635LIBRARY = libdrv
  • uspace/lib/drv/include/usb_iface.h

    r37e8c4a rd4da860  
    4040#include "ddf/driver.h"
    4141#include <async.h>
    42 #include <usb/usb.h>
    4342
    4443typedef async_sess_t usb_dev_session_t;
     44
     45/** USB speeds. */
     46typedef enum {
     47        /** USB 1.1 low speed (1.5Mbits/s). */
     48        USB_SPEED_LOW,
     49        /** USB 1.1 full speed (12Mbits/s). */
     50        USB_SPEED_FULL,
     51        /** USB 2.0 high speed (480Mbits/s). */
     52        USB_SPEED_HIGH,
     53        /** Psuedo-speed serving as a boundary. */
     54        USB_SPEED_MAX
     55} usb_speed_t;
     56
     57/** USB endpoint number type.
     58 * Negative values could be used to indicate error.
     59 */
     60typedef int16_t usb_endpoint_t;
     61
     62/** USB address type.
     63 * Negative values could be used to indicate error.
     64 */
     65typedef int16_t usb_address_t;
     66
     67/** USB transfer type. */
     68typedef enum {
     69        USB_TRANSFER_CONTROL = 0,
     70        USB_TRANSFER_ISOCHRONOUS = 1,
     71        USB_TRANSFER_BULK = 2,
     72        USB_TRANSFER_INTERRUPT = 3
     73} usb_transfer_type_t;
     74
     75/** USB data transfer direction. */
     76typedef enum {
     77        USB_DIRECTION_IN,
     78        USB_DIRECTION_OUT,
     79        USB_DIRECTION_BOTH
     80} usb_direction_t;
     81
     82/** USB complete address type.
     83 * Pair address + endpoint is identification of transaction recipient.
     84 */
     85typedef union {
     86        struct {
     87                usb_address_t address;
     88                usb_endpoint_t endpoint;
     89        } __attribute__((packed));
     90        uint32_t packed;
     91} usb_target_t;
    4592
    4693extern usb_dev_session_t *usb_dev_connect(devman_handle_t);
  • uspace/lib/drv/include/usbhc_iface.h

    r37e8c4a rd4da860  
    4141
    4242#include "ddf/driver.h"
    43 #include <usb/usb.h>
     43#include <usb_iface.h>
    4444#include <stdbool.h>
    4545
  • uspace/lib/drv/include/usbhid_iface.h

    r37e8c4a rd4da860  
    3838
    3939#include "ddf/driver.h"
    40 #include <usb/usb.h>
    4140
    4241extern int usbhid_dev_get_event_length(async_sess_t *, size_t *);
  • uspace/lib/usb/Makefile

    r37e8c4a rd4da860  
    3131EXTRA_CFLAGS += \
    3232        -I$(LIBDRV_PREFIX)/include \
    33         -I$(LIBUSBDEV_PREFIX)/include \
    3433        -Iinclude
    3534
  • uspace/lib/usb/include/usb/usb.h

    r37e8c4a rd4da860  
    3939#include <stdint.h>
    4040#include <types/common.h>
     41#include <usb_iface.h>
    4142
    4243/** Convert 16bit value from native (host) endianness to USB endianness. */
     
    5253#define uint32_usb2host(n) uint32_t_le2host((n))
    5354
    54 
    55 /** USB transfer type. */
    56 typedef enum {
    57         USB_TRANSFER_CONTROL = 0,
    58         USB_TRANSFER_ISOCHRONOUS = 1,
    59         USB_TRANSFER_BULK = 2,
    60         USB_TRANSFER_INTERRUPT = 3
    61 } usb_transfer_type_t;
    62 
    6355const char * usb_str_transfer_type(usb_transfer_type_t t);
    6456const char * usb_str_transfer_type_short(usb_transfer_type_t t);
    6557
    66 /** USB data transfer direction. */
    67 typedef enum {
    68         USB_DIRECTION_IN,
    69         USB_DIRECTION_OUT,
    70         USB_DIRECTION_BOTH
    71 } usb_direction_t;
    72 
    7358const char *usb_str_direction(usb_direction_t);
    74 
    75 /** USB speeds. */
    76 typedef enum {
    77         /** USB 1.1 low speed (1.5Mbits/s). */
    78         USB_SPEED_LOW,
    79         /** USB 1.1 full speed (12Mbits/s). */
    80         USB_SPEED_FULL,
    81         /** USB 2.0 high speed (480Mbits/s). */
    82         USB_SPEED_HIGH,
    83         /** Psuedo-speed serving as a boundary. */
    84         USB_SPEED_MAX
    85 } usb_speed_t;
    8659
    8760static inline bool usb_speed_is_11(const usb_speed_t s)
     
    10881} usb_request_recipient_t;
    10982
    110 /** USB address type.
    111  * Negative values could be used to indicate error.
    112  */
    113 typedef int16_t usb_address_t;
    114 
    11583/** Default USB address. */
    11684#define USB_ADDRESS_DEFAULT 0
     
    132100}
    133101
    134 /** USB endpoint number type.
    135  * Negative values could be used to indicate error.
    136  */
    137 typedef int16_t usb_endpoint_t;
    138 
    139102/** Default control endpoint */
    140103#define USB_ENDPOINT_DEFAULT_CONTROL 0
     
    155118            (ep < USB11_ENDPOINT_MAX);
    156119}
    157 
    158 
    159 /** USB complete address type.
    160  * Pair address + endpoint is identification of transaction recipient.
    161  */
    162 typedef union {
    163         struct {
    164                 usb_address_t address;
    165                 usb_endpoint_t endpoint;
    166         } __attribute__((packed));
    167         uint32_t packed;
    168 } usb_target_t;
    169120
    170121/** Check USB target for allowed values (address and endpoint).
Note: See TracChangeset for help on using the changeset viewer.