Lines Matching +full:entry +full:- +full:name

1 /*-
2 * Copyright (c) 2014-2015 Sandvine Inc.
49 const nvlist_t *, const char *name);
108 .type_name = "unicast-mac",
127 if (strcmp(type, validator->type_name) == 0) in pci_iov_schema_find_validator()
135 pci_iov_schema_add_type(nvlist_t *entry, const char *type) in pci_iov_schema_add_type() argument
139 nvlist_set_error(entry, EINVAL); in pci_iov_schema_add_type()
142 nvlist_add_string(entry, "type", type); in pci_iov_schema_add_type()
146 pci_iov_schema_add_required(nvlist_t *entry, uint32_t flags) in pci_iov_schema_add_required() argument
151 nvlist_set_error(entry, EINVAL); in pci_iov_schema_add_required()
155 nvlist_add_bool(entry, "required", 1); in pci_iov_schema_add_required()
160 pci_iov_schema_add_bool(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_bool() argument
163 nvlist_t *entry; in pci_iov_schema_add_bool() local
165 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_add_bool()
166 if (entry == NULL) { in pci_iov_schema_add_bool()
171 pci_iov_schema_add_type(entry, "bool"); in pci_iov_schema_add_bool()
173 nvlist_add_bool(entry, "default", defaultVal); in pci_iov_schema_add_bool()
174 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_add_bool()
176 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_add_bool()
180 pci_iov_schema_add_string(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_string() argument
183 nvlist_t *entry; in pci_iov_schema_add_string() local
185 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_add_string()
186 if (entry == NULL) { in pci_iov_schema_add_string()
191 pci_iov_schema_add_type(entry, "string"); in pci_iov_schema_add_string()
193 nvlist_add_string(entry, "default", defaultVal); in pci_iov_schema_add_string()
194 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_add_string()
196 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_add_string()
200 pci_iov_schema_int(nvlist_t *schema, const char *name, const char *type, in pci_iov_schema_int() argument
203 nvlist_t *entry; in pci_iov_schema_int() local
205 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_int()
206 if (entry == NULL) { in pci_iov_schema_int()
211 pci_iov_schema_add_type(entry, type); in pci_iov_schema_int()
213 nvlist_add_number(entry, "default", defaultVal); in pci_iov_schema_int()
214 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_int()
216 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_int()
220 pci_iov_schema_add_uint8(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_uint8() argument
224 pci_iov_schema_int(schema, name, "uint8_t", flags, defaultVal); in pci_iov_schema_add_uint8()
228 pci_iov_schema_add_uint16(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_uint16() argument
232 pci_iov_schema_int(schema, name, "uint16_t", flags, defaultVal); in pci_iov_schema_add_uint16()
236 pci_iov_schema_add_uint32(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_uint32() argument
240 pci_iov_schema_int(schema, name, "uint32_t", flags, defaultVal); in pci_iov_schema_add_uint32()
244 pci_iov_schema_add_uint64(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_uint64() argument
248 pci_iov_schema_int(schema, name, "uint64_t", flags, defaultVal); in pci_iov_schema_add_uint64()
252 pci_iov_schema_add_unicast_mac(nvlist_t *schema, const char *name, in pci_iov_schema_add_unicast_mac() argument
255 nvlist_t *entry; in pci_iov_schema_add_unicast_mac() local
257 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_add_unicast_mac()
258 if (entry == NULL) { in pci_iov_schema_add_unicast_mac()
263 pci_iov_schema_add_type(entry, "unicast-mac"); in pci_iov_schema_add_unicast_mac()
265 nvlist_add_binary(entry, "default", defaultVal, ETHER_ADDR_LEN); in pci_iov_schema_add_unicast_mac()
266 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_add_unicast_mac()
268 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_add_unicast_mac()
272 pci_iov_schema_add_vlan(nvlist_t *schema, const char *name, in pci_iov_schema_add_vlan() argument
275 nvlist_t *entry; in pci_iov_schema_add_vlan() local
277 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_add_vlan()
278 if (entry == NULL) { in pci_iov_schema_add_vlan()
283 pci_iov_schema_add_type(entry, "vlan"); in pci_iov_schema_add_vlan()
285 nvlist_add_number(entry, "default", defaultVal); in pci_iov_schema_add_vlan()
286 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_add_vlan()
288 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_add_vlan()
293 const nvlist_t *config, const char *name) in pci_iov_schema_validate_bool() argument
296 if (!nvlist_exists_bool(config, name)) in pci_iov_schema_validate_bool()
303 const nvlist_t *config, const char *name) in pci_iov_schema_validate_string() argument
306 if (!nvlist_exists_string(config, name)) in pci_iov_schema_validate_string()
313 const nvlist_t *config, const char *name) in pci_iov_schema_validate_uint() argument
317 if (!nvlist_exists_number(config, name)) in pci_iov_schema_validate_uint()
320 value = nvlist_get_number(config, name); in pci_iov_schema_validate_uint()
322 if (value > validator->limit) in pci_iov_schema_validate_uint()
331 const nvlist_t *config, const char *name) in pci_iov_schema_validate_unicast_mac() argument
336 if (!nvlist_exists_binary(config, name)) in pci_iov_schema_validate_unicast_mac()
339 mac = nvlist_get_binary(config, name, &size); in pci_iov_schema_validate_unicast_mac()
353 const nvlist_t *config, const char *name) in pci_iov_schema_validate_vlan() argument
357 if (!nvlist_exists_number(config, name)) in pci_iov_schema_validate_vlan()
360 vlan = nvlist_get_number(config, name); in pci_iov_schema_validate_vlan()
369 pci_iov_config_add_default(const nvlist_t *param_schema, const char *name, in pci_iov_config_add_default() argument
377 nvlist_add_binary(config, name, binary, len); in pci_iov_config_add_default()
379 nvlist_add_bool(config, name, in pci_iov_config_add_default()
382 nvlist_add_number(config, name, in pci_iov_config_add_default()
385 nvlist_add_nvlist(config, name, in pci_iov_config_add_default()
388 nvlist_add_string(config, name, in pci_iov_config_add_default()
424 if (defaultVal > validator->limit) in pci_iov_validate_uint_default()
482 error = validator->default_validate(validator, schema); in pci_iov_validate_param_schema()
501 pci_iov_validate_subsystem_schema(const nvlist_t *dev_schema, const char *name) in pci_iov_validate_subsystem_schema() argument
508 if (!nvlist_exists_nvlist(dev_schema, name)) in pci_iov_validate_subsystem_schema()
510 sub_schema = nvlist_get_nvlist(dev_schema, name); in pci_iov_validate_subsystem_schema()
534 const char *name; in pci_iov_validate_param_collisions() local
542 while ((name = nvlist_next(driver_schema, &type, &it)) != NULL) { in pci_iov_validate_param_collisions()
543 if (nvlist_exists(iov_schema, name)) in pci_iov_validate_param_collisions()
557 const char *name; in pci_iov_validate_schema_subsystems() local
562 while ((name = nvlist_next(dev_schema, &type, &it)) != NULL) { in pci_iov_validate_schema_subsystems()
563 if (strcmp(name, IOV_CONFIG_NAME) != 0 && in pci_iov_validate_schema_subsystems()
564 strcmp(name, DRIVER_CONFIG_NAME) != 0) in pci_iov_validate_schema_subsystems()
572 pci_iov_validate_device_schema(const nvlist_t *schema, const char *name) in pci_iov_validate_device_schema() argument
577 if (!nvlist_exists_nvlist(schema, name)) in pci_iov_validate_device_schema()
579 dev_schema = nvlist_get_nvlist(schema, name); in pci_iov_validate_device_schema()
597 /* Validate that we only have PF and VF devices beneath the top-level schema. */
601 const char *name; in pci_iov_validate_schema_devices() local
606 while ((name = nvlist_next(dev_schema, &type, &it)) != NULL) { in pci_iov_validate_schema_devices()
607 if (strcmp(name, PF_CONFIG_NAME) != 0 && in pci_iov_validate_schema_devices()
608 strcmp(name, VF_SCHEMA_NAME) != 0) in pci_iov_validate_schema_devices()
640 const char *name; in pci_iov_schema_validate_required() local
645 while ((name = nvlist_next(schema, &type, &cookie)) != NULL) { in pci_iov_schema_validate_required()
646 param_schema = nvlist_get_nvlist(schema, name); in pci_iov_schema_validate_required()
649 if (!nvlist_exists(config, name)) in pci_iov_schema_validate_required()
654 !nvlist_exists(config, name)) in pci_iov_schema_validate_required()
655 pci_iov_config_add_default(param_schema, name, config); in pci_iov_schema_validate_required()
662 pci_iov_schema_validate_param(const nvlist_t *schema_param, const char *name, in pci_iov_schema_validate_param() argument
674 return (validator->validate(validator, config, name)); in pci_iov_schema_validate_param()
686 const char *name; in pci_iov_schema_validate_types() local
690 while ((name = nvlist_next(config, &type, &cookie)) != NULL) { in pci_iov_schema_validate_types()
691 if (!nvlist_exists_nvlist(schema, name)) in pci_iov_schema_validate_types()
694 schema_param = nvlist_get_nvlist(schema, name); in pci_iov_schema_validate_types()
696 error = pci_iov_schema_validate_param(schema_param, name, in pci_iov_schema_validate_types()
792 const char *name; in pci_iov_schema_validate_device_subsystems() local
796 while ((name = nvlist_next(config, &type, &cookie)) != NULL) { in pci_iov_schema_validate_device_subsystems()
797 if (strcasecmp(name, IOV_CONFIG_NAME) == 0) in pci_iov_schema_validate_device_subsystems()
799 else if (strcasecmp(name, DRIVER_CONFIG_NAME) == 0) in pci_iov_schema_validate_device_subsystems()
809 * Validate that the string is a valid device node name. It must either be "PF"
810 * or "VF-n", where n is an integer in the range [0, num_vfs).
813 pci_iov_schema_validate_dev_name(const char *name, uint16_t num_vfs) in pci_iov_schema_validate_dev_name() argument
819 if (strcasecmp(PF_CONFIG_NAME, name) == 0) in pci_iov_schema_validate_dev_name()
822 /* Ensure that we start with "VF-" */ in pci_iov_schema_validate_dev_name()
823 if (strncasecmp(name, VF_PREFIX, VF_PREFIX_LEN) != 0) in pci_iov_schema_validate_dev_name()
826 number_start = name + VF_PREFIX_LEN; in pci_iov_schema_validate_dev_name()
828 /* Filter out name == "VF-" (no number) */ in pci_iov_schema_validate_dev_name()
832 /* Disallow leading whitespace or +/- */ in pci_iov_schema_validate_dev_name()
840 /* Disallow leading zeros on VF-[1-9][0-9]* */ in pci_iov_schema_validate_dev_name()
844 /* Disallow leading zeros on VF-0 */ in pci_iov_schema_validate_dev_name()
857 * form VF-n specify a VF number that is < num_vfs.
864 const char *name; in pci_iov_schema_validate_device_names() local
868 while ((name = nvlist_next(config, &type, &cookie)) != NULL) { in pci_iov_schema_validate_device_names()
869 error = pci_iov_schema_validate_dev_name(name, num_vfs); in pci_iov_schema_validate_device_names()
878 device = nvlist_get_nvlist(config, name); in pci_iov_schema_validate_device_names()