cregit-Linux how code gets into the kernel

Release 4.12 include/linux/sched/user.h

#ifndef _LINUX_SCHED_USER_H

#define _LINUX_SCHED_USER_H

#include <linux/uidgid.h>
#include <linux/atomic.h>

struct key;

/*
 * Some day this will be a full-fledged user tracking system..
 */

struct user_struct {
	
atomic_t __count;	/* reference count */
	
atomic_t processes;	/* How many processes does this user have? */
	
atomic_t sigpending;	/* How many pending signals does this user have? */
#ifdef CONFIG_FANOTIFY
	
atomic_t fanotify_listeners;
#endif
#ifdef CONFIG_EPOLL
	
atomic_long_t epoll_watches; /* The number of file descriptors currently watched */
#endif
#ifdef CONFIG_POSIX_MQUEUE
	/* protected by mq_lock */
	
unsigned long mq_bytes;	/* How many bytes can be allocated to mqueue? */
#endif
	
unsigned long locked_shm; /* How many pages of mlocked shm ? */
	
unsigned long unix_inflight;	/* How many files in flight in unix sockets */
	
atomic_long_t pipe_bufs;  /* how many pages are allocated in pipe buffers */

#ifdef CONFIG_KEYS
	
struct key *uid_keyring;	/* UID specific keyring */
	
struct key *session_keyring;	/* UID's default session keyring */
#endif

	/* Hash table maintenance information */
	
struct hlist_node uidhash_node;
	
kuid_t uid;

#if defined(CONFIG_PERF_EVENTS) || defined(CONFIG_BPF_SYSCALL)
	
atomic_long_t locked_vm;
#endif
};

extern int uids_sysfs_init(void);

extern struct user_struct *find_user(kuid_t);

extern struct user_struct root_user;

#define INIT_USER (&root_user)


/* per-UID process charging. */
extern struct user_struct * alloc_uid(kuid_t);

static inline struct user_struct *get_uid(struct user_struct *u) { atomic_inc(&u->__count); return u; }

Contributors

PersonTokensPropCommitsCommitProp
Ingo Molnar25100.00%1100.00%
Total25100.00%1100.00%

extern void free_uid(struct user_struct *); #endif /* _LINUX_SCHED_USER_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Ingo Molnar188100.00%3100.00%
Total188100.00%3100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.