dell-smbios.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Common functions for kernel modules using Dell SMBIOS
  3. *
  4. * Copyright (c) Red Hat <mjg@redhat.com>
  5. * Copyright (c) 2014 Gabriele Mazzotta <gabriele.mzt@gmail.com>
  6. * Copyright (c) 2014 Pali Rohár <pali.rohar@gmail.com>
  7. *
  8. * Based on documentation in the libsmbios package:
  9. * Copyright (C) 2005-2014 Dell Inc.
  10. *
  11. * This program is free software; you can redistribute it and/or modify
  12. * it under the terms of the GNU General Public License version 2 as
  13. * published by the Free Software Foundation.
  14. */
  15. #ifndef _DELL_SMBIOS_H_
  16. #define _DELL_SMBIOS_H_
  17. /* This structure will be modified by the firmware when we enter
  18. * system management mode, hence the volatiles */
  19. struct calling_interface_buffer {
  20. u16 class;
  21. u16 select;
  22. volatile u32 input[4];
  23. volatile u32 output[4];
  24. } __packed;
  25. struct calling_interface_token {
  26. u16 tokenID;
  27. u16 location;
  28. union {
  29. u16 value;
  30. u16 stringlength;
  31. };
  32. };
  33. int dell_smbios_error(int value);
  34. struct calling_interface_buffer *dell_smbios_get_buffer(void);
  35. void dell_smbios_clear_buffer(void);
  36. void dell_smbios_release_buffer(void);
  37. void dell_smbios_send_request(int class, int select);
  38. struct calling_interface_token *dell_smbios_find_token(int tokenid);
  39. #endif