aboutsummaryrefslogtreecommitdiff
path: root/hw/usb/canokey.c
diff options
context:
space:
mode:
authorHongren (Zenithal) Zheng <i@zenithal.me>2022-05-19 20:38:30 +0800
committerGerd Hoffmann <kraxel@redhat.com>2022-06-14 10:34:36 +0200
commitd37d0e0e855222b89008930b8675198ce74f8d4f (patch)
treee1104ba5ac7ed71e75e5471d620983fbb9c80f36 /hw/usb/canokey.c
parentd7d34918551dc48a2f6b42b44a12c7a9183f89e6 (diff)
hw/usb/canokey: Add trace events
Signed-off-by: Hongren (Zenithal) Zheng <i@zenithal.me> Message-Id: <YoY6RoDKQIxSkFwL@Sun> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/usb/canokey.c')
-rw-r--r--hw/usb/canokey.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/hw/usb/canokey.c b/hw/usb/canokey.c
index 6cb8b7cdb0..4a08b1cbd7 100644
--- a/hw/usb/canokey.c
+++ b/hw/usb/canokey.c
@@ -14,6 +14,7 @@
#include "qapi/error.h"
#include "hw/usb.h"
#include "hw/qdev-properties.h"
+#include "trace.h"
#include "desc.h"
#include "canokey.h"
@@ -66,6 +67,7 @@ static const USBDesc desc_canokey = {
*/
int canokey_emu_stall_ep(void *base, uint8_t ep)
{
+ trace_canokey_emu_stall_ep(ep);
CanoKeyState *key = base;
uint8_t ep_in = CANOKEY_EP_IN(ep); /* INTR IN has ep 129 */
key->ep_in_size[ep_in] = 0;
@@ -75,6 +77,7 @@ int canokey_emu_stall_ep(void *base, uint8_t ep)
int canokey_emu_set_address(void *base, uint8_t addr)
{
+ trace_canokey_emu_set_address(addr);
CanoKeyState *key = base;
key->dev.addr = addr;
return 0;
@@ -83,6 +86,7 @@ int canokey_emu_set_address(void *base, uint8_t addr)
int canokey_emu_prepare_receive(
void *base, uint8_t ep, uint8_t *pbuf, uint16_t size)
{
+ trace_canokey_emu_prepare_receive(ep, size);
CanoKeyState *key = base;
key->ep_out[ep] = pbuf;
key->ep_out_size[ep] = size;
@@ -92,6 +96,7 @@ int canokey_emu_prepare_receive(
int canokey_emu_transmit(
void *base, uint8_t ep, const uint8_t *pbuf, uint16_t size)
{
+ trace_canokey_emu_transmit(ep, size);
CanoKeyState *key = base;
uint8_t ep_in = CANOKEY_EP_IN(ep); /* INTR IN has ep 129 */
memcpy(key->ep_in[ep_in] + key->ep_in_size[ep_in],
@@ -125,6 +130,7 @@ uint32_t canokey_emu_get_rx_data_size(void *base, uint8_t ep)
*/
static void canokey_handle_reset(USBDevice *dev)
{
+ trace_canokey_handle_reset();
CanoKeyState *key = CANOKEY(dev);
for (int i = 0; i != CANOKEY_EP_NUM; ++i) {
key->ep_in_state[i] = CANOKEY_EP_IN_WAIT;
@@ -137,6 +143,7 @@ static void canokey_handle_reset(USBDevice *dev)
static void canokey_handle_control(USBDevice *dev, USBPacket *p,
int request, int value, int index, int length, uint8_t *data)
{
+ trace_canokey_handle_control_setup(request, value, index, length);
CanoKeyState *key = CANOKEY(dev);
canokey_emu_setup(request, value, index, length);
@@ -144,6 +151,7 @@ static void canokey_handle_control(USBDevice *dev, USBPacket *p,
uint32_t dir_in = request & DeviceRequest;
if (!dir_in) {
/* OUT */
+ trace_canokey_handle_control_out();
if (key->ep_out[0] != NULL) {
memcpy(key->ep_out[0], data, length);
}
@@ -163,6 +171,7 @@ static void canokey_handle_control(USBDevice *dev, USBPacket *p,
case CANOKEY_EP_IN_READY:
memcpy(data, key->ep_in[0], key->ep_in_size[0]);
p->actual_length = key->ep_in_size[0];
+ trace_canokey_handle_control_in(p->actual_length);
/* reset state */
key->ep_in_state[0] = CANOKEY_EP_IN_WAIT;
key->ep_in_size[0] = 0;
@@ -182,6 +191,7 @@ static void canokey_handle_data(USBDevice *dev, USBPacket *p)
uint32_t out_len;
switch (p->pid) {
case USB_TOKEN_OUT:
+ trace_canokey_handle_data_out(ep_out, p->iov.size);
usb_packet_copy(p, key->ep_out_buffer[ep_out], p->iov.size);
out_pos = 0;
while (out_pos != p->iov.size) {
@@ -226,6 +236,7 @@ static void canokey_handle_data(USBDevice *dev, USBPacket *p)
key->ep_in_size[ep_in] = 0;
key->ep_in_pos[ep_in] = 0;
}
+ trace_canokey_handle_data_in(ep_in, in_len);
break;
}
break;
@@ -237,6 +248,7 @@ static void canokey_handle_data(USBDevice *dev, USBPacket *p)
static void canokey_realize(USBDevice *base, Error **errp)
{
+ trace_canokey_realize();
CanoKeyState *key = CANOKEY(base);
if (key->file == NULL) {
@@ -260,6 +272,7 @@ static void canokey_realize(USBDevice *base, Error **errp)
static void canokey_unrealize(USBDevice *base)
{
+ trace_canokey_unrealize();
}
static Property canokey_properties[] = {