Initial refactoring merge
[platform/core/telephony/tel-plugin-vmodem.git] / src / vdpram.c
index 078e914..07eca2a 100644 (file)
@@ -1,9 +1,7 @@
 /*\r
  * tel-plugin-vmodem\r
  *\r
- * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.\r
- *\r
- * Contact: Junhwan An <jh48.an@samsung.com>\r
+ * Copyright (c) 2013 Samsung Electronics Co. Ltd. All rights reserved.\r
  *\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
@@ -32,9 +30,8 @@
 #include <glib.h>
 
 #include <log.h>\r
-#include "legacy/TelUtility.h"\r
+\r
 #include "vdpram.h"\r
-#include "vdpram_dump.h"\r
 \r
 #ifndef TIOCMODG\r
 #  ifdef TIOCMGET\r
 #  endif\r
 #endif\r
 \r
+#define VDPRAM_OPEN_PATH               "/dev/vdpram0"\r
+\r
+/* DPRAM ioctls for DPRAM tty devices */\r
+#define IOC_MZ_MAGIC                   ('h')\r
+#define HN_DPRAM_PHONE_ON              _IO (IOC_MZ_MAGIC, 0xd0)\r
+#define HN_DPRAM_PHONE_OFF             _IO (IOC_MZ_MAGIC, 0xd1)\r
+#define HN_DPRAM_PHONE_GETSTATUS       _IOR(IOC_MZ_MAGIC, 0xd2, guint)\r
+\r
 /* Retry parameters */
 #define SLEEP_TIME_IN_SEC              0
 #define SLEEP_TIME_IN_MSEC             50
 
-#define MAX_RETRY_COUNT                        10
+#define MAX_RETRY_COUNT                10
 
-typedef struct _tty_old_setting_t {
-       int             fd;\r
-       struct  termios  termiosVal;\r
-       struct  _tty_old_setting_t *next;\r
-       struct  _tty_old_setting_t *prev;\r
-} tty_old_setting_t;\r
-\r
-#define VDPRAM_OPEN_PATH               "/dev/vdpram0"\r
+typedef struct tty_old_setting TtyOldSetting;\r
 \r
-/* DPRAM ioctls for DPRAM tty devices */\r
-#define IOC_MZ_MAGIC           ('h')\r
-#define HN_DPRAM_PHONE_ON                      _IO (IOC_MZ_MAGIC, 0xd0)\r
-#define HN_DPRAM_PHONE_OFF                     _IO (IOC_MZ_MAGIC, 0xd1)\r
-#define HN_DPRAM_PHONE_GETSTATUS       _IOR(IOC_MZ_MAGIC, 0xd2, unsigned int)\r
+struct tty_old_setting {
+       gint fd;\r
+       struct termios termiosVal;\r
+       TtyOldSetting *next;\r
+       TtyOldSetting *prev;\r
+};\r
 \r
-static tty_old_setting_t *ttyold_head = NULL;\r
+static TtyOldSetting *ttyold_head = NULL;\r
 \r
 /*
- *     Insert TTY old settings.
+ * Insert TTY old settings
  */
-static void __insert_tty_oldsetting(tty_old_setting_t *me)\r
+static void __insert_tty_oldsetting(TtyOldSetting *me)\r
 {\r
-       dbg("Function Entrance");
+       dbg("Enter");
 \r
        if (me == NULL)\r
                return;\r
@@ -98,42 +97,31 @@ static void __insert_tty_oldsetting(tty_old_setting_t *me)
 }\r
 \r
 /*
- *     Search TTY old settings.
+ * Search TTY old settings
  */
-static tty_old_setting_t *__search_tty_oldsetting(int fd)\r
+static TtyOldSetting *__search_tty_oldsetting(gint fd)\r
 {\r
-       tty_old_setting_t *tty = NULL;\r
-\r
-       dbg("Function Entrance");
-\r
-       if (ttyold_head == NULL)\r
-               return NULL;\r
+       TtyOldSetting *tty = ttyold_head;\r
 \r
-       tty = ttyold_head;\r
+       dbg("Enter");
 \r
-       do {
+       while (tty) {\r
                if (tty->fd == fd) {\r
-                       dbg("oldsetting for inputted fd [%d] is found", fd);
+                       dbg("tty for fd [%d] found!!!", fd);
                        break;\r
-               } else {
-                       if (tty->next == NULL) {\r
-                               err("No oldsetting found!!!");
-                               tty = NULL;\r
-                               break;\r
-                       }\r
-                       tty = tty->next;\r
                }\r
-       } while (1);
+               tty = tty->next;\r
+       };\r
 \r
        return tty;\r
 }\r
 \r
 /*
- *     Remove TTY old settings.
+ * Remove TTY old settings
  */
-static void __remove_tty_oldsetting(tty_old_setting_t *me)\r
+static void __remove_tty_oldsetting(TtyOldSetting *me)\r
 {\r
-       dbg( "Function Enterence.");\r
+       dbg("Enter");\r
 \r
        if (me == NULL)\r
                return;\r
@@ -148,18 +136,18 @@ static void __remove_tty_oldsetting(tty_old_setting_t *me)
 }\r
 \r
 /*
- *     Set hardware flow control.
+ * Set hardware flow control
  */
-static void __tty_sethwf(int fd, int on)\r
+static void __tty_sethwf(gint fd, gint on)\r
 {\r
        struct termios tty;\r
 \r
-       dbg("Function Entrance");
+       dbg("Enter");
 \r
        if (tcgetattr(fd, &tty))\r
                err("__tty_sethwf: tcgetattr:");\r
 \r
-       if (on)\r
+       if (on == 1)\r
                tty.c_cflag |= CRTSCTS;
        else\r
                tty.c_cflag &= ~CRTSCTS;
@@ -169,13 +157,13 @@ static void __tty_sethwf(int fd, int on)
 }\r
 \r
 /*\r
- *     Set RTS line. Sometimes dropped. Linux specific?
+ * Set RTS line. Sometimes dropped. Linux specific?
  */
-static int __tty_setrts(int fd)\r
+static gint __tty_setrts(gint fd)\r
 {\r
-       int mcs;\r
+       gint mcs;\r
 \r
-       dbg("Function Entrance");
+       dbg("Enter");
 \r
        if (-1 ==  ioctl(fd, TIOCMODG, &mcs))\r
                err("icotl: TIOCMODG");\r
@@ -189,35 +177,36 @@ static int __tty_setrts(int fd)
 }\r
 \r
 /*\r
- *     Set baudrate, parity and number of bits.
+ * Set baudrate, parity and number of bits
  */\r
-static int __tty_setparms(int fd, char* baudr, char* par, char* bits, char* stop, int hwf, int swf)\r
+static gboolean __tty_setparms(gint fd,\r
+       gchar *baudr, gchar *par, gchar *bits, gchar *stop, gint hwf, gint swf)\r
 {\r
-       int spd = -1;\r
-       int newbaud;\r
-       int bit = bits[0];\r
-       int stop_bit = stop[0];\r
+       gint spd = -1;\r
+       gint newbaud;\r
+       gint bit = bits[0];\r
+       gint stop_bit = stop[0];\r
 \r
        struct termios tty;\r
-       tty_old_setting_t *old_setting = NULL;\r
+       TtyOldSetting *old_setting = NULL;\r
 \r
-       dbg("Function Entrance");
+       dbg("Enter");
 \r
-       old_setting = g_try_new0(tty_old_setting_t, 1);
+       old_setting = g_try_new0(TtyOldSetting, 1);
 \r
        if (old_setting == NULL)\r
-               return TAPI_API_SYSTEM_OUT_OF_MEM;\r
+               return FALSE;\r
 \r
        old_setting->fd = fd;\r
 \r
        if (tcgetattr(fd, &tty) < 0) {\r
                g_free(old_setting);
-               return TAPI_API_TRANSPORT_LAYER_FAILURE;\r
+               return FALSE;\r
        }\r
 \r
        if (tcgetattr(fd, &old_setting->termiosVal) < 0) {\r
                g_free(old_setting);
-               return TAPI_API_TRANSPORT_LAYER_FAILURE;\r
+               return FALSE;\r
        }\r
 \r
        __insert_tty_oldsetting(old_setting);\r
@@ -232,54 +221,54 @@ static int __tty_setparms(int fd, char* baudr, char* par, char* bits, char* stop
        if ((newbaud = (atol(baudr) / 100)) == 0 && baudr[0] != '0')\r
                newbaud = -1;\r
 \r
-       switch(newbaud) {
-               case 0:\r
-                       spd = 0;\r
-               break;
+       switch (newbaud) {
+       case 0:\r
+               spd = 0;\r
+       break;
 \r
-               case 3:\r
-                       spd = B300;\r
-               break;
+       case 3:\r
+               spd = B300;\r
+       break;
 \r
-               case 6:\r
-                       spd = B600;\r
-               break;
+       case 6:\r
+               spd = B600;\r
+       break;
 \r
-               case 12:\r
-                       spd = B1200;\r
-               break;
+       case 12:\r
+               spd = B1200;\r
+       break;
 \r
-               case 24:\r
-                       spd = B2400;\r
-               break;
+       case 24:\r
+               spd = B2400;\r
+       break;
 \r
-               case 48:\r
-                       spd = B4800;\r
-               break;
+       case 48:\r
+               spd = B4800;\r
+       break;
 \r
-               case 96:\r
-                       spd = B9600;\r
-               break;
+       case 96:\r
+               spd = B9600;\r
+       break;
 \r
-               case 192:\r
-                       spd = B19200;\r
-               break;
+       case 192:\r
+               spd = B19200;\r
+       break;
 \r
-               case 384:\r
-                       spd = B38400;\r
-               break;
+       case 384:\r
+               spd = B38400;\r
+       break;
 \r
-               case 576:\r
-                       spd = B57600;\r
-               break;
+       case 576:\r
+               spd = B57600;\r
+       break;
 \r
-               case 1152:\r
-                       spd = B115200;\r
-               break;
+       case 1152:\r
+               spd = B115200;\r
+       break;
 \r
-               default:\r
-                       err("invaid baud rate");\r
-               break;
+       default:\r
+               err("invaid baud rate");\r
+       break;
        }\r
 \r
        if (spd != -1) {\r
@@ -287,34 +276,34 @@ static int __tty_setparms(int fd, char* baudr, char* par, char* bits, char* stop
                cfsetispeed(&tty, (speed_t) spd);
        }\r
 \r
-       switch(bit) {
-               case '5':
-                       tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS5;
-               break;
+       switch (bit) {
+       case '5':
+               tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS5;
+       break;
 \r
-               case '6':
-                       tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS6;
-               break;
+       case '6':
+               tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS6;
+       break;
 \r
-               case '7':
-                       tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS7;
-               break;
+       case '7':
+               tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS7;
+       break;
 \r
-               case '8':
-               default:
-                       tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8;
-               break;
+       case '8':
+       default:
+               tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8;
+       break;
        }\r
 \r
-       switch(stop_bit) {
-               case '1':
-                       tty.c_cflag &= ~CSTOPB;
-               break;
+       switch (stop_bit) {
+       case '1':
+               tty.c_cflag &= ~CSTOPB;
+       break;
 \r
-               case '2':
-               default:
-                       tty.c_cflag |= CSTOPB;
-               break;
+       case '2':
+       default:
+               tty.c_cflag |= CSTOPB;
+       break;
        }\r
 \r
        /* Set into raw, no echo mode */\r
@@ -339,34 +328,34 @@ static int __tty_setparms(int fd, char* baudr, char* par, char* bits, char* stop
 \r
        if (tcsetattr(fd, TCSANOW, &tty) < 0) {\r
                g_free(old_setting);
-               return TAPI_API_TRANSPORT_LAYER_FAILURE;
+               return FALSE;
        }\r
 \r
        __tty_setrts(fd);\r
        __tty_sethwf(fd, hwf);\r
 \r
-       return TAPI_API_SUCCESS;\r
+       return TRUE;\r
 }\r
 \r
 /*
- *     Close TTY Device.
+ * Close TTY Device
  */
-static int __tty_close(int fd)\r
+static gboolean __tty_close(gint fd)\r
 {\r
-       tty_old_setting_t *old_setting = NULL;\r
+       TtyOldSetting *old_setting = NULL;\r
 \r
-       dbg("Function Entrance");
+       dbg("Enter");
 \r
        /* Get previous settings */
        old_setting = __search_tty_oldsetting(fd);\r
        if (old_setting == NULL) {
-               dbg("[VDPRAM] No previous settings found!!!");
-               return TAPI_API_SUCCESS;\r
+               dbg("No previous settings found!!!");
+               return TRUE;\r
        }
 \r
        if (tcsetattr(fd, TCSAFLUSH, &old_setting->termiosVal) < 0)     {\r
-               err("[VDPRAM] Close failed");
-               return TAPI_API_TRANSPORT_LAYER_FAILURE;\r
+               err("Close failed");
+               return FALSE;\r
        }\r
 \r
        /* Remove the previous setting configured */
@@ -378,30 +367,30 @@ static int __tty_close(int fd)
        /* Close fd */
        close(fd);\r
 \r
-       return TAPI_API_SUCCESS;\r
+       return TRUE;\r
 }\r
 \r
 /*\r
- *     Wait on select.
+ * Wait on select
  */
-static void __sleep(int sec, int msec)
+static void __sleep(gint sec, gint msec)
 {
-    struct timeval tv;
+       struct timeval tv;
 
-    tv.tv_sec = sec;
-    tv.tv_usec = msec;
+       tv.tv_sec = sec;
+       tv.tv_usec = msec;
 
-    select(0, NULL, NULL, NULL, &tv);
+       select(0, NULL, NULL, NULL, &tv);
 }
 
 /*
  * Close the VDPRAM device
  */
-int vdpram_close(int fd)\r
+gboolean vdpram_close(gint fd)\r
 {\r
-       int ret = TAPI_API_SUCCESS;\r
+       gint ret;\r
 \r
-       dbg("Function Entrance");
+       dbg("Enter");
 \r
        /* Close VDPRAM Device */
        ret = __tty_close(fd);\r
@@ -412,125 +401,120 @@ int vdpram_close(int fd)
 /*\r
  * Open the VDPRAM device
  */
-int vdpram_open (void)\r
+gint vdpram_open (void)\r
 {\r
-       int rv = -1;\r
-       int fd = -1;\r
-       int val = 0;\r
-       unsigned int cmd =0;\r
+       gint rv = -1;\r
+       gint fd = -1;\r
+       gint val = 0;\r
+       guint cmd =0;\r
 \r
-       dbg("Function Enterence.");
+       dbg("Enter");
 
        /* Open DPRAM device */
        fd = open(VDPRAM_OPEN_PATH, O_RDWR);\r
        if (fd < 0) {\r
-               err("[VDPRAM] Open VDPRAM file - [FAIL] Error: [%s]", strerror(errno));
+               err("Open VDPRAM file - [FAIL] Error: [%s]", strerror(errno));
                return rv;\r
        } else {
-               dbg("[VDPRAM] Open VDPRAM file - [SUCCESS] fd: [%d] path: [%s]",
-                                                                               fd, VDPRAM_OPEN_PATH);
+               dbg("Open VDPRAM file - [SUCCESS] fd: [%d] path: [%s]",
+                       fd, VDPRAM_OPEN_PATH);
        }\r
 \r
        /* Set device parameters */
-       if (__tty_setparms(fd, "115200", "N", "8", "1", 0, 0) != TAPI_API_SUCCESS) {
-               err("[VDPRAM] Set TTY device parameters - [FAIL]");
+       if (__tty_setparms(fd, "115200", "N", "8", "1", 0, 0) != TRUE) {
+               err("Set TTY device parameters - [FAIL]");
 \r
                /* Close VDPRAM Device */
-               vdpram_close(fd);\r
+               (void)vdpram_close(fd);\r
                return rv;\r
        }\r
        else {
-               dbg("[VDPRAM] Set TTY device parameters - [SUCCESS]");
+               dbg("Set TTY device parameters - [SUCCESS]");
        }
 \r
        /* TODO: No need to check Status. Delete */
        cmd = HN_DPRAM_PHONE_GETSTATUS;\r
        if (ioctl(fd, cmd, &val) < 0) {
-               err("[VDPRAM] Get Phone status - [FAIL] fd: [d] cmd: [%d] val: [%d]",
-                                                                                       fd, cmd, val);
+               err("Get Phone status - [FAIL] fd: [d] cmd: [%d] val: [%d]",
+                       fd, cmd, val);
 \r
                /* Close Device */
-               vdpram_close(fd);\r
+               (void)vdpram_close(fd);\r
 
                return rv;\r
        } else {
-               dbg("[VDPRAM] Get Phone status - [SUCCESS]");
+               dbg("Get Phone status - [SUCCESS]");
        }\r
 \r
        return fd;\r
 }\r
 \r
 /*\r
- *     Power ON the Phone.
+ * Power ON the Phone
  */
-gboolean vdpram_poweron(int fd)
+gboolean vdpram_poweron(gint fd)
 {\r
        if (ioctl(fd, HN_DPRAM_PHONE_ON, NULL) < 0) {\r
-               err("[VDPRAM] Phone Power ON [FAIL] - fd: [%d] Error: [%s]", fd, strerror(errno));
+               err("Phone Power ON [FAIL] - fd: [%d] Error: [%s]", fd, strerror(errno));
                return FALSE;
        }\r
        else {\r
-               dbg("[VDPRAM] Phone Power ON [SUCCESS] - fd: [%d]", fd);
+               dbg("Phone Power ON [SUCCESS] - fd: [%d]", fd);
                return TRUE;
        }\r
 }\r
 \r
 /*
- *     Power OFF the Phone.
+ * Power OFF the Phone
  */\r
-gboolean vdpram_poweroff(int fd)
+gboolean vdpram_poweroff(gint fd)
 {\r
        if (ioctl(fd, HN_DPRAM_PHONE_OFF, NULL) < 0) {\r
-               err("[VDPRAM] Phone Power OFF [FAIL] - fd: [%d] Error: [%s]", fd, strerror(errno));
+               err("Phone Power OFF [FAIL] - fd: [%d] Error: [%s]", fd, strerror(errno));
                return FALSE;
        }\r
        else {\r
-               dbg("[VDPRAM] Phone Power OFF [SUCCESS] - fd: [%d]", fd);
+               dbg("Phone Power OFF [SUCCESS] - fd: [%d]", fd);
                return TRUE;
        }\r
 }\r
 \r
 /*\r
- *     Read data from VDPRAM.
+ * Read data from VDPRAM
  */
-int vdpram_tty_read(int nFd, void* buf, size_t nbytes)\r
+gint vdpram_tty_read(gint fd, void *buf, size_t buf_len)\r
 {\r
-       int     actual = 0;\r
+       gint actual = 0;\r
 \r
-       if ((actual = read(nFd, buf, nbytes)) < 0) {\r
-               err("[VDPRAM] Read [FAIL] - fd: [%d] Error: [%s]", nFd, strerror(errno));
+       if ((actual = read(fd, buf, buf_len)) < 0) {\r
+               err("Read [FAIL] - fd: [%d] Error: [%s]", fd, strerror(errno));
        }\r
 
-       /* Dumping Read data */
-       vdpram_hex_dump(RX, actual, buf);
-\r
        return actual;\r
 }\r
 \r
 /*\r
- *     Write data to VDPRAM.
+ * Write data to VDPRAM
  */
-int vdpram_tty_write(int nFd, void* buf, size_t nbytes)\r
+gint vdpram_tty_write(gint fd, void *buf, size_t buf_len)\r
 {\r
-       int ret;\r
        size_t actual = 0;\r
-       int     retry = 0;\r
-\r
-       do {\r
-               vdpram_hex_dump(TX, nbytes, buf);
+       guint retry = 0;\r
+       gint ret;\r
 
+       while(actual < buf_len) {\r
                /* Write to Device */
-               ret = write(nFd, (unsigned char* )buf, nbytes - actual);\r
+               ret = write(fd, (guchar *)buf, buf_len - actual);\r
                if (ret < 0) {
-                       err("[VDPRAM] Write [FAIL] - fd: [%d] Error: [%s]",
-                                                                                               nFd, strerror(errno));
+                       err("Write [FAIL] - fd: [%d] Error: [%s]",
+                               fd, strerror(errno));
 \r
                        if ((errno == EAGAIN) || (errno == EBUSY)) {
                                /* Sleep for 50 msecs */
                                __sleep(SLEEP_TIME_IN_SEC, SLEEP_TIME_IN_MSEC);
 \r
                                if (retry == MAX_RETRY_COUNT) {
-                                       err("[VDPRAM] Maximum retries completed!!!");
+                                       err("Maximum retries completed!!!");
                                        return 0;
                                }
 \r
@@ -538,17 +522,17 @@ int vdpram_tty_write(int nFd, void* buf, size_t nbytes)
                                continue;
                        }
 \r
-                       if (actual != nbytes)
-                               err("[VDPRAM] Write [FAIL] - fd: [%d]", nFd);
+                       if (actual != buf_len)
+                               err("Write [FAIL] - fd: [%d]", fd);
 \r
-                       err("[VDPRAM] Write [FAIL] - Error: [%s]", strerror(errno));
+                       err("Write [FAIL] - Error: [%s]", strerror(errno));
                        return actual;\r
                }\r
 \r
                actual  += ret;\r
                buf     += ret;\r
-               dbg("[VDPRAM] Write Actual bytes: [%d] Written bytes: [%d]", actual, ret);
-       } while(actual < nbytes);\r
+               dbg("Write Actual bytes: [%d] Written bytes: [%d]", actual, ret);
+       };\r
 \r
        return actual;\r
 }\r