Ignore:
Timestamp:
2010-10-20T23:15:48Z (14 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
34586183
Parents:
b8507a1
Message:

Add virtual hub state machine

The virtual hub provided by vhcd now simulates a state machine for
each of its ports. Some of the transitions are not implemented but
basic port handling through port features shall work. Will add
comments later.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hw/bus/usb/hcd/virtual/hubintern.h

    rb8507a1 r6c741e1d  
    7878} hub_port_state_t;
    7979
     80typedef enum {
     81        HUB_STATUS_C_PORT_CONNECTION = (1 << 0),
     82        HUB_STATUS_C_PORT_ENABLE = (1 << 1),
     83        HUB_STATUS_C_PORT_SUSPEND = (1 << 2),
     84        HUB_STATUS_C_PORT_OVER_CURRENT = (1 << 3),
     85        HUB_STATUS_C_PORT_RESET = (1 << 4),
     86        /* HUB_STATUS_C_ = (1 << ), */
     87} hub_status_change_t;
     88
    8089typedef struct {
    8190        virtdev_connection_t *device;
    8291        hub_port_state_t state;
     92        uint16_t status_change;
    8393} hub_port_t;
    8494
    8595typedef struct {
    8696        hub_port_t ports[HUB_PORT_COUNT];
    87         /* FIXME - assuming HUB_PORT_COUNT < 8 */
    88         uint8_t status_change_bitmap;
    8997} hub_device_t;
    9098
     
    95103extern usbvirt_device_ops_t hub_ops;
    96104
     105void clear_port_status_change(hub_port_t *, uint16_t);
     106void set_port_status_change(hub_port_t *, uint16_t);
     107
     108
    97109#endif
    98110/**
Note: See TracChangeset for help on using the changeset viewer.