From f027f1a3f7c45bafd7f99776548ef73ba3cc22ec Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 2 Mar 2018 16:28:00 +0100 Subject: sys/linux: use size attributes on structs 1. Add size attribte on sockaddr. 2. Remove sockaddr's that are larger than 16 bytes from sockaddr. 3. Add size attribute on sockaddr_storage which wasn't actually 128 bytes. 4. Add size attribute to ifreq. 5. Fix ifmap field types as uncovered by the size attributes. 6. Fix sockaddr_storage_tcp from struct to union which is should be. 7. Make sockaddr_un_file fixed size as it should be. 8. Fix some explicit paddings that were only correct for 64 bits. --- sys/linux/socket_inet.txt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'sys/linux/socket_inet.txt') diff --git a/sys/linux/socket_inet.txt b/sys/linux/socket_inet.txt index b938b119c..92eda5939 100644 --- a/sys/linux/socket_inet.txt +++ b/sys/linux/socket_inet.txt @@ -25,8 +25,7 @@ sockaddr_in { sockaddr_storage_in { addr sockaddr_in - pad array[const[0, int64], 15] -} +} [size[SOCKADDR_STORAGE_SIZE], align_ptr] socket$inet(domain const[AF_INET], type flags[socket_type], proto int8) sock_in socketpair$inet(domain const[AF_INET], type flags[socket_type], proto int8, fds ptr[out, sock_in_pair]) @@ -197,8 +196,7 @@ sockaddr_ethernet_family = ARPHRD_ETHER, ARPHRD_FDDI, ARPHRD_IEEE802 sockaddr_ethernet { sa_family flags[sockaddr_ethernet_family, int16] sa_data mac_addr - pad array[const[0, int8], 8] -} +} [size[SOCKADDR_SIZE]] arp_flags = ATF_COM, ATF_PERM, ATF_PUBL, ATF_USETRAILERS, ATF_NETMASK, ATF_DONTPUB @@ -213,7 +211,7 @@ arpreq_in { ifreq_in { ifr_ifrn devname ifr_ifru ifr_ifru_in -} +} [size[IFREQ_SIZE]] ifr_ifru_in [ ifru_addrs sockaddr_in -- cgit mrf-deployment