Linux Audio
Check our new training course
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
#ifndef _LINUX_USER_NAMESPACE_H #define _LINUX_USER_NAMESPACE_H #include <linux/kref.h> #include <linux/nsproxy.h> #include <linux/sched.h> #include <linux/err.h> #define UIDHASH_BITS (CONFIG_BASE_SMALL ? 3 : 8) #define UIDHASH_SZ (1 << UIDHASH_BITS) struct user_namespace { struct kref kref; struct hlist_head uidhash_table[UIDHASH_SZ]; struct user_struct *root_user; }; extern struct user_namespace init_user_ns; #ifdef CONFIG_USER_NS static inline struct user_namespace *get_user_ns(struct user_namespace *ns) { if (ns) kref_get(&ns->kref); return ns; } extern struct user_namespace *copy_user_ns(int flags, struct user_namespace *old_ns); extern void free_user_ns(struct kref *kref); static inline void put_user_ns(struct user_namespace *ns) { if (ns) kref_put(&ns->kref, free_user_ns); } #else static inline struct user_namespace *get_user_ns(struct user_namespace *ns) { return &init_user_ns; } static inline struct user_namespace *copy_user_ns(int flags, struct user_namespace *old_ns) { if (flags & CLONE_NEWUSER) return ERR_PTR(-EINVAL); return old_ns; } static inline void put_user_ns(struct user_namespace *ns) { } #endif #endif /* _LINUX_USER_H */
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy