Lines Matching +full:entry +full:- +full:name
1 /*-
2 * Copyright (c) 2014-2015 Sandvine Inc.
48 const nvlist_t *, const char *name);
107 .type_name = "unicast-mac",
126 if (strcmp(type, validator->type_name) == 0) in pci_iov_schema_find_validator()
134 pci_iov_schema_add_type(nvlist_t *entry, const char *type) in pci_iov_schema_add_type() argument
138 nvlist_set_error(entry, EINVAL); in pci_iov_schema_add_type()
141 nvlist_add_string(entry, "type", type); in pci_iov_schema_add_type()
145 pci_iov_schema_add_required(nvlist_t *entry, uint32_t flags) in pci_iov_schema_add_required() argument
150 nvlist_set_error(entry, EINVAL); in pci_iov_schema_add_required()
154 nvlist_add_bool(entry, "required", 1); in pci_iov_schema_add_required()
159 pci_iov_schema_add_bool(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_bool() argument
162 nvlist_t *entry; in pci_iov_schema_add_bool() local
164 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_add_bool()
165 if (entry == NULL) { in pci_iov_schema_add_bool()
170 pci_iov_schema_add_type(entry, "bool"); in pci_iov_schema_add_bool()
172 nvlist_add_bool(entry, "default", defaultVal); in pci_iov_schema_add_bool()
173 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_add_bool()
175 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_add_bool()
179 pci_iov_schema_add_string(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_string() argument
182 nvlist_t *entry; in pci_iov_schema_add_string() local
184 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_add_string()
185 if (entry == NULL) { in pci_iov_schema_add_string()
190 pci_iov_schema_add_type(entry, "string"); in pci_iov_schema_add_string()
192 nvlist_add_string(entry, "default", defaultVal); in pci_iov_schema_add_string()
193 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_add_string()
195 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_add_string()
199 pci_iov_schema_int(nvlist_t *schema, const char *name, const char *type, in pci_iov_schema_int() argument
202 nvlist_t *entry; in pci_iov_schema_int() local
204 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_int()
205 if (entry == NULL) { in pci_iov_schema_int()
210 pci_iov_schema_add_type(entry, type); in pci_iov_schema_int()
212 nvlist_add_number(entry, "default", defaultVal); in pci_iov_schema_int()
213 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_int()
215 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_int()
219 pci_iov_schema_add_uint8(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_uint8() argument
223 pci_iov_schema_int(schema, name, "uint8_t", flags, defaultVal); in pci_iov_schema_add_uint8()
227 pci_iov_schema_add_uint16(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_uint16() argument
231 pci_iov_schema_int(schema, name, "uint16_t", flags, defaultVal); in pci_iov_schema_add_uint16()
235 pci_iov_schema_add_uint32(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_uint32() argument
239 pci_iov_schema_int(schema, name, "uint32_t", flags, defaultVal); in pci_iov_schema_add_uint32()
243 pci_iov_schema_add_uint64(nvlist_t *schema, const char *name, uint32_t flags, in pci_iov_schema_add_uint64() argument
247 pci_iov_schema_int(schema, name, "uint64_t", flags, defaultVal); in pci_iov_schema_add_uint64()
251 pci_iov_schema_add_unicast_mac(nvlist_t *schema, const char *name, in pci_iov_schema_add_unicast_mac() argument
254 nvlist_t *entry; in pci_iov_schema_add_unicast_mac() local
256 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_add_unicast_mac()
257 if (entry == NULL) { in pci_iov_schema_add_unicast_mac()
262 pci_iov_schema_add_type(entry, "unicast-mac"); in pci_iov_schema_add_unicast_mac()
264 nvlist_add_binary(entry, "default", defaultVal, ETHER_ADDR_LEN); in pci_iov_schema_add_unicast_mac()
265 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_add_unicast_mac()
267 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_add_unicast_mac()
271 pci_iov_schema_add_vlan(nvlist_t *schema, const char *name, in pci_iov_schema_add_vlan() argument
274 nvlist_t *entry; in pci_iov_schema_add_vlan() local
276 entry = nvlist_create(NV_FLAG_IGNORE_CASE); in pci_iov_schema_add_vlan()
277 if (entry == NULL) { in pci_iov_schema_add_vlan()
282 pci_iov_schema_add_type(entry, "vlan"); in pci_iov_schema_add_vlan()
284 nvlist_add_number(entry, "default", defaultVal); in pci_iov_schema_add_vlan()
285 pci_iov_schema_add_required(entry, flags); in pci_iov_schema_add_vlan()
287 nvlist_move_nvlist(schema, name, entry); in pci_iov_schema_add_vlan()
292 const nvlist_t *config, const char *name) in pci_iov_schema_validate_bool() argument
295 if (!nvlist_exists_bool(config, name)) in pci_iov_schema_validate_bool()
302 const nvlist_t *config, const char *name) in pci_iov_schema_validate_string() argument
305 if (!nvlist_exists_string(config, name)) in pci_iov_schema_validate_string()
312 const nvlist_t *config, const char *name) in pci_iov_schema_validate_uint() argument
316 if (!nvlist_exists_number(config, name)) in pci_iov_schema_validate_uint()
319 value = nvlist_get_number(config, name); in pci_iov_schema_validate_uint()
321 if (value > validator->limit) in pci_iov_schema_validate_uint()
330 const nvlist_t *config, const char *name) in pci_iov_schema_validate_unicast_mac() argument
335 if (!nvlist_exists_binary(config, name)) in pci_iov_schema_validate_unicast_mac()
338 mac = nvlist_get_binary(config, name, &size); in pci_iov_schema_validate_unicast_mac()
352 const nvlist_t *config, const char *name) in pci_iov_schema_validate_vlan() argument
356 if (!nvlist_exists_number(config, name)) in pci_iov_schema_validate_vlan()
359 vlan = nvlist_get_number(config, name); in pci_iov_schema_validate_vlan()
368 pci_iov_config_add_default(const nvlist_t *param_schema, const char *name, in pci_iov_config_add_default() argument
376 nvlist_add_binary(config, name, binary, len); in pci_iov_config_add_default()
378 nvlist_add_bool(config, name, in pci_iov_config_add_default()
381 nvlist_add_number(config, name, in pci_iov_config_add_default()
384 nvlist_add_nvlist(config, name, in pci_iov_config_add_default()
387 nvlist_add_string(config, name, in pci_iov_config_add_default()
423 if (defaultVal > validator->limit) in pci_iov_validate_uint_default()
481 error = validator->default_validate(validator, schema); in pci_iov_validate_param_schema()
500 pci_iov_validate_subsystem_schema(const nvlist_t *dev_schema, const char *name) in pci_iov_validate_subsystem_schema() argument
507 if (!nvlist_exists_nvlist(dev_schema, name)) in pci_iov_validate_subsystem_schema()
509 sub_schema = nvlist_get_nvlist(dev_schema, name); in pci_iov_validate_subsystem_schema()
533 const char *name; in pci_iov_validate_param_collisions() local
541 while ((name = nvlist_next(driver_schema, &type, &it)) != NULL) { in pci_iov_validate_param_collisions()
542 if (nvlist_exists(iov_schema, name)) in pci_iov_validate_param_collisions()
556 const char *name; in pci_iov_validate_schema_subsystems() local
561 while ((name = nvlist_next(dev_schema, &type, &it)) != NULL) { in pci_iov_validate_schema_subsystems()
562 if (strcmp(name, IOV_CONFIG_NAME) != 0 && in pci_iov_validate_schema_subsystems()
563 strcmp(name, DRIVER_CONFIG_NAME) != 0) in pci_iov_validate_schema_subsystems()
571 pci_iov_validate_device_schema(const nvlist_t *schema, const char *name) in pci_iov_validate_device_schema() argument
576 if (!nvlist_exists_nvlist(schema, name)) in pci_iov_validate_device_schema()
578 dev_schema = nvlist_get_nvlist(schema, name); in pci_iov_validate_device_schema()
596 /* Validate that we only have PF and VF devices beneath the top-level schema. */
600 const char *name; in pci_iov_validate_schema_devices() local
605 while ((name = nvlist_next(dev_schema, &type, &it)) != NULL) { in pci_iov_validate_schema_devices()
606 if (strcmp(name, PF_CONFIG_NAME) != 0 && in pci_iov_validate_schema_devices()
607 strcmp(name, VF_SCHEMA_NAME) != 0) in pci_iov_validate_schema_devices()
639 const char *name; in pci_iov_schema_validate_required() local
644 while ((name = nvlist_next(schema, &type, &cookie)) != NULL) { in pci_iov_schema_validate_required()
645 param_schema = nvlist_get_nvlist(schema, name); in pci_iov_schema_validate_required()
648 if (!nvlist_exists(config, name)) in pci_iov_schema_validate_required()
653 !nvlist_exists(config, name)) in pci_iov_schema_validate_required()
654 pci_iov_config_add_default(param_schema, name, config); in pci_iov_schema_validate_required()
661 pci_iov_schema_validate_param(const nvlist_t *schema_param, const char *name, in pci_iov_schema_validate_param() argument
673 return (validator->validate(validator, config, name)); in pci_iov_schema_validate_param()
685 const char *name; in pci_iov_schema_validate_types() local
689 while ((name = nvlist_next(config, &type, &cookie)) != NULL) { in pci_iov_schema_validate_types()
690 if (!nvlist_exists_nvlist(schema, name)) in pci_iov_schema_validate_types()
693 schema_param = nvlist_get_nvlist(schema, name); in pci_iov_schema_validate_types()
695 error = pci_iov_schema_validate_param(schema_param, name, in pci_iov_schema_validate_types()
791 const char *name; in pci_iov_schema_validate_device_subsystems() local
795 while ((name = nvlist_next(config, &type, &cookie)) != NULL) { in pci_iov_schema_validate_device_subsystems()
796 if (strcasecmp(name, IOV_CONFIG_NAME) == 0) in pci_iov_schema_validate_device_subsystems()
798 else if (strcasecmp(name, DRIVER_CONFIG_NAME) == 0) in pci_iov_schema_validate_device_subsystems()
808 * Validate that the string is a valid device node name. It must either be "PF"
809 * or "VF-n", where n is an integer in the range [0, num_vfs).
812 pci_iov_schema_validate_dev_name(const char *name, uint16_t num_vfs) in pci_iov_schema_validate_dev_name() argument
818 if (strcasecmp(PF_CONFIG_NAME, name) == 0) in pci_iov_schema_validate_dev_name()
821 /* Ensure that we start with "VF-" */ in pci_iov_schema_validate_dev_name()
822 if (strncasecmp(name, VF_PREFIX, VF_PREFIX_LEN) != 0) in pci_iov_schema_validate_dev_name()
825 number_start = name + VF_PREFIX_LEN; in pci_iov_schema_validate_dev_name()
827 /* Filter out name == "VF-" (no number) */ in pci_iov_schema_validate_dev_name()
831 /* Disallow leading whitespace or +/- */ in pci_iov_schema_validate_dev_name()
839 /* Disallow leading zeros on VF-[1-9][0-9]* */ in pci_iov_schema_validate_dev_name()
843 /* Disallow leading zeros on VF-0 */ in pci_iov_schema_validate_dev_name()
856 * form VF-n specify a VF number that is < num_vfs.
863 const char *name; in pci_iov_schema_validate_device_names() local
867 while ((name = nvlist_next(config, &type, &cookie)) != NULL) { in pci_iov_schema_validate_device_names()
868 error = pci_iov_schema_validate_dev_name(name, num_vfs); in pci_iov_schema_validate_device_names()
877 device = nvlist_get_nvlist(config, name); in pci_iov_schema_validate_device_names()