00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef C_SMI_H
00019 #define C_SMI_H
00020
00021
00022 #include "smbios_c/compat.h"
00023 #include "smbios_c/types.h"
00024
00025 EXTERN_C_BEGIN;
00026
00027 enum {
00028 cbARG1 = 0,
00029 cbARG2 = 1,
00030 cbARG3 = 2,
00031 cbARG4 = 3,
00032 cbRES1 = 0,
00033 cbRES2 = 1,
00034 cbRES3 = 2,
00035 cbRES4 = 3,
00036 };
00037
00038 DLL_SPEC const char *dell_smi_strerror();
00039
00040 DLL_SPEC int dell_simple_ci_smi(u16 smiClass, u16 select, const u32 args[4], u32 res[4]);
00041
00042 DLL_SPEC int dell_smi_read_nv_storage (u32 location, u32 *curValue, u32 *minValue, u32 *maxValue);
00043 DLL_SPEC int dell_smi_read_battery_mode_setting(u32 location, u32 *curValue, u32 *minValue, u32 *maxValue);
00044 DLL_SPEC int dell_smi_read_ac_mode_setting (u32 location, u32 *curValue, u32 *minValue, u32 *maxValue);
00045
00046 DLL_SPEC int dell_smi_write_nv_storage (u16 security_key, u32 location, u32 value, u32 *smiret);
00047 DLL_SPEC int dell_smi_write_battery_mode_setting(u16 security_key, u32 location, u32 value, u32 *smiret);
00048 DLL_SPEC int dell_smi_write_ac_mode_setting (u16 security_key, u32 location, u32 value, u32 *smiret);
00049
00050
00051 enum { DELL_SMI_PASSWORD_ANY = 0, DELL_SMI_PASSWORD_USER = 9, DELL_SMI_PASSWORD_ADMIN = 10, DELL_SMI_PASSWORD_OWNER = 12 };
00052 enum { DELL_SMI_PASSWORD_FMT_SCANCODE = 0, DELL_SMI_PASSWORD_FMT_ASCII = 1 };
00053 DLL_SPEC int dell_smi_password_format(int which);
00054 DLL_SPEC int dell_smi_get_security_key(const char *password, u16 *security_key);
00055 DLL_SPEC bool dell_smi_is_password_present(int which);
00056 DLL_SPEC int dell_smi_password_verify(int which, const char *password);
00057 DLL_SPEC int dell_smi_password_max_len(int which);
00058 DLL_SPEC int dell_smi_password_min_len(int which);
00059 DLL_SPEC int dell_smi_password_change(int which, const char *oldpass, const char *newpass);
00060
00061 EXTERN_C_END;
00062
00063 #endif