|
XenevaOS
|
#include <aurora.h>#include <Drivers/usb.h>#include <aucon.h>#include <Mm/pmmngr.h>#include <Mm/vmmngr.h>#include "hid.h"#include <Fs/Dev/devinput.h>#include <Hal/serial.h>
Classes | |
| struct | ReportState |
| struct | ReportItem |
Functions | |
| AU_EXTERN AU_EXPORT int | AuUSBDriverUnload (AuUSBDeviceStruc *dev) |
| void | SetProtocol (AuUSBDeviceStruc *dev) |
| void | SetIDLE (AuUSBDeviceStruc *dev) |
| void | GetReport (AuUSBDeviceStruc *dev, uint64_t buffer, uint16_t report_bytes) |
| bool | HIDParseReportDescriptor (uint8_t *report, size_t reportBytes) |
| int | usb_pow (int a, int b) |
| void | HIDCallback (void *dev, void *slot, void *endp) |
| AU_EXTERN AU_EXPORT int | AuUSBDriverMain (AuUSBDeviceStruc *dev) |
Variables | |
| ReportItem | items [32] |
| uintptr_t | reportItemLength |
| uint64_t | mouse_data |
| AuUSBDeviceStruc * | device |
| void * | endpoint |
| #define HID_APPLICATION_BUTTONS 9 |
| #define HID_APPLICATION_GENERIC_DESKTOP_CTL 1 |
| #define HID_APPLICATION_KEYBOARD_KEYPAD 7 |
| #define HID_APPLICATION_LEDS 8 |
| #define HID_COLLECTION_NAMED_ARRAY 0x04 |
| #define HID_COLLECTION_TYPE_APPLICATION 0x01 |
| #define HID_COLLECTION_TYPE_LOGICAL 0x02 |
| #define HID_COLLECTION_TYPE_PHYSICAL 0x00 |
| #define HID_COLLECTION_TYPE_REPORT 0x03 |
| #define HID_COLLECTION_USAGE_MODIFIER 0x06 |
| #define HID_COLLECTION_USAGE_SWITCH 0x05 |
| #define HID_DESCRIPTOR_HID 0x21 |
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:
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.
| #define HID_DESCRIPTOR_PHYSICAL 0x23 |
| #define HID_DESCRIPTOR_REPORT 0x22 |
| #define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM 0x24 |
| #define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM 0x14 |
| #define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM 0x44 |
| #define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM 0x34 |
| #define HID_GLOBAL_ITEM_TAG_POP 0xB4 |
| #define HID_GLOBAL_ITEM_TAG_PUSH 0xA4 |
| #define HID_GLOBAL_ITEM_TAG_REPORT_COUNT 0x94 |
| #define HID_GLOBAL_ITEM_TAG_REPORT_ID 0x84 |
| #define HID_GLOBAL_ITEM_TAG_REPORT_SIZE 0x74 |
| #define HID_GLOBAL_ITEM_TAG_UNIT 0x64 |
| #define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT 0x54 |
| #define HID_GLOBAL_ITEM_TAG_USAGE_PAGE 0x4 |
| #define HID_ITEM_TYPE_GLOBAL 1 |
| #define HID_ITEM_TYPE_LOCAL 2 |
| #define HID_ITEM_TYPE_MAIN 0 |
| #define HID_ITEM_TYPE_RESERVED 3 |
| #define HID_LOCAL_ITEM_TAG_DELIMITER 0xA8 |
| #define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX 0x38 |
| #define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM 0x58 |
| #define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM 0x48 |
| #define HID_LOCAL_ITEM_TAG_STRING_INDEX 0x78 |
| #define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM 0x98 |
| #define HID_LOCAL_ITEM_TAG_STRING_MINIMUM 0x88 |
| #define HID_LOCAL_ITEM_TAG_USAGE 0x8 |
| #define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM 0x28 |
| #define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM 0x18 |
| #define HID_MAIN_ITEM_TAG_COLLECTION 0xA0 |
| #define HID_MAIN_ITEM_TAG_END_COLLECTION 0xC0 |
| #define HID_MAIN_ITEM_TAG_FEATURE 0xB0 |
| #define HID_MAIN_ITEM_TAG_INPUT 0x80 |
| #define HID_MAIN_ITEM_TAG_OUTPUT 0x90 |
| #define HID_USAGE_WHEEL 0x38 |
| #define HID_USAGE_X_AXIS 0x30 |
| #define HID_USAGE_Y_AXIS 0x31 |
| #define HID_USAGE_Z_AXIS 0x32 |
| #define REPORT_ITEM_FEATURE 3 |
| #define REPORT_ITEM_INPUT 1 |
| #define REPORT_ITEM_OUTPUT 2 |
| #define REPORT_ITEM_USAGE_MOUSE 1 |
| AU_EXTERN AU_EXPORT int AuUSBDriverMain | ( | AuUSBDeviceStruc * | dev | ) |
| AU_EXTERN AU_EXPORT int AuUSBDriverUnload | ( | AuUSBDeviceStruc * | dev | ) |
| void GetReport | ( | AuUSBDeviceStruc * | dev, |
| uint64_t | buffer, | ||
| uint16_t | report_bytes | ||
| ) |
| void HIDCallback | ( | void * | dev, |
| void * | slot, | ||
| void * | endp | ||
| ) |
| void SetIDLE | ( | AuUSBDeviceStruc * | dev | ) |
| void SetProtocol | ( | AuUSBDeviceStruc * | dev | ) |
| int usb_pow | ( | int | a, |
| int | b | ||
| ) |
| AuUSBDeviceStruc* device |
| void* endpoint |
| ReportItem items[32] |
| uint64_t mouse_data |
| uintptr_t reportItemLength |