summaryrefslogtreecommitdiff
path: root/linux-user
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>2019-10-21 13:48:57 +0200
committerLaurent Vivier <laurent@vivier.eu>2019-10-21 15:37:04 +0200
commit9a68960d8e7fdda16c2ea779a70f7f894ed2ce56 (patch)
treea0ce321a7b9e9c49bdec72c3948d933dbf4424e3 /linux-user
parent42b15d70cf0f14511dcb114e18ebcb01aae61808 (diff)
downloadqemu-9a68960d8e7fdda16c2ea779a70f7f894ed2ce56.zip
linux-user/syscall: Align target_sockaddr fields using ABI types
Target architectures align types differently for instance m68k aligns on 16bit whereas others on 32bit). Use ABI types to keep alignments good. Suggested-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20191021114857.20538-10-f4bug@amsat.org> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'linux-user')
-rw-r--r--linux-user/syscall_defs.h34
1 files changed, 17 insertions, 17 deletions
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 7694d72446..98c2119de9 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -134,22 +134,22 @@
#define TARGET_IOWRU(type,nr) TARGET_IOC(TARGET_IOC_READ|TARGET_IOC_WRITE,(type),(nr),TARGET_IOC_SIZEMASK)
struct target_sockaddr {
- uint16_t sa_family;
+ abi_ushort sa_family;
uint8_t sa_data[14];
};
struct target_sockaddr_ll {
- uint16_t sll_family; /* Always AF_PACKET */
- uint16_t sll_protocol; /* Physical layer protocol */
- int sll_ifindex; /* Interface number */
- uint16_t sll_hatype; /* ARP hardware type */
- uint8_t sll_pkttype; /* Packet type */
- uint8_t sll_halen; /* Length of address */
- uint8_t sll_addr[8]; /* Physical layer address */
+ abi_ushort sll_family; /* Always AF_PACKET */
+ abi_ushort sll_protocol; /* Physical layer protocol */
+ abi_int sll_ifindex; /* Interface number */
+ abi_ushort sll_hatype; /* ARP hardware type */
+ uint8_t sll_pkttype; /* Packet type */
+ uint8_t sll_halen; /* Length of address */
+ uint8_t sll_addr[8]; /* Physical layer address */
};
struct target_sockaddr_un {
- uint16_t su_family;
+ abi_ushort su_family;
uint8_t sun_path[108];
};
@@ -161,24 +161,24 @@ struct target_sockaddr_nl {
};
struct target_in_addr {
- uint32_t s_addr; /* big endian */
+ abi_uint s_addr; /* big endian */
};
struct target_sockaddr_in {
- uint16_t sin_family;
- int16_t sin_port; /* big endian */
+ abi_ushort sin_family;
+ abi_short sin_port; /* big endian */
struct target_in_addr sin_addr;
uint8_t __pad[sizeof(struct target_sockaddr) -
- sizeof(uint16_t) - sizeof(int16_t) -
+ sizeof(abi_ushort) - sizeof(abi_short) -
sizeof(struct target_in_addr)];
};
struct target_sockaddr_in6 {
- uint16_t sin6_family;
- uint16_t sin6_port; /* big endian */
- uint32_t sin6_flowinfo; /* big endian */
+ abi_ushort sin6_family;
+ abi_ushort sin6_port; /* big endian */
+ abi_uint sin6_flowinfo; /* big endian */
struct in6_addr sin6_addr; /* IPv6 address, big endian */
- uint32_t sin6_scope_id;
+ abi_uint sin6_scope_id;
};
struct target_sock_filter {