Commit 109a1f32d0d3e23545f0286f2d6e0a80298f629d

Authored by H. Peter Anvin
1 parent 1f5e27a90a

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>

Showing 1 changed file with 16 additions and 14 deletions Side-by-side Diff

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 */