OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [mips/] [kernel/] [scall32-o32.S] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
/*
2
 * This file is subject to the terms and conditions of the GNU General Public
3
 * License.  See the file "COPYING" in the main directory of this archive
4
 * for more details.
5
 *
6
 * Copyright (C) 1995-99, 2000- 02, 06 Ralf Baechle 
7
 * Copyright (C) 2001 MIPS Technologies, Inc.
8
 * Copyright (C) 2004 Thiemo Seufer
9
 */
10
#include 
11
#include 
12
#include 
13
#include 
14
#include 
15
#include 
16
#include 
17
#include 
18
#include 
19
#include 
20
#include 
21
#include 
22
#include 
23
 
24
/* Highest syscall used of any syscall flavour */
25
#define MAX_SYSCALL_NO  __NR_O32_Linux + __NR_O32_Linux_syscalls
26
 
27
        .align  5
28
NESTED(handle_sys, PT_SIZE, sp)
29
        .set    noat
30
        SAVE_SOME
31
        TRACE_IRQS_ON_RELOAD
32
        STI
33
        .set    at
34
 
35
        lw      t1, PT_EPC(sp)          # skip syscall on return
36
 
37
#if defined(CONFIG_BINFMT_IRIX)
38
        sltiu   t0, v0, MAX_SYSCALL_NO + 1 # check syscall number
39
#else
40
        subu    v0, v0, __NR_O32_Linux  # check syscall number
41
        sltiu   t0, v0, __NR_O32_Linux_syscalls + 1
42
#endif
43
        addiu   t1, 4                   # skip to next instruction
44
        sw      t1, PT_EPC(sp)
45
        beqz    t0, illegal_syscall
46
 
47
        sll     t0, v0, 3
48
        la      t1, sys_call_table
49
        addu    t1, t0
50
        lw      t2, (t1)                # syscall routine
51
        lw      t3, 4(t1)               # >= 0 if we need stack arguments
52
        beqz    t2, illegal_syscall
53
 
54
        sw      a3, PT_R26(sp)          # save a3 for syscall restarting
55
        bgez    t3, stackargs
56
 
57
stack_done:
58
        lw      t0, TI_FLAGS($28)       # syscall tracing enabled?
59
        li      t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
60
        and     t0, t1
61
        bnez    t0, syscall_trace_entry # -> yes
62
 
63
        jalr    t2                      # Do The Real Thing (TM)
64
 
65
        li      t0, -EMAXERRNO - 1      # error?
66
        sltu    t0, t0, v0
67
        sw      t0, PT_R7(sp)           # set error flag
68
        beqz    t0, 1f
69
 
70
        negu    v0                      # error
71
        sw      v0, PT_R0(sp)           # set flag for syscall
72
                                        # restarting
73
1:      sw      v0, PT_R2(sp)           # result
74
 
75
o32_syscall_exit:
76
        local_irq_disable               # make sure need_resched and
77
                                        # signals dont change between
78
                                        # sampling and return
79
        lw      a2, TI_FLAGS($28)       # current->work
80
        li      t0, _TIF_ALLWORK_MASK
81
        and     t0, a2
82
        bnez    t0, o32_syscall_exit_work
83
 
84
        j       restore_partial
85
 
86
o32_syscall_exit_work:
87
        j       syscall_exit_work_partial
88
 
89
/* ------------------------------------------------------------------------ */
90
 
91
syscall_trace_entry:
92
        SAVE_STATIC
93
        move    s0, t2
94
        move    a0, sp
95
        li      a1, 0
96
        jal     do_syscall_trace
97
 
98
        move    t0, s0
99
        RESTORE_STATIC
100
        lw      a0, PT_R4(sp)           # Restore argument registers
101
        lw      a1, PT_R5(sp)
102
        lw      a2, PT_R6(sp)
103
        lw      a3, PT_R7(sp)
104
        jalr    t0
105
 
106
        li      t0, -EMAXERRNO - 1      # error?
107
        sltu    t0, t0, v0
108
        sw      t0, PT_R7(sp)           # set error flag
109
        beqz    t0, 1f
110
 
111
        negu    v0                      # error
112
        sw      v0, PT_R0(sp)           # set flag for syscall
113
                                        # restarting
114
1:      sw      v0, PT_R2(sp)           # result
115
 
116
        j       syscall_exit
117
 
118
/* ------------------------------------------------------------------------ */
119
 
120
        /*
121
         * More than four arguments.  Try to deal with it by copying the
122
         * stack arguments from the user stack to the kernel stack.
123
         * This Sucks (TM).
124
         */
125
stackargs:
126
        lw      t0, PT_R29(sp)          # get old user stack pointer
127
 
128
        /*
129
         * We intentionally keep the kernel stack a little below the top of
130
         * userspace so we don't have to do a slower byte accurate check here.
131
         */
132
        lw      t5, TI_ADDR_LIMIT($28)
133
        addu    t4, t0, 32
134
        and     t5, t4
135
        bltz    t5, bad_stack           # -> sp is bad
136
 
137
        /* Ok, copy the args from the luser stack to the kernel stack.
138
         * t3 is the precomputed number of instruction bytes needed to
139
         * load or store arguments 6-8.
140
         */
141
 
142
        la      t1, 5f                  # load up to 3 arguments
143
        subu    t1, t3
144
1:      lw      t5, 16(t0)              # argument #5 from usp
145
        .set    push
146
        .set    noreorder
147
        .set    nomacro
148
        jr      t1
149
         addiu  t1, 6f - 5f
150
 
151
2:      lw      t8, 28(t0)              # argument #8 from usp
152
3:      lw      t7, 24(t0)              # argument #7 from usp
153
4:      lw      t6, 20(t0)              # argument #6 from usp
154
5:      jr      t1
155
         sw     t5, 16(sp)              # argument #5 to ksp
156
 
157
        sw      t8, 28(sp)              # argument #8 to ksp
158
        sw      t7, 24(sp)              # argument #7 to ksp
159
        sw      t6, 20(sp)              # argument #6 to ksp
160
6:      j       stack_done              # go back
161
         nop
162
        .set    pop
163
 
164
        .section __ex_table,"a"
165
        PTR     1b,bad_stack
166
        PTR     2b,bad_stack
167
        PTR     3b,bad_stack
168
        PTR     4b,bad_stack
169
        .previous
170
 
171
        /*
172
         * The stackpointer for a call with more than 4 arguments is bad.
173
         * We probably should handle this case a bit more drastic.
174
         */
175
bad_stack:
176
        negu    v0                              # error
177
        sw      v0, PT_R0(sp)
178
        sw      v0, PT_R2(sp)
179
        li      t0, 1                           # set error flag
180
        sw      t0, PT_R7(sp)
181
        j       o32_syscall_exit
182
 
183
        /*
184
         * The system call does not exist in this kernel
185
         */
186
illegal_syscall:
187
        li      v0, -ENOSYS                     # error
188
        sw      v0, PT_R2(sp)
189
        li      t0, 1                           # set error flag
190
        sw      t0, PT_R7(sp)
191
        j       o32_syscall_exit
192
        END(handle_sys)
193
 
194
        LEAF(mips_atomic_set)
195
        andi    v0, a1, 3                       # must be word aligned
196
        bnez    v0, bad_alignment
197
 
198
        lw      v1, TI_ADDR_LIMIT($28)          # in legal address range?
199
        addiu   a0, a1, 4
200
        or      a0, a0, a1
201
        and     a0, a0, v1
202
        bltz    a0, bad_address
203
 
204
#ifdef CONFIG_CPU_HAS_LLSC
205
        /* Ok, this is the ll/sc case.  World is sane :-)  */
206
1:      ll      v0, (a1)
207
        move    a0, a2
208
2:      sc      a0, (a1)
209
#if R10000_LLSC_WAR
210
        beqzl   a0, 1b
211
#else
212
        beqz    a0, 1b
213
#endif
214
 
215
        .section __ex_table,"a"
216
        PTR     1b, bad_stack
217
        PTR     2b, bad_stack
218
        .previous
219
#else
220
        sw      a1, 16(sp)
221
        sw      a2, 20(sp)
222
 
223
        move    a0, sp
224
        move    a2, a1
225
        li      a1, 1
226
        jal     do_page_fault
227
 
228
        lw      a1, 16(sp)
229
        lw      a2, 20(sp)
230
 
231
        /*
232
         * At this point the page should be readable and writable unless
233
         * there was no more memory available.
234
         */
235
1:      lw      v0, (a1)
236
2:      sw      a2, (a1)
237
 
238
        .section __ex_table,"a"
239
        PTR     1b, no_mem
240
        PTR     2b, no_mem
241
        .previous
242
#endif
243
 
244
        sw      zero, PT_R7(sp)         # success
245
        sw      v0, PT_R2(sp)           # result
246
 
247
        j       o32_syscall_exit        # continue like a normal syscall
248
 
249
no_mem: li      v0, -ENOMEM
250
        jr      ra
251
 
252
bad_address:
253
        li      v0, -EFAULT
254
        jr      ra
255
 
256
bad_alignment:
257
        li      v0, -EINVAL
258
        jr      ra
259
        END(mips_atomic_set)
260
 
261
        LEAF(sys_sysmips)
262
        beq     a0, MIPS_ATOMIC_SET, mips_atomic_set
263
        j       _sys_sysmips
264
        END(sys_sysmips)
265
 
266
        LEAF(sys_syscall)
267
#if defined(CONFIG_BINFMT_IRIX)
268
        sltiu   v0, a0, MAX_SYSCALL_NO + 1 # check syscall number
269
#else
270
        subu    t0, a0, __NR_O32_Linux  # check syscall number
271
        sltiu   v0, t0, __NR_O32_Linux_syscalls + 1
272
#endif
273
        sll     t1, t0, 3
274
        beqz    v0, einval
275
 
276
        lw      t2, sys_call_table(t1)          # syscall routine
277
 
278
#if defined(CONFIG_BINFMT_IRIX)
279
        li      v1, 4000                        # nr of sys_syscall
280
#else
281
        li      v1, 4000 - __NR_O32_Linux       # index of sys_syscall
282
#endif
283
        beq     t0, v1, einval                  # do not recurse
284
 
285
        /* Some syscalls like execve get their arguments from struct pt_regs
286
           and claim zero arguments in the syscall table. Thus we have to
287
           assume the worst case and shuffle around all potential arguments.
288
           If you want performance, don't use indirect syscalls. */
289
 
290
        move    a0, a1                          # shift argument registers
291
        move    a1, a2
292
        move    a2, a3
293
        lw      a3, 16(sp)
294
        lw      t4, 20(sp)
295
        lw      t5, 24(sp)
296
        lw      t6, 28(sp)
297
        sw      t4, 16(sp)
298
        sw      t5, 20(sp)
299
        sw      t6, 24(sp)
300
        sw      a0, PT_R4(sp)                   # .. and push back a0 - a3, some
301
        sw      a1, PT_R5(sp)                   # syscalls expect them there
302
        sw      a2, PT_R6(sp)
303
        sw      a3, PT_R7(sp)
304
        sw      a3, PT_R26(sp)                  # update a3 for syscall restarting
305
        jr      t2
306
        /* Unreached */
307
 
308
einval: li      v0, -EINVAL
309
        jr      ra
310
        END(sys_syscall)
311
 
312
        .macro  fifty ptr, nargs, from=1, to=50
313
        sys     \ptr            \nargs
314
        .if     \to-\from
315
        fifty   \ptr,\nargs,"(\from+1)",\to
316
        .endif
317
        .endm
318
 
319
        .macro  mille ptr, nargs, from=1, to=20
320
        fifty   \ptr,\nargs
321
        .if     \to-\from
322
        mille   \ptr,\nargs,"(\from+1)",\to
323
        .endif
324
        .endm
325
 
326
        .macro  syscalltable
327
#if defined(CONFIG_BINFMT_IRIX)
328
        mille   sys_ni_syscall          0        /*    0 -  999 SVR4 flavour */
329
        mille   sys_ni_syscall          0        /* 1000 - 1999 32-bit IRIX */
330
        mille   sys_ni_syscall          0        /* 2000 - 2999 BSD43 flavour */
331
        mille   sys_ni_syscall          0        /* 3000 - 3999 POSIX flavour */
332
#endif
333
 
334
        sys     sys_syscall             8       /* 4000 */
335
        sys     sys_exit                1
336
        sys     sys_fork                0
337
        sys     sys_read                3
338
        sys     sys_write               3
339
        sys     sys_open                3       /* 4005 */
340
        sys     sys_close               1
341
        sys     sys_waitpid             3
342
        sys     sys_creat               2
343
        sys     sys_link                2
344
        sys     sys_unlink              1       /* 4010 */
345
        sys     sys_execve              0
346
        sys     sys_chdir               1
347
        sys     sys_time                1
348
        sys     sys_mknod               3
349
        sys     sys_chmod               2       /* 4015 */
350
        sys     sys_lchown              3
351
        sys     sys_ni_syscall          0
352
        sys     sys_ni_syscall          0        /* was sys_stat */
353
        sys     sys_lseek               3
354
        sys     sys_getpid              0        /* 4020 */
355
        sys     sys_mount               5
356
        sys     sys_oldumount           1
357
        sys     sys_setuid              1
358
        sys     sys_getuid              0
359
        sys     sys_stime               1       /* 4025 */
360
        sys     sys_ptrace              4
361
        sys     sys_alarm               1
362
        sys     sys_ni_syscall          0        /* was sys_fstat */
363
        sys     sys_pause               0
364
        sys     sys_utime               2       /* 4030 */
365
        sys     sys_ni_syscall          0
366
        sys     sys_ni_syscall          0
367
        sys     sys_access              2
368
        sys     sys_nice                1
369
        sys     sys_ni_syscall          0        /* 4035 */
370
        sys     sys_sync                0
371
        sys     sys_kill                2
372
        sys     sys_rename              2
373
        sys     sys_mkdir               2
374
        sys     sys_rmdir               1       /* 4040 */
375
        sys     sys_dup                 1
376
        sys     sys_pipe                0
377
        sys     sys_times               1
378
        sys     sys_ni_syscall          0
379
        sys     sys_brk                 1       /* 4045 */
380
        sys     sys_setgid              1
381
        sys     sys_getgid              0
382
        sys     sys_ni_syscall          0        /* was signal(2) */
383
        sys     sys_geteuid             0
384
        sys     sys_getegid             0        /* 4050 */
385
        sys     sys_acct                1
386
        sys     sys_umount              2
387
        sys     sys_ni_syscall          0
388
        sys     sys_ioctl               3
389
        sys     sys_fcntl               3       /* 4055 */
390
        sys     sys_ni_syscall          2
391
        sys     sys_setpgid             2
392
        sys     sys_ni_syscall          0
393
        sys     sys_olduname            1
394
        sys     sys_umask               1       /* 4060 */
395
        sys     sys_chroot              1
396
        sys     sys_ustat               2
397
        sys     sys_dup2                2
398
        sys     sys_getppid             0
399
        sys     sys_getpgrp             0        /* 4065 */
400
        sys     sys_setsid              0
401
        sys     sys_sigaction           3
402
        sys     sys_sgetmask            0
403
        sys     sys_ssetmask            1
404
        sys     sys_setreuid            2       /* 4070 */
405
        sys     sys_setregid            2
406
        sys     sys_sigsuspend          0
407
        sys     sys_sigpending          1
408
        sys     sys_sethostname         2
409
        sys     sys_setrlimit           2       /* 4075 */
410
        sys     sys_getrlimit           2
411
        sys     sys_getrusage           2
412
        sys     sys_gettimeofday        2
413
        sys     sys_settimeofday        2
414
        sys     sys_getgroups           2       /* 4080 */
415
        sys     sys_setgroups           2
416
        sys     sys_ni_syscall          0        /* old_select */
417
        sys     sys_symlink             2
418
        sys     sys_ni_syscall          0        /* was sys_lstat */
419
        sys     sys_readlink            3       /* 4085 */
420
        sys     sys_uselib              1
421
        sys     sys_swapon              2
422
        sys     sys_reboot              3
423
        sys     old_readdir             3
424
        sys     old_mmap                6       /* 4090 */
425
        sys     sys_munmap              2
426
        sys     sys_truncate            2
427
        sys     sys_ftruncate           2
428
        sys     sys_fchmod              2
429
        sys     sys_fchown              3       /* 4095 */
430
        sys     sys_getpriority         2
431
        sys     sys_setpriority         3
432
        sys     sys_ni_syscall          0
433
        sys     sys_statfs              2
434
        sys     sys_fstatfs             2       /* 4100 */
435
        sys     sys_ni_syscall          0        /* was ioperm(2) */
436
        sys     sys_socketcall          2
437
        sys     sys_syslog              3
438
        sys     sys_setitimer           3
439
        sys     sys_getitimer           2       /* 4105 */
440
        sys     sys_newstat             2
441
        sys     sys_newlstat            2
442
        sys     sys_newfstat            2
443
        sys     sys_uname               1
444
        sys     sys_ni_syscall          0        /* 4110 was iopl(2) */
445
        sys     sys_vhangup             0
446
        sys     sys_ni_syscall          0        /* was sys_idle() */
447
        sys     sys_ni_syscall          0        /* was sys_vm86 */
448
        sys     sys_wait4               4
449
        sys     sys_swapoff             1       /* 4115 */
450
        sys     sys_sysinfo             1
451
        sys     sys_ipc                 6
452
        sys     sys_fsync               1
453
        sys     sys_sigreturn           0
454
        sys     sys_clone               0        /* 4120 */
455
        sys     sys_setdomainname       2
456
        sys     sys_newuname            1
457
        sys     sys_ni_syscall          0        /* sys_modify_ldt */
458
        sys     sys_adjtimex            1
459
        sys     sys_mprotect            3       /* 4125 */
460
        sys     sys_sigprocmask         3
461
        sys     sys_ni_syscall          0        /* was create_module */
462
        sys     sys_init_module         5
463
        sys     sys_delete_module       1
464
        sys     sys_ni_syscall          0        /* 4130 was get_kernel_syms */
465
        sys     sys_quotactl            4
466
        sys     sys_getpgid             1
467
        sys     sys_fchdir              1
468
        sys     sys_bdflush             2
469
        sys     sys_sysfs               3       /* 4135 */
470
        sys     sys_personality         1
471
        sys     sys_ni_syscall          0        /* for afs_syscall */
472
        sys     sys_setfsuid            1
473
        sys     sys_setfsgid            1
474
        sys     sys_llseek              5       /* 4140 */
475
        sys     sys_getdents            3
476
        sys     sys_select              5
477
        sys     sys_flock               2
478
        sys     sys_msync               3
479
        sys     sys_readv               3       /* 4145 */
480
        sys     sys_writev              3
481
        sys     sys_cacheflush          3
482
        sys     sys_cachectl            3
483
        sys     sys_sysmips             4
484
        sys     sys_ni_syscall          0        /* 4150 */
485
        sys     sys_getsid              1
486
        sys     sys_fdatasync           1
487
        sys     sys_sysctl              1
488
        sys     sys_mlock               2
489
        sys     sys_munlock             2       /* 4155 */
490
        sys     sys_mlockall            1
491
        sys     sys_munlockall          0
492
        sys     sys_sched_setparam      2
493
        sys     sys_sched_getparam      2
494
        sys     sys_sched_setscheduler  3       /* 4160 */
495
        sys     sys_sched_getscheduler  1
496
        sys     sys_sched_yield         0
497
        sys     sys_sched_get_priority_max 1
498
        sys     sys_sched_get_priority_min 1
499
        sys     sys_sched_rr_get_interval 2     /* 4165 */
500
        sys     sys_nanosleep,          2
501
        sys     sys_mremap,             5
502
        sys     sys_accept              3
503
        sys     sys_bind                3
504
        sys     sys_connect             3       /* 4170 */
505
        sys     sys_getpeername         3
506
        sys     sys_getsockname         3
507
        sys     sys_getsockopt          5
508
        sys     sys_listen              2
509
        sys     sys_recv                4       /* 4175 */
510
        sys     sys_recvfrom            6
511
        sys     sys_recvmsg             3
512
        sys     sys_send                4
513
        sys     sys_sendmsg             3
514
        sys     sys_sendto              6       /* 4180 */
515
        sys     sys_setsockopt          5
516
        sys     sys_shutdown            2
517
        sys     sys_socket              3
518
        sys     sys_socketpair          4
519
        sys     sys_setresuid           3       /* 4185 */
520
        sys     sys_getresuid           3
521
        sys     sys_ni_syscall          0        /* was sys_query_module */
522
        sys     sys_poll                3
523
        sys     sys_nfsservctl          3
524
        sys     sys_setresgid           3       /* 4190 */
525
        sys     sys_getresgid           3
526
        sys     sys_prctl               5
527
        sys     sys_rt_sigreturn        0
528
        sys     sys_rt_sigaction        4
529
        sys     sys_rt_sigprocmask      4       /* 4195 */
530
        sys     sys_rt_sigpending       2
531
        sys     sys_rt_sigtimedwait     4
532
        sys     sys_rt_sigqueueinfo     3
533
        sys     sys_rt_sigsuspend       0
534
        sys     sys_pread64             6       /* 4200 */
535
        sys     sys_pwrite64            6
536
        sys     sys_chown               3
537
        sys     sys_getcwd              2
538
        sys     sys_capget              2
539
        sys     sys_capset              2       /* 4205 */
540
        sys     sys_sigaltstack         0
541
        sys     sys_sendfile            4
542
        sys     sys_ni_syscall          0
543
        sys     sys_ni_syscall          0
544
        sys     sys_mmap2               6       /* 4210 */
545
        sys     sys_truncate64          4
546
        sys     sys_ftruncate64         4
547
        sys     sys_stat64              2
548
        sys     sys_lstat64             2
549
        sys     sys_fstat64             2       /* 4215 */
550
        sys     sys_pivot_root          2
551
        sys     sys_mincore             3
552
        sys     sys_madvise             3
553
        sys     sys_getdents64          3
554
        sys     sys_fcntl64             3       /* 4220 */
555
        sys     sys_ni_syscall          0
556
        sys     sys_gettid              0
557
        sys     sys_readahead           5
558
        sys     sys_setxattr            5
559
        sys     sys_lsetxattr           5       /* 4225 */
560
        sys     sys_fsetxattr           5
561
        sys     sys_getxattr            4
562
        sys     sys_lgetxattr           4
563
        sys     sys_fgetxattr           4
564
        sys     sys_listxattr           3       /* 4230 */
565
        sys     sys_llistxattr          3
566
        sys     sys_flistxattr          3
567
        sys     sys_removexattr         2
568
        sys     sys_lremovexattr        2
569
        sys     sys_fremovexattr        2       /* 4235 */
570
        sys     sys_tkill               2
571
        sys     sys_sendfile64          5
572
        sys     sys_futex               6
573
#ifdef CONFIG_MIPS_MT_FPAFF
574
        /*
575
         * For FPU affinity scheduling on MIPS MT processors, we need to
576
         * intercept sys_sched_xxxaffinity() calls until we get a proper hook
577
         * in kernel/sched.c.  Considered only temporary we only support these
578
         * hooks for the 32-bit kernel - there is no MIPS64 MT processor atm.
579
         */
580
        sys     mipsmt_sys_sched_setaffinity    3
581
        sys     mipsmt_sys_sched_getaffinity    3
582
#else
583
        sys     sys_sched_setaffinity   3
584
        sys     sys_sched_getaffinity   3       /* 4240 */
585
#endif /* CONFIG_MIPS_MT_FPAFF */
586
        sys     sys_io_setup            2
587
        sys     sys_io_destroy          1
588
        sys     sys_io_getevents        5
589
        sys     sys_io_submit           3
590
        sys     sys_io_cancel           3       /* 4245 */
591
        sys     sys_exit_group          1
592
        sys     sys_lookup_dcookie      4
593
        sys     sys_epoll_create        1
594
        sys     sys_epoll_ctl           4
595
        sys     sys_epoll_wait          3       /* 4250 */
596
        sys     sys_remap_file_pages    5
597
        sys     sys_set_tid_address     1
598
        sys     sys_restart_syscall     0
599
        sys     sys_fadvise64_64        7
600
        sys     sys_statfs64            3       /* 4255 */
601
        sys     sys_fstatfs64           2
602
        sys     sys_timer_create        3
603
        sys     sys_timer_settime       4
604
        sys     sys_timer_gettime       2
605
        sys     sys_timer_getoverrun    1       /* 4260 */
606
        sys     sys_timer_delete        1
607
        sys     sys_clock_settime       2
608
        sys     sys_clock_gettime       2
609
        sys     sys_clock_getres        2
610
        sys     sys_clock_nanosleep     4       /* 4265 */
611
        sys     sys_tgkill              3
612
        sys     sys_utimes              2
613
        sys     sys_mbind               4
614
        sys     sys_ni_syscall          0        /* sys_get_mempolicy */
615
        sys     sys_ni_syscall          0        /* 4270 sys_set_mempolicy */
616
        sys     sys_mq_open             4
617
        sys     sys_mq_unlink           1
618
        sys     sys_mq_timedsend        5
619
        sys     sys_mq_timedreceive     5
620
        sys     sys_mq_notify           2       /* 4275 */
621
        sys     sys_mq_getsetattr       3
622
        sys     sys_ni_syscall          0        /* sys_vserver */
623
        sys     sys_waitid              5
624
        sys     sys_ni_syscall          0        /* available, was setaltroot */
625
        sys     sys_add_key             5       /* 4280 */
626
        sys     sys_request_key         4
627
        sys     sys_keyctl              5
628
        sys     sys_set_thread_area     1
629
        sys     sys_inotify_init        0
630
        sys     sys_inotify_add_watch   3       /* 4285 */
631
        sys     sys_inotify_rm_watch    2
632
        sys     sys_migrate_pages       4
633
        sys     sys_openat              4
634
        sys     sys_mkdirat             3
635
        sys     sys_mknodat             4       /* 4290 */
636
        sys     sys_fchownat            5
637
        sys     sys_futimesat           3
638
        sys     sys_fstatat64           4
639
        sys     sys_unlinkat            3
640
        sys     sys_renameat            4       /* 4295 */
641
        sys     sys_linkat              5
642
        sys     sys_symlinkat           3
643
        sys     sys_readlinkat          4
644
        sys     sys_fchmodat            3
645
        sys     sys_faccessat           3       /* 4300 */
646
        sys     sys_pselect6            6
647
        sys     sys_ppoll               5
648
        sys     sys_unshare             1
649
        sys     sys_splice              4
650
        sys     sys_sync_file_range     7       /* 4305 */
651
        sys     sys_tee                 4
652
        sys     sys_vmsplice            4
653
        sys     sys_move_pages          6
654
        sys     sys_set_robust_list     2
655
        sys     sys_get_robust_list     3       /* 4310 */
656
        sys     sys_kexec_load          4
657
        sys     sys_getcpu              3
658
        sys     sys_epoll_pwait         6
659
        sys     sys_ioprio_set          3
660
        sys     sys_ioprio_get          2       /* 4315 */
661
        sys     sys_utimensat           4
662
        sys     sys_signalfd            3
663
        sys     sys_timerfd             4
664
        sys     sys_eventfd             1
665
        sys     sys_fallocate           6       /* 4320 */
666
        .endm
667
 
668
        /* We pre-compute the number of _instruction_ bytes needed to
669
           load or store the arguments 6-8. Negative values are ignored. */
670
 
671
        .macro  sys function, nargs
672
        PTR     \function
673
        LONG    (\nargs << 2) - (5 << 2)
674
        .endm
675
 
676
        .align  3
677
        .type   sys_call_table,@object
678
EXPORT(sys_call_table)
679
        syscalltable
680
        .size   sys_call_table, . - sys_call_table

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.