mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
[PATCH] IPC namespace - utils
This patch adds basic IPC namespace functionality to IPC utils: - init_ipc_ns - copy/clone/unshare/free IPC ns - /proc preparations Signed-off-by: Pavel Emelianov <[email protected]> Signed-off-by: Kirill Korotaev <[email protected]> Cc: "Eric W. Biederman" <[email protected]> Cc: Cedric Le Goater <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
25b21cb2f6
commit
73ea41302b
5 changed files with 173 additions and 14 deletions
24
ipc/util.h
24
ipc/util.h
|
|
@ -3,6 +3,8 @@
|
|||
* Copyright (C) 1999 Christoph Rohland
|
||||
*
|
||||
* ipc helper functions (c) 1999 Manfred Spraul <manfred@colorfullife.com>
|
||||
* namespaces support. 2006 OpenVZ, SWsoft Inc.
|
||||
* Pavel Emelianov <xemul@openvz.org>
|
||||
*/
|
||||
|
||||
#ifndef _IPC_UTIL_H
|
||||
|
|
@ -15,6 +17,14 @@ void sem_init (void);
|
|||
void msg_init (void);
|
||||
void shm_init (void);
|
||||
|
||||
int sem_init_ns(struct ipc_namespace *ns);
|
||||
int msg_init_ns(struct ipc_namespace *ns);
|
||||
int shm_init_ns(struct ipc_namespace *ns);
|
||||
|
||||
void sem_exit_ns(struct ipc_namespace *ns);
|
||||
void msg_exit_ns(struct ipc_namespace *ns);
|
||||
void shm_exit_ns(struct ipc_namespace *ns);
|
||||
|
||||
struct ipc_id_ary {
|
||||
int size;
|
||||
struct kern_ipc_perm *p[0];
|
||||
|
|
@ -31,15 +41,23 @@ struct ipc_ids {
|
|||
};
|
||||
|
||||
struct seq_file;
|
||||
void __init ipc_init_ids(struct ipc_ids* ids, int size);
|
||||
#ifdef CONFIG_IPC_NS
|
||||
#define __ipc_init
|
||||
#else
|
||||
#define __ipc_init __init
|
||||
#endif
|
||||
void __ipc_init ipc_init_ids(struct ipc_ids *ids, int size);
|
||||
#ifdef CONFIG_PROC_FS
|
||||
void __init ipc_init_proc_interface(const char *path, const char *header,
|
||||
struct ipc_ids *ids,
|
||||
int (*show)(struct seq_file *, void *));
|
||||
int ids, int (*show)(struct seq_file *, void *));
|
||||
#else
|
||||
#define ipc_init_proc_interface(path, header, ids, show) do {} while (0)
|
||||
#endif
|
||||
|
||||
#define IPC_SEM_IDS 0
|
||||
#define IPC_MSG_IDS 1
|
||||
#define IPC_SHM_IDS 2
|
||||
|
||||
/* must be called with ids->mutex acquired.*/
|
||||
int ipc_findkey(struct ipc_ids* ids, key_t key);
|
||||
int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size);
|
||||
|
|
|
|||
Loading…
Reference in a new issue