m48t59: avoid structure holes spotted by pahole
Report from pahole on amd64 host:
struct M48t59State {
uint32_t type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
qemu_irq IRQ; /* 8 8 */
uint32_t io_base; /* 16 4 */
uint32_t size; /* 20 4 */
time_t time_offset; /* 24 8 */
time_t stop_time; /* 32 8 */
struct tm alarm; /* 40 56 */
/* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */
struct QEMUTimer * alrm_timer; /* 96 8 */
struct QEMUTimer * wd_timer; /* 104 8 */
uint8_t lock; /* 112 1 */
/* XXX 1 byte hole, try to pack */
uint16_t addr; /* 114 2 */
/* XXX 4 bytes hole, try to pack */
uint8_t * buffer; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
/* size: 128, cachelines: 2 */
/* sum members: 119, holes: 3, sum holes: 9 */
}; /* definitions: 1 */
Fix by rearranging the structure to avoid padding.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
d7b9553489
commit
42c812b98b
|
|
@ -50,8 +50,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct M48t59State {
|
struct M48t59State {
|
||||||
/* Model parameters */
|
|
||||||
uint32_t type; // 2 = m48t02, 8 = m48t08, 59 = m48t59
|
|
||||||
/* Hardware parameters */
|
/* Hardware parameters */
|
||||||
qemu_irq IRQ;
|
qemu_irq IRQ;
|
||||||
uint32_t io_base;
|
uint32_t io_base;
|
||||||
|
|
@ -64,9 +62,12 @@ struct M48t59State {
|
||||||
struct QEMUTimer *alrm_timer;
|
struct QEMUTimer *alrm_timer;
|
||||||
struct QEMUTimer *wd_timer;
|
struct QEMUTimer *wd_timer;
|
||||||
/* NVRAM storage */
|
/* NVRAM storage */
|
||||||
uint8_t lock;
|
|
||||||
uint16_t addr;
|
|
||||||
uint8_t *buffer;
|
uint8_t *buffer;
|
||||||
|
/* Model parameters */
|
||||||
|
uint32_t type; /* 2 = m48t02, 8 = m48t08, 59 = m48t59 */
|
||||||
|
/* NVRAM storage */
|
||||||
|
uint16_t addr;
|
||||||
|
uint8_t lock;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct M48t59ISAState {
|
typedef struct M48t59ISAState {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue