summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/lib/libusb/usb-core.h
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/SLOF/lib/libusb/usb-core.h')
-rw-r--r--qemu/roms/SLOF/lib/libusb/usb-core.h282
1 files changed, 0 insertions, 282 deletions
diff --git a/qemu/roms/SLOF/lib/libusb/usb-core.h b/qemu/roms/SLOF/lib/libusb/usb-core.h
deleted file mode 100644
index a35df3485..000000000
--- a/qemu/roms/SLOF/lib/libusb/usb-core.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2013 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#ifndef __USB_CORE_H
-#define __USB_CORE_H
-
-#include <stdio.h>
-#include <stdbool.h>
-#include "helpers.h"
-#include "usb.h"
-#include "tools.h"
-
-enum usb_hcd_type {
- USB_OHCI = 1,
- USB_EHCI = 2,
- USB_XHCI = 3,
-};
-
-struct usb_hcd_dev;
-
-struct usb_hcd_dev {
- void *base;
- long type;
- long num;
- struct usb_hcd_ops *ops;
- void *priv; /* hcd owned structure */
- long nextaddr; /* address for devices */
-};
-
-struct usb_pipe;
-
-/*******************************************/
-/* Standard Endpoint Descriptor */
-/*******************************************/
-/* bmAttributes */
-#define USB_EP_TYPE_MASK 0x03
-#define USB_EP_TYPE_CONTROL 0
-#define USB_EP_TYPE_ISOC 1
-#define USB_EP_TYPE_BULK 2
-#define USB_EP_TYPE_INTR 3
-
-struct usb_ep_descr {
- uint8_t bLength; /* size of descriptor */
- uint8_t bDescriptorType; /* Type = 5 */
- uint8_t bEndpointAddress;
- uint8_t bmAttributes;
- uint16_t wMaxPacketSize;
- uint8_t bInterval;
-} __attribute__((packed));
-
-#define DEV_HID_KEYB 0x030101 /* class=HIB, protocol=Keyboard */
-#define DEV_HID_MOUSE 0x030102 /* class=HIB, protocol=Mouse */
-#define DEV_HUB 0x090000 /* class=HUB, subclass, protocol */
-#define DEV_MASS_RBC 0x080150 /* MassStorage, RBC, Bulk */
-#define DEV_CDROM_ATAPI 0x080250 /* MassStorage, SFF-8020i , Bulk */
-#define DEV_MASS_FLOPPY 0x080450 /* MassStorage, UFI, Bulk */
-#define DEV_MASS_ATAPI 0x080550 /* MassStorage, SFF-8070i , Bulk */
-#define DEV_MASS_SCSI 0x080650 /* MassStorage, SCSI, Bulk */
-
-enum USB_SPEED_TYPE {
- USB_LOW_SPEED = 0,
- USB_FULL_SPEED = 1,
- USB_HIGH_SPEED = 2,
- USB_SUPER_SPEED = 3,
-};
-
-/* Max number of endpoints supported in a device */
-#define USB_DEV_EP_MAX 4
-#define USB_TIMEOUT 5000 /* 5 sec usb timeout */
-
-struct usb_dev {
- struct usb_dev *next;
- struct usb_hcd_dev *hcidev;
- struct usb_pipe *intr;
- struct usb_pipe *control;
- struct usb_pipe *bulk_in;
- struct usb_pipe *bulk_out;
- struct usb_ep_descr ep[USB_DEV_EP_MAX];
- void *priv;
- uint32_t ep_cnt;
- uint32_t class;
- uint32_t speed;
- uint32_t addr;
- uint32_t mps0;
- uint32_t port;
- uint16_t intf_num;
-};
-
-#define DEVICE_KEYBOARD 1
-#define DEVICE_MOUSE 2
-#define DEVICE_DISK 3
-#define DEVICE_HUB 4
-
-/* Structure in sync with FORTH code */
-struct slof_usb_dev {
- void *udev;
- uint32_t port;
- uint32_t addr;
- uint32_t hcitype;
- uint32_t num;
- uint32_t devtype;
-} __attribute__((packed));
-
-enum USB_PIPE_DIR {
- USB_PIPE_OUT = 0,
- USB_PIPE_IN,
-};
-
-struct usb_pipe {
- struct usb_dev *dev;
- struct usb_pipe *next;
- uint32_t type;
- uint32_t speed;
- uint32_t dir;
- uint16_t epno;
- uint16_t mps;
-} __attribute__((packed));
-
-#define REQ_GET_STATUS 0 /* see Table 9-4 */
-#define REQ_CLEAR_FEATURE 1
-#define REQ_GET_STATE 2 /* HUB specific */
-#define REQ_SET_FEATURE 3
-#define REQ_SET_ADDRESS 5
-#define REQ_GET_DESCRIPTOR 6
-#define REQ_SET_DESCRIPTOR 7
-#define REQ_GET_CONFIGURATION 8
-#define REQ_SET_CONFIGURATION 9
-#define REQ_GET_INTERFACE 10
-#define REQ_SET_INTERFACE 11
-#define REQ_SYNCH_FRAME 12
-
-#define FEATURE_DEVICE_REMOTE_WAKEUP 1
-#define FEATURE_ENDPOINT_HALT 0
-
-#define REQT_REC_DEVICE 0
-#define REQT_REC_INTERFACE 1
-#define REQT_REC_EP 2
-#define REQT_REC_OTHER 3
-#define REQT_TYPE_STANDARD (0 << 5)
-#define REQT_TYPE_CLASS (1 << 5)
-#define REQT_TYPE_VENDOR (2 << 5)
-#define REQT_TYPE_RSRVD (3 << 5)
-#define REQT_DIR_OUT (0 << 7) /* host -> device */
-#define REQT_DIR_IN (1 << 7) /* device -> host */
-
-#define DESCR_TYPE_DEVICE 1 /* see Table 9-5 */
-#define DESCR_TYPE_CONFIGURATION 2
-#define DESCR_TYPE_STRING 3
-#define DESCR_TYPE_INTERFACE 4
-#define DESCR_TYPE_ENDPOINT 5
-#define DESCR_TYPE_HUB 0x29 /* Class Descriptor HUB */
-#define DESCR_TYPE_HID 0x21 /* Class Descriptor HID */
-#define DESCR_TYPE_REPORT 0x22 /* Class Descriptor HID */
-#define DESCR_TYPE_PHYSICAL 0x23 /* Class Descriptor HID */
-
-struct usb_dev_req {
- uint8_t bmRequestType; /* direction, recipient */
- uint8_t bRequest; /* see spec: Table 9-3 */
- uint16_t wValue;
- uint16_t wIndex;
- uint16_t wLength; /* number of bytes to transfer */
-} __attribute__((packed));
-
-/* Standard Device Descriptor (18 Bytes) */
-/*******************************************/
-struct usb_dev_descr {
- uint8_t bLength;
- uint8_t bDescriptorType;
- uint16_t bcdUSB;
- uint8_t bDeviceClass;
- uint8_t bDeviceSubClass;
- uint8_t bDeviceProtocol;
- uint8_t bMaxPacketSize0;
- uint16_t idVendor;
- uint16_t idProduct;
- uint16_t bcdDevice;
- uint8_t iManufacturer;
- uint8_t iProduct;
- uint8_t iSerialNumber;
- uint8_t bNumConfigurations;
-} __attribute__((packed));
-
-/*******************************************/
-/* Standard Configuration Descriptor */
-/*******************************************/
-struct usb_dev_config_descr {
- uint8_t bLength; /* size of descriptor */
- uint8_t bDescriptorType; /* Type = 2 */
- uint16_t wTotalLength; /* total returned data */
- uint8_t bNumInterfaces; /* interfaces supported by this config */
- uint8_t bConfigurationValue; /* Configuration-ID for SetConfiguration */
- uint8_t iConfiguration; /* index of string descriptor */
- uint8_t bmAttributes; /* configuration characteristics */
- uint8_t bMaxPower; /* in 2mA units */
-} __attribute__((packed));
-
-/*******************************************/
-/* Standard Interface Descriptor */
-/*******************************************/
-struct usb_dev_intf_descr {
- uint8_t bLength; /* size of descriptor */
- uint8_t bDescriptorType; /* Type = 4 */
- uint8_t bInterfaceNumber;
- uint8_t bAlternateSetting;
- uint8_t bNumEndpoints;
- uint8_t bInterfaceClass;
- uint8_t bInterfaceSubClass;
- uint8_t bInterfaceProtocol; /* protocol code */
- uint8_t iInterface; /* index to string descriptor */
-} __attribute__((packed));
-
-/*******************************************/
-/* HUB-Class Descriptor */
-/*******************************************/
-struct usb_dev_hub_descr {
- uint8_t bLength; /* size of complete descriptor */
- uint8_t bDescriptorType; /* type = 0x29 for HUB */
- uint8_t bNbrPorts; /* number of downstream ports */
- uint8_t wHubCharacteristics; /* mode bits 7..0 */
- uint8_t reserved; /* mode bits 15..8 */
- uint8_t bPwrOn2PwrGood; /* in 2ms units */
- uint8_t bHubContrCurrent; /* current requirement in mA */
- uint8_t DeviceTable; /* length depends on number of ports */
-} __attribute__((packed));
-
-/*******************************************/
-/* HID-Class Descriptor */
-/*******************************************/
-struct usb_dev_hid_descr {
- uint8_t bLength; /* size of this descriptor */
- uint8_t bDescriptorType; /* type = 0x21 for HID */
- uint16_t bcdHID; /* Sample: 0x0102 for 2.01 */
- uint8_t bCountryCode; /* Hardware target country */
- uint8_t bNumDescriptors; /* Number of HID class descr. */
- uint8_t bReportType; /* Report Descriptor Type */
- uint16_t wReportLength; /* Total Length of Report Descr. */
-} __attribute__((packed));
-
-struct usb_hcd_ops {
- const char *name;
- void (*init)(struct usb_hcd_dev *);
- void (*exit)(struct usb_hcd_dev *);
- void (*detect)(void);
- void (*disconnect)(void);
- int (*send_ctrl)(struct usb_pipe *pipe, struct usb_dev_req *req, void *data);
- struct usb_pipe* (*get_pipe)(struct usb_dev *dev, struct usb_ep_descr *ep,
- char *buf, size_t len);
- int (*transfer_bulk)(struct usb_pipe *pipe, void *td, void *td_phys, void *data, int size);
- void (*put_pipe)(struct usb_pipe *);
- int (*poll_intr)(struct usb_pipe *, uint8_t *);
- struct usb_hcd_ops *next;
- unsigned int usb_type;
-};
-
-#define usb_get_intf_class(x) ((x & 0x00FF0000) >> 16)
-
-extern void usb_hcd_register(struct usb_hcd_ops *ops);
-extern struct usb_pipe *usb_get_pipe(struct usb_dev *dev, struct usb_ep_descr *ep,
- char *buf, size_t len);
-extern void usb_put_pipe(struct usb_pipe *pipe);
-extern int usb_poll_intr(struct usb_pipe *pipe, uint8_t *buf);
-extern int usb_send_ctrl(struct usb_pipe *pipe, struct usb_dev_req *req, void *data);
-extern struct usb_dev *usb_devpool_get(void);
-extern void usb_devpool_put(struct usb_dev *);
-extern int usb_setup_new_device(struct usb_dev *dev, unsigned int port);
-extern void usb_slof_populate_new_device(struct usb_dev *dev);
-extern int usb_dev_populate_pipe(struct usb_dev *dev, struct usb_ep_descr *ep,
- void *buf, size_t len);
-extern int usb_hid_kbd_init(struct usb_dev *dev);
-extern int usb_hid_kbd_exit(struct usb_dev *dev);
-extern int usb_msc_reset(struct usb_dev *dev);
-extern void usb_msc_resetrecovery(struct usb_dev *dev);
-#endif