2 * Common functions for kernel modules using Dell SMBIOS
8 * Based on documentation in the libsmbios package:
9 * Copyright (C) 2005-2014 Dell Inc.
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.
16 #ifndef _DELL_SMBIOS_H_
17 #define _DELL_SMBIOS_H_
19 struct notifier_block;
21 /* This structure will be modified by the firmware when we enter
22 * system management mode, hence the volatiles */
24 struct calling_interface_buffer {
27 volatile u32 input[4];
28 volatile u32 output[4];
31 struct calling_interface_token {
40 int dell_smbios_error(int value);
42 struct calling_interface_buffer *dell_smbios_get_buffer(void);
43 void dell_smbios_clear_buffer(void);
44 void dell_smbios_release_buffer(void);
45 void dell_smbios_send_request(int class, int select);
47 struct calling_interface_token *dell_smbios_find_token(int tokenid);
49 enum dell_laptop_notifier_actions {
50 DELL_LAPTOP_KBD_BACKLIGHT_BRIGHTNESS_CHANGED,
53 int dell_laptop_register_notifier(struct notifier_block *nb);
54 int dell_laptop_unregister_notifier(struct notifier_block *nb);
55 void dell_laptop_call_notifier(unsigned long action, void *data);