📄 utsname.h
字号:
#ifndef _LINUX_UTSNAME_H#define _LINUX_UTSNAME_H#define __OLD_UTS_LEN 8struct oldold_utsname { char sysname[9]; char nodename[9]; char release[9]; char version[9]; char machine[9];};#define __NEW_UTS_LEN 64struct old_utsname { char sysname[65]; char nodename[65]; char release[65]; char version[65]; char machine[65];};struct new_utsname { char sysname[65]; char nodename[65]; char release[65]; char version[65]; char machine[65]; char domainname[65];};#ifdef __KERNEL__#include <linux/sched.h>#include <linux/kref.h>#include <linux/nsproxy.h>#include <asm/atomic.h>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_NSextern int unshare_utsname(unsigned long unshare_flags, struct uts_namespace **new_uts);extern int copy_utsname(int flags, struct task_struct *tsk);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);}#elsestatic inline int unshare_utsname(unsigned long unshare_flags, struct uts_namespace **new_uts){ if (unshare_flags & CLONE_NEWUTS) return -EINVAL; return 0;}static inline int copy_utsname(int flags, struct task_struct *tsk){ return 0;}static inline void put_uts_ns(struct uts_namespace *ns){}#endifstatic 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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -