diff options
author | Burt P <pburt0@gmail.com> | 2017-05-22 13:03:49 -0500 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2017-06-02 12:50:14 -0700 |
commit | 8b69f426af774c6a165ee59a4fd66f8066df2999 (patch) | |
tree | 87b2b445ba6f3e7c16b293c8263478a31cbe8cb7 /modules | |
parent | c499ed384d23138010b5b6cf58064bf46474be12 (diff) |
Requested changes in re rpi board name
* dt_get_model() replaced by the simpler g_file_get_contents()
* rpi_get_boardname() declared static
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'modules')
-rw-r--r-- | modules/devices.c | 46 |
1 files changed, 4 insertions, 42 deletions
diff --git a/modules/devices.c b/modules/devices.c index 50cf0bd2..87bb8a80 100644 --- a/modules/devices.c +++ b/modules/devices.c @@ -236,44 +236,7 @@ static struct { { NULL, NULL, NULL, NULL, NULL, NULL } }; -gchar *dt_get_model() { - FILE *dtmodel; - char *ret = NULL; - size_t fs, rlen; - - dtmodel = fopen("/proc/device-tree/model", "r"); - if (!dtmodel) - return NULL; - - if (fseek(dtmodel, 0L, SEEK_END) == 0) { - fs = ftell(dtmodel); - if (fs == -1) { - fclose(dtmodel); - return NULL; - } - - ret = g_malloc(sizeof(char) * (fs + 1)); - if (fseek(dtmodel, 0L, SEEK_SET) != 0) { - g_free(ret); - fclose(dtmodel); - return NULL; - } - - rlen = fread(ret, sizeof(char), fs, dtmodel); - if (ferror(dtmodel) != 0 ) { - g_free(ret); - fclose(dtmodel); - return NULL; - } else { - ret[rlen+1] = '\0'; - } - } - - fclose(dtmodel); - return ret; -} - -gchar *rpi_get_boardname(void) { +static gchar *rpi_get_boardname(void) { int i = 0, c = 0; gchar *ret = NULL; gchar *soc = NULL; @@ -342,18 +305,17 @@ gchar *get_motherboard(void) return g_strconcat(board_vendor, _(" (model unknown)"), NULL); #else /* use device tree "model" */ - board_vendor = dt_get_model(); + if (g_file_get_contents("/proc/device-tree/model", &board_vendor, NULL, NULL)) { - if (board_vendor != NULL) { - /* maybe it is an rpi */ + /* if a raspberry pi, try and get a more detailed name */ if (g_str_has_prefix(board_vendor, "Raspberry Pi")) { - /* try and get a more detailed board name */ board_name = rpi_get_boardname(); if (board_name != NULL) { g_free(board_vendor); return board_name; } } + return board_vendor; } #endif |