Writing Device Drivers for Oracle® Solaris 11.2

Exit Print View

Updated: September 2014
 
 

pci_plist_lookup() Interface

The pci_plist_lookup(9F) interface can be used by the drivers to look up name-value pairs of the various data types that are supported. The functions find the nvpair (name-value pair) that matches the name and type as indicated by the interface name. If found, nelem and val are modified to contain the number of elements in value and the starting address of data, respectively.

The following data types are supported by the pci_plist_lookup() interface:

  • int pci_plist_lookup_int8(pci_plist_t plist, const char *name,int8_t *val)

  • int pci_plist_lookup_uint8(pci_plist_t plist, const char *name,uint8_t *val)

  • int pci_plist_lookup_int16(pci_plist_t plist, const char *name,int16_t *val)

  • int pci_plist_lookup_uint16(pci_plist_t plist, const char *name, uint16_t *val)

  • int pci_plist_lookup_int32(pci_plist_t plist, const char *name,int32_t *val)

  • int pci_plist_lookup_uint32(pci_plist_t plist, const char *name, uint32_t *val)

  • int pci_plist_lookup_int64(pci_plist_t plist, const char *name,int64_t *val)

  • int pci_plist_lookup_uint64(pci_plist_t plist, const char *name, uint64_t *val)

  • int pci_plist_lookup_string(pci_plist_t plist, const char *name, char **val)

  • int pci_plist_lookup_plist(pci_plist_t plist, const char *name, pci_plist_t **val)

  • int pci_plist_lookup_int8_array(pci_plist_t plist, const char *name,int8_t *val, uint_t *nelem)

  • int pci_plist_lookup_uint8_array(pci_plist_t plist, const char *name, int8_t *val, uint_t *nelem)

  • int pci_plist_lookup_int16_array(pci_plist_t plist, const char *name,int16_t *val, uint_t *nelem)

  • int pci_plist_lookup_uint16_array(pci_plist_t plist, const char *name, uint16_t *val, uint_t *nelem)

  • int pci_plist_lookup_int32_array(pci_plist_t plist, const char *name,int32_t *val, uint_t *nelem)

  • int pci_plist_lookup_uint32_array(pci_plist_t plist, const char *name,uint32_t *val, uint_t *nelem)

  • int pci_plist_lookup_int64_array(pci_plist_t plist, const char *name, int64_t *val, uint_t *nelem)

  • int pci_plist_lookup_uint64_array(pci_plist_t plist,const char *name,uint64_t *val, uint_t *nelem)

  • int pci_plist_lookup_string_array(pci_plist_t plist, const char *name,char **val, uint_t *nelem)

where:

plist

A pointer to the pci_plist_t structure to be processed.

name

Name of the name-value pair to search.

nelem

Address to store the number of elements in value.

val

Starting address of data.

The pci_plist_lookup() function return 0 on success and an error value on failure. The following error values are supported:

DDI_EINVAL

Invalid argument

ENOENT

No matching name-value pair found

ENOTSUP

An encode or decode method is not supported