common : procfs : add a function reading the maximum value of PID. 73/178673/2
authorKichan Kwon <k_c.kwon@samsung.com>
Fri, 11 May 2018 07:22:50 +0000 (16:22 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Mon, 14 May 2018 05:46:26 +0000 (14:46 +0900)
Change-Id: Ifbb03ec9955ac32c8922af78beb9654d115eef02
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
src/common/procfs.c
src/common/procfs.h

index 5f65201ad2373016d3edab4d4a1f4df0fa37eac9..27f08fc77d0f1e1e97b015b15c18e7a0021e4669 100644 (file)
@@ -310,6 +310,34 @@ API int procfs_get_uptime(unsigned long *uptime, unsigned long *iuptime)
        return 0;
 }
 
+API int procfs_get_pid_max(pid_t *pid_max)
+{
+       pid_t pmax;
+       FILE *fp = NULL;
+
+       if (!pid_max) {
+               _E("Invalid parameter");
+               return -EINVAL;
+       }
+
+       fp = fopen("/proc/sys/kernel/pid_max", "r");
+       if (!fp) {
+               _E("Failed to open pid_max : %m");
+               return -errno;
+       }
+
+       if (fscanf(fp, "%u", &pmax) < 0) {
+               _E("Failed to read pid_max : %m");
+               fclose(fp);
+               return -errno;
+       }
+
+       *pid_max = pmax;
+
+       fclose(fp);
+       return 0;
+}
+
 API int procfs_get_pid_basename(pid_t pid, size_t size, char *bname)
 {
        FILE *fp;
index 2cbacda79b73b739b29437fa8d2ef4774385a8b8..73129c2a0cf60e2403346f9a6f36613aac634c2f 100644 (file)
@@ -149,6 +149,13 @@ int procfs_get_meminfo(enum procfs_meminfo_mask mask, struct procfs_meminfo *pm)
  */
 int procfs_get_uptime(unsigned long *uptime, unsigned long *iuptime);
 
+/**
+ * @brief  Read /proc/sys/kernel/pid_max
+ * @param[out] pid_max  The maximum value used for PID
+ * @return  0 on success, otherwise a negative error value
+ */
+int procfs_get_pid_max(pid_t *pid_max);
+
 /******************** Per-process information ********************/
 
 /**