summaryrefslogtreecommitdiffstats
path: root/sys-utils/ipcutils.h
diff options
context:
space:
mode:
authorSami Kerola2012-10-14 17:01:05 +0200
committerKarel Zak2012-11-23 14:58:21 +0100
commit058e81540fbb0d2b780245361fa13376478b7375 (patch)
tree00aa984458223ade6f0f5d11609b3bef4743185a /sys-utils/ipcutils.h
parentipcs: determine ipc limits from /proc (diff)
downloadkernel-qcow2-util-linux-058e81540fbb0d2b780245361fa13376478b7375.tar.gz
kernel-qcow2-util-linux-058e81540fbb0d2b780245361fa13376478b7375.tar.xz
kernel-qcow2-util-linux-058e81540fbb0d2b780245361fa13376478b7375.zip
ipcs: read shared memory values from /proc
[kzak@redhat.com: - move to ipcutils.{c,h}, - fix datatypes to be arch independent] Signed-off-by: Sami Kerola <kerolasa@iki.fi> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/ipcutils.h')
-rw-r--r--sys-utils/ipcutils.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/sys-utils/ipcutils.h b/sys-utils/ipcutils.h
index ef539ee6c..8e2bfddfb 100644
--- a/sys-utils/ipcutils.h
+++ b/sys-utils/ipcutils.h
@@ -99,4 +99,37 @@ extern int ipc_msg_get_limits(struct ipc_limits *lim);
extern int ipc_sem_get_limits(struct ipc_limits *lim);
extern int ipc_shm_get_limits(struct ipc_limits *lim);
+struct ipc_stat {
+ int id;
+ key_t key;
+ uid_t uid; /* current uid */
+ gid_t gid; /* current gid */
+ uid_t cuid; /* creator uid */
+ gid_t cgid; /* creator gid */
+ unsigned int mode;
+};
+
+extern void ipc_print_perms(FILE *f, struct ipc_stat *is);
+
+/* See 'struct shmid_kernel' in kernel sources
+ */
+struct shm_data {
+ struct ipc_stat shm_perm;
+
+ uint64_t shm_nattch;
+ uint64_t shm_segsz;
+ time_t shm_atim;
+ time_t shm_dtim;
+ time_t shm_ctim;
+ pid_t shm_cprid;
+ pid_t shm_lprid;
+ uint64_t shm_rss;
+ uint64_t shm_swp;
+
+ struct shm_data *next;
+};
+
+extern int ipc_shm_get_info(int maxid, int id, struct shm_data **shmds);
+extern void ipc_shm_free_info(struct shm_data *shmds);
+
#endif /* UTIL_LINUX_IPCUTILS_H */