Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
futex.c File Reference
#include <linux/slab.h>
#include <linux/poll.h>
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/jhash.h>
#include <linux/init.h>
#include <linux/futex.h>
#include <linux/mount.h>
#include <linux/pagemap.h>
#include <linux/syscalls.h>
#include <linux/signal.h>
#include <linux/export.h>
#include <linux/magic.h>
#include <linux/pid.h>
#include <linux/nsproxy.h>
#include <linux/ptrace.h>
#include <asm/futex.h>
#include "rtmutex_common.h"

Go to the source code of this file.

Data Structures

struct  futex_pi_state
 
struct  futex_q
 
struct  futex_hash_bucket
 

Macros

#define FUTEX_HASHBITS   (CONFIG_BASE_SMALL ? 4 : 8)
 
#define FLAGS_SHARED   0x01
 
#define FLAGS_CLOCKRT   0x02
 
#define FLAGS_HAS_TIMEOUT   0x04
 

Functions

void exit_pi_state_list (struct task_struct *curr)
 
 SYSCALL_DEFINE2 (set_robust_list, struct robust_list_head __user *, head, size_t, len)
 
 SYSCALL_DEFINE3 (get_robust_list, int, pid, struct robust_list_head __user *__user *, head_ptr, size_t __user *, len_ptr)
 
int handle_futex_death (u32 __user *uaddr, struct task_struct *curr, int pi)
 
void exit_robust_list (struct task_struct *curr)
 
long do_futex (u32 __user *uaddr, int op, u32 val, ktime_t *timeout, u32 __user *uaddr2, u32 val2, u32 val3)
 
 SYSCALL_DEFINE6 (futex, u32 __user *, uaddr, int, op, u32, val, struct timespec __user *, utime, u32 __user *, uaddr2, u32, val3)
 
 __initcall (futex_init)
 

Variables

int __read_mostly futex_cmpxchg_enabled
 

Macro Definition Documentation

#define FLAGS_CLOCKRT   0x02

Definition at line 77 of file futex.c.

#define FLAGS_HAS_TIMEOUT   0x04

Definition at line 78 of file futex.c.

#define FLAGS_SHARED   0x01

Definition at line 76 of file futex.c.

#define FUTEX_HASHBITS   (CONFIG_BASE_SMALL ? 4 : 8)

Definition at line 70 of file futex.c.

Function Documentation

__initcall ( futex_init  )
long do_futex ( u32 __user uaddr,
int  op,
u32  val,
ktime_t timeout,
u32 __user uaddr2,
u32  val2,
u32  val3 
)

Definition at line 2642 of file futex.c.

void exit_pi_state_list ( struct task_struct curr)

Definition at line 540 of file futex.c.

void exit_robust_list ( struct task_struct curr)

Definition at line 2579 of file futex.c.

int handle_futex_death ( u32 __user uaddr,
struct task_struct curr,
int  pi 
)

Definition at line 2508 of file futex.c.

SYSCALL_DEFINE2 ( set_robust_list  ,
struct robust_list_head __user ,
head  ,
size_t  ,
len   
)

sys_set_robust_list() - Set the robust-futex list head of a task : pointer to the list-head : length of the list-head, as userspace expects

Definition at line 2441 of file futex.c.

SYSCALL_DEFINE3 ( get_robust_list  ,
int  ,
pid  ,
struct robust_list_head __user *__user ,
head_ptr  ,
size_t __user ,
len_ptr   
)

sys_get_robust_list() - Get the robust-futex list head of a task : pid of the process [zero for current task] : pointer to a list-head pointer, the kernel fills it in : pointer to a length field, the kernel fills in the header size

Definition at line 2463 of file futex.c.

SYSCALL_DEFINE6 ( futex  ,
u32 __user ,
uaddr  ,
int  ,
op  ,
u32  ,
val  ,
struct timespec __user ,
utime  ,
u32 __user ,
uaddr2  ,
u32  ,
val3   
)

Definition at line 2699 of file futex.c.

Variable Documentation

int __read_mostly futex_cmpxchg_enabled

Definition at line 68 of file futex.c.