1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
%{
#include <assert.h>
#include "proc.h"
struct meminfo_mapping {
const char *name;
enum meminfo_id id;
};
typedef struct meminfo_mapping meminfo_mapping;
%}
meminfo_mapping;
%language=ANSI-C
%define slot-name name
%define hash-function-name meminfo_mapping_hash
%define lookup-function-name meminfo_mapping_lookup
%readonly-tables
%omit-struct-type
%struct-type
%includes
%%
MemTotal, MEMINFO_ID_MEM_TOTAL
MemFree, MEMINFO_ID_MEM_FREE
MemAvailable, MEMINFO_ID_MEM_AVAILABLE
Buffers, MEMINFO_ID_BUFFERS
Cached, MEMINFO_ID_CACHED
SwapCached, MEMINFO_ID_SWAP_CACHED
Active, MEMINFO_ID_ACTIVE
Inactive, MEMINFO_ID_INACTIVE
Active(anon), MEMINFO_ID_ACTIVE_ANON
Inactive(anon), MEMINFO_ID_INACTIVE_ANON
Active(file), MEMINFO_ID_ACTIVE_FILE
Inactive(file), MEMINFO_ID_INACTIVE_FILE
Unevictable, MEMINFO_ID_UNEVICTABLE
Mlocked, MEMINFO_ID_MLOCKED
HighTotal, MEMINFO_ID_HIGH_TOTAL
HighFree, MEMINFO_ID_HIGH_FREE
LowTotal, MEMINFO_ID_LOW_TOTAL
LowFree, MEMINFO_ID_LOW_FREE
SwapTotal, MEMINFO_ID_SWAP_TOTAL
SwapFree, MEMINFO_ID_SWAP_FREE
Dirty, MEMINFO_ID_DIRTY
Writeback, MEMINFO_ID_WRITEBACK
AnonPages, MEMINFO_ID_ANON_PAGES
Mapped, MEMINFO_ID_MAPPED
Shmem, MEMINFO_ID_SHMEM
Slab, MEMINFO_ID_SLAB
SReclaimable, MEMINFO_ID_SRECLAIMABLE
SUnreclaim, MEMINFO_ID_SUNRECLAIM
KernelStack, MEMINFO_ID_KERNEL_STACK
PageTables, MEMINFO_ID_PAGE_TABLES
NFS_Unstable, MEMINFO_ID_NFS_UNSTABLE
Bounce, MEMINFO_ID_BOUNCE
WritebackTmp, MEMINFO_ID_WRITEBACK_TMP
CommitLimit, MEMINFO_ID_COMMIT_LIMIT
Committed_AS, MEMINFO_ID_COMMITTED_AS
VmallocTotal, MEMINFO_ID_VMALLOC_TOTAL
VmallocUsed, MEMINFO_ID_VMALLOC_USED
VmallocChunk, MEMINFO_ID_VMALLOC_CHUNK
%%
enum meminfo_id meminfo_string_to_id(const char *str)
{
const struct meminfo_mapping *i;
assert(str);
i = meminfo_mapping_lookup(str, strlen(str));
return i ? i->id : MEMINFO_ID_INVALID;
}
|