firmware: Basic dmi-sysfs support
authorMike Waychison <mikew@google.com>
Wed, 23 Feb 2011 01:53:21 +0000 (17:53 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 25 Feb 2011 20:01:19 +0000 (12:01 -0800)
commit948af1f0bbc8526448e8cbe3f8d3bf211bdf5181
tree6ecf0035c6466002d3ae32b4ab5230f5abb567eb
parent93c890dbe5287d146007083021148e7318058e37
firmware: Basic dmi-sysfs support

Introduce a new module "dmi-sysfs" that exports the broken out entries
of the DMI table through sysfs.

Entries are enumerated via dmi_walk() on module load, and are populated
as kobjects rooted at /sys/firmware/dmi/entries.

Entries are named "<type>-<instance>", where:
   <type> : is the type of the entry, and
   <instance> : is the ordinal count within the DMI table of that
  entry type.  This instance is used in lieu the DMI
  entry's handle as no assurances are made by the kernel
  that handles are unique.

All entries export the following attributes:
   length : The length of the formatted portion of the entry
   handle : The handle given to this entry by the firmware
   raw : The raw bytes of the entire entry, including the
  formatted portion, the unformatted (strings) portion,
  and the two terminating nul characters.
   type : The DMI entry type
   instance : The ordinal instance of this entry given its type.
   position : The position ordinal of the entry within the table in
  its entirety.

Entries in dmi-sysfs are kobject backed members called "struct
dmi_sysfs_entry" and belong to dmi_kset.  They are threaded through
entry_list (protected by entry_list_lock) so that we can find them at
cleanup time.

Signed-off-by: Mike Waychison <mikew@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/firmware/Kconfig
drivers/firmware/Makefile
drivers/firmware/dmi-sysfs.c [new file with mode: 0644]