Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/usbhub/usbhub.h

    r578a2547 r3e490eb  
    4343
    4444#include <usb/hub.h>
     45#include <usb/classes/hub.h>
    4546
    4647#include <usb/pipes.h>
    4748#include <usb/devdrv.h>
    4849
    49 #include "ports.h"
     50#include <fibril_synch.h>
    5051
    5152
     53/** Information about single port on a hub. */
     54typedef struct {
     55        /** Mutex needed by CV for checking port reset. */
     56        fibril_mutex_t reset_mutex;
     57        /** CV for waiting to port reset completion. */
     58        fibril_condvar_t reset_cv;
     59        /** Whether port reset is completed.
     60         * Guarded by @c reset_mutex.
     61         */
     62        bool reset_completed;
     63
     64        /** Information about attached device. */
     65        usb_hc_attached_device_t attached_device;
     66} usb_hub_port_t;
     67
     68/** Initialize hub port information.
     69 *
     70 * @param port Port to be initialized.
     71 */
     72static inline void usb_hub_port_init(usb_hub_port_t *port) {
     73        port->attached_device.address = -1;
     74        port->attached_device.handle = 0;
     75        fibril_mutex_initialize(&port->reset_mutex);
     76        fibril_condvar_initialize(&port->reset_cv);
     77}
    5278
    5379/** Information about attached hub. */
     
    5682        size_t port_count;
    5783
    58         /** Ports. */
     84        /** attached device handles, for each port one */
    5985        usb_hub_port_t *ports;
    60        
     86
    6187        /** connection to hcd */
    6288        usb_hc_connection_t connection;
     
    89115} usb_hub_info_t;
    90116
    91 /**
    92  * function running the hub-controlling loop.
    93  * @param hub_info_param hub info pointer
    94  */
    95 int usb_hub_control_loop(void * hub_info_param);
    96 
    97 /**
    98  * Check changes on specified hub
    99  * @param hub_info_param pointer to usb_hub_info_t structure
    100  * @return error code if there is problem when initializing communication with
    101  * hub, EOK otherwise
    102  */
    103 int usb_hub_check_hub_changes(usb_hub_info_t * hub_info_param);
    104 
    105 void usb_hub_removed_device(usb_hub_info_t *, uint16_t);
    106 void usb_hub_over_current(usb_hub_info_t *, uint16_t);
     117//int usb_hub_control_loop(void * hub_info_param);
    107118
    108119int usb_hub_add_device(usb_device_t * usb_dev);
    109120
     121int usb_hub_check_hub_changes(usb_hub_info_t * hub_info_param);
     122
     123bool hub_port_changes_callback(usb_device_t *dev,
     124    uint8_t *change_bitmap, size_t change_bitmap_size, void *arg);
    110125#endif
    111126/**
Note: See TracChangeset for help on using the changeset viewer.