Replace {GET,SET}_USB_BUFFER_UINT8 with {Get,Set}UsbRxBufferUint8

This commit is contained in:
László Monda
2017-11-11 16:49:48 +01:00
parent f4de0df149
commit 22141ba1e3
14 changed files with 75 additions and 44 deletions

View File

@@ -6,9 +6,9 @@
void updateUsbBuffer(uint8_t usbStatusCode, uint16_t parserOffset, parser_stage_t parserStage) void updateUsbBuffer(uint8_t usbStatusCode, uint16_t parserOffset, parser_stage_t parserStage)
{ {
SET_USB_BUFFER_UINT8(0, usbStatusCode); SetUsbTxBufferUint8(0, usbStatusCode);
SET_USB_BUFFER_UINT16(1, parserOffset); SetUsbTxBufferUint16(1, parserOffset);
SET_USB_BUFFER_UINT8(3, parserStage); SetUsbTxBufferUint8(3, parserStage);
} }
void UsbCommand_ApplyConfig(void) void UsbCommand_ApplyConfig(void)

View File

@@ -4,5 +4,5 @@
void UsbCommand_GetAdcValue(void) void UsbCommand_GetAdcValue(void)
{ {
SET_USB_BUFFER_UINT32(1, ADC_Measure()); SetUsbTxBufferUint32(1, ADC_Measure());
} }

View File

@@ -7,9 +7,9 @@
void UsbCommand_GetKeyboardState(void) void UsbCommand_GetKeyboardState(void)
{ {
SET_USB_BUFFER_UINT8(1, IsEepromBusy); SetUsbTxBufferUint8(1, IsEepromBusy);
SET_USB_BUFFER_UINT8(2, MERGE_SENSOR_IS_MERGED); SetUsbTxBufferUint8(2, MERGE_SENSOR_IS_MERGED);
SET_USB_BUFFER_UINT8(3, UhkModuleStates[UhkModuleDriverId_LeftKeyboardHalf].moduleId); SetUsbTxBufferUint8(3, UhkModuleStates[UhkModuleDriverId_LeftKeyboardHalf].moduleId);
SET_USB_BUFFER_UINT8(4, UhkModuleStates[UhkModuleDriverId_LeftAddon].moduleId); SetUsbTxBufferUint8(4, UhkModuleStates[UhkModuleDriverId_LeftAddon].moduleId);
SET_USB_BUFFER_UINT8(5, UhkModuleStates[UhkModuleDriverId_RightAddon].moduleId); SetUsbTxBufferUint8(5, UhkModuleStates[UhkModuleDriverId_RightAddon].moduleId);
} }

View File

@@ -5,29 +5,29 @@
void UsbCommand_GetProperty(void) void UsbCommand_GetProperty(void)
{ {
uint8_t propertyId = GET_USB_BUFFER_UINT8(1); uint8_t propertyId = GetUsbRxBufferUint8(1);
switch (propertyId) { switch (propertyId) {
case SystemPropertyId_UsbProtocolVersion: case SystemPropertyId_UsbProtocolVersion:
SET_USB_BUFFER_UINT8(1, SYSTEM_PROPERTY_USB_PROTOCOL_VERSION); SetUsbTxBufferUint8(1, SYSTEM_PROPERTY_USB_PROTOCOL_VERSION);
break; break;
case SystemPropertyId_BridgeProtocolVersion: case SystemPropertyId_BridgeProtocolVersion:
SET_USB_BUFFER_UINT8(1, SYSTEM_PROPERTY_BRIDGE_PROTOCOL_VERSION); SetUsbTxBufferUint8(1, SYSTEM_PROPERTY_BRIDGE_PROTOCOL_VERSION);
break; break;
case SystemPropertyId_DataModelVersion: case SystemPropertyId_DataModelVersion:
SET_USB_BUFFER_UINT8(1, SYSTEM_PROPERTY_DATA_MODEL_VERSION); SetUsbTxBufferUint8(1, SYSTEM_PROPERTY_DATA_MODEL_VERSION);
break; break;
case SystemPropertyId_FirmwareVersion: case SystemPropertyId_FirmwareVersion:
SET_USB_BUFFER_UINT8(1, SYSTEM_PROPERTY_FIRMWARE_VERSION); SetUsbTxBufferUint8(1, SYSTEM_PROPERTY_FIRMWARE_VERSION);
break; break;
case SystemPropertyId_HardwareConfigSize: case SystemPropertyId_HardwareConfigSize:
SET_USB_BUFFER_UINT16(1, HARDWARE_CONFIG_SIZE); SetUsbTxBufferUint16(1, HARDWARE_CONFIG_SIZE);
break; break;
case SystemPropertyId_UserConfigSize: case SystemPropertyId_UserConfigSize:
SET_USB_BUFFER_UINT16(1, USER_CONFIG_SIZE); SetUsbTxBufferUint16(1, USER_CONFIG_SIZE);
break; break;
default: default:
SET_USB_BUFFER_UINT8(0, UsbStatusCode_GetProperty_InvalidProperty); SetUsbTxBufferUint8(0, UsbStatusCode_GetProperty_InvalidProperty);
break; break;
} }
} }

View File

@@ -5,10 +5,10 @@
void UsbCommand_JumpToSlaveBootloader(void) void UsbCommand_JumpToSlaveBootloader(void)
{ {
uint8_t slotId = GET_USB_BUFFER_UINT8(1); uint8_t slotId = GetUsbRxBufferUint8(1);
if (!IS_VALID_SLAVE_SLOT(slotId)) { if (!IS_VALID_SLAVE_SLOT(slotId)) {
SET_USB_BUFFER_UINT8(0, UsbStatusCode_JumpToSlaveBootloader_InvalidSlaveSlotId); SetUsbTxBufferUint8(0, UsbStatusCode_JumpToSlaveBootloader_InvalidSlaveSlotId);
return; return;
} }

View File

@@ -5,7 +5,7 @@
void UsbCommand_LaunchEepromTransferLegacy(void) void UsbCommand_LaunchEepromTransferLegacy(void)
{ {
uint8_t legacyEepromTransferId = GET_USB_BUFFER_UINT8(1); uint8_t legacyEepromTransferId = GetUsbRxBufferUint8(1);
switch (legacyEepromTransferId) { switch (legacyEepromTransferId) {
case 0: case 0:
EEPROM_LaunchTransfer(EepromOperation_Read, ConfigBufferId_HardwareConfig, NULL); EEPROM_LaunchTransfer(EepromOperation_Read, ConfigBufferId_HardwareConfig, NULL);

View File

@@ -5,11 +5,11 @@
void UsbCommand_ReadConfig(bool isHardware) void UsbCommand_ReadConfig(bool isHardware)
{ {
uint8_t length = GET_USB_BUFFER_UINT8(1); uint8_t length = GetUsbRxBufferUint8(1);
uint16_t offset = GET_USB_BUFFER_UINT16(2); uint16_t offset = GetUsbRxBufferUint16(2);
if (length > USB_GENERIC_HID_OUT_BUFFER_LENGTH - USB_STATUS_CODE_SIZE) { if (length > USB_GENERIC_HID_OUT_BUFFER_LENGTH - USB_STATUS_CODE_SIZE) {
SET_USB_BUFFER_UINT8(0, UsbStatusCode_ReadConfig_LengthTooLarge); SetUsbTxBufferUint8(0, UsbStatusCode_ReadConfig_LengthTooLarge);
return; return;
} }
@@ -17,7 +17,7 @@ void UsbCommand_ReadConfig(bool isHardware)
uint16_t bufferLength = isHardware ? HARDWARE_CONFIG_SIZE : USER_CONFIG_SIZE; uint16_t bufferLength = isHardware ? HARDWARE_CONFIG_SIZE : USER_CONFIG_SIZE;
if (offset + length > bufferLength) { if (offset + length > bufferLength) {
SET_USB_BUFFER_UINT8(0, UsbStatusCode_ReadConfig_BufferOutOfBounds); SetUsbTxBufferUint8(0, UsbStatusCode_ReadConfig_BufferOutOfBounds);
return; return;
} }

View File

@@ -6,7 +6,7 @@
void UsbCommand_Reenumerate(void) void UsbCommand_Reenumerate(void)
{ {
Wormhole.magicNumber = WORMHOLE_MAGIC_NUMBER; Wormhole.magicNumber = WORMHOLE_MAGIC_NUMBER;
Wormhole.enumerationMode = GET_USB_BUFFER_UINT8(1); Wormhole.enumerationMode = GetUsbRxBufferUint8(1);
Wormhole.timeoutMs = GET_USB_BUFFER_UINT32(2); Wormhole.timeoutMs = GetUsbRxBufferUint32(2);
NVIC_SystemReset(); NVIC_SystemReset();
} }

View File

@@ -5,6 +5,6 @@
void UsbCommand_SendKbootCommand(void) void UsbCommand_SendKbootCommand(void)
{ {
KbootDriverState.phase = 0; KbootDriverState.phase = 0;
KbootDriverState.i2cAddress = GET_USB_BUFFER_UINT8(2); KbootDriverState.i2cAddress = GetUsbRxBufferUint8(2);
KbootDriverState.commandType = GET_USB_BUFFER_UINT8(1); // Command should be set last. KbootDriverState.commandType = GetUsbRxBufferUint8(1); // Command should be set last.
} }

View File

@@ -5,7 +5,7 @@
void UsbCommand_SetLedPwmBrightness(void) void UsbCommand_SetLedPwmBrightness(void)
{ {
uint8_t brightnessPercent = GET_USB_BUFFER_UINT8(1); uint8_t brightnessPercent = GetUsbRxBufferUint8(1);
LedPwm_SetBrightness(brightnessPercent); LedPwm_SetBrightness(brightnessPercent);
UhkModuleStates[UhkModuleDriverId_LeftKeyboardHalf].sourceVars.ledPwmBrightness = brightnessPercent; UhkModuleStates[UhkModuleDriverId_LeftKeyboardHalf].sourceVars.ledPwmBrightness = brightnessPercent;
} }

View File

@@ -5,7 +5,7 @@
void UsbCommand_SetTestLed(void) void UsbCommand_SetTestLed(void)
{ {
bool isTestLedOn = GET_USB_BUFFER_UINT8(1); bool isTestLedOn = GetUsbRxBufferUint8(1);
TEST_LED_SET(isTestLedOn); TEST_LED_SET(isTestLedOn);
UhkModuleStates[UhkModuleDriverId_LeftKeyboardHalf].sourceVars.isTestLedOn = isTestLedOn; UhkModuleStates[UhkModuleDriverId_LeftKeyboardHalf].sourceVars.isTestLedOn = isTestLedOn;
} }

View File

@@ -5,12 +5,12 @@
void UsbCommand_WriteConfig(bool isHardware) void UsbCommand_WriteConfig(bool isHardware)
{ {
uint8_t length = GET_USB_BUFFER_UINT8(1); uint8_t length = GetUsbRxBufferUint8(1);
uint16_t offset = GET_USB_BUFFER_UINT16(2); uint16_t offset = GetUsbRxBufferUint16(2);
const uint8_t paramsSize = USB_STATUS_CODE_SIZE + sizeof(length) + sizeof(offset); const uint8_t paramsSize = USB_STATUS_CODE_SIZE + sizeof(length) + sizeof(offset);
if (length > USB_GENERIC_HID_OUT_BUFFER_LENGTH - paramsSize) { if (length > USB_GENERIC_HID_OUT_BUFFER_LENGTH - paramsSize) {
SET_USB_BUFFER_UINT8(0, UsbStatusCode_WriteConfig_LengthTooLarge); SetUsbTxBufferUint8(0, UsbStatusCode_WriteConfig_LengthTooLarge);
return; return;
} }
@@ -18,7 +18,7 @@ void UsbCommand_WriteConfig(bool isHardware)
uint16_t bufferLength = isHardware ? HARDWARE_CONFIG_SIZE : USER_CONFIG_SIZE; uint16_t bufferLength = isHardware ? HARDWARE_CONFIG_SIZE : USER_CONFIG_SIZE;
if (offset + length > bufferLength) { if (offset + length > bufferLength) {
SET_USB_BUFFER_UINT8(0, UsbStatusCode_WriteConfig_BufferOutOfBounds); SetUsbTxBufferUint8(0, UsbStatusCode_WriteConfig_BufferOutOfBounds);
return; return;
} }

View File

@@ -1,4 +1,5 @@
#include "usb_protocol_handler.h" #include "usb_protocol_handler.h"
#include "buffer.h"
#include "usb_commands/usb_command_get_property.h" #include "usb_commands/usb_command_get_property.h"
#include "usb_commands/usb_command_reenumerate.h" #include "usb_commands/usb_command_reenumerate.h"
#include "usb_commands/usb_command_set_test_led.h" #include "usb_commands/usb_command_set_test_led.h"
@@ -16,7 +17,7 @@
void UsbProtocolHandler(void) void UsbProtocolHandler(void)
{ {
bzero(GenericHidOutBuffer, USB_GENERIC_HID_OUT_BUFFER_LENGTH); bzero(GenericHidOutBuffer, USB_GENERIC_HID_OUT_BUFFER_LENGTH);
uint8_t command = GET_USB_BUFFER_UINT8(0); uint8_t command = GetUsbRxBufferUint8(0);
switch (command) { switch (command) {
case UsbCommandId_GetProperty: case UsbCommandId_GetProperty:
UsbCommand_GetProperty(); UsbCommand_GetProperty();
@@ -64,7 +65,37 @@ void UsbProtocolHandler(void)
UsbCommand_SendKbootCommand(); UsbCommand_SendKbootCommand();
break; break;
default: default:
SET_USB_BUFFER_UINT8(0, UsbStatusCode_InvalidCommand); SetUsbTxBufferUint8(0, UsbStatusCode_InvalidCommand);
break; break;
} }
} }
uint8_t GetUsbRxBufferUint8(uint32_t offset)
{
return GetBufferUint8(GenericHidInBuffer, offset);
}
uint16_t GetUsbRxBufferUint16(uint32_t offset)
{
return GetBufferUint16(GenericHidInBuffer, offset);
}
uint32_t GetUsbRxBufferUint32(uint32_t offset)
{
return GetBufferUint32(GenericHidInBuffer, offset);
}
void SetUsbTxBufferUint8(uint32_t offset, uint8_t value)
{
SetBufferUint8(GenericHidOutBuffer, offset, value);
}
void SetUsbTxBufferUint16(uint32_t offset, uint16_t value)
{
SetBufferUint16(GenericHidOutBuffer, offset, value);
}
void SetUsbTxBufferUint32(uint32_t offset, uint32_t value)
{
SetBufferUint32(GenericHidOutBuffer, offset, value);
}

View File

@@ -10,14 +10,6 @@
#define USB_STATUS_CODE_SIZE 1 #define USB_STATUS_CODE_SIZE 1
#define GET_USB_BUFFER_UINT8(offset) (*(uint8_t*)(GenericHidInBuffer+(offset)))
#define GET_USB_BUFFER_UINT16(offset) (*(uint16_t*)(GenericHidInBuffer+(offset)))
#define GET_USB_BUFFER_UINT32(offset) (*(uint32_t*)(GenericHidInBuffer+(offset)))
#define SET_USB_BUFFER_UINT8(offset, value) (*(uint8_t*)(GenericHidOutBuffer+(offset)) = (value))
#define SET_USB_BUFFER_UINT16(offset, value) (*(uint16_t*)(GenericHidOutBuffer+(offset)) = (value))
#define SET_USB_BUFFER_UINT32(offset, value) (*(uint32_t*)(GenericHidOutBuffer+(offset)) = (value))
// Typedefs: // Typedefs:
typedef enum { typedef enum {
@@ -47,4 +39,12 @@
void UsbProtocolHandler(void); void UsbProtocolHandler(void);
uint8_t GetUsbRxBufferUint8(uint32_t offset);
uint16_t GetUsbRxBufferUint16(uint32_t offset);
uint32_t GetUsbRxBufferUint32(uint32_t offset);
void SetUsbTxBufferUint8(uint32_t offset, uint8_t value);
void SetUsbTxBufferUint16(uint32_t offset, uint16_t value);
void SetUsbTxBufferUint32(uint32_t offset, uint32_t value);
#endif #endif