[Replicant] [libsamsung-ipc][PATCH 21/53] samsung-ipc: utils: switch to Linux code style
Denis 'GNUtoo' Carikli
GNUtoo at cyberdimension.org
Thu Jun 11 10:57:23 UTC 2020
This contains no functional changes.
The commented out code if any has also been preserved as it
could be relevant to the understanding of the code.
It will be kept until we understand why the code has been
commented. In that case we either need to remove it completely
or to replace it by a comment explaining why not having that
code was necessary.
For __FUNCTION__, according to checkpatch.pl, it's gcc
specific:
WARNING: __func__ should be used instead of gcc specific __FUNCTION__
However __func__ is part of the C18 standard[1]. In the
"6.4.2.2 Predefined identifiers" section, we have:
"The identifier __func__ shall be implicitly declared by
the translator as if, immediately following the opening
brace of each function definition, the declaration
static const char __func__[] = "function-name";
"
Using symbolic permissions for file mode triggered a
checkpatch.pl warning:
WARNING: Symbolic permissions
'S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH' are not
preferred. Consider using octal permissions '0644'.
The rationale behind that is that octal is generally easier
to understand than the symbolic relresentation. For more
information, see the follwoing Linux commit:
f90774e1fd27 checkpatch: look for symbolic permissions and suggest octal instead
References:
-----------
[1]The standard doesn't seem to be available for free, but the draft
can be downloaded from the following URL:
https://web.archive.org/web/20181230041359if_/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at cyberdimension.org>
---
samsung-ipc/utils.c | 630 ++++++++++++++++++++++----------------------
1 file changed, 322 insertions(+), 308 deletions(-)
diff --git a/samsung-ipc/utils.c b/samsung-ipc/utils.c
index 1bba874..da35e59 100644
--- a/samsung-ipc/utils.c
+++ b/samsung-ipc/utils.c
@@ -37,446 +37,460 @@
void *file_data_read(struct ipc_client *client, const char *path, size_t size,
size_t chunk_size, unsigned int offset)
{
- void *data = NULL;
- int fd = -1;
- size_t count;
- off_t seek;
- unsigned char *p;
- int rc;
-
- if (path == NULL || size == 0 || chunk_size == 0 || chunk_size > size) {
- if (path == NULL) {
- ipc_client_log(client, "%s: Failed: path is NULL", __FUNCTION__);
- }
- if (size == 0) {
- ipc_client_log(client, "%s: Failed: size is 0", __FUNCTION__);
- }
- if (chunk_size == 0) {
- ipc_client_log(client, "%s: Failed: chunk_size is 0", __FUNCTION__);
- }
- if (chunk_size > size) {
- ipc_client_log(client, "%s: Failed: chunk_size > size ", __FUNCTION__);
- }
-
- return NULL;
- }
-
- fd = open(path, O_RDONLY);
- if (fd < 0) {
- ipc_client_log(client, "%s: Error: fd: %d ", __FUNCTION__, fd);
- goto error;
- }
-
- seek = lseek(fd, (off_t) offset, SEEK_SET);
- if (seek < (off_t) offset) {
- ipc_client_log(client, "%s: Error: seek < (off_t) offset", __FUNCTION__);
- goto error;
- }
-
- data = calloc(1, size);
-
- p = (unsigned char *) data;
-
- count = 0;
- while (count < size) {
- rc = read(fd, p, size - count > chunk_size ? chunk_size : size - count);
- if (rc <= 0) {
- ipc_client_log(client, "%s: Error: rc < 0", __FUNCTION__);
+ void *data = NULL;
+ int fd = -1;
+ size_t count;
+ off_t seek;
+ unsigned char *p;
+ int rc;
+
+ if (path == NULL || size == 0 || chunk_size == 0 || chunk_size > size) {
+ if (path == NULL) {
+ ipc_client_log(client, "%s: Failed: path is NULL",
+ __func__);
+ }
+ if (size == 0) {
+ ipc_client_log(client, "%s: Failed: size is 0",
+ __func__);
+ }
+ if (chunk_size == 0) {
+ ipc_client_log(client, "%s: Failed: chunk_size is 0",
+ __func__);
+ }
+ if (chunk_size > size) {
+ ipc_client_log(client, "%s: Failed: chunk_size > size ",
+ __func__);
+ }
+
+ return NULL;
+ }
+
+ fd = open(path, O_RDONLY);
+ if (fd < 0) {
+ ipc_client_log(client, "%s: Error: fd: %d ", __func__, fd);
+ goto error;
+ }
+
+ seek = lseek(fd, (off_t) offset, SEEK_SET);
+ if (seek < (off_t) offset) {
+ ipc_client_log(client, "%s: Error: seek < (off_t) offset",
+ __func__);
goto error;
}
- p += rc;
- count += rc;
- }
+ data = calloc(1, size);
+
+ p = (unsigned char *) data;
- goto complete;
+ count = 0;
+ while (count < size) {
+ rc = read(fd, p,
+ size - count > chunk_size ?
+ chunk_size : size - count);
+ if (rc <= 0) {
+ ipc_client_log(client, "%s: Error: rc < 0", __func__);
+ goto error;
+ }
+
+ p += rc;
+ count += rc;
+ }
+
+ goto complete;
error:
- if (data != NULL) {
- free(data);
- data = NULL;
- }
+ if (data != NULL) {
+ free(data);
+ data = NULL;
+ }
complete:
- if (fd >= 0)
- close(fd);
+ if (fd >= 0)
+ close(fd);
- return data;
+ return data;
}
int file_data_write(struct ipc_client *client, const char *path,
- const void *data, size_t size, size_t chunk_size,
- unsigned int offset)
+ const void *data, size_t size, size_t chunk_size,
+ unsigned int offset)
{
- int fd = -1;
- size_t count;
- off_t seek;
- unsigned char *p;
- int rc;
-
- if (path == NULL || data == NULL || size == 0 || chunk_size == 0 || chunk_size > size) {
- if (path == NULL) {
- ipc_client_log(client, "%s failed: path is NULL", __FUNCTION__);
- }
- if (size == 0) {
- ipc_client_log(client, "%s failed: size is 0", __FUNCTION__);
- }
- if (chunk_size == 0) {
- ipc_client_log(client, "%s failed: chunk_size is 0", __FUNCTION__);
- }
- if (chunk_size > size) {
- ipc_client_log(client, "%s failed: chunk_size > size",
- __FUNCTION__);
- }
- return -1;
- }
-
- fd = open(path, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
- if (fd < 0) {
- ipc_client_log(client, "%s: open failed with error %d", __FUNCTION__, fd);
- goto error;
- }
-
- seek = lseek(fd, (off_t) offset, SEEK_SET);
- if (seek < (off_t) offset) {
- ipc_client_log(client, "%s failed: seek < (off_t) offset", __FUNCTION__);
- goto error;
- }
-
- p = (unsigned char *) data;
-
- count = 0;
- while (count < size) {
- rc = write(fd, p, size - count > chunk_size ? chunk_size : size - count);
- if (rc <= 0) {
- ipc_client_log(client, "%s: write failed with error %d", __FUNCTION__, rc);
- goto error;
- }
-
- p += rc;
- count += rc;
- }
-
- rc = 0;
- goto complete;
+ int fd = -1;
+ size_t count;
+ off_t seek;
+ unsigned char *p;
+ int rc;
+
+ if (path == NULL || data == NULL || size == 0 || chunk_size == 0 ||
+ chunk_size > size) {
+ if (path == NULL) {
+ ipc_client_log(client, "%s failed: path is NULL",
+ __func__);
+ }
+ if (size == 0) {
+ ipc_client_log(client, "%s failed: size is 0",
+ __func__);
+ }
+ if (chunk_size == 0) {
+ ipc_client_log(client, "%s failed: chunk_size is 0",
+ __func__);
+ }
+ if (chunk_size > size) {
+ ipc_client_log(client, "%s failed: chunk_size > size",
+ __func__);
+ }
+ return -1;
+ }
+
+ fd = open(path, O_WRONLY | O_CREAT, 0644);
+ if (fd < 0) {
+ ipc_client_log(client, "%s: open failed with error %d",
+ __func__, fd);
+ goto error;
+ }
+
+ seek = lseek(fd, (off_t) offset, SEEK_SET);
+ if (seek < (off_t) offset) {
+ ipc_client_log(client, "%s failed: seek < (off_t) offset",
+ __func__);
+ goto error;
+ }
+
+ p = (unsigned char *) data;
+
+ count = 0;
+ while (count < size) {
+ rc = write(fd, p,
+ size - count > chunk_size ?
+ chunk_size : size - count);
+ if (rc <= 0) {
+ ipc_client_log(client, "%s: write failed with error %d",
+ __func__, rc);
+ goto error;
+ }
+
+ p += rc;
+ count += rc;
+ }
+
+ rc = 0;
+ goto complete;
error:
- rc = -1;
+ rc = -1;
complete:
- if (fd >= 0)
- close(fd);
+ if (fd >= 0)
+ close(fd);
- return rc;
+ return rc;
}
int network_iface_up(const char *iface, int domain, int type)
{
- struct ifreq ifr;
- int fd = -1;
- int rc;
+ struct ifreq ifr;
+ int fd = -1;
+ int rc;
- if (iface == NULL)
- return -1;
+ if (iface == NULL)
+ return -1;
- memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, iface, IFNAMSIZ);
+ memset(&ifr, 0, sizeof(ifr));
+ strncpy(ifr.ifr_name, iface, IFNAMSIZ);
- fd = socket(domain, type, 0);
- if (fd < 0)
- goto error;
+ fd = socket(domain, type, 0);
+ if (fd < 0)
+ goto error;
- rc = ioctl(fd, SIOCGIFFLAGS, &ifr);
- if (rc < 0)
- goto error;
+ rc = ioctl(fd, SIOCGIFFLAGS, &ifr);
+ if (rc < 0)
+ goto error;
- ifr.ifr_flags |= IFF_UP;
+ ifr.ifr_flags |= IFF_UP;
- rc = ioctl(fd, SIOCSIFFLAGS, &ifr);
- if (rc < 0)
- goto error;
+ rc = ioctl(fd, SIOCSIFFLAGS, &ifr);
+ if (rc < 0)
+ goto error;
- rc = 0;
- goto complete;
+ rc = 0;
+ goto complete;
error:
- rc = -1;
+ rc = -1;
complete:
- if (fd >= 0)
- close(fd);
+ if (fd >= 0)
+ close(fd);
- return rc;
+ return rc;
}
int network_iface_down(const char *iface, int domain, int type)
{
- struct ifreq ifr;
- int fd = -1;
- int rc;
+ struct ifreq ifr;
+ int fd = -1;
+ int rc;
- if (iface == NULL)
- return -1;
+ if (iface == NULL)
+ return -1;
- memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, iface, IFNAMSIZ);
+ memset(&ifr, 0, sizeof(ifr));
+ strncpy(ifr.ifr_name, iface, IFNAMSIZ);
- fd = socket(domain, type, 0);
- if (fd < 0)
- goto error;
+ fd = socket(domain, type, 0);
+ if (fd < 0)
+ goto error;
- rc = ioctl(fd, SIOCGIFFLAGS, &ifr);
- if (rc < 0)
- goto error;
+ rc = ioctl(fd, SIOCGIFFLAGS, &ifr);
+ if (rc < 0)
+ goto error;
- ifr.ifr_flags = (ifr.ifr_flags & (~IFF_UP));
+ ifr.ifr_flags = (ifr.ifr_flags & (~IFF_UP));
- rc = ioctl(fd, SIOCSIFFLAGS, &ifr);
- if (rc < 0)
- goto error;
+ rc = ioctl(fd, SIOCSIFFLAGS, &ifr);
+ if (rc < 0)
+ goto error;
- rc = 0;
- goto complete;
+ rc = 0;
+ goto complete;
error:
- rc = -1;
+ rc = -1;
complete:
- if (fd >= 0)
- close(fd);
+ if (fd >= 0)
+ close(fd);
- return rc;
+ return rc;
}
int sysfs_value_read(const char *path)
{
- char buffer[100];
- int value;
- int fd = -1;
- int rc;
+ char buffer[100];
+ int value;
+ int fd = -1;
+ int rc;
- if (path == NULL)
- return -1;
+ if (path == NULL)
+ return -1;
- fd = open(path, O_RDONLY);
- if (fd < 0)
- goto error;
+ fd = open(path, O_RDONLY);
+ if (fd < 0)
+ goto error;
- rc = read(fd, &buffer, sizeof(buffer));
- if (rc <= 0)
- goto error;
+ rc = read(fd, &buffer, sizeof(buffer));
+ if (rc <= 0)
+ goto error;
- value = atoi(buffer);
- goto complete;
+ value = atoi(buffer);
+ goto complete;
error:
- value = -1;
+ value = -1;
complete:
- if (fd >= 0)
- close(fd);
+ if (fd >= 0)
+ close(fd);
- return value;
+ return value;
}
int sysfs_value_write(const char *path, int value)
{
- char buffer[100];
- int fd = -1;
- int rc;
+ char buffer[100];
+ int fd = -1;
+ int rc;
- if (path == NULL)
- return -1;
+ if (path == NULL)
+ return -1;
- fd = open(path, O_WRONLY);
- if (fd < 0)
- goto error;
+ fd = open(path, O_WRONLY);
+ if (fd < 0)
+ goto error;
- snprintf((char *) &buffer, sizeof(buffer), "%d\n", value);
+ snprintf((char *) &buffer, sizeof(buffer), "%d\n", value);
- rc = write(fd, buffer, strlen(buffer));
- if (rc < (int) strlen(buffer))
- goto error;
+ rc = write(fd, buffer, strlen(buffer));
+ if (rc < (int) strlen(buffer))
+ goto error;
- rc = 0;
- goto complete;
+ rc = 0;
+ goto complete;
error:
- rc = -1;
+ rc = -1;
complete:
- if (fd >= 0)
- close(fd);
+ if (fd >= 0)
+ close(fd);
- return rc;
+ return rc;
}
char *sysfs_string_read(const char *path, size_t length)
{
- char *string = NULL;
- int fd = -1;
- int rc;
+ char *string = NULL;
+ int fd = -1;
+ int rc;
- if (path == NULL || length == 0)
- return NULL;
+ if (path == NULL || length == 0)
+ return NULL;
- fd = open(path, O_RDONLY);
- if (fd < 0)
- goto error;
+ fd = open(path, O_RDONLY);
+ if (fd < 0)
+ goto error;
- string = (char *) calloc(1, length);
+ string = (char *) calloc(1, length);
- rc = read(fd, string, length);
- if (rc <= 0)
- goto error;
+ rc = read(fd, string, length);
+ if (rc <= 0)
+ goto error;
- goto complete;
+ goto complete;
error:
- if (string != NULL) {
- free(string);
- string = NULL;
- }
+ if (string != NULL) {
+ free(string);
+ string = NULL;
+ }
complete:
- if (fd >= 0)
- close(fd);
+ if (fd >= 0)
+ close(fd);
- return string;
+ return string;
}
int sysfs_string_write(const char *path, const char *buffer, size_t length)
{
- int fd = -1;
- int rc;
+ int fd = -1;
+ int rc;
- if (path == NULL || buffer == NULL || length == 0)
- return -1;
+ if (path == NULL || buffer == NULL || length == 0)
+ return -1;
- fd = open(path, O_WRONLY);
- if (fd < 0)
- goto error;
+ fd = open(path, O_WRONLY);
+ if (fd < 0)
+ goto error;
- rc = write(fd, buffer, length);
- if (rc < (int) length)
- goto error;
+ rc = write(fd, buffer, length);
+ if (rc < (int) length)
+ goto error;
- rc = 0;
- goto complete;
+ rc = 0;
+ goto complete;
error:
- rc = -1;
+ rc = -1;
complete:
- if (fd >= 0)
- close(fd);
+ if (fd >= 0)
+ close(fd);
- return rc;
+ return rc;
}
size_t data2string_length(const void *data, size_t size)
{
- size_t length;
+ size_t length;
- if (data == NULL || size == 0)
- return 0;
+ if (data == NULL || size == 0)
+ return 0;
- length = size * 2 + 1;
+ length = size * 2 + 1;
- return length;
+ return length;
}
char *data2string(const void *data, size_t size)
{
- char *string;
- size_t length;
- char *p;
- size_t i;
+ char *string;
+ size_t length;
+ char *p;
+ size_t i;
- if (data == NULL || size == 0)
- return NULL;
+ if (data == NULL || size == 0)
+ return NULL;
- length = data2string_length(data, size);
- if (length == 0)
- return NULL;
+ length = data2string_length(data, size);
+ if (length == 0)
+ return NULL;
- string = (char *) calloc(1, length);
+ string = (char *) calloc(1, length);
- p = string;
+ p = string;
- for (i = 0; i < size; i++) {
- sprintf(p, "%02x", *((unsigned char *) data + i));
- p += 2 * sizeof(char);
- }
+ for (i = 0; i < size; i++) {
+ sprintf(p, "%02x", *((unsigned char *) data + i));
+ p += 2 * sizeof(char);
+ }
- return string;
+ return string;
}
size_t string2data_size(const char *string)
{
- size_t length;
- size_t size;
+ size_t length;
+ size_t size;
- if (string == NULL)
- return 0;
+ if (string == NULL)
+ return 0;
- length = strlen(string);
- if (length == 0)
- return 0;
+ length = strlen(string);
+ if (length == 0)
+ return 0;
- if (length % 2 == 0)
- size = length / 2;
- else
- size = (length - (length % 2)) / 2 + 1;
+ if (length % 2 == 0)
+ size = length / 2;
+ else
+ size = (length - (length % 2)) / 2 + 1;
- return size;
+ return size;
}
void *string2data(const char *string)
{
- void *data;
- size_t size;
- size_t length;
- int shift;
- unsigned char *p;
- unsigned int b;
- size_t i;
- int rc;
-
- if (string == NULL)
- return NULL;
-
- length = strlen(string);
- if (length == 0)
- return NULL;
-
- if (length % 2 == 0)
- shift = 0;
- else
- shift = 1;
-
- size = string2data_size(string);
- if (size == 0)
- return NULL;
-
- data = calloc(1, size);
-
- p = (unsigned char *) data;
-
- for (i = 0; i < length; i++) {
- rc = sscanf(&string[i], "%01x", &b);
- if (rc < 1)
- b = 0;
-
- if ((shift % 2) == 0)
- *p |= ((b & 0x0f) << 4);
- else
- *p++ |= b & 0x0f;
-
- shift++;
- }
+ void *data;
+ size_t size;
+ size_t length;
+ int shift;
+ unsigned char *p;
+ unsigned int b;
+ size_t i;
+ int rc;
+
+ if (string == NULL)
+ return NULL;
+
+ length = strlen(string);
+ if (length == 0)
+ return NULL;
+
+ if (length % 2 == 0)
+ shift = 0;
+ else
+ shift = 1;
+
+ size = string2data_size(string);
+ if (size == 0)
+ return NULL;
+
+ data = calloc(1, size);
+
+ p = (unsigned char *) data;
+
+ for (i = 0; i < length; i++) {
+ rc = sscanf(&string[i], "%01x", &b);
+ if (rc < 1)
+ b = 0;
+
+ if ((shift % 2) == 0)
+ *p |= ((b & 0x0f) << 4);
+ else
+ *p++ |= b & 0x0f;
+
+ shift++;
+ }
- return data;
+ return data;
}
-
-// vim:ts=4:sw=4:expandtab
--
2.27.0
More information about the Replicant
mailing list