X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=include%2Flinux%2Futsname.h;h=923db99175f2144a8df2ad0c8e3e2e5aaff6ebcc;hb=4c3f2ead5a3dff9069a45560ba4d007c8ae2e2ee;hp=13e1da0c538d209871bb1099169004aa24d52072;hpb=1da177e4c3f41524e886b7f1b8a0c1fc7321cac2;p=safe%2Fjmp%2Flinux-2.6 diff --git a/include/linux/utsname.h b/include/linux/utsname.h index 13e1da0..923db99 100644 --- a/include/linux/utsname.h +++ b/include/linux/utsname.h @@ -30,7 +30,44 @@ struct new_utsname { char domainname[65]; }; -extern struct new_utsname system_utsname; +#ifdef __KERNEL__ + +#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); +} + +extern struct uts_namespace *copy_utsname(unsigned long 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); +} +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 + +#endif /* __KERNEL__ */ + +#endif /* _LINUX_UTSNAME_H */