From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3117 Path: news.gmane.org!not-for-mail From: Zvi Gilboa Newsgroups: gmane.linux.lib.musl.general Subject: tool: musl-alltypes Date: Thu, 18 Apr 2013 23:37:17 -0400 Message-ID: <5170BBED.8000401@eservices.virginia.edu> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020205010401040307060607" X-Trace: ger.gmane.org 1366342650 25000 80.91.229.3 (19 Apr 2013 03:37:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 19 Apr 2013 03:37:30 +0000 (UTC) To: Original-X-From: musl-return-3121-gllmg-musl=m.gmane.org@lists.openwall.com Fri Apr 19 05:37:34 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UT28j-00034R-Ef for gllmg-musl@plane.gmane.org; Fri, 19 Apr 2013 05:37:33 +0200 Original-Received: (qmail 11837 invoked by uid 550); 19 Apr 2013 03:37:31 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 11825 invoked from network); 19 Apr 2013 03:37:31 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 X-Originating-IP: [71.206.170.124] Xref: news.gmane.org gmane.linux.lib.musl.general:3117 Archived-At: --------------020205010401040307060607 Content-Type: multipart/alternative; boundary="------------020907070007030708020909" --------------020907070007030708020909 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Greetings, /*musl-alltypes*/ displays for each of the types and structures from /include/bits/alltypes.h the following information: --name --size --signed/unsigned The tool was created with two objectives in mind: --> verify for each of the types and structures the size _/in effect/_ on a given platform. --> compare the results from two different platforms (i.e. i386 and nt32, x86_64 and nt64) and check for consistency. In addition to the source files, attached are also the tool's x86_64 test results. Best regards, Zvi --------------020907070007030708020909 Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Greetings,

musl-alltypes displays for each of the types and structures from /include/bits/alltypes.h the following information:

--name
--size
--signed/unsigned


The tool was created with two objectives in mind:

--> verify for each of the types and structures the size _in effect_ on a given platform.
--> compare the results from two different platforms (i.e. i386 and nt32, x86_64 and nt64) and check for consistency.


In addition to the source files, attached are also the tool's x86_64 test results.


Best regards,
Zvi

--------------020907070007030708020909-- --------------020205010401040307060607 Content-Type: text/x-csrc; name="musl-alltypes.c" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="musl-alltypes.c" /** * musl-alltypes: display for each of the types and structures from /include/bits/alltypes.h the following information: * --name * --size * --signed/unsigned * * this tool was created by Zvi Gilboa; * copyright (and left) deferred. * **/ #include "musl-alltypes.h" #include #include #include #define ISSIGNED(ntype) (((ntype)-1) < 0) ? "signed" : "unsigned" #define ISSIGNED_MEMBER(member) (member=-1 < 0) ? "signed" : "unsigned" #define DUMMY_STRUCT_SIZE "", sizeof(dummy), "" #define SIZE_AND_SIGNED(ntype) "", sizeof(ntype), ISSIGNED(ntype) #define MEMBER_SIZE_AND_SIGNED(member) sizeof(dummy.member), ISSIGNED_MEMBER(dummy.member) #define PTR_MEMBER_SIZE_AND_SIGNED(member) sizeof(dummy.member), ISSIGNED(dummy.member) void print_header(void) { printf("%24s%-12s\t%8s\t%12s\n","name","","size","signed"); printf("%24s%-12s\t%8s\t%12s\n","====","","====","======"); } void print_typedef_meta(const char * sz_name, const char * sz_member, size_t size, const char * sz_signed) { printf("%24s%-12s\t%8ld\t%12s\n",sz_name,sz_member,size,sz_signed); } void print_alltypes_meta(void) { print_typedef_meta("wchar_t", SIZE_AND_SIGNED(wchar_t)); #ifdef __NT__ print_typedef_meta("wchar_16t", SIZE_AND_SIGNED(wchar_16t)); print_typedef_meta("wchar_32t", SIZE_AND_SIGNED(wchar_32t)); #endif printf("\n"); print_typedef_meta("size_t", SIZE_AND_SIGNED(size_t)); print_typedef_meta("ssize_t", SIZE_AND_SIGNED(ssize_t)); print_typedef_meta("ptrdiff_t", SIZE_AND_SIGNED(ptrdiff_t)); printf("\n"); print_typedef_meta("wint_t", SIZE_AND_SIGNED(wint_t)); print_typedef_meta("wctrans_t", SIZE_AND_SIGNED(wctrans_t)); print_typedef_meta("wctype_t", SIZE_AND_SIGNED(wctype_t)); printf("\n"); print_typedef_meta("int8_t", SIZE_AND_SIGNED(int8_t)); print_typedef_meta("int16_t", SIZE_AND_SIGNED(int16_t)); print_typedef_meta("int32_t", SIZE_AND_SIGNED(int32_t)); print_typedef_meta("int64_t", SIZE_AND_SIGNED(int64_t)); printf("\n"); print_typedef_meta("uint8_t", SIZE_AND_SIGNED(uint8_t)); print_typedef_meta("uint16_t", SIZE_AND_SIGNED(uint16_t)); print_typedef_meta("uint32_t", SIZE_AND_SIGNED(uint32_t)); print_typedef_meta("uint64_t", SIZE_AND_SIGNED(uint64_t)); printf("\n"); print_typedef_meta("__uint16_t", SIZE_AND_SIGNED(__uint16_t)); print_typedef_meta("__uint32_t", SIZE_AND_SIGNED(__uint32_t)); print_typedef_meta("__uint64_t", SIZE_AND_SIGNED(__uint64_t)); printf("\n"); print_typedef_meta("int_fast8_t", SIZE_AND_SIGNED(int_fast8_t)); print_typedef_meta("int_fast16_t", SIZE_AND_SIGNED(int_fast16_t)); print_typedef_meta("int_fast32_t", SIZE_AND_SIGNED(int_fast32_t)); print_typedef_meta("int_fast64_t", SIZE_AND_SIGNED(int_fast64_t)); printf("\n"); print_typedef_meta("uint_fast8_t", SIZE_AND_SIGNED(uint_fast8_t)); print_typedef_meta("uint_fast16_t", SIZE_AND_SIGNED(uint_fast16_t)); print_typedef_meta("uint_fast32_t", SIZE_AND_SIGNED(uint_fast32_t)); print_typedef_meta("uint_fast64_t", SIZE_AND_SIGNED(uint_fast64_t)); printf("\n"); print_typedef_meta("intptr_t", SIZE_AND_SIGNED(intptr_t)); print_typedef_meta("uintptr_t", SIZE_AND_SIGNED(uintptr_t)); printf("\n"); print_typedef_meta("intmax_t", SIZE_AND_SIGNED(intmax_t)); print_typedef_meta("uintmax_t", SIZE_AND_SIGNED(uintmax_t)); printf("\n"); print_typedef_meta("float_t", SIZE_AND_SIGNED(float_t)); print_typedef_meta("double_t", SIZE_AND_SIGNED(double_t)); printf("\n"); print_typedef_meta("time_t", SIZE_AND_SIGNED(time_t)); print_typedef_meta("useconds_t", SIZE_AND_SIGNED(useconds_t)); print_typedef_meta("suseconds_t", SIZE_AND_SIGNED(suseconds_t)); printf("\n"); { va_list dummy; print_typedef_meta("va_list", DUMMY_STRUCT_SIZE); printf("\n"); } { struct timeval dummy; print_typedef_meta("timeval", DUMMY_STRUCT_SIZE); print_typedef_meta("timeval", ".tv_sec", MEMBER_SIZE_AND_SIGNED(tv_sec)); print_typedef_meta("timeval", ".tv_usec", MEMBER_SIZE_AND_SIGNED(tv_usec)); printf("\n"); } { struct timespec dummy; print_typedef_meta("timespec", DUMMY_STRUCT_SIZE); print_typedef_meta("timespec", ".tv_sec", MEMBER_SIZE_AND_SIGNED(tv_sec)); print_typedef_meta("timespec", ".tv_nsec", MEMBER_SIZE_AND_SIGNED(tv_nsec)); printf("\n"); } print_typedef_meta("pid_t", SIZE_AND_SIGNED(pid_t)); print_typedef_meta("id_t", SIZE_AND_SIGNED(id_t)); print_typedef_meta("uid_t", SIZE_AND_SIGNED(uid_t)); print_typedef_meta("gid_t", SIZE_AND_SIGNED(gid_t)); print_typedef_meta("key_t", SIZE_AND_SIGNED(key_t)); printf("\n"); { pthread_t dummy; print_typedef_meta("pthread_t", DUMMY_STRUCT_SIZE); printf("\n"); } print_typedef_meta("pthread_once_t", SIZE_AND_SIGNED(pthread_once_t)); print_typedef_meta("pthread_key_t", SIZE_AND_SIGNED(pthread_key_t)); print_typedef_meta("pthread_spinlock_t", SIZE_AND_SIGNED(pthread_spinlock_t)); printf("\n"); { pthread_attr_t dummy; print_typedef_meta("pthread_attr_t", DUMMY_STRUCT_SIZE); print_typedef_meta("pthread_attr_t", ".__u.__i[0]", MEMBER_SIZE_AND_SIGNED(__u.__i[0])); print_typedef_meta("pthread_attr_t", ".__u.__s[0]", MEMBER_SIZE_AND_SIGNED(__u.__s[0])); printf("\n"); } print_typedef_meta("pthread_mutexattr_t", SIZE_AND_SIGNED(pthread_mutexattr_t)); print_typedef_meta("pthread_condattr_t", SIZE_AND_SIGNED(pthread_condattr_t)); print_typedef_meta("pthread_barrierattr_t", SIZE_AND_SIGNED(pthread_barrierattr_t)); printf("\n"); { pthread_rwlockattr_t dummy; print_typedef_meta("pthread_rwlockattr_t", DUMMY_STRUCT_SIZE); print_typedef_meta("pthread_rwlockattr_t", ".__attr[0]", MEMBER_SIZE_AND_SIGNED(__attr[0])); printf("\n"); } { pthread_mutex_t dummy; print_typedef_meta("pthread_mutex_t", DUMMY_STRUCT_SIZE); print_typedef_meta("pthread_mutex_t", ".__u.__i[0]", MEMBER_SIZE_AND_SIGNED(__u.__i[0])); print_typedef_meta("pthread_mutex_t", ".__u.__p[0]", PTR_MEMBER_SIZE_AND_SIGNED(__u.__p[0])); printf("\n"); } { pthread_cond_t dummy; print_typedef_meta("pthread_cond_t", DUMMY_STRUCT_SIZE); print_typedef_meta("pthread_cond_t", ".__u.__i[0]", MEMBER_SIZE_AND_SIGNED(__u.__i[0])); print_typedef_meta("pthread_cond_t", ".__u.__p[0]", PTR_MEMBER_SIZE_AND_SIGNED(__u.__p[0])); printf("\n"); } { pthread_barrier_t dummy; print_typedef_meta("pthread_barrier_t", DUMMY_STRUCT_SIZE); print_typedef_meta("pthread_barrier_t", ".__u.__i[0]", MEMBER_SIZE_AND_SIGNED(__u.__i[0])); print_typedef_meta("pthread_barrier_t", ".__u.__p[0]", PTR_MEMBER_SIZE_AND_SIGNED(__u.__p[0])); printf("\n"); } { pthread_rwlock_t dummy; print_typedef_meta("pthread_rwlock_t", DUMMY_STRUCT_SIZE); print_typedef_meta("pthread_rwlock_t", ".__u.__i[0]", MEMBER_SIZE_AND_SIGNED(__u.__i[0])); print_typedef_meta("pthread_rwlock_t", ".__u.__p[0]", PTR_MEMBER_SIZE_AND_SIGNED(__u.__p[0])); printf("\n"); } print_typedef_meta("off_t", SIZE_AND_SIGNED(off_t)); print_typedef_meta("mode_t", SIZE_AND_SIGNED(mode_t)); print_typedef_meta("nlink_t", SIZE_AND_SIGNED(nlink_t)); print_typedef_meta("ino_t", SIZE_AND_SIGNED(ino_t)); print_typedef_meta("dev_t", SIZE_AND_SIGNED(dev_t)); print_typedef_meta("blksize_t", SIZE_AND_SIGNED(blksize_t)); print_typedef_meta("blkcnt_t", SIZE_AND_SIGNED(blkcnt_t)); print_typedef_meta("fsblkcnt_t", SIZE_AND_SIGNED(fsblkcnt_t)); print_typedef_meta("fsfilcnt_t", SIZE_AND_SIGNED(fsfilcnt_t)); printf("\n"); print_typedef_meta("timer_t", SIZE_AND_SIGNED(timer_t)); print_typedef_meta("clockid_t", SIZE_AND_SIGNED(clockid_t)); print_typedef_meta("clock_t", SIZE_AND_SIGNED(clock_t)); printf("\n"); { sigset_t dummy; print_typedef_meta("sigset_t", DUMMY_STRUCT_SIZE); print_typedef_meta("sigset_t", ".__bits:", 128/sizeof(long), "array-size"); print_typedef_meta("sigset_t", ".__bits[0]", MEMBER_SIZE_AND_SIGNED(__bits[0])); printf("\n"); } { siginfo_t dummy; print_typedef_meta("siginfo_t", DUMMY_STRUCT_SIZE); printf("\n"); } print_typedef_meta("socklen_t", SIZE_AND_SIGNED(socklen_t)); print_typedef_meta("sa_family_t", SIZE_AND_SIGNED(sa_family_t)); print_typedef_meta("in_port_t", SIZE_AND_SIGNED(in_port_t)); print_typedef_meta("in_addr_t", SIZE_AND_SIGNED(in_addr_t)); printf("\n"); { struct in_addr { in_addr_t s_addr; } dummy; print_typedef_meta("in_addr", DUMMY_STRUCT_SIZE); print_typedef_meta("in_addr", ".s_addr", MEMBER_SIZE_AND_SIGNED(s_addr)); printf("\n"); } print_typedef_meta("nl_item", SIZE_AND_SIGNED(nl_item)); printf("\n"); { struct iovec { void *iov_base; size_t iov_len; } dummy; print_typedef_meta("iovec", DUMMY_STRUCT_SIZE); print_typedef_meta("iovec", ".iov_base", PTR_MEMBER_SIZE_AND_SIGNED(iov_base)); print_typedef_meta("iovec", ".iov_len", MEMBER_SIZE_AND_SIGNED(iov_len)); printf("\n"); } } int main(void) { print_header(); print_alltypes_meta(); return 0; } --------------020205010401040307060607 Content-Type: text/x-chdr; name="musl-alltypes.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="musl-alltypes.h" I2lmbmRlZiBfTVVTTF9BTExUWVBFU19IX0lOQ0xVREVEXw0KI2RlZmluZSBfTVVTTF9BTExU WVBFU19IX0lOQ0xVREVEXw0KCiNkZWZpbmUgX19ORUVEX3djaGFyX3QKDQojZGVmaW5lIF9f TkVFRF9zaXplX3QKI2RlZmluZSBfX05FRURfc3NpemVfdAojZGVmaW5lIF9fTkVFRF9wdHJk aWZmX3QKCiNkZWZpbmUgX19ORUVEX3dpbnRfdAojZGVmaW5lIF9fTkVFRF93Y3RyYW5zX3QK I2RlZmluZSBfX05FRURfd2N0eXBlX3QKCiNkZWZpbmUgX19ORUVEX2ludDhfdAojZGVmaW5l IF9fTkVFRF9pbnQxNl90CiNkZWZpbmUgX19ORUVEX2ludDMyX3QKI2RlZmluZSBfX05FRURf aW50NjRfdAoKI2RlZmluZSBfX05FRURfdWludDhfdAojZGVmaW5lIF9fTkVFRF91aW50MTZf dAojZGVmaW5lIF9fTkVFRF91aW50MzJfdAojZGVmaW5lIF9fTkVFRF91aW50NjRfdAoKI2Rl ZmluZSBfX05FRURfX191aW50MTZfdAojZGVmaW5lIF9fTkVFRF9fX3VpbnQzMl90CiNkZWZp bmUgX19ORUVEX19fdWludDY0X3QKCiNkZWZpbmUgX19ORUVEX2ludF9mYXN0OF90CiNkZWZp bmUgX19ORUVEX2ludF9mYXN0MTZfdAojZGVmaW5lIF9fTkVFRF9pbnRfZmFzdDMyX3QKI2Rl ZmluZSBfX05FRURfaW50X2Zhc3Q2NF90CgojZGVmaW5lIF9fTkVFRF91aW50X2Zhc3Q4X3QK I2RlZmluZSBfX05FRURfdWludF9mYXN0MTZfdAojZGVmaW5lIF9fTkVFRF91aW50X2Zhc3Qz Ml90CiNkZWZpbmUgX19ORUVEX3VpbnRfZmFzdDY0X3QKCiNkZWZpbmUgX19ORUVEX2ludHB0 cl90CiNkZWZpbmUgX19ORUVEX3VpbnRwdHJfdAoKI2RlZmluZSBfX05FRURfaW50bWF4X3QK I2RlZmluZSBfX05FRURfdWludG1heF90CgojZGVmaW5lIF9fTkVFRF9mbG9hdF90CiNkZWZp bmUgX19ORUVEX2RvdWJsZV90CgojZGVmaW5lIF9fTkVFRF90aW1lX3QKI2RlZmluZSBfX05F RURfdXNlY29uZHNfdAojZGVmaW5lIF9fTkVFRF9zdXNlY29uZHNfdAoKI2RlZmluZSBfX05F RURfdmFfbGlzdAoKI2RlZmluZSBfX05FRURfc3RydWN0X3RpbWV2YWwKI2RlZmluZSBfX05F RURfc3RydWN0X3RpbWVzcGVjCgojZGVmaW5lIF9fTkVFRF9waWRfdAojZGVmaW5lIF9fTkVF RF9pZF90CiNkZWZpbmUgX19ORUVEX3VpZF90CiNkZWZpbmUgX19ORUVEX2dpZF90CiNkZWZp bmUgX19ORUVEX2tleV90CgojZGVmaW5lIF9fTkVFRF9wdGhyZWFkX3QKI2RlZmluZSBfX05F RURfcHRocmVhZF9vbmNlX3QKI2RlZmluZSBfX05FRURfcHRocmVhZF9rZXlfdAojZGVmaW5l IF9fTkVFRF9wdGhyZWFkX3NwaW5sb2NrX3QKCiNkZWZpbmUgX19ORUVEX3B0aHJlYWRfYXR0 cl90CiNkZWZpbmUgX19ORUVEX3B0aHJlYWRfbXV0ZXhhdHRyX3QKI2RlZmluZSBfX05FRURf cHRocmVhZF9jb25kYXR0cl90CiNkZWZpbmUgX19ORUVEX3B0aHJlYWRfYmFycmllcmF0dHJf dAojZGVmaW5lIF9fTkVFRF9wdGhyZWFkX3J3bG9ja2F0dHJfdAoKI2RlZmluZSBfX05FRURf cHRocmVhZF9tdXRleF90CiNkZWZpbmUgX19ORUVEX3B0aHJlYWRfY29uZF90CiNkZWZpbmUg X19ORUVEX3B0aHJlYWRfYmFycmllcl90CiNkZWZpbmUgX19ORUVEX3B0aHJlYWRfcndsb2Nr X3QKCiNkZWZpbmUgX19ORUVEX29mZl90CiNkZWZpbmUgX19ORUVEX21vZGVfdAojZGVmaW5l IF9fTkVFRF9ubGlua190CiNkZWZpbmUgX19ORUVEX2lub190CiNkZWZpbmUgX19ORUVEX2Rl dl90CiNkZWZpbmUgX19ORUVEX2Jsa3NpemVfdAojZGVmaW5lIF9fTkVFRF9ibGtjbnRfdAoj ZGVmaW5lIF9fTkVFRF9mc2Jsa2NudF90CiNkZWZpbmUgX19ORUVEX2ZzZmlsY250X3QKCiNk ZWZpbmUgX19ORUVEX3RpbWVyX3QKI2RlZmluZSBfX05FRURfY2xvY2tpZF90CiNkZWZpbmUg X19ORUVEX2Nsb2NrX3QKCiNkZWZpbmUgX19ORUVEX3NpZ3NldF90CiNkZWZpbmUgX19ORUVE X3NpZ2luZm9fdAoKI2RlZmluZSBfX05FRURfc29ja2xlbl90CiNkZWZpbmUgX19ORUVEX3Nh X2ZhbWlseV90CiNkZWZpbmUgX19ORUVEX2luX3BvcnRfdAojZGVmaW5lIF9fTkVFRF9pbl9h ZGRyX3QKI2RlZmluZSBfX05FRURfaW5fYWRkcgoKI2RlZmluZSBfX05FRURfRklMRSAgICAg ICAgIC8qIG5vIG91dHB1dDogZGVwZW5kcyBvbiAvc3JjL2ludGVybmFsL3N0ZGlvX2ltcGwu aCAqLwojZGVmaW5lIF9fTkVFRF9ubF9pdGVtCiNkZWZpbmUgX19ORUVEX2xvY2FsZV90ICAg ICAvKiBubyBvdXRwdXQ6IGRlcGVuZHMgb24gL3NyYy9pbnRlcm5hbC9sb2NhbGVfaW1wbC5o ICovCgojZGVmaW5lIF9fTkVFRF9zdHJ1Y3RfaW92ZWMKCiNlbmRpZiAvLyBfTVVTTF9BTExU WVBFU19IX0lOQ0xVREVEXw0K --------------020205010401040307060607 Content-Type: text/plain; charset="UTF-8"; name="musl-alltypes.x86_64" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="musl-alltypes.x86_64" name size signed ==== ==== ====== wchar_t 4 signed size_t 8 unsigned ssize_t 8 signed ptrdiff_t 8 signed wint_t 4 signed wctrans_t 8 unsigned wctype_t 8 unsigned int8_t 1 signed int16_t 2 signed int32_t 4 signed int64_t 8 signed uint8_t 1 unsigned uint16_t 2 unsigned uint32_t 4 unsigned uint64_t 8 unsigned __uint16_t 2 unsigned __uint32_t 4 unsigned __uint64_t 8 unsigned int_fast8_t 1 signed int_fast16_t 4 signed int_fast32_t 4 signed int_fast64_t 8 signed uint_fast8_t 1 unsigned uint_fast16_t 4 unsigned uint_fast32_t 4 unsigned uint_fast64_t 8 unsigned intptr_t 8 signed uintptr_t 8 unsigned intmax_t 8 signed uintmax_t 8 unsigned float_t 4 signed double_t 8 signed time_t 8 signed useconds_t 4 unsigned suseconds_t 8 signed va_list 24 timeval 16 timeval.tv_sec 8 signed timeval.tv_usec 8 signed timespec 16 timespec.tv_sec 8 signed timespec.tv_nsec 8 signed pid_t 4 signed id_t 4 signed uid_t 4 unsigned gid_t 4 unsigned key_t 4 signed pthread_t 8 pthread_once_t 4 signed pthread_key_t 4 signed pthread_spinlock_t 4 signed pthread_attr_t 56 pthread_attr_t.__u.__i[0] 4 signed pthread_attr_t.__u.__s[0] 8 signed pthread_mutexattr_t 4 unsigned pthread_condattr_t 4 unsigned pthread_barrierattr_t 4 unsigned pthread_rwlockattr_t 8 pthread_rwlockattr_t.__attr[0] 4 signed pthread_mutex_t 40 pthread_mutex_t.__u.__i[0] 4 signed pthread_mutex_t.__u.__p[0] 8 unsigned pthread_cond_t 48 pthread_cond_t.__u.__i[0] 4 signed pthread_cond_t.__u.__p[0] 8 unsigned pthread_barrier_t 32 pthread_barrier_t.__u.__i[0] 4 signed pthread_barrier_t.__u.__p[0] 8 unsigned pthread_rwlock_t 56 pthread_rwlock_t.__u.__i[0] 4 signed pthread_rwlock_t.__u.__p[0] 8 unsigned off_t 8 signed mode_t 4 unsigned nlink_t 8 unsigned ino_t 8 unsigned dev_t 8 unsigned blksize_t 8 signed blkcnt_t 8 signed fsblkcnt_t 8 unsigned fsfilcnt_t 8 unsigned timer_t 8 unsigned clockid_t 4 signed clock_t 8 signed sigset_t 128 sigset_t.__bits: 16 array-size sigset_t.__bits[0] 8 signed siginfo_t 128 socklen_t 4 unsigned sa_family_t 2 unsigned in_port_t 2 unsigned in_addr_t 4 unsigned in_addr 4 in_addr.s_addr 4 signed nl_item 4 signed iovec 16 iovec.iov_base 8 unsigned iovec.iov_len 8 signed --------------020205010401040307060607--