mirror of
https://git.proxmox.com/git/qemu
synced 2025-07-09 13:18:26 +00:00
escc: replace DPRINTFs with tracepoints
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
42c812b98b
commit
30c2f2388a
60
hw/escc.c
60
hw/escc.c
@ -27,15 +27,7 @@
|
|||||||
#include "escc.h"
|
#include "escc.h"
|
||||||
#include "qemu-char.h"
|
#include "qemu-char.h"
|
||||||
#include "console.h"
|
#include "console.h"
|
||||||
|
#include "trace.h"
|
||||||
/* debug serial */
|
|
||||||
//#define DEBUG_SERIAL
|
|
||||||
|
|
||||||
/* debug keyboard */
|
|
||||||
//#define DEBUG_KBD
|
|
||||||
|
|
||||||
/* debug mouse */
|
|
||||||
//#define DEBUG_MOUSE
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Chipset docs:
|
* Chipset docs:
|
||||||
@ -69,25 +61,6 @@
|
|||||||
* 2010-May-23 Artyom Tarasenko: Reworked IUS logic
|
* 2010-May-23 Artyom Tarasenko: Reworked IUS logic
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef DEBUG_SERIAL
|
|
||||||
#define SER_DPRINTF(fmt, ...) \
|
|
||||||
do { printf("SER: " fmt , ## __VA_ARGS__); } while (0)
|
|
||||||
#else
|
|
||||||
#define SER_DPRINTF(fmt, ...)
|
|
||||||
#endif
|
|
||||||
#ifdef DEBUG_KBD
|
|
||||||
#define KBD_DPRINTF(fmt, ...) \
|
|
||||||
do { printf("KBD: " fmt , ## __VA_ARGS__); } while (0)
|
|
||||||
#else
|
|
||||||
#define KBD_DPRINTF(fmt, ...)
|
|
||||||
#endif
|
|
||||||
#ifdef DEBUG_MOUSE
|
|
||||||
#define MS_DPRINTF(fmt, ...) \
|
|
||||||
do { printf("MSC: " fmt , ## __VA_ARGS__); } while (0)
|
|
||||||
#else
|
|
||||||
#define MS_DPRINTF(fmt, ...)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
chn_a, chn_b,
|
chn_a, chn_b,
|
||||||
} ChnID;
|
} ChnID;
|
||||||
@ -250,7 +223,7 @@ static void put_queue(void *opaque, int b)
|
|||||||
ChannelState *s = opaque;
|
ChannelState *s = opaque;
|
||||||
SERIOQueue *q = &s->queue;
|
SERIOQueue *q = &s->queue;
|
||||||
|
|
||||||
SER_DPRINTF("channel %c put: 0x%02x\n", CHN_C(s), b);
|
trace_escc_put_queue(CHN_C(s), b);
|
||||||
if (q->count >= SERIO_QUEUE_SIZE)
|
if (q->count >= SERIO_QUEUE_SIZE)
|
||||||
return;
|
return;
|
||||||
q->data[q->wptr] = b;
|
q->data[q->wptr] = b;
|
||||||
@ -274,7 +247,7 @@ static uint32_t get_queue(void *opaque)
|
|||||||
q->rptr = 0;
|
q->rptr = 0;
|
||||||
q->count--;
|
q->count--;
|
||||||
}
|
}
|
||||||
SER_DPRINTF("channel %c get 0x%02x\n", CHN_C(s), val);
|
trace_escc_get_queue(CHN_C(s), val);
|
||||||
if (q->count > 0)
|
if (q->count > 0)
|
||||||
serial_receive_byte(s, 0);
|
serial_receive_byte(s, 0);
|
||||||
return val;
|
return val;
|
||||||
@ -301,7 +274,7 @@ static void escc_update_irq(ChannelState *s)
|
|||||||
irq = escc_update_irq_chn(s);
|
irq = escc_update_irq_chn(s);
|
||||||
irq |= escc_update_irq_chn(s->otherchn);
|
irq |= escc_update_irq_chn(s->otherchn);
|
||||||
|
|
||||||
SER_DPRINTF("IRQ = %d\n", irq);
|
trace_escc_update_irq(irq);
|
||||||
qemu_set_irq(s->irq, irq);
|
qemu_set_irq(s->irq, irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,8 +459,7 @@ static void escc_update_parameters(ChannelState *s)
|
|||||||
ssp.parity = parity;
|
ssp.parity = parity;
|
||||||
ssp.data_bits = data_bits;
|
ssp.data_bits = data_bits;
|
||||||
ssp.stop_bits = stop_bits;
|
ssp.stop_bits = stop_bits;
|
||||||
SER_DPRINTF("channel %c: speed=%d parity=%c data=%d stop=%d\n", CHN_C(s),
|
trace_escc_update_parameters(CHN_C(s), speed, parity, data_bits, stop_bits);
|
||||||
speed, parity, data_bits, stop_bits);
|
|
||||||
qemu_chr_ioctl(s->chr, CHR_IOCTL_SERIAL_SET_PARAMS, &ssp);
|
qemu_chr_ioctl(s->chr, CHR_IOCTL_SERIAL_SET_PARAMS, &ssp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,8 +477,7 @@ static void escc_mem_write(void *opaque, target_phys_addr_t addr,
|
|||||||
s = &serial->chn[channel];
|
s = &serial->chn[channel];
|
||||||
switch (saddr) {
|
switch (saddr) {
|
||||||
case SERIAL_CTRL:
|
case SERIAL_CTRL:
|
||||||
SER_DPRINTF("Write channel %c, reg[%d] = %2.2x\n", CHN_C(s), s->reg,
|
trace_escc_mem_writeb_ctrl(CHN_C(s), s->reg, val & 0xff);
|
||||||
val & 0xff);
|
|
||||||
newreg = 0;
|
newreg = 0;
|
||||||
switch (s->reg) {
|
switch (s->reg) {
|
||||||
case W_CMD:
|
case W_CMD:
|
||||||
@ -576,7 +547,7 @@ static void escc_mem_write(void *opaque, target_phys_addr_t addr,
|
|||||||
s->reg = 0;
|
s->reg = 0;
|
||||||
break;
|
break;
|
||||||
case SERIAL_DATA:
|
case SERIAL_DATA:
|
||||||
SER_DPRINTF("Write channel %c, ch %d\n", CHN_C(s), val);
|
trace_escc_mem_writeb_data(CHN_C(s), val);
|
||||||
s->tx = val;
|
s->tx = val;
|
||||||
if (s->wregs[W_TXCTRL2] & TXCTRL2_TXEN) { // tx enabled
|
if (s->wregs[W_TXCTRL2] & TXCTRL2_TXEN) { // tx enabled
|
||||||
if (s->chr)
|
if (s->chr)
|
||||||
@ -608,8 +579,7 @@ static uint64_t escc_mem_read(void *opaque, target_phys_addr_t addr,
|
|||||||
s = &serial->chn[channel];
|
s = &serial->chn[channel];
|
||||||
switch (saddr) {
|
switch (saddr) {
|
||||||
case SERIAL_CTRL:
|
case SERIAL_CTRL:
|
||||||
SER_DPRINTF("Read channel %c, reg[%d] = %2.2x\n", CHN_C(s), s->reg,
|
trace_escc_mem_readb_ctrl(CHN_C(s), s->reg, s->rregs[s->reg]);
|
||||||
s->rregs[s->reg]);
|
|
||||||
ret = s->rregs[s->reg];
|
ret = s->rregs[s->reg];
|
||||||
s->reg = 0;
|
s->reg = 0;
|
||||||
return ret;
|
return ret;
|
||||||
@ -620,7 +590,7 @@ static uint64_t escc_mem_read(void *opaque, target_phys_addr_t addr,
|
|||||||
ret = get_queue(s);
|
ret = get_queue(s);
|
||||||
else
|
else
|
||||||
ret = s->rx;
|
ret = s->rx;
|
||||||
SER_DPRINTF("Read channel %c, ch %d\n", CHN_C(s), ret);
|
trace_escc_mem_readb_data(CHN_C(s), ret);
|
||||||
if (s->chr)
|
if (s->chr)
|
||||||
qemu_chr_accept_input(s->chr);
|
qemu_chr_accept_input(s->chr);
|
||||||
return ret;
|
return ret;
|
||||||
@ -656,7 +626,7 @@ static int serial_can_receive(void *opaque)
|
|||||||
|
|
||||||
static void serial_receive_byte(ChannelState *s, int ch)
|
static void serial_receive_byte(ChannelState *s, int ch)
|
||||||
{
|
{
|
||||||
SER_DPRINTF("channel %c put ch %d\n", CHN_C(s), ch);
|
trace_escc_serial_receive_byte(CHN_C(s), ch);
|
||||||
s->rregs[R_STATUS] |= STATUS_RXAV;
|
s->rregs[R_STATUS] |= STATUS_RXAV;
|
||||||
s->rx = ch;
|
s->rx = ch;
|
||||||
set_rxint(s);
|
set_rxint(s);
|
||||||
@ -768,8 +738,7 @@ static void sunkbd_event(void *opaque, int ch)
|
|||||||
ChannelState *s = opaque;
|
ChannelState *s = opaque;
|
||||||
int release = ch & 0x80;
|
int release = ch & 0x80;
|
||||||
|
|
||||||
KBD_DPRINTF("Untranslated keycode %2.2x (%s)\n", ch, release? "release" :
|
trace_escc_sunkbd_event_in(ch);
|
||||||
"press");
|
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 58: // Caps lock press
|
case 58: // Caps lock press
|
||||||
s->caps_lock_mode ^= 1;
|
s->caps_lock_mode ^= 1;
|
||||||
@ -803,13 +772,13 @@ static void sunkbd_event(void *opaque, int ch)
|
|||||||
} else {
|
} else {
|
||||||
ch = keycodes[ch & 0x7f];
|
ch = keycodes[ch & 0x7f];
|
||||||
}
|
}
|
||||||
KBD_DPRINTF("Translated keycode %2.2x\n", ch);
|
trace_escc_sunkbd_event_out(ch);
|
||||||
put_queue(s, ch | release);
|
put_queue(s, ch | release);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_kbd_command(ChannelState *s, int val)
|
static void handle_kbd_command(ChannelState *s, int val)
|
||||||
{
|
{
|
||||||
KBD_DPRINTF("Command %d\n", val);
|
trace_escc_kbd_command(val);
|
||||||
if (s->led_mode) { // Ignore led byte
|
if (s->led_mode) { // Ignore led byte
|
||||||
s->led_mode = 0;
|
s->led_mode = 0;
|
||||||
return;
|
return;
|
||||||
@ -841,8 +810,7 @@ static void sunmouse_event(void *opaque,
|
|||||||
ChannelState *s = opaque;
|
ChannelState *s = opaque;
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
MS_DPRINTF("dx=%d dy=%d buttons=%01x\n", dx, dy, buttons_state);
|
trace_escc_sunmouse_event(dx, dy, buttons_state);
|
||||||
|
|
||||||
ch = 0x80 | 0x7; /* protocol start byte, no buttons pressed */
|
ch = 0x80 | 0x7; /* protocol start byte, no buttons pressed */
|
||||||
|
|
||||||
if (buttons_state & MOUSE_EVENT_LBUTTON)
|
if (buttons_state & MOUSE_EVENT_LBUTTON)
|
||||||
|
15
trace-events
15
trace-events
@ -446,3 +446,18 @@ disable qemu_co_mutex_lock_entry(void *mutex, void *self) "mutex %p self %p"
|
|||||||
disable qemu_co_mutex_lock_return(void *mutex, void *self) "mutex %p self %p"
|
disable qemu_co_mutex_lock_return(void *mutex, void *self) "mutex %p self %p"
|
||||||
disable qemu_co_mutex_unlock_entry(void *mutex, void *self) "mutex %p self %p"
|
disable qemu_co_mutex_unlock_entry(void *mutex, void *self) "mutex %p self %p"
|
||||||
disable qemu_co_mutex_unlock_return(void *mutex, void *self) "mutex %p self %p"
|
disable qemu_co_mutex_unlock_return(void *mutex, void *self) "mutex %p self %p"
|
||||||
|
|
||||||
|
# hw/escc.c
|
||||||
|
disable escc_put_queue(char channel, int b) "channel %c put: 0x%02x"
|
||||||
|
disable escc_get_queue(char channel, int val) "channel %c get 0x%02x"
|
||||||
|
disable escc_update_irq(int irq) "IRQ = %d"
|
||||||
|
disable escc_update_parameters(char channel, int speed, int parity, int data_bits, int stop_bits) "channel %c: speed=%d parity=%c data=%d stop=%d"
|
||||||
|
disable escc_mem_writeb_ctrl(char channel, uint32_t reg, uint32_t val) "Write channel %c, reg[%d] = %2.2x"
|
||||||
|
disable escc_mem_writeb_data(char channel, uint32_t val) "Write channel %c, ch %d"
|
||||||
|
disable escc_mem_readb_ctrl(char channel, uint32_t reg, uint8_t val) "Read channel %c, reg[%d] = %2.2x"
|
||||||
|
disable escc_mem_readb_data(char channel, uint32_t ret) "Read channel %c, ch %d"
|
||||||
|
disable escc_serial_receive_byte(char channel, int ch) "channel %c put ch %d"
|
||||||
|
disable escc_sunkbd_event_in(int ch) "Untranslated keycode %2.2x"
|
||||||
|
disable escc_sunkbd_event_out(int ch) "Translated keycode %2.2x"
|
||||||
|
disable escc_kbd_command(int val) "Command %d"
|
||||||
|
disable escc_sunmouse_event(int dx, int dy, int buttons_state) "dx=%d dy=%d buttons=%01x"
|
||||||
|
Loading…
Reference in New Issue
Block a user