XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
_usb_dev_ Struct Reference

#include <usb3.h>

Collaboration diagram for _usb_dev_:
Collaboration graph
[legend]

Public Attributes

bool initialised
 
bool is_csz_64
 
AuThreadusb_thread
 
list_tslot_list
 
xhci_cap_regs_tcap_regs
 
xhci_op_regs_top_regs
 
xhci_doorbell_regs_tdb_regs
 
xhci_runtime_regs_trt_regs
 
xhci_ext_cap_text_cap
 
xhci_port_regs_tports
 
uint32_t num_slots
 
uint32_t num_ports
 
uint16_t max_intrs
 
uint8_t irq
 
uint64_tdev_ctx_base_array
 
xhci_trb_tcmd_ring
 
uint64_t cmd_ring_phys
 
unsigned cmd_ring_index
 
unsigned cmd_ring_max
 
unsigned cmd_ring_cycle
 
uint64_tevent_ring_segment
 
uint64_tevent_ring_seg_phys
 
unsigned evnt_ring_index
 
unsigned evnt_ring_cycle
 
unsigned evnt_ring_max
 
int poll_event_for_trb
 
bool event_available
 
int poll_return_trb_type
 
int trb_event_index
 
Spinlockusb_lock
 
void * data
 
uint32_t classCode
 
uint32_t subClassCode
 
uint16_t vendorID
 
uint16_t deviceID
 
int configValue
 
uint16_t usbVersion
 
uint8_t address
 
uint8_t protocol
 
void * descriptor
 
int numInterfaces
 
int numEndpoint
 
bool driverInitialized
 
void(* schedule_interrupt )(_usb_dev_ *dev, void *ep, uint64_t buffer, void(*callback)(void *dev, void *slot, void *Endp))
 
void(* control_transfer )(_usb_dev_ *usbdev, const USB_REQUEST_PACKET *request, uint64_t buffer_addr, const size_t len)
 
void(* bulk_transfer )(_usb_dev_ *usbdev, uint64_t buffer, uint16_t data_len, void *ep)
 
void(* get_device_desc )(_usb_dev_ *dev, uint64_t buffer, uint16_t len)
 
void(* get_string_desc )(_usb_dev_ *dev, uint64_t buffer, uint16_t id)
 
void(* get_config_desc )(_usb_dev_ *dev, uint64_t buffer, uint16_t len, uint8_t id)
 
usb_descriptor_t *(* get_descriptor )(_usb_dev_ *dev, uint8_t type)
 
void *(* get_endpoint )(_usb_dev_ *dev, uint8_t ep_type)
 
void *(* get_bulk_ep )(_usb_dev_ *dev, uint8_t dir)
 
int(* get_max_pack_sz )(_usb_dev_ *dev, void *ep)
 
uint8_t(* get_endpoint_address )(_usb_dev_ *dev, void *ep)
 
uint8_t(* get_endpoint_attrib )(_usb_dev_ *dev, void *ep)
 
void(* set_config_val )(_usb_dev_ *dev, uint8_t config_val)
 
int(* poll_wait )(_usb_dev_ *dev, int wait_type)
 
usb_drv_entry ClassEntry
 
usb_drv_unload ClassUnload
 

Detailed Description

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Member Data Documentation

◆ address

uint8_t _usb_dev_::address

◆ bulk_transfer

void(* _usb_dev_::bulk_transfer) (_usb_dev_ *usbdev, uint64_t buffer, uint16_t data_len, void *ep)

◆ cap_regs

xhci_cap_regs_t* _usb_dev_::cap_regs

◆ classCode

uint32_t _usb_dev_::classCode

◆ ClassEntry

usb_drv_entry _usb_dev_::ClassEntry

◆ ClassUnload

usb_drv_unload _usb_dev_::ClassUnload

◆ cmd_ring

xhci_trb_t* _usb_dev_::cmd_ring

◆ cmd_ring_cycle

unsigned _usb_dev_::cmd_ring_cycle

◆ cmd_ring_index

unsigned _usb_dev_::cmd_ring_index

◆ cmd_ring_max

unsigned _usb_dev_::cmd_ring_max

◆ cmd_ring_phys

uint64_t _usb_dev_::cmd_ring_phys

◆ configValue

int _usb_dev_::configValue

◆ control_transfer

void(* _usb_dev_::control_transfer) (_usb_dev_ *usbdev, const USB_REQUEST_PACKET *request, uint64_t buffer_addr, const size_t len)

◆ data

void* _usb_dev_::data

◆ db_regs

xhci_doorbell_regs_t* _usb_dev_::db_regs

◆ descriptor

void* _usb_dev_::descriptor

◆ dev_ctx_base_array

uint64_t* _usb_dev_::dev_ctx_base_array

◆ deviceID

uint16_t _usb_dev_::deviceID

◆ driverInitialized

bool _usb_dev_::driverInitialized

◆ event_available

bool _usb_dev_::event_available

◆ event_ring_seg_phys

uint64_t* _usb_dev_::event_ring_seg_phys

◆ event_ring_segment

uint64_t* _usb_dev_::event_ring_segment

◆ evnt_ring_cycle

unsigned _usb_dev_::evnt_ring_cycle

◆ evnt_ring_index

unsigned _usb_dev_::evnt_ring_index

◆ evnt_ring_max

unsigned _usb_dev_::evnt_ring_max

◆ ext_cap

xhci_ext_cap_t* _usb_dev_::ext_cap

◆ get_bulk_ep

void *(* _usb_dev_::get_bulk_ep) (_usb_dev_ *dev, uint8_t dir)

◆ get_config_desc

void(* _usb_dev_::get_config_desc) (_usb_dev_ *dev, uint64_t buffer, uint16_t len, uint8_t id)

◆ get_descriptor

usb_descriptor_t *(* _usb_dev_::get_descriptor) (_usb_dev_ *dev, uint8_t type)

◆ get_device_desc

void(* _usb_dev_::get_device_desc) (_usb_dev_ *dev, uint64_t buffer, uint16_t len)

◆ get_endpoint

void *(* _usb_dev_::get_endpoint) (_usb_dev_ *dev, uint8_t ep_type)

◆ get_endpoint_address

uint8_t(* _usb_dev_::get_endpoint_address) (_usb_dev_ *dev, void *ep)

◆ get_endpoint_attrib

uint8_t(* _usb_dev_::get_endpoint_attrib) (_usb_dev_ *dev, void *ep)

◆ get_max_pack_sz

int(* _usb_dev_::get_max_pack_sz) (_usb_dev_ *dev, void *ep)

◆ get_string_desc

void(* _usb_dev_::get_string_desc) (_usb_dev_ *dev, uint64_t buffer, uint16_t id)

◆ initialised

bool _usb_dev_::initialised

◆ irq

uint8_t _usb_dev_::irq

◆ is_csz_64

bool _usb_dev_::is_csz_64

◆ max_intrs

uint16_t _usb_dev_::max_intrs

◆ num_ports

uint32_t _usb_dev_::num_ports

◆ num_slots

uint32_t _usb_dev_::num_slots

◆ numEndpoint

int _usb_dev_::numEndpoint

◆ numInterfaces

int _usb_dev_::numInterfaces

◆ op_regs

xhci_op_regs_t* _usb_dev_::op_regs

◆ poll_event_for_trb

int _usb_dev_::poll_event_for_trb

◆ poll_return_trb_type

int _usb_dev_::poll_return_trb_type

◆ poll_wait

int(* _usb_dev_::poll_wait) (_usb_dev_ *dev, int wait_type)

◆ ports

xhci_port_regs_t* _usb_dev_::ports

◆ protocol

uint8_t _usb_dev_::protocol

◆ rt_regs

xhci_runtime_regs_t* _usb_dev_::rt_regs

◆ schedule_interrupt

void(* _usb_dev_::schedule_interrupt) (_usb_dev_ *dev, void *ep, uint64_t buffer, void(*callback)(void *dev, void *slot, void *Endp))

◆ set_config_val

void(* _usb_dev_::set_config_val) (_usb_dev_ *dev, uint8_t config_val)

◆ slot_list

list_t* _usb_dev_::slot_list

◆ subClassCode

uint32_t _usb_dev_::subClassCode

◆ trb_event_index

int _usb_dev_::trb_event_index

◆ usb_lock

Spinlock* _usb_dev_::usb_lock

◆ usb_thread

AuThread* _usb_dev_::usb_thread

◆ usbVersion

uint16_t _usb_dev_::usbVersion

◆ vendorID

uint16_t _usb_dev_::vendorID

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