move dmi board read

This commit is contained in:
Denis 2024-02-20 01:56:37 +01:00
parent 2166c6a337
commit 3834651c0e
No known key found for this signature in database
GPG key ID: DD9B63F805CF5C03
3 changed files with 20 additions and 8 deletions

View file

@ -47,16 +47,13 @@ int main(int argc, char ** argv) {
load_out_config(&out_settings, configuration_file);
input_dev_composite_t* in_devs = NULL;
int dmi_name_fd = open("/sys/class/dmi/id/board_name", O_RDONLY | O_NONBLOCK);
if (dmi_name_fd < 0) {
char bname[256];
if (dmi_board_name(bname, sizeof(bname)) < 0) {
fprintf(stderr, "Cannot get the board name\n");
return EXIT_FAILURE;
}
char bname[256];
memset(bname, 0, sizeof(bname));
read(dmi_name_fd, bname, sizeof(bname));
if (strstr(bname, "RC71L") != NULL) {
printf("Running in an Asus ROG Ally device\n");
in_devs = rog_ally_device_def(&in_settings);
@ -64,7 +61,7 @@ int main(int argc, char ** argv) {
printf("Running in an Lenovo Legion Go device\n");
in_devs = legion_go_device_def();
}
close(dmi_name_fd);
int dev_in_thread_creation = -1;
int dev_out_thread_creation = -1;

View file

@ -28,4 +28,17 @@ int64_t absolute_value(int64_t value) {
}
return value;
}
ssize_t dmi_board_name(char *const buf, size_t buf_len) {
int dmi_name_fd = open("/sys/class/dmi/id/board_name", O_RDONLY | O_NONBLOCK);
if (dmi_name_fd < 0) {
return -1;
}
memset(buf, 0, buf_len);
const ssize_t ret = read(dmi_name_fd, buf, buf_len);
close(dmi_name_fd);
return ret;
}

View file

@ -67,4 +67,6 @@ int64_t div_round_closest_i64(int64_t x, int64_t divisor);
int64_t min_max_clamp(int64_t value, int64_t min, int64_t max);
int64_t absolute_value(int64_t value);
int64_t absolute_value(int64_t value);
ssize_t dmi_board_name(char *const buf, size_t buf_len);