Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
compat_linux.c File Reference
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/file.h>
#include <linux/signal.h>
#include <linux/resource.h>
#include <linux/times.h>
#include <linux/smp.h>
#include <linux/sem.h>
#include <linux/msg.h>
#include <linux/shm.h>
#include <linux/uio.h>
#include <linux/quota.h>
#include <linux/module.h>
#include <linux/poll.h>
#include <linux/personality.h>
#include <linux/stat.h>
#include <linux/filter.h>
#include <linux/highmem.h>
#include <linux/highuid.h>
#include <linux/mman.h>
#include <linux/ipv6.h>
#include <linux/in.h>
#include <linux/icmpv6.h>
#include <linux/syscalls.h>
#include <linux/sysctl.h>
#include <linux/binfmts.h>
#include <linux/capability.h>
#include <linux/compat.h>
#include <linux/vfs.h>
#include <linux/ptrace.h>
#include <linux/fadvise.h>
#include <linux/ipc.h>
#include <linux/slab.h>
#include <asm/types.h>
#include <asm/uaccess.h>
#include <net/scm.h>
#include <net/sock.h>
#include "compat_linux.h"

Go to the source code of this file.

Data Structures

struct  stat64_emu31
 
struct  mmap_arg_struct_emu31
 
struct  fadvise64_64_args
 

Macros

#define high2lowuid(uid)   ((uid) > 65535) ? (u16)overflowuid : (u16)(uid)
 
#define high2lowgid(gid)   ((gid) > 65535) ? (u16)overflowgid : (u16)(gid)
 
#define low2highuid(uid)   ((uid) == (u16)-1) ? (uid_t)-1 : (uid_t)(uid)
 
#define low2highgid(gid)   ((gid) == (u16)-1) ? (gid_t)-1 : (gid_t)(gid)
 
#define SET_UID16(var, uid)   var = high2lowuid(uid)
 
#define SET_GID16(var, gid)   var = high2lowgid(gid)
 
#define NEW_TO_OLD_UID(uid)   high2lowuid(uid)
 
#define NEW_TO_OLD_GID(gid)   high2lowgid(gid)
 
#define SET_OLDSTAT_UID(stat, uid)   (stat).st_uid = high2lowuid(uid)
 
#define SET_OLDSTAT_GID(stat, gid)   (stat).st_gid = high2lowgid(gid)
 
#define SET_STAT_UID(stat, uid)   (stat).st_uid = high2lowuid(uid)
 
#define SET_STAT_GID(stat, gid)   (stat).st_gid = high2lowgid(gid)
 
#define STAT64_HAS_BROKEN_ST_INO   1
 

Functions

asmlinkage long sys32_chown16 (const char __user *filename, u16 user, u16 group)
 
asmlinkage long sys32_lchown16 (const char __user *filename, u16 user, u16 group)
 
asmlinkage long sys32_fchown16 (unsigned int fd, u16 user, u16 group)
 
asmlinkage long sys32_setregid16 (u16 rgid, u16 egid)
 
asmlinkage long sys32_setgid16 (u16 gid)
 
asmlinkage long sys32_setreuid16 (u16 ruid, u16 euid)
 
asmlinkage long sys32_setuid16 (u16 uid)
 
asmlinkage long sys32_setresuid16 (u16 ruid, u16 euid, u16 suid)
 
asmlinkage long sys32_getresuid16 (u16 __user *ruidp, u16 __user *euidp, u16 __user *suidp)
 
asmlinkage long sys32_setresgid16 (u16 rgid, u16 egid, u16 sgid)
 
asmlinkage long sys32_getresgid16 (u16 __user *rgidp, u16 __user *egidp, u16 __user *sgidp)
 
asmlinkage long sys32_setfsuid16 (u16 uid)
 
asmlinkage long sys32_setfsgid16 (u16 gid)
 
asmlinkage long sys32_getgroups16 (int gidsetsize, u16 __user *grouplist)
 
asmlinkage long sys32_setgroups16 (int gidsetsize, u16 __user *grouplist)
 
asmlinkage long sys32_getuid16 (void)
 
asmlinkage long sys32_geteuid16 (void)
 
asmlinkage long sys32_getgid16 (void)
 
asmlinkage long sys32_getegid16 (void)
 
asmlinkage long sys32_truncate64 (const char __user *path, unsigned long high, unsigned long low)
 
asmlinkage long sys32_ftruncate64 (unsigned int fd, unsigned long high, unsigned long low)
 
asmlinkage long sys32_sched_rr_get_interval (compat_pid_t pid, struct compat_timespec __user *interval)
 
asmlinkage long sys32_rt_sigprocmask (int how, compat_sigset_t __user *set, compat_sigset_t __user *oset, size_t sigsetsize)
 
asmlinkage long sys32_rt_sigpending (compat_sigset_t __user *set, size_t sigsetsize)
 
asmlinkage long sys32_rt_sigqueueinfo (int pid, int sig, compat_siginfo_t __user *uinfo)
 
asmlinkage long sys32_pread64 (unsigned int fd, char __user *ubuf, size_t count, u32 poshi, u32 poslo)
 
asmlinkage long sys32_pwrite64 (unsigned int fd, const char __user *ubuf, size_t count, u32 poshi, u32 poslo)
 
asmlinkage compat_ssize_t sys32_readahead (int fd, u32 offhi, u32 offlo, s32 count)
 
asmlinkage long sys32_sendfile (int out_fd, int in_fd, compat_off_t __user *offset, size_t count)
 
asmlinkage long sys32_sendfile64 (int out_fd, int in_fd, compat_loff_t __user *offset, s32 count)
 
asmlinkage long sys32_stat64 (const char __user *filename, struct stat64_emu31 __user *statbuf)
 
asmlinkage long sys32_lstat64 (const char __user *filename, struct stat64_emu31 __user *statbuf)
 
asmlinkage long sys32_fstat64 (unsigned long fd, struct stat64_emu31 __user *statbuf)
 
asmlinkage long sys32_fstatat64 (unsigned int dfd, const char __user *filename, struct stat64_emu31 __user *statbuf, int flag)
 
asmlinkage unsigned long old32_mmap (struct mmap_arg_struct_emu31 __user *arg)
 
asmlinkage long sys32_mmap2 (struct mmap_arg_struct_emu31 __user *arg)
 
asmlinkage long sys32_read (unsigned int fd, char __user *buf, size_t count)
 
asmlinkage long sys32_write (unsigned int fd, const char __user *buf, size_t count)
 
asmlinkage long sys32_fadvise64 (int fd, loff_t offset, size_t len, int advise)
 
asmlinkage long sys32_fadvise64_64 (struct fadvise64_64_args __user *args)
 

Variables

u32 psw32_user_bits
 

Macro Definition Documentation

#define high2lowgid (   gid)    ((gid) > 65535) ? (u16)overflowgid : (u16)(gid)

Definition at line 81 of file compat_linux.c.

#define high2lowuid (   uid)    ((uid) > 65535) ? (u16)overflowuid : (u16)(uid)

Definition at line 80 of file compat_linux.c.

#define low2highgid (   gid)    ((gid) == (u16)-1) ? (gid_t)-1 : (gid_t)(gid)

Definition at line 83 of file compat_linux.c.

#define low2highuid (   uid)    ((uid) == (u16)-1) ? (uid_t)-1 : (uid_t)(uid)

Definition at line 82 of file compat_linux.c.

#define NEW_TO_OLD_GID (   gid)    high2lowgid(gid)

Definition at line 87 of file compat_linux.c.

#define NEW_TO_OLD_UID (   uid)    high2lowuid(uid)

Definition at line 86 of file compat_linux.c.

#define SET_GID16 (   var,
  gid 
)    var = high2lowgid(gid)

Definition at line 85 of file compat_linux.c.

#define SET_OLDSTAT_GID (   stat,
  gid 
)    (stat).st_gid = high2lowgid(gid)

Definition at line 89 of file compat_linux.c.

#define SET_OLDSTAT_UID (   stat,
  uid 
)    (stat).st_uid = high2lowuid(uid)

Definition at line 88 of file compat_linux.c.

#define SET_STAT_GID (   stat,
  gid 
)    (stat).st_gid = high2lowgid(gid)

Definition at line 91 of file compat_linux.c.

#define SET_STAT_UID (   stat,
  uid 
)    (stat).st_uid = high2lowuid(uid)

Definition at line 90 of file compat_linux.c.

#define SET_UID16 (   var,
  uid 
)    var = high2lowuid(uid)

Definition at line 84 of file compat_linux.c.

#define STAT64_HAS_BROKEN_ST_INO   1

Definition at line 501 of file compat_linux.c.

Function Documentation

asmlinkage unsigned long old32_mmap ( struct mmap_arg_struct_emu31 __user arg)

Definition at line 601 of file compat_linux.c.

asmlinkage long sys32_chown16 ( const char __user filename,
u16  user,
u16  group 
)

Definition at line 93 of file compat_linux.c.

asmlinkage long sys32_fadvise64 ( int  fd,
loff_t  offset,
size_t  len,
int  advise 
)

Definition at line 645 of file compat_linux.c.

asmlinkage long sys32_fadvise64_64 ( struct fadvise64_64_args __user args)

Definition at line 662 of file compat_linux.c.

asmlinkage long sys32_fchown16 ( unsigned int  fd,
u16  user,
u16  group 
)

Definition at line 103 of file compat_linux.c.

asmlinkage long sys32_fstat64 ( unsigned long  fd,
struct stat64_emu31 __user statbuf 
)

Definition at line 565 of file compat_linux.c.

asmlinkage long sys32_fstatat64 ( unsigned int  dfd,
const char __user filename,
struct stat64_emu31 __user statbuf,
int  flag 
)

Definition at line 574 of file compat_linux.c.

asmlinkage long sys32_ftruncate64 ( unsigned int  fd,
unsigned long  high,
unsigned long  low 
)

Definition at line 347 of file compat_linux.c.

asmlinkage long sys32_getegid16 ( void  )

Definition at line 286 of file compat_linux.c.

asmlinkage long sys32_geteuid16 ( void  )

Definition at line 276 of file compat_linux.c.

asmlinkage long sys32_getgid16 ( void  )

Definition at line 281 of file compat_linux.c.

asmlinkage long sys32_getgroups16 ( int  gidsetsize,
u16 __user grouplist 
)

Definition at line 222 of file compat_linux.c.

asmlinkage long sys32_getresgid16 ( u16 __user rgidp,
u16 __user egidp,
u16 __user sgidp 
)

Definition at line 157 of file compat_linux.c.

asmlinkage long sys32_getresuid16 ( u16 __user ruidp,
u16 __user euidp,
u16 __user suidp 
)

Definition at line 134 of file compat_linux.c.

asmlinkage long sys32_getuid16 ( void  )

Definition at line 271 of file compat_linux.c.

asmlinkage long sys32_lchown16 ( const char __user filename,
u16  user,
u16  group 
)

Definition at line 98 of file compat_linux.c.

asmlinkage long sys32_lstat64 ( const char __user filename,
struct stat64_emu31 __user statbuf 
)

Definition at line 556 of file compat_linux.c.

Definition at line 613 of file compat_linux.c.

asmlinkage long sys32_pread64 ( unsigned int  fd,
char __user ubuf,
size_t  count,
u32  poshi,
u32  poslo 
)

Definition at line 435 of file compat_linux.c.

asmlinkage long sys32_pwrite64 ( unsigned int  fd,
const char __user ubuf,
size_t  count,
u32  poshi,
u32  poslo 
)

Definition at line 443 of file compat_linux.c.

asmlinkage long sys32_read ( unsigned int  fd,
char __user buf,
size_t  count 
)

Definition at line 622 of file compat_linux.c.

asmlinkage compat_ssize_t sys32_readahead ( int  fd,
u32  offhi,
u32  offlo,
s32  count 
)

Definition at line 451 of file compat_linux.c.

asmlinkage long sys32_rt_sigpending ( compat_sigset_t __user set,
size_t  sigsetsize 
)

Definition at line 400 of file compat_linux.c.

asmlinkage long sys32_rt_sigprocmask ( int  how,
compat_sigset_t __user set,
compat_sigset_t __user oset,
size_t  sigsetsize 
)

Definition at line 371 of file compat_linux.c.

asmlinkage long sys32_rt_sigqueueinfo ( int  pid,
int  sig,
compat_siginfo_t __user uinfo 
)

Definition at line 421 of file compat_linux.c.

asmlinkage long sys32_sched_rr_get_interval ( compat_pid_t  pid,
struct compat_timespec __user interval 
)

Definition at line 355 of file compat_linux.c.

asmlinkage long sys32_sendfile ( int  out_fd,
int  in_fd,
compat_off_t __user offset,
size_t  count 
)

Definition at line 456 of file compat_linux.c.

asmlinkage long sys32_sendfile64 ( int  out_fd,
int  in_fd,
compat_loff_t __user offset,
s32  count 
)

Definition at line 476 of file compat_linux.c.

asmlinkage long sys32_setfsgid16 ( u16  gid)

Definition at line 179 of file compat_linux.c.

asmlinkage long sys32_setfsuid16 ( u16  uid)

Definition at line 174 of file compat_linux.c.

asmlinkage long sys32_setgid16 ( u16  gid)

Definition at line 113 of file compat_linux.c.

asmlinkage long sys32_setgroups16 ( int  gidsetsize,
u16 __user grouplist 
)

Definition at line 246 of file compat_linux.c.

asmlinkage long sys32_setregid16 ( u16  rgid,
u16  egid 
)

Definition at line 108 of file compat_linux.c.

asmlinkage long sys32_setresgid16 ( u16  rgid,
u16  egid,
u16  sgid 
)

Definition at line 151 of file compat_linux.c.

asmlinkage long sys32_setresuid16 ( u16  ruid,
u16  euid,
u16  suid 
)

Definition at line 128 of file compat_linux.c.

asmlinkage long sys32_setreuid16 ( u16  ruid,
u16  euid 
)

Definition at line 118 of file compat_linux.c.

asmlinkage long sys32_setuid16 ( u16  uid)

Definition at line 123 of file compat_linux.c.

asmlinkage long sys32_stat64 ( const char __user filename,
struct stat64_emu31 __user statbuf 
)

Definition at line 547 of file compat_linux.c.

asmlinkage long sys32_truncate64 ( const char __user path,
unsigned long  high,
unsigned long  low 
)

Definition at line 339 of file compat_linux.c.

asmlinkage long sys32_write ( unsigned int  fd,
const char __user buf,
size_t  count 
)

Definition at line 630 of file compat_linux.c.

Variable Documentation

u32 psw32_user_bits