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#define TLMI_INDEX_MAX        32
 13
 14/* Possible error values */
 15struct tlmi_err_codes {
 16	const char *err_str;
 17	int err_code;
 18};
 19
 20enum encoding_option {
 21	TLMI_ENCODING_ASCII,
 22	TLMI_ENCODING_SCANCODE,
 23};
 24
 25enum level_option {
 26	TLMI_LEVEL_USER,
 27	TLMI_LEVEL_MASTER,
 28};
 29
 30/* password configuration details */
 31struct tlmi_pwdcfg_core {
 32	uint32_t password_mode;
 33	uint32_t password_state;
 34	uint32_t min_length;
 35	uint32_t max_length;
 36	uint32_t supported_encodings;
 37	uint32_t supported_keyboard;
 38};
 39
 40struct tlmi_pwdcfg_ext {
 41	uint32_t hdd_user_password;
 42	uint32_t hdd_master_password;
 43	uint32_t nvme_user_password;
 44	uint32_t nvme_master_password;
 45};
 46
 47struct tlmi_pwdcfg {
 48	struct tlmi_pwdcfg_core core;
 49	struct tlmi_pwdcfg_ext ext;
 50};
 51
 52/* password setting details */
 53struct tlmi_pwd_setting {
 54	struct kobject kobj;
 55	bool valid;
 56	char password[TLMI_PWD_BUFSIZE];
 57	const char *pwd_type;
 58	const char *role;
 59	int minlen;
 60	int maxlen;
 61	enum encoding_option encoding;
 62	char kbdlang[TLMI_LANG_MAXLEN];
 63	int index; /*Used for HDD and NVME auth */
 64	enum level_option level;
 65	bool cert_installed;
 66	char *signature;
 67	char *save_signature;
 68};
 69
 70/* Attribute setting details */
 71struct tlmi_attr_setting {
 72	struct kobject kobj;
 73	int index;
 74	char display_name[TLMI_SETTINGS_MAXLEN];
 75	char *possible_values;
 76};
 77
 78struct think_lmi {
 79	struct wmi_device *wmi_device;
 80
 81	bool can_set_bios_settings;
 82	bool can_get_bios_selections;
 83	bool can_set_bios_password;
 84	bool can_get_password_settings;
 85	bool pending_changes;
 86	bool can_debug_cmd;
 87	bool opcode_support;
 88	bool certificate_support;
 89
 90	struct tlmi_attr_setting *setting[TLMI_SETTINGS_COUNT];
 91	struct device *class_dev;
 92	struct kset *attribute_kset;
 93	struct kset *authentication_kset;
 94
 95	struct tlmi_pwdcfg pwdcfg;
 96	struct tlmi_pwd_setting *pwd_admin;
 97	struct tlmi_pwd_setting *pwd_power;
 98	struct tlmi_pwd_setting *pwd_system;
 99	struct tlmi_pwd_setting *pwd_hdd;
100	struct tlmi_pwd_setting *pwd_nvme;
101};
102
103#endif /* !_THINK_LMI_H_ */