net: tcp_client_socket connection state routines
[quarnos.git] / resources / usb.h
blob7546020e7b8dadc6e033730db88e87fca9cc31dd
1 /* Quarn OS
3 * USB bus
5 * Copyright (C) 2009 Pawel Dziepak
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 #ifndef _USB_H_
24 #define _USB_H_
26 #include "bus.h"
27 #include "device.h"
28 #include "uhci.h"
30 namespace resources {
31 class usb : public bus {
32 private:
33 int dev_count;
35 pci_did pciaddr;
37 uhci* host;
39 struct device_descriptor {
40 u8 bLength;
41 u8 bDescriptorType;
42 u16 bcdUSB;
43 u8 bDeviceClass;
44 u8 bDeviceSubClass;
45 u8 bDeviceProtocol;
46 u8 bMaxPacketSize0;
47 u16 idVendor;
48 u16 idProduct;
49 u16 bcdDevice;
50 u8 iManufacturer;
51 u8 iProduct;
52 u8 iSerialNumber;
53 u8 bNumConfigurations;
54 } __attribute__((packed));
56 public:
57 // bool initialize();
58 // bool type_added(manes::type_name);
60 int get_count();
62 bool init_bus(device *);
64 static void register_type();
67 class usb_did : public did {
68 public:
69 int address;
71 usb_did(bus *b) : did(b) {}
72 usb_did() {}
73 virtual ~usb_did() {}
77 #endif