tuxedo_io: Add clevo interface string read ioctl

This commit is contained in:
Christoffer Sandberg 2020-12-08 15:48:18 +01:00
parent 95a8097b0f
commit 51741558ed
No known key found for this signature in database
GPG key ID: BF563F71B6C7A96D
2 changed files with 19 additions and 8 deletions

View file

@ -65,8 +65,18 @@ static long clevo_ioctl_interface(struct file *file, unsigned int cmd, unsigned
u32 result = 0, status; u32 result = 0, status;
u32 copy_result; u32 copy_result;
u32 argument = (u32) arg; u32 argument = (u32) arg;
const char str_no_if[] = "";
char *str_clevo_if;
switch (cmd) { switch (cmd) {
case R_HW_IF_STR:
if (clevo_get_active_interface_id(&str_clevo_if) == 0) {
copy_result = copy_to_user((char *) arg, str_clevo_if, strlen(str_clevo_if) + 1);
} else {
copy_result = copy_to_user((char *) arg, str_no_if, strlen(str_no_if) + 1);
}
break;
case R_FANINFO1: case R_FANINFO1:
status = clevo_evaluate_method(CLEVO_CMD_GET_FANINFO1, 0, &result); status = clevo_evaluate_method(CLEVO_CMD_GET_FANINFO1, 0, &result);
copy_result = copy_to_user((int32_t *) arg, &result, sizeof(result)); copy_result = copy_to_user((int32_t *) arg, &result, sizeof(result));

View file

@ -1,9 +1,9 @@
/*! /*!
* Copyright (c) 2019-2020 TUXEDO Computers GmbH <tux@tuxedocomputers.com> * Copyright (c) 2019-2020 TUXEDO Computers GmbH <tux@tuxedocomputers.com>
* *
* This file is part of tuxedo-cc-wmi. * This file is part of tuxedo-io.
* *
* tuxedo-cc-wmi is free software: you can redistribute it and/or modify * tuxedo-io is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version. * (at your option) any later version.
@ -21,24 +21,25 @@
#define IOCTL_MAGIC 0xEC #define IOCTL_MAGIC 0xEC
#define MAGIC_READ_CL IOCTL_MAGIC #define MAGIC_READ_CL IOCTL_MAGIC + 1
#define MAGIC_WRITE_CL IOCTL_MAGIC + 1 #define MAGIC_WRITE_CL IOCTL_MAGIC + 2
#define MAGIC_READ_UW IOCTL_MAGIC + 2 #define MAGIC_READ_UW IOCTL_MAGIC + 3
#define MAGIC_WRITE_UW IOCTL_MAGIC + 3 #define MAGIC_WRITE_UW IOCTL_MAGIC + 4
// General // General
#define R_MOD_VERSION _IOR(IOCTL_MAGIC, 0x00, char*) #define R_MOD_VERSION _IOR(IOCTL_MAGIC, 0x00, char*)
#define R_HWCHECK_CL _IOR(IOCTL_MAGIC, 0x05, char*) #define R_HWCHECK_CL _IOR(IOCTL_MAGIC, 0x05, int32_t*)
#define R_HWCHECK_UW _IOR(IOCTL_MAGIC, 0x06, char*) #define R_HWCHECK_UW _IOR(IOCTL_MAGIC, 0x06, int32_t*)
/** /**
* Clevo interface * Clevo interface
*/ */
// Read // Read
#define R_HW_IF_STR _IOR(MAGIC_READ_CL, 0x00, char*)
#define R_FANINFO1 _IOR(MAGIC_READ_CL, 0x10, int32_t*) #define R_FANINFO1 _IOR(MAGIC_READ_CL, 0x10, int32_t*)
#define R_FANINFO2 _IOR(MAGIC_READ_CL, 0x11, int32_t*) #define R_FANINFO2 _IOR(MAGIC_READ_CL, 0x11, int32_t*)
#define R_FANINFO3 _IOR(MAGIC_READ_CL, 0x12, int32_t*) #define R_FANINFO3 _IOR(MAGIC_READ_CL, 0x12, int32_t*)