X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=include%2Flinux%2Futsname.h;h=f8d3b326e93a2f9b8a2f5bc616877a433acfa73a;hb=45977d0e87ac988d04fccfb89221727aaf8d78a4;hp=13e1da0c538d209871bb1099169004aa24d52072;hpb=1da177e4c3f41524e886b7f1b8a0c1fc7321cac2;p=linux-2.6-omap-h63xx.git diff --git a/include/linux/utsname.h b/include/linux/utsname.h index 13e1da0c538..f8d3b326e93 100644 --- a/include/linux/utsname.h +++ b/include/linux/utsname.h @@ -30,7 +30,56 @@ struct new_utsname { char domainname[65]; }; -extern struct new_utsname system_utsname; +#ifdef __KERNEL__ -extern struct rw_semaphore uts_sem; +#include +#include +#include +#include + +struct uts_namespace { + struct kref kref; + struct new_utsname name; +}; +extern struct uts_namespace init_uts_ns; + +static inline void get_uts_ns(struct uts_namespace *ns) +{ + kref_get(&ns->kref); +} + +#ifdef CONFIG_UTS_NS +extern struct uts_namespace *copy_utsname(int flags, struct uts_namespace *ns); +extern void free_uts_ns(struct kref *kref); + +static inline void put_uts_ns(struct uts_namespace *ns) +{ + kref_put(&ns->kref, free_uts_ns); +} +#else +static inline struct uts_namespace *copy_utsname(int flags, + struct uts_namespace *ns) +{ + return ns; +} + +static inline void put_uts_ns(struct uts_namespace *ns) +{ +} #endif + +static inline struct new_utsname *utsname(void) +{ + return ¤t->nsproxy->uts_ns->name; +} + +static inline struct new_utsname *init_utsname(void) +{ + return &init_uts_ns.name; +} + +extern struct rw_semaphore uts_sem; + +#endif /* __KERNEL__ */ + +#endif /* _LINUX_UTSNAME_H */