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

@ -48,15 +48,12 @@ int main(int argc, char ** argv) {
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

@ -29,3 +29,16 @@ 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

@ -68,3 +68,5 @@ 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);
ssize_t dmi_board_name(char *const buf, size_t buf_len);