Coverage Report

Created: 2025-11-16 06:36

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/build/src/udev/link-config-gperf.c
Line
Count
Source
1
/* ANSI-C code produced by gperf version 3.1 */
2
/* Command-line: /usr/bin/gperf --output-file src/udev/link-config-gperf.c ../../src/systemd/src/udev/net/link-config-gperf.gperf  */
3
/* Computed positions: -k'6,12,17-18,20,$' */
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 2 "../../src/systemd/src/udev/net/link-config-gperf.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 <stddef.h>
39
#include "condition.h"
40
#include "conf-parser.h"
41
#include "ethtool-util.h"
42
#include "link-config.h"
43
#include "net-condition.h"
44
#include "netif-sriov.h"
45
#include "socket-util.h"
46
#include <string.h>
47
48
#define TOTAL_KEYWORDS 118
49
155k
#define MIN_WORD_LENGTH 8
50
311k
#define MAX_WORD_LENGTH 41
51
#define MIN_HASH_VALUE 9
52
154k
#define MAX_HASH_VALUE 202
53
/* maximum key range = 194, duplicates = 0 */
54
55
#ifdef __GNUC__
56
__inline
57
#else
58
#ifdef __cplusplus
59
inline
60
#endif
61
#endif
62
static unsigned int
63
link_config_gperf_hash (register const char *str, register size_t len)
64
154k
{
65
154k
  static const unsigned char asso_values[] =
66
154k
    {
67
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
68
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
69
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
70
154k
      203, 203,  60, 203, 203, 203, 203, 203, 203, 203,
71
154k
      203, 203,   5, 203, 203,  95,   0,  10, 203, 203,
72
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
73
154k
      203, 203, 203, 203, 203,  20,   0,   0,  65,  15,
74
154k
      125,  25,  35,  40, 203, 203,  30,  97,   0,  25,
75
154k
        0, 203,   5,  45,   0,  15,  20,  25, 203, 203,
76
154k
      203, 203, 203, 203, 203, 203, 203,   0, 203,  10,
77
154k
       50,   0,   0,   0,  40,   0, 203,  25,   5,  75,
78
154k
        0,   0,   5,  65,   0,   0,  35,  40,  20,   5,
79
154k
        0,  15,  40, 203, 203, 203, 203, 203, 203, 203,
80
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
81
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
82
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
83
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
84
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
85
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
86
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
87
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
88
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
89
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
90
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
91
154k
      203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
92
154k
      203, 203, 203, 203, 203, 203
93
154k
    };
94
154k
  register unsigned int hval = len;
95
96
154k
  switch (hval)
97
154k
    {
98
19.8k
      default:
99
19.8k
        hval += asso_values[(unsigned char)str[19]];
100
      /*FALLTHROUGH*/
101
20.9k
      case 19:
102
27.3k
      case 18:
103
27.3k
        hval += asso_values[(unsigned char)str[17]];
104
      /*FALLTHROUGH*/
105
29.2k
      case 17:
106
29.2k
        hval += asso_values[(unsigned char)str[16]];
107
      /*FALLTHROUGH*/
108
36.4k
      case 16:
109
39.3k
      case 15:
110
46.0k
      case 14:
111
54.8k
      case 13:
112
141k
      case 12:
113
141k
        hval += asso_values[(unsigned char)str[11]];
114
      /*FALLTHROUGH*/
115
143k
      case 11:
116
149k
      case 10:
117
152k
      case 9:
118
154k
      case 8:
119
154k
      case 7:
120
154k
      case 6:
121
154k
        hval += asso_values[(unsigned char)str[5]];
122
154k
        break;
123
154k
    }
124
154k
  return hval + asso_values[(unsigned char)str[len - 1]];
125
154k
}
126
127
const struct ConfigPerfItem *
128
link_config_gperf_lookup (register const char *str, register size_t len)
129
155k
{
130
155k
  static const struct ConfigPerfItem wordlist[] =
131
155k
    {
132
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
133
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
134
155k
      {(char*)0},
135
155k
#line 52 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
136
155k
      {"Link.Name",                                 config_parse_ifname,                   0,                             offsetof(LinkConfig, name)},
137
155k
#line 32 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
138
155k
      {"Match.Type",                                config_parse_match_strv,               0,                             offsetof(LinkConfig, match.iftype)},
139
155k
      {(char*)0},
140
155k
#line 31 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
141
155k
      {"Match.Driver",                              config_parse_match_strv,               0,                             offsetof(LinkConfig, match.driver)},
142
155k
#line 39 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
143
155k
      {"Match.Version",                             config_parse_net_condition,            CONDITION_VERSION,             offsetof(LinkConfig, conditions)},
144
155k
#line 42 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
145
155k
      {"Match.Firmware",                            config_parse_net_condition,            CONDITION_FIRMWARE,            offsetof(LinkConfig, conditions)},
146
155k
#line 92 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
147
155k
      {"Link.TxChannels",                           config_parse_ring_buffer_or_channel,   0,                             offsetof(LinkConfig, channels.tx)},
148
155k
      {(char*)0},
149
155k
#line 99 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
150
155k
      {"Link.TxBufferSize",                         config_parse_ring_buffer_or_channel,   0,                             offsetof(LinkConfig, ring.tx)},
151
155k
      {(char*)0}, {(char*)0},
152
155k
#line 91 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
153
155k
      {"Link.RxChannels",                           config_parse_ring_buffer_or_channel,   0,                             offsetof(LinkConfig, channels.rx)},
154
155k
#line 40 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
155
155k
      {"Match.Credential",                          config_parse_net_condition,            CONDITION_CREDENTIAL,          offsetof(LinkConfig, conditions)},
156
155k
#line 96 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
157
155k
      {"Link.RxBufferSize",                         config_parse_ring_buffer_or_channel,   0,                             offsetof(LinkConfig, ring.rx)},
158
155k
#line 57 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
159
155k
      {"Link.ReceiveQueues",                        config_parse_rx_tx_queues,             0,                             offsetof(LinkConfig, rxqueues)},
160
155k
#line 38 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
161
155k
      {"Match.KernelVersion",                       config_parse_net_condition,            CONDITION_VERSION,             offsetof(LinkConfig, conditions)},
162
155k
#line 89 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
163
155k
      {"Link.ReceiveAll",                           config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_RXALL])},
164
155k
#line 94 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
165
155k
      {"Link.CombinedChannels",                     config_parse_ring_buffer_or_channel,   0,                             offsetof(LinkConfig, channels.combined)},
166
155k
#line 98 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
167
155k
      {"Link.RxJumboBufferSize",                    config_parse_ring_buffer_or_channel,   0,                             offsetof(LinkConfig, ring.rx_jumbo)},
168
155k
#line 102 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
169
155k
      {"Link.TxFlowControl",                        config_parse_tristate,                 0,                             offsetof(LinkConfig, tx_flow_control)},
170
155k
#line 34 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
171
155k
      {"Match.Property",                            config_parse_match_property,           0,                             offsetof(LinkConfig, match.property)},
172
155k
#line 55 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
173
155k
      {"Link.Alias",                                config_parse_ifalias,                  0,                             offsetof(LinkConfig, alias)},
174
155k
      {(char*)0}, {(char*)0},
175
155k
#line 101 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
176
155k
      {"Link.RxFlowControl",                        config_parse_tristate,                 0,                             offsetof(LinkConfig, rx_flow_control)},
177
155k
#line 66 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
178
155k
      {"Link.Advertise",                            config_parse_advertise,                0,                             offsetof(LinkConfig, advertise)},
179
155k
#line 51 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
180
155k
      {"Link.NamePolicy",                           config_parse_name_policy,              0,                             offsetof(LinkConfig, name_policy)},
181
155k
#line 119 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
182
155k
      {"Link.TxCoalesceLowSec",                     config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.tx_coalesce_usecs_low)},
183
155k
      {(char*)0},
184
155k
#line 109 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
185
155k
      {"Link.TxCoalesceSec",                        config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.tx_coalesce_usecs)},
186
155k
      {(char*)0},
187
155k
#line 53 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
188
155k
      {"Link.AlternativeName",                      config_parse_ifnames,                  IFNAME_VALID_ALTERNATIVE,      offsetof(LinkConfig, alternative_names)},
189
155k
#line 117 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
190
155k
      {"Link.RxCoalesceLowSec",                     config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.rx_coalesce_usecs_low)},
191
155k
      {(char*)0},
192
155k
#line 105 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
193
155k
      {"Link.RxCoalesceSec",                        config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.rx_coalesce_usecs)},
194
155k
#line 67 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
195
155k
      {"Link.Port",                                 config_parse_port,                     0,                             offsetof(LinkConfig, port)},
196
155k
#line 35 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
197
155k
      {"Match.Host",                                config_parse_net_condition,            CONDITION_HOST,                offsetof(LinkConfig, conditions)},
198
155k
#line 115 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
199
155k
      {"Link.UseAdaptiveTxCoalesce",                config_parse_tristate,                 0,                             offsetof(LinkConfig, coalesce.use_adaptive_tx_coalesce)},
200
155k
      {(char*)0},
201
155k
#line 48 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
202
155k
      {"/* rtnl setlink */"},
203
155k
      {(char*)0},
204
155k
#line 30 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
205
155k
      {"Match.Path",                                config_parse_match_strv,               0,                             offsetof(LinkConfig, match.path)},
206
155k
#line 114 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
207
155k
      {"Link.UseAdaptiveRxCoalesce",                config_parse_tristate,                 0,                             offsetof(LinkConfig, coalesce.use_adaptive_rx_coalesce)},
208
155k
      {(char*)0},
209
155k
#line 41 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
210
155k
      {"Match.Architecture",                        config_parse_net_condition,            CONDITION_ARCHITECTURE,        offsetof(LinkConfig, conditions)},
211
155k
#line 134 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
212
155k
      {"SR-IOV.VLANProtocol",                       config_parse_sr_iov_vlan_proto,        0,                             offsetof(LinkConfig, sr_iov_by_section)},
213
155k
#line 36 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
214
155k
      {"Match.Virtualization",                      config_parse_net_condition,            CONDITION_VIRTUALIZATION,      offsetof(LinkConfig, conditions)},
215
155k
#line 85 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
216
155k
      {"Link.ReceiveVLANCTAGFilter",                config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_HW_VLAN_CTAG_FILTER])},
217
155k
      {(char*)0},
218
155k
#line 37 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
219
155k
      {"Match.KernelCommandLine",                   config_parse_net_condition,            CONDITION_KERNEL_COMMAND_LINE, offsetof(LinkConfig, conditions)},
220
155k
#line 56 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
221
155k
      {"Link.TransmitQueues",                       config_parse_rx_tx_queues,             0,                             offsetof(LinkConfig, txqueues)},
222
155k
#line 33 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
223
155k
      {"Match.Kind",                                config_parse_match_strv,               0,                             offsetof(LinkConfig, match.kind)},
224
155k
#line 84 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
225
155k
      {"Link.TransmitVLANCTAGHardwareAcceleration", config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_HW_VLAN_CTAG_TX])},
226
155k
#line 54 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
227
155k
      {"Link.AlternativeNamesPolicy",               config_parse_alternative_names_policy, 0,                             offsetof(LinkConfig, alternative_names_policy)},
228
155k
#line 45 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
229
155k
      {"Link.Property",                             config_parse_udev_property,            0,                             offsetof(LinkConfig, properties)},
230
155k
      {(char*)0},
231
155k
#line 88 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
232
155k
      {"Link.ReceiveFCS",                           config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_RXFCS])},
233
155k
#line 27 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
234
155k
      {"Match.MACAddress",                          config_parse_hw_addrs,                 0,                             offsetof(LinkConfig, match.hw_addr)},
235
155k
      {(char*)0},
236
155k
#line 120 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
237
155k
      {"Link.TxMaxCoalescedLowFrames",              config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.tx_max_coalesced_frames_low)},
238
155k
#line 70 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
239
155k
      {"Link.WakeOnLan",                            config_parse_wol,                      0,                             offsetof(LinkConfig, wol)},
240
155k
#line 83 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
241
155k
      {"Link.ReceiveVLANCTAGHardwareAcceleration",  config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_HW_VLAN_CTAG_RX])},
242
155k
#line 116 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
243
155k
      {"Link.CoalescePacketRateLow",                config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.pkt_rate_low)},
244
155k
      {(char*)0},
245
155k
#line 118 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
246
155k
      {"Link.RxMaxCoalescedLowFrames",              config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.rx_max_coalesced_frames_low)},
247
155k
#line 125 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
248
155k
      {"Link.TxMaxCoalescedHighFrames",             config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.tx_max_coalesced_frames_high)},
249
155k
#line 65 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
250
155k
      {"Link.AutoNegotiation",                      config_parse_tristate,                 0,                             offsetof(LinkConfig, autonegotiation)},
251
155k
#line 64 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
252
155k
      {"Link.Duplex",                               config_parse_duplex,                   0,                             offsetof(LinkConfig, duplex)},
253
155k
#line 124 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
254
155k
      {"Link.TxCoalesceHighSec",                    config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.tx_coalesce_usecs_high)},
255
155k
#line 112 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
256
155k
      {"Link.TxMaxCoalescedIrqFrames",              config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.tx_max_coalesced_frames_irq)},
257
155k
#line 123 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
258
155k
      {"Link.RxMaxCoalescedHighFrames",             config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.rx_max_coalesced_frames_high)},
259
155k
      {(char*)0},
260
155k
#line 138 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
261
155k
      {"SR-IOV.LinkState",                          config_parse_sr_iov_link_state,        0,                             offsetof(LinkConfig, sr_iov_by_section)},
262
155k
#line 122 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
263
155k
      {"Link.RxCoalesceHighSec",                    config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.rx_coalesce_usecs_high)},
264
155k
#line 108 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
265
155k
      {"Link.RxMaxCoalescedIrqFrames",              config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.rx_max_coalesced_frames_irq)},
266
155k
#line 95 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
267
155k
      {"/* ethtool ring parameters */"},
268
155k
      {(char*)0},
269
155k
#line 43 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
270
155k
      {"Link.Description",                          config_parse_string,                   0,                             offsetof(LinkConfig, description)},
271
155k
#line 139 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
272
155k
      {"SR-IOV.MACAddress",                         config_parse_sr_iov_mac,               0,                             offsetof(LinkConfig, sr_iov_by_section)},
273
155k
#line 93 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
274
155k
      {"Link.OtherChannels",                        config_parse_ring_buffer_or_channel,   0,                             offsetof(LinkConfig, channels.other)},
275
155k
      {(char*)0},
276
155k
#line 126 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
277
155k
      {"Link.CoalescePacketRateSampleIntervalSec",  config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.rate_sample_interval)},
278
155k
#line 103 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
279
155k
      {"Link.AutoNegotiationFlowControl",           config_parse_tristate,                 0,                             offsetof(LinkConfig, autoneg_flow_control)},
280
155k
#line 131 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
281
155k
      {"SR-IOV.VirtualFunction",                    config_parse_sr_iov_uint32,            0,                             offsetof(LinkConfig, sr_iov_by_section)},
282
155k
#line 29 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
283
155k
      {"Match.OriginalName",                        config_parse_match_ifnames,            0,                             offsetof(LinkConfig, match.ifname)},
284
155k
#line 60 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
285
155k
      {"Link.GenericSegmentOffloadMaxBytes",        config_parse_iec_size,                 0,                             offsetof(LinkConfig, gso_max_size)},
286
155k
#line 28 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
287
155k
      {"Match.PermanentMACAddress",                 config_parse_hw_addrs,                 0,                             offsetof(LinkConfig, match.permanent_hw_addr)},
288
155k
#line 111 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
289
155k
      {"Link.TxCoalesceIrqSec",                     config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.tx_coalesce_usecs_irq)},
290
155k
#line 61 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
291
155k
      {"Link.GenericSegmentOffloadMaxSegments",     config_parse_uint32,                   0,                             offsetof(LinkConfig, gso_max_segments)},
292
155k
#line 47 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
293
155k
      {"Link.UnsetProperty",                        config_parse_udev_property_name,       0,                             offsetof(LinkConfig, unset_properties)},
294
155k
#line 44 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
295
155k
      {"/* udev property */"},
296
155k
      {(char*)0},
297
155k
#line 107 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
298
155k
      {"Link.RxCoalesceIrqSec",                     config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.rx_coalesce_usecs_irq)},
299
155k
#line 137 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
300
155k
      {"SR-IOV.Trust",                              config_parse_sr_iov_boolean,           0,                             offsetof(LinkConfig, sr_iov_by_section)},
301
155k
      {(char*)0},
302
155k
#line 58 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
303
155k
      {"Link.TransmitQueueLength",                  config_parse_txqueuelen,               0,                             offsetof(LinkConfig, txqueuelen)},
304
155k
      {(char*)0},
305
155k
#line 86 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
306
155k
      {"Link.TransmitVLANSTAGHardwareAcceleration", config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_HW_VLAN_STAG_TX])},
307
155k
#line 121 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
308
155k
      {"Link.CoalescePacketRateHigh",               config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.pkt_rate_high)},
309
155k
#line 133 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
310
155k
      {"SR-IOV.QualityOfService",                   config_parse_sr_iov_uint32,            0,                             offsetof(LinkConfig, sr_iov_by_section)},
311
155k
#line 46 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
312
155k
      {"Link.ImportProperty",                       config_parse_udev_property_name,       0,                             offsetof(LinkConfig, import_properties)},
313
155k
#line 59 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
314
155k
      {"Link.MTUBytes",                             config_parse_mtu,                      AF_UNSPEC,                     offsetof(LinkConfig, mtu)},
315
155k
#line 97 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
316
155k
      {"Link.RxMiniBufferSize",                     config_parse_ring_buffer_or_channel,   0,                             offsetof(LinkConfig, ring.rx_mini)},
317
155k
#line 50 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
318
155k
      {"Link.MACAddress",                           config_parse_hw_addr,                  0,                             offsetof(LinkConfig, hw_addr)},
319
155k
#line 77 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
320
155k
      {"Link.TCP6SegmentationOffload",              config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_TSO6])},
321
155k
#line 81 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
322
155k
      {"Link.GenericReceiveOffloadHardware",        config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_GRO_HW])},
323
155k
      {(char*)0},
324
155k
#line 75 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
325
155k
      {"Link.GenericSegmentationOffload",           config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_GSO])},
326
155k
#line 62 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
327
155k
      {"/* ethtool link settings */"},
328
155k
#line 63 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
329
155k
      {"Link.BitsPerSecond",                        config_parse_si_uint64,                0,                             offsetof(LinkConfig, speed)},
330
155k
      {(char*)0},
331
155k
#line 141 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
332
155k
      {"EnergyEfficientEthernet.Enable",            config_parse_tristate,                 0,                             offsetof(LinkConfig, eee_enabled)},
333
155k
#line 127 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
334
155k
      {"/* Rx RPS CPU mask */"},
335
155k
#line 144 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
336
155k
      {"EnergyEfficientEthernet.LinkMode",          config_parse_advertise,                0,                             offsetof(LinkConfig, eee_advertise)},
337
155k
#line 132 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
338
155k
      {"SR-IOV.VLANId",                             config_parse_sr_iov_uint32,            0,                             offsetof(LinkConfig, sr_iov_by_section)},
339
155k
      {(char*)0}, {(char*)0},
340
155k
#line 140 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
341
155k
      {"/* ethtool EEE settings */"},
342
155k
#line 71 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
343
155k
      {"Link.WakeOnLanPassword",                    config_parse_wol_password,             0,                             0},
344
155k
#line 142 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
345
155k
      {"EnergyEfficientEthernet.TxLowPowerIdle",    config_parse_tristate,                 0,                             offsetof(LinkConfig, eee_tx_lpi_enabled)},
346
155k
#line 82 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
347
155k
      {"Link.LargeReceiveOffload",                  config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_LRO])},
348
155k
#line 136 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
349
155k
      {"SR-IOV.QueryReceiveSideScaling",            config_parse_sr_iov_boolean,           0,                             offsetof(LinkConfig, sr_iov_by_section)},
350
155k
#line 129 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
351
155k
      {"/* SR-IOV settings */"},
352
155k
#line 72 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
353
155k
      {"/* ethtool features */"},
354
155k
#line 128 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
355
155k
      {"Link.ReceivePacketSteeringCPUMask",         config_parse_rps_cpu_mask,             0,                             offsetof(LinkConfig, rps_cpu_mask)},
356
155k
      {(char*)0},
357
155k
#line 135 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
358
155k
      {"SR-IOV.MACSpoofCheck",                      config_parse_sr_iov_boolean,           0,                             offsetof(LinkConfig, sr_iov_by_section)},
359
155k
#line 69 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
360
155k
      {"/* ethtool WoL settings */"},
361
155k
#line 130 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
362
155k
      {"Link.SR-IOVVirtualFunctions",               config_parse_sr_iov_num_vfs,           0,                             offsetof(LinkConfig, sr_iov_num_vfs)},
363
155k
#line 78 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
364
155k
      {"Link.PartialGenericSegmentationOffload",    config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_GSO_PARTIAL])},
365
155k
      {(char*)0}, {(char*)0},
366
155k
#line 143 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
367
155k
      {"EnergyEfficientEthernet.TxLowPowerIdleSec", config_parse_sec,                      0,                             offsetof(LinkConfig, eee_tx_lpi_timer_usec)},
368
155k
#line 87 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
369
155k
      {"Link.NTupleFilter",                         config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_NTUPLE])},
370
155k
      {(char*)0}, {(char*)0},
371
155k
#line 68 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
372
155k
      {"Link.MDI",                                  config_parse_mdi,                      0,                             offsetof(LinkConfig, mdi)},
373
155k
      {(char*)0},
374
155k
#line 90 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
375
155k
      {"/* ethtool channels */"},
376
155k
#line 49 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
377
155k
      {"Link.MACAddressPolicy",                     config_parse_mac_address_policy,       0,                             offsetof(LinkConfig, mac_address_policy)},
378
155k
      {(char*)0},
379
155k
#line 100 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
380
155k
      {"/* ethtool pause parameters */"},
381
155k
#line 113 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
382
155k
      {"Link.StatisticsBlockCoalesceSec",           config_parse_coalesce_sec,             0,                             offsetof(LinkConfig, coalesce.stats_block_coalesce_usecs)},
383
155k
      {(char*)0},
384
155k
#line 74 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
385
155k
      {"Link.TransmitChecksumOffload",              config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_TXCSUM])},
386
155k
      {(char*)0}, {(char*)0},
387
155k
#line 80 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
388
155k
      {"Link.GenericReceiveOffload",                config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_GRO])},
389
155k
      {(char*)0}, {(char*)0}, {(char*)0},
390
155k
#line 110 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
391
155k
      {"Link.TxMaxCoalescedFrames",                 config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.tx_max_coalesced_frames)},
392
155k
#line 104 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
393
155k
      {"/* ethtool coalesce settings */"},
394
155k
      {(char*)0}, {(char*)0}, {(char*)0},
395
155k
#line 106 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
396
155k
      {"Link.RxMaxCoalescedFrames",                 config_parse_coalesce_u32,             0,                             offsetof(LinkConfig, coalesce.rx_max_coalesced_frames)},
397
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
398
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
399
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
400
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
401
155k
#line 73 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
402
155k
      {"Link.ReceiveChecksumOffload",               config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_RXCSUM])},
403
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
404
155k
#line 76 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
405
155k
      {"Link.TCPSegmentationOffload",               config_parse_tristate,                 0,                             offsetof(LinkConfig, features[NET_DEV_FEAT_TSO])},
406
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
407
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
408
155k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
409
155k
      {(char*)0}, {(char*)0},
410
155k
#line 79 "../../src/systemd/src/udev/net/link-config-gperf.gperf"
411
155k
      {"Link.UDPSegmentationOffload",               config_parse_warn_compat,              DISABLED_LEGACY,               0}
412
155k
    };
413
414
155k
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
415
154k
    {
416
154k
      register unsigned int key = link_config_gperf_hash (str, len);
417
418
154k
      if (key <= MAX_HASH_VALUE)
419
154k
        {
420
154k
          register const char *s = wordlist[key].section_and_lvalue;
421
422
154k
          if (s && *str == *s && !strcmp (str + 1, s + 1))
423
148k
            return &wordlist[key];
424
154k
        }
425
154k
    }
426
7.63k
  return 0;
427
155k
}