Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sysinfo: Use explicit types in <linux/sysinfo.h>

Change <linux/sysinfo.h> to use explicitly sized types. Replace
long/unsigned long with __kernel_[u]long_t so that a non-legacy 32-bit
ABI running on a 64-bit kernel can export those as 64-bit types.

Originally-by: H. J. Lu <hjl.tools@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>

+16 -14
+16 -14
include/linux/sysinfo.h
··· 1 1 #ifndef _LINUX_SYSINFO_H 2 2 #define _LINUX_SYSINFO_H 3 3 4 + #include <linux/types.h> 5 + 4 6 #define SI_LOAD_SHIFT 16 5 7 struct sysinfo { 6 - long uptime; /* Seconds since boot */ 7 - unsigned long loads[3]; /* 1, 5, and 15 minute load averages */ 8 - unsigned long totalram; /* Total usable main memory size */ 9 - unsigned long freeram; /* Available memory size */ 10 - unsigned long sharedram; /* Amount of shared memory */ 11 - unsigned long bufferram; /* Memory used by buffers */ 12 - unsigned long totalswap; /* Total swap space size */ 13 - unsigned long freeswap; /* swap space still available */ 14 - unsigned short procs; /* Number of current processes */ 15 - unsigned short pad; /* explicit padding for m68k */ 16 - unsigned long totalhigh; /* Total high memory size */ 17 - unsigned long freehigh; /* Available high memory size */ 18 - unsigned int mem_unit; /* Memory unit size in bytes */ 19 - char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ 8 + __kernel_long_t uptime; /* Seconds since boot */ 9 + __kernel_ulong_t loads[3]; /* 1, 5, and 15 minute load averages */ 10 + __kernel_ulong_t totalram; /* Total usable main memory size */ 11 + __kernel_ulong_t freeram; /* Available memory size */ 12 + __kernel_ulong_t sharedram; /* Amount of shared memory */ 13 + __kernel_ulong_t bufferram; /* Memory used by buffers */ 14 + __kernel_ulong_t totalswap; /* Total swap space size */ 15 + __kernel_ulong_t freeswap; /* swap space still available */ 16 + __u16 procs; /* Number of current processes */ 17 + __u16 pad; /* Explicit padding for m68k */ 18 + __kernel_ulong_t totalhigh; /* Total high memory size */ 19 + __kernel_ulong_t freehigh; /* Available high memory size */ 20 + __u32 mem_unit; /* Memory unit size in bytes */ 21 + char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; /* Padding: libc5 uses this.. */ 20 22 }; 21 23 22 24 #endif /* _LINUX_SYSINFO_H */