diff --git a/src/keyboards/example/kb.c b/src/keyboards/example/kb.c index ef78baa..dea1c17 100644 --- a/src/keyboards/example/kb.c +++ b/src/keyboards/example/kb.c @@ -1,17 +1,17 @@ #include "report.h" #include "usb.h" -void kb_send_report(report_keyboard_t *report) +void kb_send_report(__xdata report_keyboard_t *report) { usb_send_report(report); } -void kb_send_nkro(report_nkro_t *report) +void kb_send_nkro(__xdata report_nkro_t *report) { usb_send_nkro(report); } -void kb_send_extra(report_extra_t *report) +void kb_send_extra(__xdata report_extra_t *report) { usb_send_extra(report); } diff --git a/src/keyboards/eyooso-z11/kb.c b/src/keyboards/eyooso-z11/kb.c index ef78baa..dea1c17 100644 --- a/src/keyboards/eyooso-z11/kb.c +++ b/src/keyboards/eyooso-z11/kb.c @@ -1,17 +1,17 @@ #include "report.h" #include "usb.h" -void kb_send_report(report_keyboard_t *report) +void kb_send_report(__xdata report_keyboard_t *report) { usb_send_report(report); } -void kb_send_nkro(report_nkro_t *report) +void kb_send_nkro(__xdata report_nkro_t *report) { usb_send_nkro(report); } -void kb_send_extra(report_extra_t *report) +void kb_send_extra(__xdata report_extra_t *report) { usb_send_extra(report); } diff --git a/src/platform/sh68f90a/usb.c b/src/platform/sh68f90a/usb.c index 6cf5964..9c4ec08 100644 --- a/src/platform/sh68f90a/usb.c +++ b/src/platform/sh68f90a/usb.c @@ -357,7 +357,7 @@ void usb_init() IEN1 |= _EUSB; } -void usb_send_report(report_keyboard_t *report) +void usb_send_report(__xdata report_keyboard_t *report) { uint8_t timeout = 0; while (timeout < 255 && EP1CON & _IEP1RDY) { @@ -371,7 +371,7 @@ void usb_send_report(report_keyboard_t *report) SET_EP1_IN_RDY; } -void usb_send_nkro(report_nkro_t *report) +void usb_send_nkro(__xdata report_nkro_t *report) { uint8_t timeout = 0; while (timeout < 255 && EP2CON & _IEP2RDY) { @@ -385,7 +385,7 @@ void usb_send_nkro(report_nkro_t *report) SET_EP2_IN_RDY; } -void usb_send_extra(report_extra_t *report) +void usb_send_extra(__xdata report_extra_t *report) { uint8_t timeout = 0; while (timeout < 255 && EP2CON & _IEP2RDY) { diff --git a/src/platform/sh68f90a/usb.h b/src/platform/sh68f90a/usb.h index 4d098f3..d3914d3 100644 --- a/src/platform/sh68f90a/usb.h +++ b/src/platform/sh68f90a/usb.h @@ -10,9 +10,9 @@ enum { }; void usb_init(); -void usb_send_report(report_keyboard_t *report); -void usb_send_nkro(report_nkro_t *report); -void usb_send_extra(report_extra_t *report); +void usb_send_report(__xdata report_keyboard_t *report); +void usb_send_nkro(__xdata report_nkro_t *report); +void usb_send_extra(__xdata report_extra_t *report); uint8_t usb_device_state_get_protocol(); void usb_interrupt_handler() __interrupt(_INT_USB); diff --git a/src/smk/host.c b/src/smk/host.c index 9c1af80..b77d4b7 100644 --- a/src/smk/host.c +++ b/src/smk/host.c @@ -6,6 +6,8 @@ static __xdata uint16_t last_system_usage = 0; static __xdata uint16_t last_consumer_usage = 0; +static __xdata report_extra_t extra_report; + void host_keyboard_send(__xdata report_keyboard_t *report) { kb_send_report(report); @@ -21,11 +23,10 @@ void host_system_send(uint16_t usage) if (usage == last_system_usage) return; last_system_usage = usage; - __xdata report_extra_t report = { - .report_id = REPORT_ID_SYSTEM, - .usage = usage, - }; - kb_send_extra(&report); + extra_report.report_id = REPORT_ID_SYSTEM; + extra_report.usage = usage; + + kb_send_extra(&extra_report); } void host_consumer_send(uint16_t usage) @@ -33,9 +34,8 @@ void host_consumer_send(uint16_t usage) if (usage == last_consumer_usage) return; last_consumer_usage = usage; - __xdata report_extra_t report = { - .report_id = REPORT_ID_CONSUMER, - .usage = usage, - }; - kb_send_extra(&report); + extra_report.report_id = REPORT_ID_CONSUMER; + extra_report.usage = usage; + + kb_send_extra(&extra_report); }