cregit-Linux how code gets into the kernel

Release 4.15 include/linux/utsname.h

Directory: include/linux
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_UTSNAME_H

#define _LINUX_UTSNAME_H


#include <linux/sched.h>
#include <linux/kref.h>
#include <linux/nsproxy.h>
#include <linux/ns_common.h>
#include <linux/err.h>
#include <uapi/linux/utsname.h>


enum uts_proc {
	
UTS_PROC_OSTYPE,
	
UTS_PROC_OSRELEASE,
	
UTS_PROC_VERSION,
	
UTS_PROC_HOSTNAME,
	
UTS_PROC_DOMAINNAME,
};

struct user_namespace;
extern struct user_namespace init_user_ns;


struct uts_namespace {
	
struct kref kref;
	
struct new_utsname name;
	
struct user_namespace *user_ns;
	
struct ucounts *ucounts;
	
struct ns_common ns;

} __randomize_layout;
extern struct uts_namespace init_uts_ns;

#ifdef CONFIG_UTS_NS

static inline void get_uts_ns(struct uts_namespace *ns) { kref_get(&ns->kref); }

Contributors

PersonTokensPropCommitsCommitProp
Serge E. Hallyn20100.00%1100.00%
Total20100.00%1100.00%

extern struct uts_namespace *copy_utsname(unsigned long flags, struct user_namespace *user_ns, struct uts_namespace *old_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); }

Contributors

PersonTokensPropCommitsCommitProp
Serge E. Hallyn22100.00%1100.00%
Total22100.00%1100.00%

#else
static inline void get_uts_ns(struct uts_namespace *ns) { }

Contributors

PersonTokensPropCommitsCommitProp
Pavel Emelyanov11100.00%1100.00%
Total11100.00%1100.00%


static inline void put_uts_ns(struct uts_namespace *ns) { }

Contributors

PersonTokensPropCommitsCommitProp
Pavel Emelyanov11100.00%1100.00%
Total11100.00%1100.00%


static inline struct uts_namespace *copy_utsname(unsigned long flags, struct user_namespace *user_ns, struct uts_namespace *old_ns) { if (flags & CLONE_NEWUTS) return ERR_PTR(-EINVAL); return old_ns; }

Contributors

PersonTokensPropCommitsCommitProp
Pavel Emelyanov3179.49%150.00%
Eric W. Biedermann820.51%150.00%
Total39100.00%2100.00%

#endif #ifdef CONFIG_PROC_SYSCTL extern void uts_proc_notify(enum uts_proc proc); #else
static inline void uts_proc_notify(enum uts_proc proc) { }

Contributors

PersonTokensPropCommitsCommitProp
Lucas De Marchi10100.00%1100.00%
Total10100.00%1100.00%

#endif
static inline struct new_utsname *utsname(void) { return &current->nsproxy->uts_ns->name; }

Contributors

PersonTokensPropCommitsCommitProp
Serge E. Hallyn21100.00%2100.00%
Total21100.00%2100.00%


static inline struct new_utsname *init_utsname(void) { return &init_uts_ns.name; }

Contributors

PersonTokensPropCommitsCommitProp
Serge E. Hallyn17100.00%2100.00%
Total17100.00%2100.00%

extern struct rw_semaphore uts_sem; #endif /* _LINUX_UTSNAME_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Serge E. Hallyn13044.37%421.05%
Pavel Emelyanov6120.82%15.26%
Lucas De Marchi4013.65%15.26%
Eric W. Biedermann237.85%421.05%
Linus Torvalds (pre-git)165.46%421.05%
Cédric Le Goater124.10%15.26%
Al Viro62.05%15.26%
David Howells31.02%15.26%
Kees Cook10.34%15.26%
Greg Kroah-Hartman10.34%15.26%
Total293100.00%19100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.