From 08c20106c98b1ade48a87c900da0db3b2c8f41d8 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Thu, 19 Jan 2012 12:40:16 +0100 Subject: [PATCH] fixed structure padding on certain architecures --- src/remote-proto.h | 21 ++++++--------------- src/static-programs.h | 12 ++++-------- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/remote-proto.h b/src/remote-proto.h index 4b7d74c..09e9188 100644 --- a/src/remote-proto.h +++ b/src/remote-proto.h @@ -117,8 +117,6 @@ struct remote_msg_config_offsets_t { }; struct remote_msg_start_program_t { - uint8_t address; - uint8_t cmd; uint8_t script; union program_params_t params; }; @@ -143,8 +141,7 @@ enum startup_mode_t { STARTUP_PROGRAM = 1, }; -/* startup parameters including mode, size: 12 byte */ -struct startup_parameters_t { +struct remote_msg_config_startup_t { enum startup_mode_t mode; union { @@ -155,17 +152,11 @@ struct startup_parameters_t { * size: 11 byte */ struct { uint8_t program; - uint8_t program_parameters[10]; + union program_params_t program_parameters; }; }; }; -struct remote_msg_config_startup_t { - uint8_t address; - uint8_t cmd; - struct startup_parameters_t params; -}; - /* bootloader commands */ #define BOOTLOADER_MAGIC_BYTE1 0x6b #define BOOTLOADER_MAGIC_BYTE2 0x56 @@ -203,10 +194,10 @@ struct remote_msg_boot_crc_flash_t { struct remote_msg_t { uint8_t address; uint8_t cmd; - + union { uint8_t data[REMOTE_MSG_LEN-2]; - + struct remote_msg_fade_rgb_t fade_rgb; struct remote_msg_fade_hsv_t fade_hsv; struct remote_msg_save_rgb_t save_rgb; @@ -217,13 +208,13 @@ struct remote_msg_t { struct remote_msg_stop_t msg_stop; struct remote_msg_pull_int_t pull_int; struct remote_msg_modify_current_t modify_current; - + struct remote_msg_bootloader_t bootloader; struct remote_msg_boot_config_t boot_config; struct remote_msg_boot_data_t boot_data; struct remote_msg_boot_crc_check_t boot_crc_check; struct remote_msg_boot_crc_flash_t boot_crc_flash; }; -}; +} __attribute__ ((__packed__)); /* required to avoid padding in structure */ #endif diff --git a/src/static-programs.h b/src/static-programs.h index 3a752b9..b9bb620 100644 --- a/src/static-programs.h +++ b/src/static-programs.h @@ -32,8 +32,7 @@ #define PROGRAM_PARAMETER_SIZE 10 /* parameter structures (max 10 bytes) */ -struct colorwheel_params_t -{ +struct colorwheel_params_t { uint8_t fade_step; uint8_t fade_delay; uint8_t fade_sleep; @@ -44,8 +43,7 @@ struct colorwheel_params_t uint8_t value; }; -struct random_params_t -{ +struct random_params_t { uint16_t seed; uint8_t use_address:1; uint8_t wait_for_fade:1; @@ -58,8 +56,7 @@ struct random_params_t uint8_t min_distance; }; -struct replay_params_t -{ +struct replay_params_t { uint8_t start; uint8_t end; enum { @@ -69,8 +66,7 @@ struct replay_params_t } repeat; }; -union program_params_t -{ +union program_params_t { /* parameters for static programs */ uint8_t raw[PROGRAM_PARAMETER_SIZE]; struct colorwheel_params_t colorwheel;