From f189ad271eb9a174baa6910f8a2ae1838c818137 Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
Date: Fri, 18 Sep 2015 03:55:44 +0200
Subject: [PATCH] (mali_fbdev_ctx.c) Use retro_file.h

---
 gfx/drivers_context/mali_fbdev_ctx.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/gfx/drivers_context/mali_fbdev_ctx.c b/gfx/drivers_context/mali_fbdev_ctx.c
index ccc2fd9126..a9e1943f5e 100644
--- a/gfx/drivers_context/mali_fbdev_ctx.c
+++ b/gfx/drivers_context/mali_fbdev_ctx.c
@@ -13,7 +13,6 @@
  *  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <fcntl.h>
 #include <unistd.h>
 
 #include <signal.h>
@@ -25,6 +24,8 @@
 #include <linux/fb.h>
 #include <linux/vt.h>
 
+#include <retro_file.h>
+
 #include "../../driver.h"
 #include "../../general.h"
 #include "../../runloop.h"
@@ -57,7 +58,9 @@ static void gfx_ctx_mali_fbdev_set_swap_interval(
 
 static void gfx_ctx_mali_fbdev_destroy(void *data)
 {
-   int fd;
+   int fb;
+   RFILE *fd;
+
    (void)data;
 
    if (g_egl_dpy != EGL_NO_DISPLAY)
@@ -84,12 +87,13 @@ static void gfx_ctx_mali_fbdev_destroy(void *data)
    g_resize       = false;
 
    /* Clear framebuffer and set cursor on again */
-   fd = open("/dev/tty", O_RDWR);
-   ioctl(fd,VT_ACTIVATE,5);
-   ioctl(fd,VT_ACTIVATE,1);
-   close (fd);
-   system("setterm -cursor on");
+   fd = retro_fopen("/dev/tty", RFILE_MODE_READ_WRITE, -1);
+   fb = retro_get_fd(fd);
 
+   ioctl(fb, VT_ACTIVATE,5);
+   ioctl(fb, VT_ACTIVATE,1);
+   retro_fclose(fd);
+   system("setterm -cursor on");
 }
 
 static void gfx_ctx_mali_fbdev_get_video_size(void *data,
@@ -222,14 +226,15 @@ static bool gfx_ctx_mali_fbdev_set_video_mode(void *data,
       EGL_CONTEXT_CLIENT_VERSION, 2, /* Use version 2, even for GLES3. */
       EGL_NONE
    };
-   int fb = open("/dev/fb0", O_RDWR, 0);
+   RFILE *fd = retro_fopen("/dev/fb0", RFILE_MODE_READ_WRITE, -1);
+   int fb    = retro_get_fd(fd);
 
    if (ioctl(fb, FBIOGET_VSCREENINFO, &vinfo) < 0)
    {
       RARCH_ERR("Error obtainig framebuffer info.\n");
       goto error;
    }
-   close (fb);
+   retro_fclose(fd);
    
    width                = vinfo.xres;
    height               = vinfo.yres;
@@ -261,6 +266,8 @@ static bool gfx_ctx_mali_fbdev_set_video_mode(void *data,
    return true;
 
 error:
+   if (fd)
+      retro_fclose(fd);
    RARCH_ERR("[Mali fbdev]: EGL error: %d.\n", eglGetError());
    gfx_ctx_mali_fbdev_destroy(data);
    return false;