Date: Wed, 26 Jun 2013 20:35:15 GMT From: syuu@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r253559 - in soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb: . include/hw include/qemu Message-ID: <201306262035.r5QKZF0l067093@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: syuu Date: Wed Jun 26 20:35:14 2013 New Revision: 253559 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=253559 Log: temporary comment out to make it able to compile Modified: soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/core.c soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/hcd-uhci.c soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/include/hw/usb.h soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/include/qemu/queue.h Modified: soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/core.c ============================================================================== --- soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/core.c Wed Jun 26 20:33:52 2013 (r253558) +++ soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/core.c Wed Jun 26 20:35:14 2013 (r253559) @@ -23,10 +23,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "qemu-common.h" +#include <string.h> #include "hw/usb.h" -#include "qemu/iov.h" -#include "trace.h" + +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) void usb_attach(USBPort *port) { @@ -37,7 +37,7 @@ assert(dev->state == USB_STATE_NOTATTACHED); port->ops->attach(port); dev->state = USB_STATE_ATTACHED; - usb_device_handle_attach(dev); +// usb_device_handle_attach(dev); } void usb_detach(USBPort *port) @@ -68,7 +68,7 @@ dev->remote_wakeup = 0; dev->addr = 0; dev->state = USB_STATE_DEFAULT; - usb_device_handle_reset(dev); +// usb_device_handle_reset(dev); } void usb_wakeup(USBEndpoint *ep, unsigned int stream) @@ -101,12 +101,14 @@ { int request, value, index; +#if 0 if (p->iov.size != 8) { p->status = USB_RET_STALL; return; } usb_packet_copy(p, s->setup_buf, p->iov.size); +#endif p->actual_length = 0; s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; s->setup_index = 0; @@ -116,8 +118,8 @@ index = (s->setup_buf[5] << 8) | s->setup_buf[4]; if (s->setup_buf[0] & USB_DIR_IN) { - usb_device_handle_control(s, p, request, value, index, - s->setup_len, s->data_buf); +// usb_device_handle_control(s, p, request, value, index, +// s->setup_len, s->data_buf); if (p->status == USB_RET_ASYNC) { s->setup_state = SETUP_STATE_SETUP; } @@ -159,8 +161,8 @@ switch(s->setup_state) { case SETUP_STATE_ACK: if (!(s->setup_buf[0] & USB_DIR_IN)) { - usb_device_handle_control(s, p, request, value, index, - s->setup_len, s->data_buf); +// usb_device_handle_control(s, p, request, value, index, +// s->setup_len, s->data_buf); if (p->status == USB_RET_ASYNC) { return; } @@ -172,9 +174,11 @@ case SETUP_STATE_DATA: if (s->setup_buf[0] & USB_DIR_IN) { int len = s->setup_len - s->setup_index; +#if 0 if (len > p->iov.size) { len = p->iov.size; } +#endif usb_packet_copy(p, s->data_buf + s->setup_index, len); s->setup_index += len; if (s->setup_index >= s->setup_len) { @@ -208,9 +212,11 @@ case SETUP_STATE_DATA: if (!(s->setup_buf[0] & USB_DIR_IN)) { int len = s->setup_len - s->setup_index; +#if 0 if (len > p->iov.size) { len = p->iov.size; } +#endif usb_packet_copy(p, s->data_buf + s->setup_index, len); s->setup_index += len; if (s->setup_index >= s->setup_len) { @@ -255,8 +261,8 @@ usb_packet_copy(p, s->data_buf, s->setup_len); } - usb_device_handle_control(s, p, request, value, index, - s->setup_len, s->data_buf); +// usb_device_handle_control(s, p, request, value, index, +// s->setup_len, s->data_buf); if (p->status == USB_RET_ASYNC) { return; } @@ -313,7 +319,8 @@ /* XXX: fix overflow */ int set_usb_string(uint8_t *buf, const char *str) { - int len, i; + size_t len; + int i; uint8_t *q; q = buf; @@ -337,7 +344,8 @@ if (dev->addr == addr) { return dev; } - return usb_device_find_device(dev, addr); +// return usb_device_find_device(dev, addr); + return 0; } static void usb_process_one(USBPacket *p) @@ -372,7 +380,7 @@ } } else { /* data pipe */ - usb_device_handle_data(dev, p); +// usb_device_handle_data(dev, p); } } @@ -437,10 +445,12 @@ assert(QTAILQ_FIRST(&ep->queue) == p); assert(p->status != USB_RET_ASYNC && p->status != USB_RET_NAK); +#if 0 if (p->status != USB_RET_SUCCESS || (p->short_not_ok && (p->actual_length < p->iov.size))) { ep->halted = true; } +#endif usb_packet_set_state(p, USB_PACKET_COMPLETE); QTAILQ_REMOVE(&ep->queue, p, queue); dev->port->ops->complete(dev->port, p); @@ -487,14 +497,14 @@ usb_packet_set_state(p, USB_PACKET_CANCELED); QTAILQ_REMOVE(&p->ep->queue, p, queue); if (callback) { - usb_device_cancel_packet(p->ep->dev, p); +// usb_device_cancel_packet(p->ep->dev, p); } } void usb_packet_init(USBPacket *p) { - qemu_iovec_init(&p->iov, 1); +// qemu_iovec_init(&p->iov, 1); } static const char *usb_packet_state_name(USBPacketState state) @@ -523,24 +533,30 @@ } dev = p->ep->dev; bus = usb_bus_from_device(dev); +#if 0 trace_usb_packet_state_fault(bus->busnr, dev->port->path, p->ep->nr, p, usb_packet_state_name(p->state), usb_packet_state_name(expected)); +#endif assert(!"usb packet state check failed"); } void usb_packet_set_state(USBPacket *p, USBPacketState state) { if (p->ep) { +#if 0 USBDevice *dev = p->ep->dev; USBBus *bus = usb_bus_from_device(dev); trace_usb_packet_state_change(bus->busnr, dev->port->path, p->ep->nr, p, usb_packet_state_name(p->state), usb_packet_state_name(state)); +#endif } else { +#if 0 trace_usb_packet_state_change(-1, "", -1, p, usb_packet_state_name(p->state), usb_packet_state_name(state)); +#endif } p->state = state; } @@ -550,7 +566,7 @@ uint64_t id, bool short_not_ok, bool int_req) { assert(!usb_packet_is_inflight(p)); - assert(p->iov.iov != NULL); +// assert(p->iov.iov != NULL); p->id = id; p->pid = pid; p->ep = ep; @@ -561,17 +577,18 @@ p->short_not_ok = short_not_ok; p->int_req = int_req; p->combined = NULL; - qemu_iovec_reset(&p->iov); +// qemu_iovec_reset(&p->iov); usb_packet_set_state(p, USB_PACKET_SETUP); } void usb_packet_addbuf(USBPacket *p, void *ptr, size_t len) { - qemu_iovec_add(&p->iov, ptr, len); +// qemu_iovec_add(&p->iov, ptr, len); } void usb_packet_copy(USBPacket *p, void *ptr, size_t bytes) { +#if 0 QEMUIOVector *iov = p->combined ? &p->combined->iov : &p->iov; assert(p->actual_length >= 0); @@ -589,10 +606,12 @@ abort(); } p->actual_length += bytes; +#endif } void usb_packet_skip(USBPacket *p, size_t bytes) { +#if 0 QEMUIOVector *iov = p->combined ? &p->combined->iov : &p->iov; assert(p->actual_length >= 0); @@ -601,17 +620,21 @@ iov_memset(iov->iov, iov->niov, p->actual_length, 0, bytes); } p->actual_length += bytes; +#endif } size_t usb_packet_size(USBPacket *p) { +#if 0 return p->combined ? p->combined->iov.size : p->iov.size; +#endif + return 0; } void usb_packet_cleanup(USBPacket *p) { assert(!usb_packet_is_inflight(p)); - qemu_iovec_destroy(&p->iov); +// qemu_iovec_destroy(&p->iov); } void usb_ep_reset(USBDevice *dev) Modified: soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/hcd-uhci.c ============================================================================== --- soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/hcd-uhci.c Wed Jun 26 20:33:52 2013 (r253558) +++ soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/hcd-uhci.c Wed Jun 26 20:35:14 2013 (r253559) @@ -25,13 +25,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "hw/hw.h" #include "hw/usb.h" -#include "hw/pci/pci.h" -#include "qemu/timer.h" -#include "qemu/iov.h" -#include "sysemu/dma.h" -#include "trace.h" //#define DEBUG //#define DEBUG_DUMP_DATA @@ -102,12 +96,12 @@ uint16_t device_id; uint8_t revision; uint8_t irq_pin; - int (*initfn)(PCIDevice *dev); +// int (*initfn)(PCIDevice *dev); bool unplug; }; struct UHCIPCIDeviceClass { - PCIDeviceClass parent_class; +// PCIDeviceClass parent_class; UHCIInfo info; }; @@ -143,8 +137,8 @@ } UHCIPort; struct UHCIState { - PCIDevice dev; - MemoryRegion io_bar; +// PCIDevice dev; +// MemoryRegion io_bar; USBBus bus; /* Note unused when we're a companion controller */ uint16_t cmd; /* cmd register */ uint16_t status; @@ -154,8 +148,8 @@ uint8_t sof_timing; uint8_t status2; /* bit 0 and 1 are used to generate UHCI_STS_USBINT */ int64_t expire_time; - QEMUTimer *frame_timer; - QEMUBH *bh; +// QEMUTimer *frame_timer; +// QEMUBH *bh; uint32_t frame_bytes; uint32_t frame_bandwidth; bool completions_only; @@ -206,7 +200,7 @@ { UHCIQueue *queue; - queue = g_new0(UHCIQueue, 1); +// queue = g_new0(UHCIQueue, 1); queue->uhci = s; queue->qh_addr = qh_addr; queue->token = uhci_queue_token(td); @@ -214,7 +208,7 @@ QTAILQ_INIT(&queue->asyncs); QTAILQ_INSERT_HEAD(&s->queues, queue, next); queue->valid = QH_VALID; - trace_usb_uhci_queue_add(queue->token); +// trace_usb_uhci_queue_add(queue->token); return queue; } @@ -229,9 +223,9 @@ } usb_device_ep_stopped(queue->ep->dev, queue->ep); - trace_usb_uhci_queue_del(queue->token, reason); +// trace_usb_uhci_queue_del(queue->token, reason); QTAILQ_REMOVE(&s->queues, queue, next); - g_free(queue); +// g_free(queue); } static UHCIQueue *uhci_queue_find(UHCIState *s, UHCI_TD *td) @@ -260,6 +254,7 @@ static UHCIAsync *uhci_async_alloc(UHCIQueue *queue, uint32_t td_addr) { +#if 0 UHCIAsync *async = g_new0(UHCIAsync, 1); async->queue = queue; @@ -268,40 +263,44 @@ trace_usb_uhci_packet_add(async->queue->token, async->td_addr); return async; +#endif + return 0; } static void uhci_async_free(UHCIAsync *async) { - trace_usb_uhci_packet_del(async->queue->token, async->td_addr); +// trace_usb_uhci_packet_del(async->queue->token, async->td_addr); usb_packet_cleanup(&async->packet); if (async->buf != async->static_buf) { - g_free(async->buf); +// g_free(async->buf); } - g_free(async); +// g_free(async); } static void uhci_async_link(UHCIAsync *async) { UHCIQueue *queue = async->queue; QTAILQ_INSERT_TAIL(&queue->asyncs, async, next); - trace_usb_uhci_packet_link_async(async->queue->token, async->td_addr); +// trace_usb_uhci_packet_link_async(async->queue->token, async->td_addr); } static void uhci_async_unlink(UHCIAsync *async) { UHCIQueue *queue = async->queue; QTAILQ_REMOVE(&queue->asyncs, async, next); - trace_usb_uhci_packet_unlink_async(async->queue->token, async->td_addr); +// trace_usb_uhci_packet_unlink_async(async->queue->token, async->td_addr); } static void uhci_async_cancel(UHCIAsync *async) { +#if 0 uhci_async_unlink(async); trace_usb_uhci_packet_cancel(async->queue->token, async->td_addr, async->done); if (!async->done) usb_cancel_packet(&async->packet); uhci_async_free(async); +#endif } /* @@ -379,11 +378,12 @@ } else { level = 0; } - qemu_set_irq(s->dev.irq[s->irq_pin], level); +// qemu_set_irq(s->dev.irq[s->irq_pin], level); } static void uhci_reset(void *opaque) { +#if 0 UHCIState *s = opaque; uint8_t *pci_conf; int i; @@ -413,8 +413,10 @@ uhci_async_cancel_all(s); qemu_bh_cancel(s->bh); uhci_update_irq(s); +#endif } +#if 0 static const VMStateDescription vmstate_uhci_port = { .name = "uhci port", .version_id = 1, @@ -425,18 +427,20 @@ VMSTATE_END_OF_LIST() } }; +#endif static int uhci_post_load(void *opaque, int version_id) { - UHCIState *s = opaque; +// UHCIState *s = opaque; if (version_id < 2) { - s->expire_time = qemu_get_clock_ns(vm_clock) + - (get_ticks_per_sec() / FRAME_TIMER_FREQ); +// s->expire_time = qemu_get_clock_ns(vm_clock) + +// (get_ticks_per_sec() / FRAME_TIMER_FREQ); } return 0; } +#if 0 static const VMStateDescription vmstate_uhci = { .name = "uhci", .version_id = 3, @@ -461,10 +465,12 @@ VMSTATE_END_OF_LIST() } }; +#endif static void uhci_port_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { +#if 0 UHCIState *s = opaque; trace_usb_uhci_mmio_writew(addr, val); @@ -555,10 +561,12 @@ } break; } +#endif } static uint64_t uhci_port_read(void *opaque, hwaddr addr, unsigned size) { +#if 0 UHCIState *s = opaque; uint32_t val; @@ -604,6 +612,8 @@ trace_usb_uhci_mmio_readw(addr, val); return val; +#endif + return 0; } /* signal resume if controller suspended */ @@ -698,17 +708,17 @@ static void uhci_read_td(UHCIState *s, UHCI_TD *td, uint32_t link) { - pci_dma_read(&s->dev, link & ~0xf, td, sizeof(*td)); - le32_to_cpus(&td->link); - le32_to_cpus(&td->ctrl); - le32_to_cpus(&td->token); - le32_to_cpus(&td->buffer); +// pci_dma_read(&s->dev, link & ~0xf, td, sizeof(*td)); +// le32_to_cpus(&td->link); +// le32_to_cpus(&td->ctrl); +// le32_to_cpus(&td->token); +// le32_to_cpus(&td->buffer); } static int uhci_handle_td_error(UHCIState *s, UHCI_TD *td, uint32_t td_addr, int status, uint32_t *int_mask) { - uint32_t queue_token = uhci_queue_token(td); +// uint32_t queue_token = uhci_queue_token(td); int ret; switch (status) { @@ -718,14 +728,14 @@ case USB_RET_STALL: td->ctrl |= TD_CTRL_STALL; - trace_usb_uhci_packet_complete_stall(queue_token, td_addr); +// trace_usb_uhci_packet_complete_stall(queue_token, td_addr); ret = TD_RESULT_NEXT_QH; break; case USB_RET_BABBLE: td->ctrl |= TD_CTRL_BABBLE | TD_CTRL_STALL; /* frame interrupted */ - trace_usb_uhci_packet_complete_babble(queue_token, td_addr); +// trace_usb_uhci_packet_complete_babble(queue_token, td_addr); ret = TD_RESULT_STOP_FRAME; break; @@ -734,7 +744,7 @@ default: td->ctrl |= TD_CTRL_TIMEOUT; td->ctrl &= ~(3 << TD_CTRL_ERROR_SHIFT); - trace_usb_uhci_packet_complete_error(queue_token, td_addr); +// trace_usb_uhci_packet_complete_error(queue_token, td_addr); ret = TD_RESULT_NEXT_QH; break; } @@ -775,19 +785,23 @@ *int_mask |= 0x01; if (pid == USB_TOKEN_IN) { - pci_dma_write(&s->dev, td->buffer, async->buf, len); +// pci_dma_write(&s->dev, td->buffer, async->buf, len); if ((td->ctrl & TD_CTRL_SPD) && len < max_len) { *int_mask |= 0x02; /* short packet: do not update QH */ +#if 0 trace_usb_uhci_packet_complete_shortxfer(async->queue->token, async->td_addr); +#endif return TD_RESULT_NEXT_QH; } } /* success */ +#if 0 trace_usb_uhci_packet_complete_success(async->queue->token, async->td_addr); +#endif return TD_RESULT_COMPLETE; } @@ -886,14 +900,14 @@ if (max_len <= sizeof(async->static_buf)) { async->buf = async->static_buf; } else { - async->buf = g_malloc(max_len); +// async->buf = g_malloc(max_len); } usb_packet_addbuf(&async->packet, async->buf, max_len); switch(pid) { case USB_TOKEN_OUT: case USB_TOKEN_SETUP: - pci_dma_read(&s->dev, td->buffer, async->buf, max_len); +// pci_dma_read(&s->dev, td->buffer, async->buf, max_len); usb_handle_packet(q->ep->dev, &async->packet); if (async->packet.status == USB_RET_SUCCESS) { async->packet.actual_length = max_len; @@ -928,7 +942,7 @@ static void uhci_async_complete(USBPort *port, USBPacket *packet) { - UHCIAsync *async = container_of(packet, UHCIAsync, packet); + UHCIAsync *async /*= container_of(packet, UHCIAsync, packet) */; UHCIState *s = async->queue->uhci; if (packet->status == USB_RET_REMOVE_FROM_QUEUE) { @@ -939,7 +953,7 @@ async->done = 1; /* Force processing of this packet *now*, needed for migration */ s->completions_only = true; - qemu_bh_schedule(s->bh); +// qemu_bh_schedule(s->bh); } static int is_valid(uint32_t link) @@ -999,7 +1013,7 @@ if (uhci_queue_token(&ptd) != q->token) { break; } - trace_usb_uhci_td_queue(plink & ~0xf, ptd.ctrl, ptd.token); +// trace_usb_uhci_td_queue(plink & ~0xf, ptd.ctrl, ptd.token); ret = uhci_handle_td(q->uhci, q, q->qh_addr, &ptd, plink, &int_mask); if (ret == TD_RESULT_ASYNC_CONT) { break; @@ -1013,7 +1027,7 @@ static void uhci_process_frame(UHCIState *s) { - uint32_t frame_addr, link, old_td_ctrl, val, int_mask; + uint32_t frame_addr, link, old_td_ctrl, /*val,*/ int_mask; uint32_t curr_qh, td_count = 0; int cnt, ret; UHCI_TD td; @@ -1022,8 +1036,8 @@ frame_addr = s->fl_base_addr + ((s->frnum & 0x3ff) << 2); - pci_dma_read(&s->dev, frame_addr, &link, 4); - le32_to_cpus(&link); +// pci_dma_read(&s->dev, frame_addr, &link, 4); +// le32_to_cpus(&link); int_mask = 0; curr_qh = 0; @@ -1034,12 +1048,12 @@ if (!s->completions_only && s->frame_bytes >= s->frame_bandwidth) { /* We've reached the usb 1.1 bandwidth, which is 1280 bytes/frame, stop processing */ - trace_usb_uhci_frame_stop_bandwidth(); +// trace_usb_uhci_frame_stop_bandwidth(); break; } if (is_qh(link)) { /* QH */ - trace_usb_uhci_qh_load(link & ~0xf); +// trace_usb_uhci_qh_load(link & ~0xf); if (qhdb_insert(&qhdb, link)) { /* @@ -1050,19 +1064,19 @@ * since we've been here last time. */ if (td_count == 0) { - trace_usb_uhci_frame_loop_stop_idle(); +// trace_usb_uhci_frame_loop_stop_idle(); break; } else { - trace_usb_uhci_frame_loop_continue(); +// trace_usb_uhci_frame_loop_continue(); td_count = 0; qhdb_reset(&qhdb); qhdb_insert(&qhdb, link); } } - pci_dma_read(&s->dev, link & ~0xf, &qh, sizeof(qh)); - le32_to_cpus(&qh.link); - le32_to_cpus(&qh.el_link); +// pci_dma_read(&s->dev, link & ~0xf, &qh, sizeof(qh)); +// le32_to_cpus(&qh.link); +// le32_to_cpus(&qh.el_link); if (!is_valid(qh.el_link)) { /* QH w/o elements */ @@ -1078,14 +1092,14 @@ /* TD */ uhci_read_td(s, &td, link); - trace_usb_uhci_td_load(curr_qh & ~0xf, link & ~0xf, td.ctrl, td.token); +// trace_usb_uhci_td_load(curr_qh & ~0xf, link & ~0xf, td.ctrl, td.token); old_td_ctrl = td.ctrl; ret = uhci_handle_td(s, NULL, curr_qh, &td, link, &int_mask); if (old_td_ctrl != td.ctrl) { /* update the status bits of the TD */ - val = cpu_to_le32(td.ctrl); - pci_dma_write(&s->dev, (link & ~0xf) + 4, &val, sizeof(val)); +// val = cpu_to_le32(td.ctrl); +// pci_dma_write(&s->dev, (link & ~0xf) + 4, &val, sizeof(val)); } switch (ret) { @@ -1094,17 +1108,17 @@ case TD_RESULT_NEXT_QH: case TD_RESULT_ASYNC_CONT: - trace_usb_uhci_td_nextqh(curr_qh & ~0xf, link & ~0xf); +// trace_usb_uhci_td_nextqh(curr_qh & ~0xf, link & ~0xf); link = curr_qh ? qh.link : td.link; continue; case TD_RESULT_ASYNC_START: - trace_usb_uhci_td_async(curr_qh & ~0xf, link & ~0xf); +// trace_usb_uhci_td_async(curr_qh & ~0xf, link & ~0xf); link = curr_qh ? qh.link : td.link; continue; case TD_RESULT_COMPLETE: - trace_usb_uhci_td_complete(curr_qh & ~0xf, link & ~0xf); +// trace_usb_uhci_td_complete(curr_qh & ~0xf, link & ~0xf); link = td.link; td_count++; s->frame_bytes += (td.ctrl & 0x7ff) + 1; @@ -1112,8 +1126,8 @@ if (curr_qh) { /* update QH element link */ qh.el_link = link; - val = cpu_to_le32(qh.el_link); - pci_dma_write(&s->dev, (curr_qh & ~0xf) + 4, &val, sizeof(val)); +// val = cpu_to_le32(qh.el_link); +// pci_dma_write(&s->dev, (curr_qh & ~0xf) + 4, &val, sizeof(val)); if (!depth_first(link)) { /* done with this QH */ @@ -1145,15 +1159,15 @@ UHCIState *s = opaque; uint64_t t_now, t_last_run; int i, frames; - const uint64_t frame_t = get_ticks_per_sec() / FRAME_TIMER_FREQ; + const uint64_t frame_t /* = get_ticks_per_sec() / FRAME_TIMER_FREQ */; s->completions_only = false; - qemu_bh_cancel(s->bh); +// qemu_bh_cancel(s->bh); if (!(s->cmd & UHCI_CMD_RS)) { /* Full stop */ - trace_usb_uhci_schedule_stop(); - qemu_del_timer(s->frame_timer); +// trace_usb_uhci_schedule_stop(); +// qemu_del_timer(s->frame_timer); uhci_async_cancel_all(s); /* set hchalted bit in status - UHCI11D 2.1.2 */ s->status |= UHCI_STS_HCHALTED; @@ -1162,7 +1176,7 @@ /* We still store expire_time in our state, for migration */ t_last_run = s->expire_time - frame_t; - t_now = qemu_get_clock_ns(vm_clock); +// t_now = qemu_get_clock_ns(vm_clock); /* Process up to MAX_FRAMES_PER_TICK frames */ frames = (t_now - t_last_run) / frame_t; @@ -1178,7 +1192,7 @@ for (i = 0; i < frames; i++) { s->frame_bytes = 0; - trace_usb_uhci_frame_start(s->frnum); +// trace_usb_uhci_frame_start(s->frnum); uhci_async_validate_begin(s); uhci_process_frame(s); uhci_async_validate_end(s); @@ -1196,9 +1210,10 @@ } s->pending_int_mask = 0; - qemu_mod_timer(s->frame_timer, t_now + frame_t); +// qemu_mod_timer(s->frame_timer, t_now + frame_t); } +/* static const MemoryRegionOps uhci_ioport_ops = { .read = uhci_port_read, .write = uhci_port_write, @@ -1216,10 +1231,11 @@ .wakeup = uhci_wakeup, .complete = uhci_async_complete, }; +*/ +#if 0 static USBBusOps uhci_bus_ops = { }; - static int usb_uhci_common_initfn(PCIDevice *dev) { PCIDeviceClass *pc = PCI_DEVICE_GET_CLASS(dev); @@ -1266,7 +1282,8 @@ return 0; } - +#endif +#if 0 static int usb_uhci_vt82c686b_initfn(PCIDevice *dev) { UHCIState *s = DO_UPCAST(UHCIState, dev, dev); @@ -1281,14 +1298,18 @@ return usb_uhci_common_initfn(dev); } +#endif +#if 0 static void usb_uhci_exit(PCIDevice *dev) { UHCIState *s = DO_UPCAST(UHCIState, dev, dev); memory_region_destroy(&s->io_bar); } +#endif +#if 0 static Property uhci_properties[] = { DEFINE_PROP_STRING("masterbus", UHCIState, masterbus), DEFINE_PROP_UINT32("firstport", UHCIState, firstport, 0), @@ -1296,7 +1317,9 @@ DEFINE_PROP_UINT32("maxframes", UHCIState, maxframes, 128), DEFINE_PROP_END_OF_LIST(), }; +#endif +#if 0 static void uhci_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -1315,7 +1338,9 @@ dc->props = uhci_properties; u->info = *info; } +#endif +#if 0 static UHCIInfo uhci_info[] = { { .name = "piix3-usb-uhci", @@ -1383,9 +1408,11 @@ .unplug = false, } }; +#endif static void uhci_register_types(void) { +#if 0 TypeInfo uhci_type_info = { .parent = TYPE_PCI_DEVICE, .instance_size = sizeof(UHCIState), @@ -1399,6 +1426,7 @@ uhci_type_info.class_data = uhci_info + i; type_register(&uhci_type_info); } +#endif } -type_init(uhci_register_types) +//type_init(uhci_register_types) Modified: soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/include/hw/usb.h ============================================================================== --- soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/include/hw/usb.h Wed Jun 26 20:33:52 2013 (r253558) +++ soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/include/hw/usb.h Wed Jun 26 20:35:14 2013 (r253559) @@ -25,9 +25,15 @@ * THE SOFTWARE. */ -#include "hw/qdev.h" +#include <stdio.h> +#include <sys/types.h> +#include <stdint.h> +#include <stdbool.h> +#include <assert.h> #include "qemu/queue.h" +typedef uint64_t hwaddr; + /* Constants related to the USB / PCI interaction */ #define USB_SBRN 0x60 /* Serial Bus Release Number Register */ #define USB_RELEASE_1 0x10 /* USB 1.0 */ @@ -202,7 +208,7 @@ /* definition of a USB device */ struct USBDevice { - DeviceState qdev; +// DeviceState qdev; USBPort *port; char *port_path; char *serial; @@ -250,7 +256,7 @@ OBJECT_GET_CLASS(USBDeviceClass, (obj), TYPE_USB_DEVICE) typedef struct USBDeviceClass { - DeviceClass parent_class; +// DeviceClass parent_class; int (*init)(USBDevice *dev); @@ -364,7 +370,7 @@ uint64_t id; USBEndpoint *ep; unsigned int stream; - QEMUIOVector iov; +// QEMUIOVector iov; uint64_t parameter; /* control transfers */ bool short_not_ok; bool int_req; @@ -380,7 +386,7 @@ struct USBCombinedPacket { USBPacket *first; QTAILQ_HEAD(packets_head, USBPacket) packets; - QEMUIOVector iov; +// QEMUIOVector iov; }; void usb_packet_init(USBPacket *p); @@ -390,8 +396,8 @@ USBEndpoint *ep, unsigned int stream, uint64_t id, bool short_not_ok, bool int_req); void usb_packet_addbuf(USBPacket *p, void *ptr, size_t len); -int usb_packet_map(USBPacket *p, QEMUSGList *sgl); -void usb_packet_unmap(USBPacket *p, QEMUSGList *sgl); +//int usb_packet_map(USBPacket *p, QEMUSGList *sgl); +//void usb_packet_unmap(USBPacket *p, QEMUSGList *sgl); void usb_packet_copy(USBPacket *p, void *ptr, size_t bytes); void usb_packet_skip(USBPacket *p, size_t bytes); size_t usb_packet_size(USBPacket *p); @@ -440,10 +446,10 @@ /* usb-linux.c */ USBDevice *usb_host_device_open(USBBus *bus, const char *devname); -void usb_host_info(Monitor *mon, const QDict *qdict); +//void usb_host_info(Monitor *mon, const QDict *qdict); /* usb-bt.c */ -USBDevice *usb_bt_init(USBBus *bus, HCIInfo *hci); +//USBDevice *usb_bt_init(USBBus *bus, HCIInfo *hci); /* usb ports of the VM */ @@ -468,7 +474,7 @@ }; typedef struct MUSBState MUSBState; -MUSBState *musb_init(DeviceState *parent_device, int gpio_base); +//MUSBState *musb_init(DeviceState *parent_device, int gpio_base); void musb_reset(MUSBState *s); uint32_t musb_core_intr_get(MUSBState *s); void musb_core_intr_clear(MUSBState *s, uint32_t mask); @@ -480,7 +486,7 @@ #define USB_BUS(obj) OBJECT_CHECK(USBBus, (obj), TYPE_USB_BUS) struct USBBus { - BusState qbus; +// BusState qbus; USBBusOps *ops; int busnr; int nfree; @@ -496,7 +502,7 @@ void (*wakeup_endpoint)(USBBus *bus, USBEndpoint *ep, unsigned int stream); }; -void usb_bus_new(USBBus *bus, USBBusOps *ops, DeviceState *host); +//void usb_bus_new(USBBus *bus, USBBusOps *ops, DeviceState *host); USBBus *usb_bus_find(int busnr); void usb_legacy_register(const char *typename, const char *usbdevice_name, USBDevice *(*usbdevice_init)(USBBus *bus, @@ -519,10 +525,11 @@ static inline USBBus *usb_bus_from_device(USBDevice *d) { - return DO_UPCAST(USBBus, qbus, d->qdev.parent_bus); +// return DO_UPCAST(USBBus, qbus, d->qdev.parent_bus); + return NULL; } -extern const VMStateDescription vmstate_usb_device; +//extern const VMStateDescription vmstate_usb_device; #define VMSTATE_USB_DEVICE(_field, _state) { \ .name = (stringify(_field)), \ @@ -556,7 +563,7 @@ const USBDesc *usb_device_get_usb_desc(USBDevice *dev); -int ehci_create_ich9_with_companions(PCIBus *bus, int slot); +//int ehci_create_ich9_with_companions(PCIBus *bus, int slot); /* quirks.c */ Modified: soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/include/qemu/queue.h ============================================================================== --- soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/include/qemu/queue.h Wed Jun 26 20:33:52 2013 (r253558) +++ soc2013/syuu/bhyve_usb/usr.sbin/bhyve/usb/include/qemu/queue.h Wed Jun 26 20:35:14 2013 (r253559) @@ -78,8 +78,6 @@ * For details on the use of these macros, see the queue(3) manual page. */ -#include "qemu/atomic.h" /* for smp_wmb() */ - /* * List definitions. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306262035.r5QKZF0l067093>