Coverage Report

Created: 2026-10-28 06:53

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/build/src/basic/capability-from-name.inc
Line
Count
Source
1
/* ANSI-C code produced by gperf version 3.1 */
2
/* Command-line: /usr/bin/gperf --multiple-iterations=10 -L ANSI-C -t --ignore-case -N lookup_capability -H hash_capability_name -p -C src/basic/capability-from-name.gperf  */
3
/* Computed positions: -k'5,8-9' */
4
5
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
6
      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
7
      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
8
      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
9
      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
10
      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
11
      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
12
      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
13
      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
14
      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
15
      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
16
      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
17
      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
18
      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
19
      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
20
      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
21
      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
22
      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
23
      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
24
      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
25
      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
26
      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
27
      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
28
/* The character set is not based on ISO-646.  */
29
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
30
#endif
31
32
#line 1 "src/basic/capability-from-name.gperf"
33
34
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
35
#if __GNUC__ >= 15
36
_Pragma("GCC diagnostic ignored \"-Wzero-as-null-pointer-constant\"")
37
#endif
38
#include <linux/capability.h>
39
#line 8 "src/basic/capability-from-name.gperf"
40
struct capability_name { const char* name; int id; };
41
42
#define TOTAL_KEYWORDS 41
43
10.8k
#define MIN_WORD_LENGTH 7
44
22.8k
#define MAX_WORD_LENGTH 22
45
#define MIN_HASH_VALUE 11
46
6.96k
#define MAX_HASH_VALUE 58
47
/* maximum key range = 48, duplicates = 0 */
48
49
#ifndef GPERF_DOWNCASE
50
#define GPERF_DOWNCASE 1
51
static unsigned char gperf_downcase[256] =
52
  {
53
      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
54
     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
55
     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
56
     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
57
     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
58
    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
59
    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
60
    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
61
    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
62
    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
63
    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
64
    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
65
    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
66
    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
67
    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
68
    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
69
    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
70
    255
71
  };
72
#endif
73
74
#ifndef GPERF_CASE_STRCMP
75
#define GPERF_CASE_STRCMP 1
76
static int
77
gperf_case_strcmp (register const char *s1, register const char *s2)
78
2.24k
{
79
2.24k
  for (;;)
80
13.7k
    {
81
13.7k
      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
82
13.7k
      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
83
13.7k
      if (c1 != 0 && c1 == c2)
84
11.5k
        continue;
85
2.24k
      return (int)c1 - (int)c2;
86
13.7k
    }
87
2.24k
}
88
#endif
89
90
#ifdef __GNUC__
91
__inline
92
#else
93
#ifdef __cplusplus
94
inline
95
#endif
96
#endif
97
static unsigned int
98
hash_capability_name (register const char *str, register size_t len)
99
6.96k
{
100
6.96k
  static const unsigned char asso_values[] =
101
6.96k
    {
102
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
103
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
104
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
105
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
106
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
107
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
108
6.96k
      59, 59, 59, 59, 59,  6,  4,  7, 16, 12,
109
6.96k
      16, 37, 59,  1, 59, 10, 23, 14,  1, 10,
110
6.96k
      17, 59,  2,  0,  5,  1, 59, 28,  4, 59,
111
6.96k
      59, 59, 59, 59, 59,  0, 59,  6,  4,  7,
112
6.96k
      16, 12, 16, 37, 59,  1, 59, 10, 23, 14,
113
6.96k
       1, 10, 17, 59,  2,  0,  5,  1, 59, 28,
114
6.96k
       4, 59, 59, 59, 59, 59, 59, 59, 59, 59,
115
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
116
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
117
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
118
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
119
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
120
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
121
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
122
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
123
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
124
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
125
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
126
6.96k
      59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
127
6.96k
      59, 59, 59, 59, 59, 59
128
6.96k
    };
129
6.96k
  register unsigned int hval = len;
130
131
6.96k
  switch (hval)
132
6.96k
    {
133
2.10k
      default:
134
2.10k
        hval += asso_values[(unsigned char)str[8]];
135
      /*FALLTHROUGH*/
136
4.82k
      case 8:
137
4.82k
        hval += asso_values[(unsigned char)str[7]];
138
      /*FALLTHROUGH*/
139
6.96k
      case 7:
140
6.96k
      case 6:
141
6.96k
      case 5:
142
6.96k
        hval += asso_values[(unsigned char)str[4]];
143
6.96k
        break;
144
6.96k
    }
145
6.96k
  return hval;
146
6.96k
}
147
148
const struct capability_name *
149
lookup_capability (register const char *str, register size_t len)
150
11.4k
{
151
11.4k
  static const struct capability_name wordlist[] =
152
11.4k
    {
153
11.4k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
154
11.4k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
155
11.4k
      {(char*)0}, {(char*)0}, {(char*)0},
156
11.4k
#line 15 "src/basic/capability-from-name.gperf"
157
11.4k
      {"CAP_BPF", CAP_BPF},
158
11.4k
#line 38 "src/basic/capability-from-name.gperf"
159
11.4k
      {"CAP_SETUID", CAP_SETUID},
160
11.4k
#line 44 "src/basic/capability-from-name.gperf"
161
11.4k
      {"CAP_SYS_NICE", CAP_SYS_NICE},
162
11.4k
#line 33 "src/basic/capability-from-name.gperf"
163
11.4k
      {"CAP_NET_RAW", CAP_NET_RAW},
164
11.4k
#line 47 "src/basic/capability-from-name.gperf"
165
11.4k
      {"CAP_SYS_RAWIO", CAP_SYS_RAWIO},
166
11.4k
#line 41 "src/basic/capability-from-name.gperf"
167
11.4k
      {"CAP_SYS_BOOT", CAP_SYS_BOOT},
168
11.4k
#line 49 "src/basic/capability-from-name.gperf"
169
11.4k
      {"CAP_SYS_TIME", CAP_SYS_TIME},
170
11.4k
#line 48 "src/basic/capability-from-name.gperf"
171
11.4k
      {"CAP_SYS_RESOURCE", CAP_SYS_RESOURCE},
172
11.4k
#line 40 "src/basic/capability-from-name.gperf"
173
11.4k
      {"CAP_SYS_ADMIN", CAP_SYS_ADMIN},
174
11.4k
#line 30 "src/basic/capability-from-name.gperf"
175
11.4k
      {"CAP_NET_ADMIN", CAP_NET_ADMIN},
176
11.4k
#line 42 "src/basic/capability-from-name.gperf"
177
11.4k
      {"CAP_SYS_CHROOT", CAP_SYS_CHROOT},
178
11.4k
#line 32 "src/basic/capability-from-name.gperf"
179
11.4k
      {"CAP_NET_BROADCAST", CAP_NET_BROADCAST},
180
11.4k
#line 50 "src/basic/capability-from-name.gperf"
181
11.4k
      {"CAP_SYS_TTY_CONFIG", CAP_SYS_TTY_CONFIG},
182
11.4k
#line 23 "src/basic/capability-from-name.gperf"
183
11.4k
      {"CAP_IPC_OWNER", CAP_IPC_OWNER},
184
11.4k
#line 31 "src/basic/capability-from-name.gperf"
185
11.4k
      {"CAP_NET_BIND_SERVICE", CAP_NET_BIND_SERVICE},
186
11.4k
#line 12 "src/basic/capability-from-name.gperf"
187
11.4k
      {"CAP_AUDIT_READ", CAP_AUDIT_READ},
188
11.4k
#line 13 "src/basic/capability-from-name.gperf"
189
11.4k
      {"CAP_AUDIT_WRITE", CAP_AUDIT_WRITE},
190
11.4k
#line 43 "src/basic/capability-from-name.gperf"
191
11.4k
      {"CAP_SYS_MODULE", CAP_SYS_MODULE},
192
11.4k
#line 11 "src/basic/capability-from-name.gperf"
193
11.4k
      {"CAP_AUDIT_CONTROL", CAP_AUDIT_CONTROL},
194
11.4k
#line 45 "src/basic/capability-from-name.gperf"
195
11.4k
      {"CAP_SYS_PACCT", CAP_SYS_PACCT},
196
11.4k
#line 46 "src/basic/capability-from-name.gperf"
197
11.4k
      {"CAP_SYS_PTRACE", CAP_SYS_PTRACE},
198
11.4k
#line 21 "src/basic/capability-from-name.gperf"
199
11.4k
      {"CAP_FSETID", CAP_FSETID},
200
11.4k
#line 27 "src/basic/capability-from-name.gperf"
201
11.4k
      {"CAP_MAC_ADMIN", CAP_MAC_ADMIN},
202
11.4k
#line 35 "src/basic/capability-from-name.gperf"
203
11.4k
      {"CAP_SETFCAP", CAP_SETFCAP},
204
11.4k
#line 37 "src/basic/capability-from-name.gperf"
205
11.4k
      {"CAP_SETPCAP", CAP_SETPCAP},
206
11.4k
#line 22 "src/basic/capability-from-name.gperf"
207
11.4k
      {"CAP_IPC_LOCK", CAP_IPC_LOCK},
208
11.4k
#line 19 "src/basic/capability-from-name.gperf"
209
11.4k
      {"CAP_DAC_READ_SEARCH", CAP_DAC_READ_SEARCH},
210
11.4k
#line 14 "src/basic/capability-from-name.gperf"
211
11.4k
      {"CAP_BLOCK_SUSPEND", CAP_BLOCK_SUSPEND},
212
11.4k
#line 20 "src/basic/capability-from-name.gperf"
213
11.4k
      {"CAP_FOWNER", CAP_FOWNER},
214
11.4k
#line 28 "src/basic/capability-from-name.gperf"
215
11.4k
      {"CAP_MAC_OVERRIDE", CAP_MAC_OVERRIDE},
216
11.4k
#line 24 "src/basic/capability-from-name.gperf"
217
11.4k
      {"CAP_KILL", CAP_KILL},
218
11.4k
#line 18 "src/basic/capability-from-name.gperf"
219
11.4k
      {"CAP_DAC_OVERRIDE", CAP_DAC_OVERRIDE},
220
11.4k
#line 39 "src/basic/capability-from-name.gperf"
221
11.4k
      {"CAP_SYSLOG", CAP_SYSLOG},
222
11.4k
#line 25 "src/basic/capability-from-name.gperf"
223
11.4k
      {"CAP_LEASE", CAP_LEASE},
224
11.4k
#line 17 "src/basic/capability-from-name.gperf"
225
11.4k
      {"CAP_CHOWN", CAP_CHOWN},
226
11.4k
#line 16 "src/basic/capability-from-name.gperf"
227
11.4k
      {"CAP_CHECKPOINT_RESTORE", CAP_CHECKPOINT_RESTORE},
228
11.4k
#line 26 "src/basic/capability-from-name.gperf"
229
11.4k
      {"CAP_LINUX_IMMUTABLE", CAP_LINUX_IMMUTABLE},
230
11.4k
#line 36 "src/basic/capability-from-name.gperf"
231
11.4k
      {"CAP_SETGID", CAP_SETGID},
232
11.4k
#line 29 "src/basic/capability-from-name.gperf"
233
11.4k
      {"CAP_MKNOD", CAP_MKNOD},
234
11.4k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
235
11.4k
#line 51 "src/basic/capability-from-name.gperf"
236
11.4k
      {"CAP_WAKE_ALARM", CAP_WAKE_ALARM},
237
11.4k
      {(char*)0}, {(char*)0}, {(char*)0},
238
11.4k
#line 34 "src/basic/capability-from-name.gperf"
239
11.4k
      {"CAP_PERFMON", CAP_PERFMON}
240
11.4k
    };
241
242
11.4k
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
243
6.96k
    {
244
6.96k
      register unsigned int key = hash_capability_name (str, len);
245
246
6.96k
      if (key <= MAX_HASH_VALUE)
247
5.28k
        {
248
5.28k
          register const char *s = wordlist[key].name;
249
250
5.28k
          if (s && (((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
251
1.06k
            return &wordlist[key];
252
5.28k
        }
253
6.96k
    }
254
10.3k
  return 0;
255
11.4k
}