Author | Tokens | Token Proportion | Commits | Commit Proportion |
---|---|---|---|---|
Mark Pearson | 311 | 100.00% | 6 | 100.00% |
Total | 311 | 6 |
/* SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef _THINK_LMI_H_ #define _THINK_LMI_H_ #include <linux/types.h> #define TLMI_SETTINGS_COUNT 256 #define TLMI_SETTINGS_MAXLEN 512 #define TLMI_PWD_BUFSIZE 129 #define TLMI_LANG_MAXLEN 4 #define TLMI_INDEX_MAX 32 /* Possible error values */ struct tlmi_err_codes { const char *err_str; int err_code; }; enum encoding_option { TLMI_ENCODING_ASCII, TLMI_ENCODING_SCANCODE, }; enum level_option { TLMI_LEVEL_USER, TLMI_LEVEL_MASTER, }; /* * There are a limit on the number of WMI operations you can do if you use * the default implementation of saving on every set. This is due to a * limitation in EFI variable space used. * Have a 'bulk save' mode where you can manually trigger the save, and can * therefore set unlimited variables - for users that need it. */ enum save_mode { TLMI_SAVE_SINGLE, TLMI_SAVE_BULK, TLMI_SAVE_SAVE, }; /* password configuration details */ struct tlmi_pwdcfg_core { uint32_t password_mode; uint32_t password_state; uint32_t min_length; uint32_t max_length; uint32_t supported_encodings; uint32_t supported_keyboard; }; struct tlmi_pwdcfg_ext { uint32_t hdd_user_password; uint32_t hdd_master_password; uint32_t nvme_user_password; uint32_t nvme_master_password; }; struct tlmi_pwdcfg { struct tlmi_pwdcfg_core core; struct tlmi_pwdcfg_ext ext; }; /* password setting details */ struct tlmi_pwd_setting { struct kobject kobj; bool valid; char password[TLMI_PWD_BUFSIZE]; const char *pwd_type; const char *role; int minlen; int maxlen; enum encoding_option encoding; char kbdlang[TLMI_LANG_MAXLEN]; int index; /*Used for HDD and NVME auth */ enum level_option level; bool cert_installed; char *signature; char *save_signature; }; /* Attribute setting details */ struct tlmi_attr_setting { struct kobject kobj; int index; char display_name[TLMI_SETTINGS_MAXLEN]; char *possible_values; }; struct think_lmi { struct wmi_device *wmi_device; bool can_set_bios_settings; bool can_get_bios_selections; bool can_set_bios_password; bool can_get_password_settings; bool pending_changes; bool can_debug_cmd; bool opcode_support; bool certificate_support; enum save_mode save_mode; bool save_required; bool reboot_required; struct tlmi_attr_setting *setting[TLMI_SETTINGS_COUNT]; struct device *class_dev; struct kset *attribute_kset; struct kset *authentication_kset; struct tlmi_pwdcfg pwdcfg; struct tlmi_pwd_setting *pwd_admin; struct tlmi_pwd_setting *pwd_power; struct tlmi_pwd_setting *pwd_system; struct tlmi_pwd_setting *pwd_hdd; struct tlmi_pwd_setting *pwd_nvme; }; #endif /* !_THINK_LMI_H_ */
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with Cregit http://github.com/cregit/cregit
Version 2.0-RC1