Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
kernel
sys_arm.c
Go to the documentation of this file.
1
/*
2
* linux/arch/arm/kernel/sys_arm.c
3
*
4
* Copyright (C) People who wrote linux/arch/i386/kernel/sys_i386.c
5
* Copyright (C) 1995, 1996 Russell King.
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License version 2 as
9
* published by the Free Software Foundation.
10
*
11
* This file contains various random system calls that
12
* have a non-standard calling sequence on the Linux/arm
13
* platform.
14
*/
15
#include <linux/export.h>
16
#include <linux/errno.h>
17
#include <linux/sched.h>
18
#include <
linux/mm.h
>
19
#include <linux/sem.h>
20
#include <linux/msg.h>
21
#include <linux/shm.h>
22
#include <linux/stat.h>
23
#include <
linux/syscalls.h
>
24
#include <linux/mman.h>
25
#include <linux/fs.h>
26
#include <
linux/file.h
>
27
#include <linux/ipc.h>
28
#include <
linux/uaccess.h
>
29
#include <linux/slab.h>
30
31
/* Fork a new task - this creates a new program thread.
32
* This is called indirectly via a small wrapper
33
*/
34
asmlinkage
int
sys_fork
(
struct
pt_regs
*
regs
)
35
{
36
#ifdef CONFIG_MMU
37
return
do_fork
(
SIGCHLD
, regs->ARM_sp, regs, 0,
NULL
,
NULL
);
38
#else
39
/* can not support in nommu mode */
40
return
(-
EINVAL
);
41
#endif
42
}
43
44
/* Clone a task - this clones the calling program thread.
45
* This is called indirectly via a small wrapper
46
*/
47
asmlinkage
int
sys_clone
(
unsigned
long
clone_flags,
unsigned
long
newsp,
48
int
__user *parent_tidptr,
int
tls_val,
49
int
__user *child_tidptr,
struct
pt_regs
*
regs
)
50
{
51
if
(!newsp)
52
newsp = regs->ARM_sp;
53
54
return
do_fork
(clone_flags, newsp, regs, 0, parent_tidptr, child_tidptr);
55
}
56
57
asmlinkage
int
sys_vfork
(
struct
pt_regs
*
regs
)
58
{
59
return
do_fork
(
CLONE_VFORK
|
CLONE_VM
|
SIGCHLD
, regs->ARM_sp, regs, 0,
NULL
,
NULL
);
60
}
61
62
/*
63
* Since loff_t is a 64 bit type we avoid a lot of ABI hassle
64
* with a different argument ordering.
65
*/
66
asmlinkage
long
sys_arm_fadvise64_64
(
int
fd
,
int
advice,
67
loff_t
offset
, loff_t len)
68
{
69
return
sys_fadvise64_64
(fd, offset, len, advice);
70
}
Generated on Thu Jan 10 2013 12:56:23 for Linux Kernel by
1.8.2