diff options
-rw-r--r-- | packaging/libsystem.spec | 1 | ||||
-rw-r--r-- | src/Makefile.am | 3 | ||||
-rw-r--r-- | src/libsystem/libsystem.h | 39 | ||||
-rw-r--r-- | src/libsystem/proc.c | 14 | ||||
-rw-r--r-- | src/libsystem/proc.h | 77 |
5 files changed, 87 insertions, 47 deletions
diff --git a/packaging/libsystem.spec b/packaging/libsystem.spec index 79d7ea0..7fb9c25 100644 --- a/packaging/libsystem.spec +++ b/packaging/libsystem.spec @@ -112,6 +112,7 @@ make check %{_includedir}/libsystem/dbus-util.h %{_includedir}/libsystem/glib-util.h %{_includedir}/libsystem/libsystem.h +%{_includedir}/libsystem/proc.h %{_libdir}/pkgconfig/libsystem.pc %files -n libsystem-sd diff --git a/src/Makefile.am b/src/Makefile.am index e7df956..f1092bc 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -50,7 +50,8 @@ libsystem_pkginclude_HEADERS += \ libsystem/config-parser.h \ libsystem/dbus-util.h \ libsystem/glib-util.h \ - libsystem/libsystem.h + libsystem/libsystem.h \ + libsystem/proc.h lib_LTLIBRARIES += \ libsystem.la diff --git a/src/libsystem/libsystem.h b/src/libsystem/libsystem.h index 3dc571e..631a216 100644 --- a/src/libsystem/libsystem.h +++ b/src/libsystem/libsystem.h @@ -735,45 +735,6 @@ bool isdir(const char *path); int touch(const char *path); /** - * @defgroup PROC_GROUP proc group - * - * @brief A set utility library for /proc. Some of library functions - * are only able to be successful root uid with security permissions. - * - * @{ - */ - -/** - * @brief Get string with operator from /proc/cmdline. If foo=bar is - * included in /proc/cmdline and want to get the bar, then: - * \code{.c} - char *buf; - - cmdline_get_str(&buf, "foo="); - * \endcode - * - * @param buf The value string is filled to here. This value has to be - * free-ed by caller. - * @param op An operator string. - * - * @return Result string. This value has to be free-ed by caller. - */ -ssize_t cmdline_get_str(char **buf, const char *op); - -/** - * @brief Get PID of process. - * - * @param pname Process name. - * - * @return PID on successful find. If not found, 0 is returned. And - * -errno is returned on failure. - */ -int pid_of(const char *pname); -/** - * @} - */ - -/** * @brief Check mount entry. Multiple matches of conditoin are able to * be set with mnt_fsname, mnt_dir, mnt_type or mnt_opts. If multiple * matches are given, return true if a entry satisfied all matches. diff --git a/src/libsystem/proc.c b/src/libsystem/proc.c index acac082..0881ae8 100644 --- a/src/libsystem/proc.c +++ b/src/libsystem/proc.c @@ -25,12 +25,7 @@ #include "libsystem.h" -/* In old kernel, this symbol maybe NOT */ -#ifndef TASK_COMM_LEN -#define TASK_COMM_LEN 16 -#endif - -ssize_t cmdline_get_str(char **buf, const char *op) { +ssize_t proc_cmdline_get_str(char **buf, const char *op) { _cleanup_free_ char *cmdline = NULL; char *s, *w, *state; size_t l, ll; @@ -60,7 +55,12 @@ ssize_t cmdline_get_str(char **buf, const char *op) { return -ENOENT; } -int pid_of(const char *pname) { +/* In old kernel, this symbol maybe NOT */ +#ifndef TASK_COMM_LEN +#define TASK_COMM_LEN 16 +#endif + +int proc_pid_of(const char *pname) { _cleanup_closedir_ DIR *dir = NULL; struct dirent *de; int r; diff --git a/src/libsystem/proc.h b/src/libsystem/proc.h new file mode 100644 index 0000000..2938f6a --- /dev/null +++ b/src/libsystem/proc.h @@ -0,0 +1,77 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +/* + * libsystem + * + * Copyright (c) 2014 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. + */ + +/** + * @file proc.h + * + * procfs utility library + * + * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved. + * + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup PROC_GROUP proc group + * + * @brief A set utility library for /proc. Some of library functions + * are only able to be successful root uid with security permissions. + * + * @{ + */ + +/** + * @brief Get string with operator from /proc/cmdline. If foo=bar is + * included in /proc/cmdline and want to get the bar, then: + * \code{.c} + char *buf; + + proc_cmdline_get_str(&buf, "foo="); + * \endcode + * + * @param buf The value string is filled to here. This value has to be + * free-ed by caller. + * @param op An operator string. + * + * @return Result string. This value has to be free-ed by caller. + */ +ssize_t proc_cmdline_get_str(char **buf, const char *op); + +/** + * @brief Get PID of process. + * + * @param pname Process name. + * + * @return PID on successful find. If not found, 0 is returned. And + * -errno is returned on failure. + */ +int proc_pid_of(const char *pname); +/** + * @} + */ + +#ifdef __cplusplus +} +#endif |