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

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [arch/] [i386/] [kernel/] [entry.S] - Blame information for rev 1765

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1623 jcastillo
/*
2
 *  linux/arch/i386/entry.S
3
 *
4
 *  Copyright (C) 1991, 1992  Linus Torvalds
5
 */
6
 
7
/*
8
 * entry.S contains the system-call and fault low-level handling routines.
9
 * This also contains the timer-interrupt handler, as well as all interrupts
10
 * and faults that can result in a task-switch.
11
 *
12
 * NOTE: This code handles signal-recognition, which happens every time
13
 * after a timer-interrupt and after each system call.
14
 *
15
 * I changed all the .align's to 4 (16 byte alignment), as that's faster
16
 * on a 486.
17
 *
18
 * Stack layout in 'ret_from_system_call':
19
 *      ptrace needs to have all regs on the stack.
20
 *      if the order here is changed, it needs to be
21
 *      updated in fork.c:copy_process, signal.c:do_signal,
22
 *      ptrace.c and ptrace.h
23
 *
24
 *       0(%esp) - %ebx
25
 *       4(%esp) - %ecx
26
 *       8(%esp) - %edx
27
 *       C(%esp) - %esi
28
 *      10(%esp) - %edi
29
 *      14(%esp) - %ebp
30
 *      18(%esp) - %eax
31
 *      1C(%esp) - %ds
32
 *      20(%esp) - %es
33
 *      24(%esp) - %fs
34
 *      28(%esp) - %gs
35
 *      2C(%esp) - orig_eax
36
 *      30(%esp) - %eip
37
 *      34(%esp) - %cs
38
 *      38(%esp) - %eflags
39
 *      3C(%esp) - %oldesp
40
 *      40(%esp) - %oldss
41
 */
42
 
43
#include 
44
#include 
45
#include 
46
#define ASSEMBLY
47
#include 
48
 
49
EBX             = 0x00
50
ECX             = 0x04
51
EDX             = 0x08
52
ESI             = 0x0C
53
EDI             = 0x10
54
EBP             = 0x14
55
EAX             = 0x18
56
DS              = 0x1C
57
ES              = 0x20
58
FS              = 0x24
59
GS              = 0x28
60
ORIG_EAX        = 0x2C
61
EIP             = 0x30
62
CS              = 0x34
63
EFLAGS          = 0x38
64
OLDESP          = 0x3C
65
OLDSS           = 0x40
66
 
67
CF_MASK         = 0x00000001
68
IF_MASK         = 0x00000200
69
NT_MASK         = 0x00004000
70
VM_MASK         = 0x00020000
71
 
72
/*
73
 * these are offsets into the task-struct.
74
 */
75
state           =  0
76
counter         =  4
77
priority        =  8
78
signal          = 12
79
blocked         = 16
80
flags           = 20
81
dbgreg6         = 52
82
dbgreg7         = 56
83
exec_domain     = 60
84
 
85
ENOSYS = 38
86
 
87
#define SAVE_ALL \
88
        cld; \
89
        push %gs; \
90
        push %fs; \
91
        push %es; \
92
        push %ds; \
93
        pushl %eax; \
94
        pushl %ebp; \
95
        pushl %edi; \
96
        pushl %esi; \
97
        pushl %edx; \
98
        pushl %ecx; \
99
        pushl %ebx; \
100
        movl $(KERNEL_DS),%edx; \
101
        mov %dx,%ds; \
102
        mov %dx,%es; \
103
        movl $(USER_DS),%edx; \
104
        mov %dx,%fs;
105
 
106
#ifdef  __SMP__
107
 
108
#define GET_PROCESSOR_ID \
109
        movl SYMBOL_NAME(apic_reg), %edx; \
110
        movl 32(%edx), %eax;\
111
        movl %eax,SYMBOL_NAME(apic_retval); \
112
        shrl $24,%eax; \
113
        andb $0x0F,%al;
114
 
115
/*
116
 *      Get the processor ID multiplied by 4
117
 */
118
 
119
#define GET_PROCESSOR_OFFSET(x) \
120
        movl SYMBOL_NAME(apic_reg), x ; \
121
        movl 32( x ), x ; \
122
        shrl $22, x ; \
123
        andl $0x3C, x ;
124
 
125
/* macro LEAVE_KERNEL decrements kernel_counter and resets kernel_flag and
126
   saves processor variables if zero */
127
#define LEAVE_KERNEL \
128
        pushfl; \
129
        cli; \
130
        GET_PROCESSOR_ID \
131
        btrl $ SMP_FROM_SYSCALL,SYMBOL_NAME(smp_proc_in_lock)(,%eax,4); \
132
        decl SYMBOL_NAME(syscall_count); \
133
        decl SYMBOL_NAME(kernel_counter); \
134
        jnz 1f; \
135
        movb SYMBOL_NAME(saved_active_kernel_processor), %al; \
136
        movb %al, SYMBOL_NAME(active_kernel_processor); \
137
        cmpb $(NO_PROC_ID), %al; \
138
        jnz 1f; \
139
        lock; \
140
        btrl $0, SYMBOL_NAME(kernel_flag); \
141
1:      popfl;
142
 
143
/* macro ENTER_KERNEL waits for entering the kernel, increments
144
   kernel_counter, and reloads the processor variables if necessary
145
   uses : %eax, %edx (pushed and popped)
146
 
147
   Note: We go to great pains to minimise the number of locked operations.
148
   We want to spin without locking, and lock when we attempt an update.
149
   The pentium has a MESI cache so the spin without lock will exit when
150
   another CPU write invalidates our cache, and the lock is avoided when
151
   possible so we don't play ping-pong games with the cache line.
152
 
153
*/
154
 
155
#ifndef __SMP_PROF__
156
 
157
#define SMP_PROF_A
158
#define SMP_PROF_B
159
 
160
#else
161
 
162
#define SMP_PROF_A movl $0,SYMBOL_NAME(smp_spins_syscall_cur)(,%eax,4);
163
#define SMP_PROF_B incl SYMBOL_NAME(smp_spins_syscall)(,%eax,4); \
164
        incl SYMBOL_NAME(smp_spins_syscall_cur)(,%eax,4);
165
#endif
166
 
167
#define ENTER_KERNEL \
168
        pushl %eax; \
169
        pushl %ebx; \
170
        pushl %ecx; \
171
        pushl %edx; \
172
        pushfl; \
173
        cli; \
174
        movl $6000, %ebx; \
175
        movl SYMBOL_NAME(smp_loops_per_tick), %ecx; \
176
        GET_PROCESSOR_ID \
177
        btsl $ SMP_FROM_SYSCALL,SYMBOL_NAME(smp_proc_in_lock)(,%eax,4); \
178
        SMP_PROF_A \
179
1:      lock; \
180
        btsl $0, SYMBOL_NAME(kernel_flag); \
181
        jnc 3f; \
182
        cmpb SYMBOL_NAME(active_kernel_processor), %al; \
183
        je 4f; \
184
2:      SMP_PROF_B \
185
        btl %eax, SYMBOL_NAME(smp_invalidate_needed); \
186
        jnc 5f; \
187
        lock; \
188
        btrl %eax, SYMBOL_NAME(smp_invalidate_needed); \
189
        jnc 5f; \
190
        movl %cr3,%edx; \
191
        movl %edx,%cr3; \
192
5:      sti; \
193
        decl %ecx; \
194
        cli; \
195
        jne 7f; \
196
        decl %ebx; \
197
        jne 6f; \
198
        call SYMBOL_NAME(non_irq_deadlock_detected); \
199
6:      movl SYMBOL_NAME(smp_loops_per_tick), %ecx; \
200
        cmpb SYMBOL_NAME(boot_cpu_id), %al; \
201
        jne 7f; \
202
        incl SYMBOL_NAME(jiffies);  \
203
7:      btl $0, SYMBOL_NAME(kernel_flag); \
204
        jc 2b; \
205
        jmp 1b; \
206
3:      movb %al, SYMBOL_NAME(active_kernel_processor); \
207
4:      incl SYMBOL_NAME(kernel_counter); \
208
        incl SYMBOL_NAME(syscall_count); \
209
        popfl; \
210
        popl %edx; \
211
        popl %ecx; \
212
        popl %ebx; \
213
        popl %eax;
214
 
215
 
216
#define RESTORE_ALL \
217
        cmpw $(KERNEL_CS),CS(%esp); \
218
        je 1f;   \
219
        GET_PROCESSOR_OFFSET(%edx) \
220
        movl SYMBOL_NAME(current_set)(,%edx), %eax ; ; \
221
        movl dbgreg7(%eax),%ebx; \
222
        movl %ebx,%db7; \
223
1:      LEAVE_KERNEL \
224
        popl %ebx; \
225
        popl %ecx; \
226
        popl %edx; \
227
        popl %esi; \
228
        popl %edi; \
229
        popl %ebp; \
230
        popl %eax; \
231
        pop %ds; \
232
        pop %es; \
233
        pop %fs; \
234
        pop %gs; \
235
        addl $4,%esp; \
236
        iret
237
 
238
#else
239
 
240
#define RESTORE_ALL \
241
        cmpw $(KERNEL_CS),CS(%esp); \
242
        je 1f;   \
243
        movl SYMBOL_NAME(current_set),%eax; \
244
        movl dbgreg7(%eax),%ebx; \
245
        movl %ebx,%db7; \
246
1:      \
247
        popl %ebx; \
248
        popl %ecx; \
249
        popl %edx; \
250
        popl %esi; \
251
        popl %edi; \
252
        popl %ebp; \
253
        popl %eax; \
254
        pop %ds; \
255
        pop %es; \
256
        pop %fs; \
257
        pop %gs; \
258
        addl $4,%esp; \
259
        iret
260
#endif
261
 
262
ENTRY(lcall7)
263
        pushfl                  # We get a different stack layout with call gates,
264
        pushl %eax              # which has to be cleaned up later..
265
        SAVE_ALL
266
#ifdef __SMP__
267
        ENTER_KERNEL
268
#endif
269
        movl EIP(%esp),%eax     # due to call gates, this is eflags, not eip..
270
        movl CS(%esp),%edx      # this is eip..
271
        movl EFLAGS(%esp),%ecx  # and this is cs..
272
        movl %eax,EFLAGS(%esp)  #
273
        movl %edx,EIP(%esp)     # Now we move them to their "normal" places
274
        movl %ecx,CS(%esp)      #
275
        movl %esp,%eax
276
#ifdef __SMP__
277
        GET_PROCESSOR_OFFSET(%edx)      # Processor offset into edx
278
        movl SYMBOL_NAME(current_set)(,%edx),%edx
279
#else
280
        movl SYMBOL_NAME(current_set),%edx
281
#endif
282
        pushl %eax
283
        movl exec_domain(%edx),%edx     # Get the execution domain
284
        movl 4(%edx),%edx       # Get the lcall7 handler for the domain
285
        call *%edx
286
        popl %eax
287
        jmp ret_from_sys_call
288
 
289
        ALIGN
290
handle_bottom_half:
291
        incl SYMBOL_NAME(intr_count)
292
        call SYMBOL_NAME(do_bottom_half)
293
        decl SYMBOL_NAME(intr_count)
294
        jmp 9f
295
        ALIGN
296
reschedule:
297
        pushl $ret_from_sys_call
298
        jmp SYMBOL_NAME(schedule)    # test
299
 
300
ENTRY(system_call)
301
        pushl %eax                      # save orig_eax
302
        SAVE_ALL
303
#ifdef __SMP__
304
        ENTER_KERNEL
305
#endif
306
        movl $-ENOSYS,EAX(%esp)
307
        cmpl $(NR_syscalls),%eax
308
        jae ret_from_sys_call
309
        movl SYMBOL_NAME(sys_call_table)(,%eax,4),%eax
310
        testl %eax,%eax
311
        je ret_from_sys_call
312
#ifdef __SMP__
313
        GET_PROCESSOR_OFFSET(%edx)
314
        movl SYMBOL_NAME(current_set)(,%edx),%ebx
315
#else
316
        movl SYMBOL_NAME(current_set),%ebx
317
#endif
318
        andl $~CF_MASK,EFLAGS(%esp)     # clear carry - assume no errors
319
        movl %db6,%edx
320
        movl %edx,dbgreg6(%ebx)  # save current hardware debugging status
321
        testb $0x20,flags(%ebx)         # PF_TRACESYS
322
        jne 1f
323
        call *%eax
324
        movl %eax,EAX(%esp)             # save the return value
325
        jmp ret_from_sys_call
326
        ALIGN
327
1:      call SYMBOL_NAME(syscall_trace)
328
        movl ORIG_EAX(%esp),%eax
329
        call *SYMBOL_NAME(sys_call_table)(,%eax,4)
330
        movl %eax,EAX(%esp)             # save the return value
331
#ifdef __SMP__
332
        GET_PROCESSOR_OFFSET(%eax)
333
        movl SYMBOL_NAME(current_set)(,%eax),%eax
334
#else
335
        movl SYMBOL_NAME(current_set),%eax
336
#endif
337
        call SYMBOL_NAME(syscall_trace)
338
 
339
        ALIGN
340
        .globl ret_from_sys_call
341
ret_from_sys_call:
342
        cmpl $0,SYMBOL_NAME(intr_count)
343
        jne 2f
344
9:      movl SYMBOL_NAME(bh_mask),%eax
345
        andl SYMBOL_NAME(bh_active),%eax
346
        jne handle_bottom_half
347
#ifdef __SMP__
348
        cmpb $(NO_PROC_ID), SYMBOL_NAME(saved_active_kernel_processor)
349
        jne 2f
350
#endif
351
        movl EFLAGS(%esp),%eax          # check VM86 flag: CS/SS are
352
        testl $(VM_MASK),%eax           # different then
353
        jne 1f
354
        cmpw $(KERNEL_CS),CS(%esp)      # was old code segment supervisor ?
355
        je 2f
356
1:      sti
357
        orl $(IF_MASK),%eax             # these just try to make sure
358
        andl $~NT_MASK,%eax             # the program doesn't do anything
359
        movl %eax,EFLAGS(%esp)          # stupid
360
        cmpl $0,SYMBOL_NAME(need_resched)
361
        jne reschedule
362
#ifdef __SMP__
363
        GET_PROCESSOR_OFFSET(%eax)
364
        movl SYMBOL_NAME(current_set)(,%eax), %eax
365
#else
366
        movl SYMBOL_NAME(current_set),%eax
367
#endif
368
        cmpl SYMBOL_NAME(task),%eax     # task[0] cannot have signals
369
        je 2f
370
        movl blocked(%eax),%ecx
371
        movl %ecx,%ebx                  # save blocked in %ebx for signal handling
372
        notl %ecx
373
        andl signal(%eax),%ecx
374
        jne signal_return
375
2:      RESTORE_ALL
376
        ALIGN
377
        .globl signal_return
378
signal_return:
379
        movl %esp,%ecx
380
        pushl %ecx
381
        testl $(VM_MASK),EFLAGS(%ecx)
382
        jne v86_signal_return
383
        pushl %ebx
384
        call SYMBOL_NAME(do_signal)
385
        popl %ebx
386
        popl %ebx
387
        RESTORE_ALL
388
        ALIGN
389
v86_signal_return:
390
        call SYMBOL_NAME(save_v86_state)
391
        movl %eax,%esp
392
        pushl %eax
393
        pushl %ebx
394
        call SYMBOL_NAME(do_signal)
395
        popl %ebx
396
        popl %ebx
397
        RESTORE_ALL
398
 
399
ENTRY(divide_error)
400
        pushl $0                # no error code
401
        pushl $ SYMBOL_NAME(do_divide_error)
402
        ALIGN
403
error_code:
404
        push %fs
405
        push %es
406
        push %ds
407
        pushl %eax
408
        xorl %eax,%eax
409
        pushl %ebp
410
        pushl %edi
411
        pushl %esi
412
        pushl %edx
413
        decl %eax                       # eax = -1
414
        pushl %ecx
415
        pushl %ebx
416
        cld
417
        xorl %ebx,%ebx                  # zero ebx
418
        xchgl %eax, ORIG_EAX(%esp)      # orig_eax (get the error code. )
419
        mov %gs,%bx                     # get the lower order bits of gs
420
        movl %esp,%edx
421
        xchgl %ebx, GS(%esp)            # get the address and save gs.
422
        pushl %eax                      # push the error code
423
        pushl %edx
424
        movl $(KERNEL_DS),%edx
425
        mov %dx,%ds
426
        mov %dx,%es
427
        movl $(USER_DS),%edx
428
        mov %dx,%fs
429
#ifdef __SMP__
430
        ENTER_KERNEL
431
        GET_PROCESSOR_OFFSET(%eax)
432
        movl SYMBOL_NAME(current_set)(,%eax), %eax
433
#else
434
        movl SYMBOL_NAME(current_set),%eax
435
#endif
436
        movl %db6,%edx
437
        movl %edx,dbgreg6(%eax)  # save current hardware debugging status
438
        call *%ebx
439
        addl $8,%esp
440
        jmp ret_from_sys_call
441
 
442
ENTRY(coprocessor_error)
443
        pushl $0
444
        pushl $ SYMBOL_NAME(do_coprocessor_error)
445
        jmp error_code
446
 
447
ENTRY(device_not_available)
448
        pushl $-1               # mark this as an int
449
        SAVE_ALL
450
#ifdef __SMP__
451
        ENTER_KERNEL
452
#endif
453
        pushl $ret_from_sys_call
454
        movl %cr0,%eax
455
        testl $0x4,%eax                 # EM (math emulation bit)
456
        je SYMBOL_NAME(math_state_restore)
457
        pushl $0                # temporary storage for ORIG_EIP
458
        call  SYMBOL_NAME(math_emulate)
459
        addl $4,%esp
460
        ret
461
 
462
ENTRY(debug)
463
        pushl $0
464
        pushl $ SYMBOL_NAME(do_debug)
465
        jmp error_code
466
 
467
ENTRY(nmi)
468
        pushl $0
469
        pushl $ SYMBOL_NAME(do_nmi)
470
        jmp error_code
471
 
472
ENTRY(int3)
473
        pushl $0
474
        pushl $ SYMBOL_NAME(do_int3)
475
        jmp error_code
476
 
477
ENTRY(overflow)
478
        pushl $0
479
        pushl $ SYMBOL_NAME(do_overflow)
480
        jmp error_code
481
 
482
ENTRY(bounds)
483
        pushl $0
484
        pushl $ SYMBOL_NAME(do_bounds)
485
        jmp error_code
486
 
487
ENTRY(invalid_op)
488
        pushl $0
489
        pushl $ SYMBOL_NAME(do_invalid_op)
490
        jmp error_code
491
 
492
ENTRY(coprocessor_segment_overrun)
493
        pushl $0
494
        pushl $ SYMBOL_NAME(do_coprocessor_segment_overrun)
495
        jmp error_code
496
 
497
ENTRY(reserved)
498
        pushl $0
499
        pushl $ SYMBOL_NAME(do_reserved)
500
        jmp error_code
501
 
502
ENTRY(double_fault)
503
        pushl $ SYMBOL_NAME(do_double_fault)
504
        jmp error_code
505
 
506
ENTRY(invalid_TSS)
507
        pushl $ SYMBOL_NAME(do_invalid_TSS)
508
        jmp error_code
509
 
510
ENTRY(segment_not_present)
511
        pushl $ SYMBOL_NAME(do_segment_not_present)
512
        jmp error_code
513
 
514
ENTRY(stack_segment)
515
        pushl $ SYMBOL_NAME(do_stack_segment)
516
        jmp error_code
517
 
518
ENTRY(general_protection)
519
        pushl $ SYMBOL_NAME(do_general_protection)
520
        jmp error_code
521
 
522
ENTRY(alignment_check)
523
        pushl $ SYMBOL_NAME(do_alignment_check)
524
        jmp error_code
525
 
526
ENTRY(page_fault)
527
        pushl $ SYMBOL_NAME(do_page_fault)
528
        jmp error_code
529
 
530
ENTRY(spurious_interrupt_bug)
531
        pushl $0
532
        pushl $ SYMBOL_NAME(do_spurious_interrupt_bug)
533
        jmp error_code
534
 
535
.data
536
ENTRY(sys_call_table)
537
        .long SYMBOL_NAME(sys_setup)            /* 0 */
538
        .long SYMBOL_NAME(sys_exit)
539
        .long SYMBOL_NAME(sys_fork)
540
        .long SYMBOL_NAME(sys_read)
541
        .long SYMBOL_NAME(sys_write)
542
        .long SYMBOL_NAME(sys_open)             /* 5 */
543
        .long SYMBOL_NAME(sys_close)
544
        .long SYMBOL_NAME(sys_waitpid)
545
        .long SYMBOL_NAME(sys_creat)
546
        .long SYMBOL_NAME(sys_link)
547
        .long SYMBOL_NAME(sys_unlink)           /* 10 */
548
        .long SYMBOL_NAME(sys_execve)
549
        .long SYMBOL_NAME(sys_chdir)
550
        .long SYMBOL_NAME(sys_time)
551
        .long SYMBOL_NAME(sys_mknod)
552
        .long SYMBOL_NAME(sys_chmod)            /* 15 */
553
        .long SYMBOL_NAME(sys_chown)
554
        .long SYMBOL_NAME(sys_break)
555
        .long SYMBOL_NAME(sys_stat)
556
        .long SYMBOL_NAME(sys_lseek)
557
        .long SYMBOL_NAME(sys_getpid)           /* 20 */
558
        .long SYMBOL_NAME(sys_mount)
559
        .long SYMBOL_NAME(sys_umount)
560
        .long SYMBOL_NAME(sys_setuid)
561
        .long SYMBOL_NAME(sys_getuid)
562
        .long SYMBOL_NAME(sys_stime)            /* 25 */
563
        .long SYMBOL_NAME(sys_ptrace)
564
        .long SYMBOL_NAME(sys_alarm)
565
        .long SYMBOL_NAME(sys_fstat)
566
        .long SYMBOL_NAME(sys_pause)
567
        .long SYMBOL_NAME(sys_utime)            /* 30 */
568
        .long SYMBOL_NAME(sys_stty)
569
        .long SYMBOL_NAME(sys_gtty)
570
        .long SYMBOL_NAME(sys_access)
571
        .long SYMBOL_NAME(sys_nice)
572
        .long SYMBOL_NAME(sys_ftime)            /* 35 */
573
        .long SYMBOL_NAME(sys_sync)
574
        .long SYMBOL_NAME(sys_kill)
575
        .long SYMBOL_NAME(sys_rename)
576
        .long SYMBOL_NAME(sys_mkdir)
577
        .long SYMBOL_NAME(sys_rmdir)            /* 40 */
578
        .long SYMBOL_NAME(sys_dup)
579
        .long SYMBOL_NAME(sys_pipe)
580
        .long SYMBOL_NAME(sys_times)
581
        .long SYMBOL_NAME(sys_prof)
582
        .long SYMBOL_NAME(sys_brk)              /* 45 */
583
        .long SYMBOL_NAME(sys_setgid)
584
        .long SYMBOL_NAME(sys_getgid)
585
        .long SYMBOL_NAME(sys_signal)
586
        .long SYMBOL_NAME(sys_geteuid)
587
        .long SYMBOL_NAME(sys_getegid)          /* 50 */
588
        .long SYMBOL_NAME(sys_acct)
589
        .long SYMBOL_NAME(sys_phys)
590
        .long SYMBOL_NAME(sys_lock)
591
        .long SYMBOL_NAME(sys_ioctl)
592
        .long SYMBOL_NAME(sys_fcntl)            /* 55 */
593
        .long SYMBOL_NAME(sys_mpx)
594
        .long SYMBOL_NAME(sys_setpgid)
595
        .long SYMBOL_NAME(sys_ulimit)
596
        .long SYMBOL_NAME(sys_olduname)
597
        .long SYMBOL_NAME(sys_umask)            /* 60 */
598
        .long SYMBOL_NAME(sys_chroot)
599
        .long SYMBOL_NAME(sys_ustat)
600
        .long SYMBOL_NAME(sys_dup2)
601
        .long SYMBOL_NAME(sys_getppid)
602
        .long SYMBOL_NAME(sys_getpgrp)          /* 65 */
603
        .long SYMBOL_NAME(sys_setsid)
604
        .long SYMBOL_NAME(sys_sigaction)
605
        .long SYMBOL_NAME(sys_sgetmask)
606
        .long SYMBOL_NAME(sys_ssetmask)
607
        .long SYMBOL_NAME(sys_setreuid)         /* 70 */
608
        .long SYMBOL_NAME(sys_setregid)
609
        .long SYMBOL_NAME(sys_sigsuspend)
610
        .long SYMBOL_NAME(sys_sigpending)
611
        .long SYMBOL_NAME(sys_sethostname)
612
        .long SYMBOL_NAME(sys_setrlimit)        /* 75 */
613
        .long SYMBOL_NAME(sys_getrlimit)
614
        .long SYMBOL_NAME(sys_getrusage)
615
        .long SYMBOL_NAME(sys_gettimeofday)
616
        .long SYMBOL_NAME(sys_settimeofday)
617
        .long SYMBOL_NAME(sys_getgroups)        /* 80 */
618
        .long SYMBOL_NAME(sys_setgroups)
619
        .long SYMBOL_NAME(old_select)
620
        .long SYMBOL_NAME(sys_symlink)
621
        .long SYMBOL_NAME(sys_lstat)
622
        .long SYMBOL_NAME(sys_readlink)         /* 85 */
623
        .long SYMBOL_NAME(sys_uselib)
624
        .long SYMBOL_NAME(sys_swapon)
625
        .long SYMBOL_NAME(sys_reboot)
626
        .long SYMBOL_NAME(old_readdir)
627
        .long SYMBOL_NAME(old_mmap)             /* 90 */
628
        .long SYMBOL_NAME(sys_munmap)
629
        .long SYMBOL_NAME(sys_truncate)
630
        .long SYMBOL_NAME(sys_ftruncate)
631
        .long SYMBOL_NAME(sys_fchmod)
632
        .long SYMBOL_NAME(sys_fchown)           /* 95 */
633
        .long SYMBOL_NAME(sys_getpriority)
634
        .long SYMBOL_NAME(sys_setpriority)
635
        .long SYMBOL_NAME(sys_profil)
636
        .long SYMBOL_NAME(sys_statfs)
637
        .long SYMBOL_NAME(sys_fstatfs)          /* 100 */
638
        .long SYMBOL_NAME(sys_ioperm)
639
        .long SYMBOL_NAME(sys_socketcall)
640
        .long SYMBOL_NAME(sys_syslog)
641
        .long SYMBOL_NAME(sys_setitimer)
642
        .long SYMBOL_NAME(sys_getitimer)        /* 105 */
643
        .long SYMBOL_NAME(sys_newstat)
644
        .long SYMBOL_NAME(sys_newlstat)
645
        .long SYMBOL_NAME(sys_newfstat)
646
        .long SYMBOL_NAME(sys_uname)
647
        .long SYMBOL_NAME(sys_iopl)             /* 110 */
648
        .long SYMBOL_NAME(sys_vhangup)
649
        .long SYMBOL_NAME(sys_idle)
650
        .long SYMBOL_NAME(sys_vm86old)
651
        .long SYMBOL_NAME(sys_wait4)
652
        .long SYMBOL_NAME(sys_swapoff)          /* 115 */
653
        .long SYMBOL_NAME(sys_sysinfo)
654
        .long SYMBOL_NAME(sys_ipc)
655
        .long SYMBOL_NAME(sys_fsync)
656
        .long SYMBOL_NAME(sys_sigreturn)
657
        .long SYMBOL_NAME(sys_clone)            /* 120 */
658
        .long SYMBOL_NAME(sys_setdomainname)
659
        .long SYMBOL_NAME(sys_newuname)
660
        .long SYMBOL_NAME(sys_modify_ldt)
661
        .long SYMBOL_NAME(sys_adjtimex)
662
        .long SYMBOL_NAME(sys_mprotect)         /* 125 */
663
        .long SYMBOL_NAME(sys_sigprocmask)
664
        .long SYMBOL_NAME(sys_create_module)
665
        .long SYMBOL_NAME(sys_init_module)
666
        .long SYMBOL_NAME(sys_delete_module)
667
        .long SYMBOL_NAME(sys_get_kernel_syms)  /* 130 */
668
        .long SYMBOL_NAME(sys_quotactl)
669
        .long SYMBOL_NAME(sys_getpgid)
670
        .long SYMBOL_NAME(sys_fchdir)
671
        .long SYMBOL_NAME(sys_bdflush)
672
        .long SYMBOL_NAME(sys_sysfs)            /* 135 */
673
        .long SYMBOL_NAME(sys_personality)
674
        .long 0                                 /* for afs_syscall */
675
        .long SYMBOL_NAME(sys_setfsuid)
676
        .long SYMBOL_NAME(sys_setfsgid)
677
        .long SYMBOL_NAME(sys_llseek)           /* 140 */
678
        .long SYMBOL_NAME(sys_getdents)
679
        .long SYMBOL_NAME(sys_select)
680
        .long SYMBOL_NAME(sys_flock)
681
        .long SYMBOL_NAME(sys_msync)
682
        .long SYMBOL_NAME(sys_readv)            /* 145 */
683
        .long SYMBOL_NAME(sys_writev)
684
        .long SYMBOL_NAME(sys_getsid)
685
        .long SYMBOL_NAME(sys_fdatasync)
686
        .long SYMBOL_NAME(sys_sysctl)
687
        .long SYMBOL_NAME(sys_mlock)            /* 150 */
688
        .long SYMBOL_NAME(sys_munlock)
689
        .long SYMBOL_NAME(sys_mlockall)
690
        .long SYMBOL_NAME(sys_munlockall)
691
        .long SYMBOL_NAME(sys_sched_setparam)
692
        .long SYMBOL_NAME(sys_sched_getparam)   /* 155 */
693
        .long SYMBOL_NAME(sys_sched_setscheduler)
694
        .long SYMBOL_NAME(sys_sched_getscheduler)
695
        .long SYMBOL_NAME(sys_sched_yield)
696
        .long SYMBOL_NAME(sys_sched_get_priority_max)
697
        .long SYMBOL_NAME(sys_sched_get_priority_min)  /* 160 */
698
        .long SYMBOL_NAME(sys_sched_rr_get_interval)
699
        .long SYMBOL_NAME(sys_nanosleep)
700
        .long SYMBOL_NAME(sys_mremap)
701
        .long 0,0
702
        .long SYMBOL_NAME(sys_vm86)             /* 166 */
703
        .long 0                                 /* 167 */
704
        .long 0                                 /* 168 STREAMS poll */
705
        .long 0                                 /* 169 */
706
        .long 0,0,0,0,0,0,0,0,0,0               /* 170 - 179 */
707
        .long 0,0,0,0,0,0,0,0                   /* 180 - 187 */
708
        .long 0                                 /* 188 STREAMS getpmsg */
709
        .long 0                                 /* 189 STREAMS putpmsg */
710
        .space (NR_syscalls-189)*4

powered by: WebSVN 2.1.0

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