Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/* SPDX-License-Identifier: GPL-2.0-or-later */
 2
 3#ifndef _THINK_LMI_H_
 4#define _THINK_LMI_H_
 5
 6#include <linux/types.h>
 7
 8#define TLMI_SETTINGS_COUNT  256
 9#define TLMI_SETTINGS_MAXLEN 512
10#define TLMI_PWD_BUFSIZE     129
11#define TLMI_LANG_MAXLEN       4
12
13/* Possible error values */
14struct tlmi_err_codes {
15	const char *err_str;
16	int err_code;
17};
18
19enum encoding_option {
20	TLMI_ENCODING_ASCII,
21	TLMI_ENCODING_SCANCODE,
22};
23
24/* password configuration details */
25struct tlmi_pwdcfg {
26	uint32_t password_mode;
27	uint32_t password_state;
28	uint32_t min_length;
29	uint32_t max_length;
30	uint32_t supported_encodings;
31	uint32_t supported_keyboard;
32};
33
34/* password setting details */
35struct tlmi_pwd_setting {
36	struct kobject kobj;
37	bool valid;
38	char password[TLMI_PWD_BUFSIZE];
39	const char *pwd_type;
40	const char *role;
41	int minlen;
42	int maxlen;
43	enum encoding_option encoding;
44	char kbdlang[TLMI_LANG_MAXLEN];
45};
46
47/* Attribute setting details */
48struct tlmi_attr_setting {
49	struct kobject kobj;
50	int index;
51	char display_name[TLMI_SETTINGS_MAXLEN];
52	char *possible_values;
53};
54
55struct think_lmi {
56	struct wmi_device *wmi_device;
57
58	int settings_count;
59	bool can_set_bios_settings;
60	bool can_get_bios_selections;
61	bool can_set_bios_password;
62	bool can_get_password_settings;
63	bool pending_changes;
64
65	struct tlmi_attr_setting *setting[TLMI_SETTINGS_COUNT];
66	struct device *class_dev;
67	struct kset *attribute_kset;
68	struct kset *authentication_kset;
69	struct tlmi_pwd_setting *pwd_admin;
70	struct tlmi_pwd_setting *pwd_power;
71};
72
73#endif /* !_THINK_LMI_H_ */