diff options
author | Paweł Szewczyk <p.szewczyk@samsung.com> | 2018-08-16 14:45:09 +0200 |
---|---|---|
committer | Hyotaek Shim <hyotaek.shim@samsung.com> | 2018-08-20 10:12:57 +0000 |
commit | 7abc1bb623469add467cb771ca347f2b06027d8b (patch) | |
tree | b02f0baaf9777fb9ed51f098e94d84f7e2f061a4 | |
parent | b04ef88c51682d26e141d7d48d40f86b55cfa92c (diff) | |
download | libdevice-node-7abc1bb623469add467cb771ca347f2b06027d8b.tar.gz libdevice-node-7abc1bb623469add467cb771ca347f2b06027d8b.tar.bz2 libdevice-node-7abc1bb623469add467cb771ca347f2b06027d8b.zip |
Make simple helper functions static inlinesubmit/tizen/20180820.103206accepted/tizen/unified/20180821.091035
To prevent dynamic linking to these functions by modules that use them
we make them static inline.
Change-Id: Ifc753b5eff9bcde3f54c3f98e2494f7a331dc73e
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | hw/shared.c | 129 | ||||
-rw-r--r-- | hw/shared.h | 112 |
3 files changed, 109 insertions, 134 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c6771d1..fcf2780 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${rpkgs_LDFLAGS} "-ldl") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION}) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) -ADD_LIBRARY(hwcommon SHARED hw/common.c hw/systemd.c hw/shared.c hw/usb_client_common.c hw/usb_cfs_client_common.c hw/usb_gadget_common.c) +ADD_LIBRARY(hwcommon SHARED hw/common.c hw/systemd.c hw/usb_client_common.c hw/usb_cfs_client_common.c hw/usb_gadget_common.c) TARGET_LINK_LIBRARIES(hwcommon ${rpkgs_LDFLAGS} "-ldl") SET_TARGET_PROPERTIES(hwcommon PROPERTIES SOVERSION ${VERSION}) INSTALL(TARGETS hwcommon DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) diff --git a/hw/shared.c b/hw/shared.c deleted file mode 100644 index b6401c1..0000000 --- a/hw/shared.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * device-node - * - * Copyright (c) 2015 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <errno.h> - -#define BUF_MAX 255 - -static int sys_read_buf(char *file, char *buf, int len) -{ - int fd, r; - - if (!file || !buf || len < 0) - return -EINVAL; - - fd = open(file, O_RDONLY); - if (fd == -1) - return -ENOENT; - - r = read(fd, buf, len); - close(fd); - if ((r >= 0) && (r < len)) - buf[r] = '\0'; - else - return -EIO; - - return 0; -} - -static int sys_write_buf(char *file, char *buf) -{ - int fd, r; - - if (!file || !buf) - return -EINVAL; - - fd = open(file, O_WRONLY); - if (fd == -1) - return -EPERM; - - r = write(fd, buf, strlen(buf)); - close(fd); - if (r < 0) - return -EIO; - - return 0; -} - -int sys_get_int(char *fname, int *val) -{ - char buf[BUF_MAX]; - int r; - - if (!fname || !val) - return -EINVAL; - - r = sys_read_buf(fname, buf, sizeof(buf)); - if (r < 0) - return r; - - *val = atoi(buf); - return 0; -} - -int sys_get_str(char *fname, char *str, int len) -{ - int r; - - if (!fname || !str || len < 0) - return -EINVAL; - - r = sys_read_buf(fname, str, len); - if (r < 0) - return r; - - return 0; -} - -int sys_set_int(char *fname, int val) -{ - char buf[BUF_MAX]; - int r; - - if (!fname) - return -EINVAL; - - snprintf(buf, sizeof(buf), "%d", val); - r = sys_write_buf(fname, buf); - if (r < 0) - return r; - - return 0; -} - -int sys_set_str(char *fname, char *val) -{ - int r; - - if (!fname || !val) - return -EINVAL; - - r = sys_write_buf(fname, val); - if (r < 0) - return r; - - return 0; -} diff --git a/hw/shared.h b/hw/shared.h index da51ca4..a0687e2 100644 --- a/hw/shared.h +++ b/hw/shared.h @@ -20,6 +20,13 @@ #ifndef __HW_DEFAULT_SHARED_H__ #define __HW_DEFAULT_SHARED_H__ +#include <errno.h> +#include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + #define FEATURE_HARDWARE_DLOG #ifdef FEATURE_HARDWARE_DLOG #define LOG_TAG "HARDWARE" @@ -35,9 +42,106 @@ #define ARRAY_SIZE(name) (sizeof(name)/sizeof(name[0])) -int sys_get_int(char *fname, int *val); -int sys_get_str(char *fname, char *str, int len); -int sys_set_int(char *fname, int val); -int sys_set_str(char *fname, char *val); +#define SHARED_H_BUF_MAX 255 + +static inline int sys_read_buf(char *file, char *buf, int len) +{ + int fd, r; + + if (!file || !buf || len < 0) + return -EINVAL; + + fd = open(file, O_RDONLY); + if (fd == -1) + return -ENOENT; + + r = read(fd, buf, len); + close(fd); + if ((r >= 0) && (r < len)) + buf[r] = '\0'; + else + return -EIO; + + return 0; +} + +static inline int sys_write_buf(char *file, char *buf) +{ + int fd, r; + + if (!file || !buf) + return -EINVAL; + + fd = open(file, O_WRONLY); + if (fd == -1) + return -EPERM; + + r = write(fd, buf, strlen(buf)); + close(fd); + if (r < 0) + return -EIO; + + return 0; +} + +static inline int sys_get_int(char *fname, int *val) +{ + char buf[SHARED_H_BUF_MAX]; + int r; + + if (!fname || !val) + return -EINVAL; + + r = sys_read_buf(fname, buf, sizeof(buf)); + if (r < 0) + return r; + + *val = atoi(buf); + return 0; +} + +static inline int sys_get_str(char *fname, char *str, int len) +{ + int r; + + if (!fname || !str || len < 0) + return -EINVAL; + + r = sys_read_buf(fname, str, len); + if (r < 0) + return r; + + return 0; +} + +static inline int sys_set_int(char *fname, int val) +{ + char buf[SHARED_H_BUF_MAX]; + int r; + + if (!fname) + return -EINVAL; + + snprintf(buf, sizeof(buf), "%d", val); + r = sys_write_buf(fname, buf); + if (r < 0) + return r; + + return 0; +} + +static inline int sys_set_str(char *fname, char *val) +{ + int r; + + if (!fname || !val) + return -EINVAL; + + r = sys_write_buf(fname, val); + if (r < 0) + return r; + + return 0; +} #endif |