--- /n/sources/plan9/386/include/u.h Sat Jan 10 10:00:05 2015 +++ /386/include/u.h Sun Jun 28 00:00:00 2026 @@ -6,6 +6,7 @@ typedef signed char schar; typedef long long vlong; typedef unsigned long long uvlong; +typedef long intptr; typedef unsigned long uintptr; typedef unsigned long usize; typedef uint Rune; --- /n/sources/plan9/amd64/include/u.h Sat Jan 10 10:00:05 2015 +++ /amd64/include/u.h Sun Jun 28 00:00:00 2026 @@ -6,8 +6,14 @@ typedef signed char schar; typedef long long vlong; typedef unsigned long long uvlong; +typedef long long intptr; typedef unsigned long long uintptr; -typedef unsigned long usize; +/* + * changing usize width from ulong changes system call binary interface due to + * dubious use of va_arg(list, usize) in 9k/port, thus breaks compatibility with + * binaries in the dump. + */ +typedef unsigned long usize; typedef uint Rune; typedef union FPdbleword FPdbleword; typedef uintptr jmp_buf[2]; @@ -15,6 +21,8 @@ #define JMPBUFPC 1 #define JMPBUFDPC 0 typedef unsigned int mpdigit; /* for /sys/include/mp.h */ + +/* rarely needed and overused */ typedef unsigned char u8int; typedef unsigned short u16int; typedef unsigned int u32int; @@ -55,6 +63,7 @@ }; }; +/* stdarg - little-endian 64-bit */ typedef char* va_list; #define va_start(list, start) list =\ (sizeof(start) < 8?\ @@ -70,3 +79,5 @@ (sizeof(mode) == 4)?\ ((list += 8), (mode*)list)[-2]:\ ((list += sizeof(mode)), (mode*)list)[-1]) + +#define _BITS64 /* for ape */ --- /n/sources/plan9/arm/include/u.h Sat Jan 10 10:00:05 2015 +++ /arm/include/u.h Sun Jun 28 00:00:00 2026 @@ -7,6 +7,7 @@ typedef signed char schar; typedef long long vlong; typedef unsigned long long uvlong; +typedef long intptr; typedef unsigned long uintptr; typedef unsigned long usize; typedef uint Rune; --- /n/sources/plan9/power/include/u.h Sat Jan 10 10:00:05 2015 +++ /power/include/u.h Sun Jun 28 00:00:00 2026 @@ -6,6 +6,7 @@ typedef signed char schar; typedef long long vlong; typedef unsigned long long uvlong; +typedef long intptr; typedef unsigned long uintptr; typedef unsigned long usize; typedef uint Rune; --- /n/sources/plan9/power64/include/u.h Sat Jan 10 10:00:05 2015 +++ /power64/include/u.h Sun Jun 28 00:00:00 2026 @@ -6,6 +6,7 @@ typedef signed char schar; typedef long long vlong; typedef unsigned long long uvlong; +typedef long long intptr; typedef unsigned long long uintptr; typedef unsigned long usize; typedef uint Rune; --- /n/sources/plan9/mips/include/u.h Sat Jan 10 10:00:05 2015 +++ /mips/include/u.h Sun Jun 28 00:00:00 2026 @@ -6,6 +6,7 @@ typedef signed char schar; typedef long long vlong; typedef unsigned long long uvlong; +typedef long intptr; typedef unsigned long uintptr; typedef unsigned long usize; typedef uint Rune; --- /n/sources/plan9/riscv/include/u.h Sat Jan 10 10:00:05 2015 +++ /riscv/include/u.h Sun Jun 28 00:00:00 2026 @@ -6,6 +6,7 @@ typedef signed char schar; typedef long long vlong; typedef unsigned long long uvlong; +typedef long intptr; typedef unsigned long uintptr; typedef unsigned long usize; typedef uint Rune;