XenevaOS
Loading...
Searching...
No Matches
Functions
xhci_cmd.cpp File Reference
#include "xhci.h"
#include "xhci_cmd.h"
#include <Mm\vmmngr.h>
#include <Mm\pmmngr.h>
#include "usb3.h"
#include <aucon.h>
#include <Hal\serial.h>
#include <stdint.h>
Include dependency graph for xhci_cmd.cpp:

Functions

void XHCIEnableSlot (USBDevice *dev, uint8_t slot_type)
 
void XHCIDisableSlot (USBDevice *dev, uint8_t slot_num)
 
void XHCISendNoopCmd (USBDevice *dev)
 
void XHCICreateSetupTRB (XHCISlot *slot, uint8_t rType, uint8_t bRequest, uint16_t value, uint16_t wIndex, uint16_t wLength, uint8_t trt)
 
void XHCICreateDataTRB (XHCISlot *slot, uint64_t buffer, uint16_t size, bool in_direction)
 
void XHCICreateStatusTRB (XHCISlot *slot, bool in_direction)
 
void XHCISendAddressDevice (USBDevice *dev, XHCISlot *slot, uint8_t bsr, uint64_t input_ctx_ptr, uint8_t slot_id)
 
void XHCISendControlCmd (USBDevice *dev, XHCISlot *slot, uint8_t slot_id, const USB_REQUEST_PACKET *request, uint64_t buffer_addr, const size_t len, uint8_t trt)
 
void XHCISendControlCmdEndp (USBDevice *dev, XHCISlot *slot, uint8_t slot_id, const USB_REQUEST_PACKET *request, uint64_t buffer_addr, const size_t len, uint32_t endpnum)
 
void XHCIEvaluateContextCmd (USBDevice *dev, uint64_t input_ctx_ptr, uint8_t slot_id)
 
void XHCIConfigureEndpoint (USBDevice *dev, uint64_t input_ctx_ptr, uint8_t slot_id)
 
void XHCISendNormalTRB (USBDevice *dev, XHCISlot *slot, uint64_t data_buffer, uint16_t data_len, XHCIEndpoint *ep)
 

Function Documentation

◆ XHCIConfigureEndpoint()

void XHCIConfigureEndpoint ( USBDevice dev,
uint64_t  input_ctx_ptr,
uint8_t  slot_id 
)

◆ XHCICreateDataTRB()

void XHCICreateDataTRB ( XHCISlot slot,
uint64_t  buffer,
uint16_t  size,
bool  in_direction 
)

◆ XHCICreateSetupTRB()

void XHCICreateSetupTRB ( XHCISlot slot,
uint8_t  rType,
uint8_t  bRequest,
uint16_t  value,
uint16_t  wIndex,
uint16_t  wLength,
uint8_t  trt 
)

◆ XHCICreateStatusTRB()

void XHCICreateStatusTRB ( XHCISlot slot,
bool  in_direction 
)

◆ XHCIDisableSlot()

void XHCIDisableSlot ( USBDevice dev,
uint8_t  slot_num 
)

◆ XHCIEnableSlot()

void XHCIEnableSlot ( USBDevice dev,
uint8_t  slot_type 
)

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.

◆ XHCIEvaluateContextCmd()

void XHCIEvaluateContextCmd ( USBDevice dev,
uint64_t  input_ctx_ptr,
uint8_t  slot_id 
)

◆ XHCISendAddressDevice()

void XHCISendAddressDevice ( USBDevice dev,
XHCISlot slot,
uint8_t  bsr,
uint64_t  input_ctx_ptr,
uint8_t  slot_id 
)

◆ XHCISendControlCmd()

void XHCISendControlCmd ( USBDevice dev,
XHCISlot slot,
uint8_t  slot_id,
const USB_REQUEST_PACKET request,
uint64_t  buffer_addr,
const size_t  len,
uint8_t  trt 
)

◆ XHCISendControlCmdEndp()

void XHCISendControlCmdEndp ( USBDevice dev,
XHCISlot slot,
uint8_t  slot_id,
const USB_REQUEST_PACKET request,
uint64_t  buffer_addr,
const size_t  len,
uint32_t  endpnum 
)

◆ XHCISendNoopCmd()

void XHCISendNoopCmd ( USBDevice dev)

◆ XHCISendNormalTRB()

void XHCISendNormalTRB ( USBDevice dev,
XHCISlot slot,
uint64_t  data_buffer,
uint16_t  data_len,
XHCIEndpoint ep 
)