OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [user_namespace.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
#ifndef _LINUX_USER_NAMESPACE_H
2
#define _LINUX_USER_NAMESPACE_H
3
 
4
#include <linux/kref.h>
5
#include <linux/nsproxy.h>
6
#include <linux/sched.h>
7
#include <linux/err.h>
8
 
9
#define UIDHASH_BITS    (CONFIG_BASE_SMALL ? 3 : 8)
10
#define UIDHASH_SZ      (1 << UIDHASH_BITS)
11
 
12
struct user_namespace {
13
        struct kref             kref;
14
        struct hlist_head       uidhash_table[UIDHASH_SZ];
15
        struct user_struct      *root_user;
16
};
17
 
18
extern struct user_namespace init_user_ns;
19
 
20
#ifdef CONFIG_USER_NS
21
 
22
static inline struct user_namespace *get_user_ns(struct user_namespace *ns)
23
{
24
        if (ns)
25
                kref_get(&ns->kref);
26
        return ns;
27
}
28
 
29
extern struct user_namespace *copy_user_ns(int flags,
30
                                           struct user_namespace *old_ns);
31
extern void free_user_ns(struct kref *kref);
32
 
33
static inline void put_user_ns(struct user_namespace *ns)
34
{
35
        if (ns)
36
                kref_put(&ns->kref, free_user_ns);
37
}
38
 
39
#else
40
 
41
static inline struct user_namespace *get_user_ns(struct user_namespace *ns)
42
{
43
        return &init_user_ns;
44
}
45
 
46
static inline struct user_namespace *copy_user_ns(int flags,
47
                                                  struct user_namespace *old_ns)
48
{
49
        if (flags & CLONE_NEWUSER)
50
                return ERR_PTR(-EINVAL);
51
 
52
        return old_ns;
53
}
54
 
55
static inline void put_user_ns(struct user_namespace *ns)
56
{
57
}
58
 
59
#endif
60
 
61
#endif /* _LINUX_USER_H */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.