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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [uclinux/] [uClinux-2.0.x/] [arch/] [m68knommu/] [platform/] [68EZ328/] [entry.S] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 199 simons
/* -*- mode: asm -*-
2
 *
3
 *  linux/arch/m68knommu/kernel/entry.S
4
 *
5
 *  Copyright (C) 1998  D. Jeff Dionne ,
6
 *                      Kenneth Albanowski ,
7
 *                      The Silver Hammer Group, Ltd.
8
 *
9
 * (The icky duplicate functions are my fault -- kja)
10
 *
11
 * Based on:
12
 *
13
 *  linux/arch/m68k/kernel/entry.S
14
 *
15
 *  Copyright (C) 1991, 1992  Linus Torvalds
16
 *
17
 * This file is subject to the terms and conditions of the GNU General Public
18
 * License.  See the file README.legal in the main directory of this archive
19
 * for more details.
20
 *
21
 * Linux/m68k support by Hamish Macdonald
22
 *
23
 * 68060 fixes by Jesper Skov
24
 *
25
 */
26
 
27
/*
28
 * entry.S  contains the system-call and fault low-level handling routines.
29
 * This also contains the timer-interrupt handler, as well as all interrupts
30
 * and faults that can result in a task-switch.
31
 *
32
 * NOTE: This code handles signal-recognition, which happens every time
33
 * after a timer-interrupt and after each system call.
34
 *
35
 * Stack layout in 'ret_from_exception':
36
 *
37
 *      This allows access to the syscall arguments in registers d1-d5
38
 *
39
 *       0(sp) - d1
40
 *       4(sp) - d2
41
 *       8(sp) - d3
42
 *       C(sp) - d4
43
 *      10(sp) - d5
44
 *      14(sp) - a0
45
 *      18(sp) - a1
46
 *      1C(sp) - d0
47
 *      20(sp) - orig_d0
48
 *      24(sp) - stack adjustment
49
 *      28(sp) - sr
50
 *      2A(sp) - pc
51
 *      2E(sp) - format & vector
52
 */
53
 
54
/*
55
 * 12/03/96 Jes: Currently we only support m68k single-cpu systems, so
56
 *               all pointers that used to be 'current' are now entry
57
 *               number 0 in the 'current_set' list.
58
 */
59
 
60
#include 
61
#include 
62
#include 
63
#include 
64
#include 
65
 
66
LENOSYS = 38
67
 
68
/*
69
 * these are offsets into the task-struct
70
 */
71
LTASK_STATE     =  0
72
LTASK_COUNTER   =  4
73
LTASK_PRIORITY  =  8
74
LTASK_SIGNAL    = 12
75
LTASK_BLOCKED   = 16
76
LTASK_FLAGS     = 20
77
 
78
/* the following macro is used when enabling interrupts */
79
#define ALLOWINT 0xf8ff
80
#define MAX_NOINT_IPL   0
81
 
82
LD0             = 0x1C
83
LORIG_D0        = 0x20
84
LSR             = 0x28
85
LFORMATVEC      = 0x2E
86
 
87
/*
88
 * This defines the normal kernel pt-regs layout.
89
 *
90
 * regs are a2-a6 and d6-d7 preserved by C code
91
 * the kernel doesn't mess with usp unless it needs to
92
 */
93
#define SAVE_ALL                        \
94
        clrl    %sp@-;    /* stk_adj */ \
95
        movel   %d0,%sp@-; /* orig d0 */        \
96
        movel   %d0,%sp@-; /* d0 */     \
97
        moveml  %d1-%d5/%a0-%a1,%sp@-
98
 
99
/*      moveml  %sp@+,%a0-%a1/%d1-%d5;  */
100
 
101
#define RESTORE_ALL                     \
102
        moveml  %sp@+,%d1-%d5/%a0-%a1;  \
103
        movel   %sp@+,%d0;              \
104
        addql   #4,%sp;  /* orig d0 */  \
105
        addl    %sp@+,%sp; /* stk adj */        \
106
        rte
107
 
108
#define SWITCH_STACK_SIZE (7*4+4)       /* includes return address */
109
 
110
#define SAVE_SWITCH_STACK \
111
        moveml  %a2-%a6/%d6-%d7,%sp@-
112
 
113
#define RESTORE_SWITCH_STACK \
114
        moveml  %sp@+,%a2-%a6/%d6-%d7
115
 
116
.globl SYMBOL_NAME(system_call), SYMBOL_NAME(buserr), SYMBOL_NAME(trap)
117
.globl SYMBOL_NAME(resume), SYMBOL_NAME(ret_from_exception)
118
.globl SYMBOL_NAME(ret_from_signal)
119
.globl SYMBOL_NAME(trap3)
120
.globl SYMBOL_NAME(trap4)
121
.globl SYMBOL_NAME(trap5)
122
.globl SYMBOL_NAME(inthandler1)
123
.globl SYMBOL_NAME(inthandler1)
124
.globl SYMBOL_NAME(inthandler1)
125
.globl SYMBOL_NAME(inthandler2)
126
.globl SYMBOL_NAME(inthandler3)
127
.globl SYMBOL_NAME(inthandler4)
128
.globl SYMBOL_NAME(inthandler5)
129
.globl SYMBOL_NAME(inthandler6)
130
.globl SYMBOL_NAME(inthandler7)
131
.globl SYMBOL_NAME(inthandler8)
132
.globl SYMBOL_NAME(inthandler)
133
.globl SYMBOL_NAME(inthandler_wrap)
134
.globl SYMBOL_NAME(timerhandler)
135
.globl SYMBOL_NAME(serialhandler)
136
.globl SYMBOL_NAME(sys_call_table)
137
.globl SYMBOL_NAME(sys_fork), SYMBOL_NAME(sys_clone)
138
.globl SYMBOL_NAME(ret_from_interrupt), SYMBOL_NAME(bad_interrupt)
139
 
140
.text
141
ENTRY(buserr)
142
        SAVE_ALL
143
        moveq   #-1,%d0
144
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
145
                                        /* signifies that the stack frame */
146
                                        /* is NOT for syscall */
147
 
148
        movel   %sp,%sp@-               /* stack frame pointer argument */
149
        jsr     SYMBOL_NAME(buserr_c)
150
        addql   #4,%sp
151
        jra     SYMBOL_NAME(ret_from_exception)
152
 
153
ENTRY(trap)
154
        SAVE_ALL
155
        moveq   #-1,%d0
156
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
157
                                        /* signifies that the stack frame */
158
                                        /* is NOT for syscall */
159
 
160
        movew %sp@(LFORMATVEC),%d0
161
        lsrl    #2, %d0
162
        andl    #0x3ff,%d0
163
 
164
        movel   %sp,%sp@-               /* stack frame pointer argument */
165
        movel   %d0,%sp@-
166
 
167
        moveq   #-1,%d0
168
 
169
        jsr     SYMBOL_NAME(trap_c)
170
        addql   #8,%sp
171
        jra     SYMBOL_NAME(ret_from_exception)
172
 
173
ENTRY(trap3)
174
        SAVE_ALL
175
        moveq   #-1,%d0
176
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
177
                                        /* signifies that the stack frame */
178
                                        /* is NOT for syscall */
179
        movel   %sp,%sp@-               /* stack frame pointer argument */
180
        movel   #3,%sp@-
181
        jsr     SYMBOL_NAME(trap_c)
182
        addql   #8,%sp
183
        jra     SYMBOL_NAME(ret_from_exception)
184
 
185
ENTRY(trap4)
186
        SAVE_ALL
187
        moveq   #-1,%d0
188
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
189
                                        /* signifies that the stack frame */
190
                                        /* is NOT for syscall */
191
        movel   %sp,%sp@-               /* stack frame pointer argument */
192
        movel   #4,%sp@-
193
        jsr     SYMBOL_NAME(trap_c)
194
        addql   #8,%sp
195
        jra     SYMBOL_NAME(ret_from_exception)
196
 
197
ENTRY(trap5)
198
        SAVE_ALL
199
        moveq   #-1,%d0
200
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
201
                                        /* signifies that the stack frame */
202
                                        /* is NOT for syscall */
203
        movel   %sp,%sp@-               /* stack frame pointer argument */
204
        movel   #5,%sp@-
205
        jsr     SYMBOL_NAME(trap_c)
206
        addql   #8,%sp
207
        jra     SYMBOL_NAME(ret_from_exception)
208
 
209
ENTRY(trap6)
210
        SAVE_ALL
211
        moveq   #-1,%d0
212
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
213
                                        /* signifies that the stack frame */
214
                                        /* is NOT for syscall */
215
        movel   %sp,%sp@-               /* stack frame pointer argument */
216
        movel   #6,%sp@-
217
        jsr     SYMBOL_NAME(trap_c)
218
        addql   #8,%sp
219
        jra     SYMBOL_NAME(ret_from_exception)
220
 
221
ENTRY(trap7)
222
        SAVE_ALL
223
        moveq   #-1,%d0
224
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
225
                                        /* signifies that the stack frame */
226
                                        /* is NOT for syscall */
227
        movel   %sp,%sp@-               /* stack frame pointer argument */
228
        movel   #7,%sp@-
229
        jsr     SYMBOL_NAME(trap_c)
230
        addql   #8,%sp
231
        jra     SYMBOL_NAME(ret_from_exception)
232
 
233
ENTRY(trap8)
234
        SAVE_ALL
235
        moveq   #-1,%d0
236
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
237
                                        /* signifies that the stack frame */
238
                                        /* is NOT for syscall */
239
        movel   %sp,%sp@-               /* stack frame pointer argument */
240
        movel   #8,%sp@-
241
        jsr     SYMBOL_NAME(trap_c)
242
        addql   #8,%sp
243
        jra     SYMBOL_NAME(ret_from_exception)
244
 
245
ENTRY(trap9)
246
        SAVE_ALL
247
        moveq   #-1,%d0
248
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
249
                                        /* signifies that the stack frame */
250
                                        /* is NOT for syscall */
251
        movel   %sp,%sp@-               /* stack frame pointer argument */
252
        movel   #9,%sp@-
253
        jsr     SYMBOL_NAME(trap_c)
254
        addql   #8,%sp
255
        jra     SYMBOL_NAME(ret_from_exception)
256
 
257
 
258
ENTRY(trap10)
259
        SAVE_ALL
260
        moveq   #-1,%d0
261
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
262
                                        /* signifies that the stack frame */
263
                                        /* is NOT for syscall */
264
        movel   %sp,%sp@-               /* stack frame pointer argument */
265
        movel   #10,%sp@-
266
        jsr     SYMBOL_NAME(trap_c)
267
        addql   #8,%sp
268
        jra     SYMBOL_NAME(ret_from_exception)
269
 
270
ENTRY(trap11)
271
        SAVE_ALL
272
        moveq   #-1,%d0
273
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
274
                                        /* signifies that the stack frame */
275
                                        /* is NOT for syscall */
276
        movel   %sp,%sp@-               /* stack frame pointer argument */
277
        movel   #11,%sp@-
278
        jsr     SYMBOL_NAME(trap_c)
279
        addql   #8,%sp
280
        jra     SYMBOL_NAME(ret_from_exception)
281
 
282
ENTRY(trap12)
283
        SAVE_ALL
284
        moveq   #-1,%d0
285
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
286
                                        /* signifies that the stack frame */
287
                                        /* is NOT for syscall */
288
        movel   %sp,%sp@-               /* stack frame pointer argument */
289
        movel   #12,%sp@-
290
        jsr     SYMBOL_NAME(trap_c)
291
        addql   #8,%sp
292
        jra     SYMBOL_NAME(ret_from_exception)
293
 
294
 
295
ENTRY(trap13)
296
        SAVE_ALL
297
        moveq   #-1,%d0
298
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
299
                                        /* signifies that the stack frame */
300
                                        /* is NOT for syscall */
301
        movel   %sp,%sp@-               /* stack frame pointer argument */
302
        movel   #13,%sp@-
303
        jsr     SYMBOL_NAME(trap_c)
304
        addql   #8,%sp
305
        jra     SYMBOL_NAME(ret_from_exception)
306
 
307
 
308
ENTRY(trap14)
309
        SAVE_ALL
310
        moveq   #-1,%d0
311
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
312
                                        /* signifies that the stack frame */
313
                                        /* is NOT for syscall */
314
        movel   %sp,%sp@-               /* stack frame pointer argument */
315
        movel   #14,%sp@-
316
        jsr     SYMBOL_NAME(trap_c)
317
        addql   #8,%sp
318
        jra     SYMBOL_NAME(ret_from_exception)
319
 
320
 
321
ENTRY(trap15)
322
        SAVE_ALL
323
        moveq   #-1,%d0
324
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
325
                                        /* signifies that the stack frame */
326
                                        /* is NOT for syscall */
327
        movel   %sp,%sp@-               /* stack frame pointer argument */
328
        movel   #15,%sp@-
329
        jsr     SYMBOL_NAME(trap_c)
330
        addql   #8,%sp
331
        jra     SYMBOL_NAME(ret_from_exception)
332
 
333
 
334
ENTRY(trap33)
335
        SAVE_ALL
336
        moveq   #-1,%d0
337
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
338
                                        /* signifies that the stack frame */
339
                                        /* is NOT for syscall */
340
        movel   %sp,%sp@-               /* stack frame pointer argument */
341
        movel   #33,%sp@-
342
        jsr     SYMBOL_NAME(trap_c)
343
        addql   #8,%sp
344
        jra     SYMBOL_NAME(ret_from_exception)
345
 
346
ENTRY(trap34)
347
        SAVE_ALL
348
        moveq   #-1,%d0
349
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
350
                                        /* signifies that the stack frame */
351
                                        /* is NOT for syscall */
352
        movel   %sp,%sp@-               /* stack frame pointer argument */
353
        movel   #34,%sp@-
354
        jsr     SYMBOL_NAME(trap_c)
355
        addql   #8,%sp
356
        jra     SYMBOL_NAME(ret_from_exception)
357
 
358
 
359
ENTRY(trap35)
360
        SAVE_ALL
361
        moveq   #-1,%d0
362
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
363
                                        /* signifies that the stack frame */
364
                                        /* is NOT for syscall */
365
        movel   %sp,%sp@-               /* stack frame pointer argument */
366
        movel   #35,%sp@-
367
        jsr     SYMBOL_NAME(trap_c)
368
        addql   #8,%sp
369
        jra     SYMBOL_NAME(ret_from_exception)
370
 
371
ENTRY(trap36)
372
        SAVE_ALL
373
        moveq   #-1,%d0
374
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
375
                                        /* signifies that the stack frame */
376
                                        /* is NOT for syscall */
377
        movel   %sp,%sp@-               /* stack frame pointer argument */
378
        movel   #36,%sp@-
379
        jsr     SYMBOL_NAME(trap_c)
380
        addql   #8,%sp
381
        jra     SYMBOL_NAME(ret_from_exception)
382
 
383
ENTRY(trap37)
384
        SAVE_ALL
385
        moveq   #-1,%d0
386
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
387
                                        /* signifies that the stack frame */
388
                                        /* is NOT for syscall */
389
        movel   %sp,%sp@-               /* stack frame pointer argument */
390
        movel   #37,%sp@-
391
        jsr     SYMBOL_NAME(trap_c)
392
        addql   #8,%sp
393
        jra     SYMBOL_NAME(ret_from_exception)
394
 
395
ENTRY(trap38)
396
        SAVE_ALL
397
        moveq   #-1,%d0
398
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
399
                                        /* signifies that the stack frame */
400
                                        /* is NOT for syscall */
401
        movel   %sp,%sp@-               /* stack frame pointer argument */
402
        movel   #38,%sp@-
403
        jsr     SYMBOL_NAME(trap_c)
404
        addql   #8,%sp
405
        jra     SYMBOL_NAME(ret_from_exception)
406
 
407
ENTRY(trap39)
408
        SAVE_ALL
409
        moveq   #-1,%d0
410
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
411
                                        /* signifies that the stack frame */
412
                                        /* is NOT for syscall */
413
        movel   %sp,%sp@-               /* stack frame pointer argument */
414
        movel   #39,%sp@-
415
        jsr     SYMBOL_NAME(trap_c)
416
        addql   #8,%sp
417
        jra     SYMBOL_NAME(ret_from_exception)
418
 
419
ENTRY(trap40)
420
        SAVE_ALL
421
        moveq   #-1,%d0
422
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
423
                                        /* signifies that the stack frame */
424
                                        /* is NOT for syscall */
425
        movel   %sp,%sp@-               /* stack frame pointer argument */
426
        movel   #40,%sp@-
427
        jsr     SYMBOL_NAME(trap_c)
428
        addql   #8,%sp
429
        jra     SYMBOL_NAME(ret_from_exception)
430
 
431
ENTRY(trap41)
432
        SAVE_ALL
433
        moveq   #-1,%d0
434
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
435
                                        /* signifies that the stack frame */
436
                                        /* is NOT for syscall */
437
        movel   %sp,%sp@-               /* stack frame pointer argument */
438
        movel   #41,%sp@-
439
        jsr     SYMBOL_NAME(trap_c)
440
        addql   #8,%sp
441
        jra     SYMBOL_NAME(ret_from_exception)
442
 
443
ENTRY(trap42)
444
        SAVE_ALL
445
        moveq   #-1,%d0
446
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
447
                                        /* signifies that the stack frame */
448
                                        /* is NOT for syscall */
449
        movel   %sp,%sp@-               /* stack frame pointer argument */
450
        movel   #42,%sp@-
451
        jsr     SYMBOL_NAME(trap_c)
452
        addql   #8,%sp
453
        jra     SYMBOL_NAME(ret_from_exception)
454
 
455
ENTRY(trap43)
456
        SAVE_ALL
457
        moveq   #-1,%d0
458
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
459
                                        /* signifies that the stack frame */
460
                                        /* is NOT for syscall */
461
        movel   %sp,%sp@-               /* stack frame pointer argument */
462
        movel   #43,%sp@-
463
        jsr     SYMBOL_NAME(trap_c)
464
        addql   #8,%sp
465
        jra     SYMBOL_NAME(ret_from_exception)
466
 
467
ENTRY(trap44)
468
        SAVE_ALL
469
        moveq   #-1,%d0
470
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
471
                                        /* signifies that the stack frame */
472
                                        /* is NOT for syscall */
473
        movel   %sp,%sp@-               /* stack frame pointer argument */
474
        movel   #44,%sp@-
475
        jsr     SYMBOL_NAME(trap_c)
476
        addql   #8,%sp
477
        jra     SYMBOL_NAME(ret_from_exception)
478
 
479
ENTRY(trap45)
480
        SAVE_ALL
481
        moveq   #-1,%d0
482
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
483
                                        /* signifies that the stack frame */
484
                                        /* is NOT for syscall */
485
        movel   %sp,%sp@-               /* stack frame pointer argument */
486
        movel   #45,%sp@-
487
        jsr     SYMBOL_NAME(trap_c)
488
        addql   #8,%sp
489
        jra     SYMBOL_NAME(ret_from_exception)
490
 
491
ENTRY(trap46)
492
        SAVE_ALL
493
        moveq   #-1,%d0
494
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
495
                                        /* signifies that the stack frame */
496
                                        /* is NOT for syscall */
497
        movel   %sp,%sp@-               /* stack frame pointer argument */
498
        movel   #46,%sp@-
499
        jsr     SYMBOL_NAME(trap_c)
500
        addql   #8,%sp
501
        jra     SYMBOL_NAME(ret_from_exception)
502
 
503
ENTRY(trap47)
504
        SAVE_ALL
505
        moveq   #-1,%d0
506
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
507
                                        /* signifies that the stack frame */
508
                                        /* is NOT for syscall */
509
        movel   %sp,%sp@-               /* stack frame pointer argument */
510
        movel   #47,%sp@-
511
        jsr     SYMBOL_NAME(trap_c)
512
        addql   #8,%sp
513
        jra     SYMBOL_NAME(ret_from_exception)
514
 
515
ENTRY(reschedule)
516
        /* save top of frame */
517
        pea     %sp@
518
        jbsr    SYMBOL_NAME(set_esp0)
519
        addql   #4,%sp
520
 
521
        pea     SYMBOL_NAME(ret_from_exception)
522
        jmp     SYMBOL_NAME(schedule)
523
 
524
ENTRY(system_call)
525
        SAVE_ALL
526
        movel   #-LENOSYS,LD0(%sp)      /* default return value in d0 */
527
                                        /* original D0 is in orig_d0 */
528
        movel   %d0,%d2
529
 
530
        /* save top of frame */
531
        pea     %sp@
532
        jbsr    SYMBOL_NAME(set_esp0)
533
        addql   #4,%sp
534
 
535
        cmpl    #NR_syscalls,%d2
536
        jcc     SYMBOL_NAME(ret_from_exception)
537
        lea     SYMBOL_NAME(sys_call_table),%a0
538
        lsl     #2,%d2          /* movel        %a0@(%d2:l:4),%d3 */
539
        movel   %a0@(%d2),%d3
540
        jeq     SYMBOL_NAME(ret_from_exception)
541
        lsr     #2,%d2
542
        movel   SYMBOL_NAME(current_set),%a0
543
        btst    #5,%a0@(LTASK_FLAGS+3)  /* PF_TRACESYS */
544
        bnes    1f
545
        movel   %d3,%a0
546
        jbsr    %a0@
547
        movel   %d0,%sp@(LD0)           /* save the return value */
548
        jra     SYMBOL_NAME(ret_from_exception)
549
1:
550
        subql   #4,%sp
551
        SAVE_SWITCH_STACK
552
        jbsr    SYMBOL_NAME(syscall_trace)
553
        RESTORE_SWITCH_STACK
554
        addql   #4,%sp
555
        movel   %d3,%a0
556
        jbsr    %a0@
557
        movel   %d0,%sp@(LD0)           /* save the return value */
558
        subql   #4,%sp                  /* dummy return address */
559
        SAVE_SWITCH_STACK
560
        jbsr    SYMBOL_NAME(syscall_trace)
561
 
562
SYMBOL_NAME_LABEL(ret_from_signal)
563
        RESTORE_SWITCH_STACK
564
        addql   #4,%sp
565
 
566
SYMBOL_NAME_LABEL(ret_from_exception)
567
        btst    #5,%sp@(LSR)            /* check if returning to kernel */
568
        bnes    2f                      /* if so, skip resched, signals */
569
        tstl    SYMBOL_NAME(need_resched)
570
        jne     SYMBOL_NAME(reschedule)
571
        movel   SYMBOL_NAME(current_set),%a0
572
        cmpl    #SYMBOL_NAME(task),%a0  /* task[0] cannot have signals */
573
        jeq     2f
574
        bclr    #5,%a0@(LTASK_FLAGS+1)  /* check for delayed trace */
575
        jeq     1f
576
        bclr    #7,%sp@(LSR)            /* clear trace bit in SR */
577
        pea     1                       /* send SIGTRAP */
578
        movel   %a0,%sp@-
579
        pea     5
580
        jbsr    SYMBOL_NAME(send_sig)
581
        addql   #8,%sp
582
        addql   #4,%sp
583
        movel   SYMBOL_NAME(current_set),%a0
584
 
585
1:
586
        tstl    %a0@(LTASK_STATE)       /* state */
587
        jne     SYMBOL_NAME(reschedule)
588
        tstl    %a0@(LTASK_COUNTER)     /* counter */
589
        jeq     SYMBOL_NAME(reschedule)
590
 
591
        movel   %a0@(LTASK_BLOCKED),%d0
592
        movel   %d0,%d1                 /* save blocked in d1 for sig handling */
593
        notl    %d0
594
        btst    #4,%a0@(LTASK_FLAGS+3)  /* PF_PTRACED */
595
        jeq     1f
596
        moveq   #-1,%d0                 /* let the debugger see all signals */
597
1:      andl    %a0@(LTASK_SIGNAL),%d0
598
        jne     Lsignal_return
599
2:      RESTORE_ALL                     /* Does RTE */
600
 
601
Lsignal_return:
602
        subql   #4,%sp                  /* dummy return address */
603
        SAVE_SWITCH_STACK
604
        pea     %sp@(SWITCH_STACK_SIZE)
605
        movel   %d1,%sp@-
606
        jsr     SYMBOL_NAME(do_signal)
607
        addql   #8,%sp
608
        RESTORE_SWITCH_STACK
609
        addql   #4,%sp
610
        RESTORE_ALL
611
 
612
 
613
/*
614
** This is the main interrupt handler, responsible for calling process_int()
615
*/
616
SYMBOL_NAME_LABEL(timerhandler)
617
        SAVE_ALL
618
        oriw #0x700,%sr
619
 
620
        moveq   #-1,%d0
621
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
622
                                        /* signifies that the stack frame */
623
                                        /* is NOT for syscall */
624
        addql   #1,SYMBOL_NAME(intr_count)
625
                                        /*  put exception # in d0 */
626
        /*movel %sp@(LFORMATVEC),%d0 */
627
        /*lsr   #4,%d0 */
628
        movew %sp@(LFORMATVEC),%d0
629
        and     #0x3ff,%d0
630
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
631
 
632
        movel   %sp,%sp@-
633
        movel   #0x40,%sp@-             /*  put vector # on stack (was %d0) */
634
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
635
        addql   #8,%sp                  /*  pop parameters off stack */
636
        bra     ret_from_interrupt      /* this was fallthrough */
637
 
638
/*
639
** This is the main interrupt handler, responsible for calling process_int()
640
*/
641
SYMBOL_NAME_LABEL(serialhandler)
642
        SAVE_ALL
643
        oriw #0x700,%sr
644
 
645
        moveq   #-1,%d0
646
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
647
                                        /* signifies that the stack frame */
648
                                        /* is NOT for syscall */
649
        addql   #1,SYMBOL_NAME(intr_count)
650
                                        /*  put exception # in d0 */
651
        /*movel %sp@(LFORMATVEC),%d0 */
652
        /*lsr   #4,%d0 */
653
        movew %sp@(LFORMATVEC),%d0
654
        and     #0x3ff,%d0
655
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
656
 
657
        movel   %sp,%sp@-
658
        movel   #0x42,%sp@-             /*  put vector # on stack (was %d0) */
659
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
660
        addql   #8,%sp                  /*  pop parameters off stack */
661
        bra     ret_from_interrupt      /* this was fallthrough */
662
 
663
/*
664
** This is the main interrupt handler, responsible for calling process_int()
665
*/
666
SYMBOL_NAME_LABEL(inthandler1)
667
        SAVE_ALL
668
        oriw #0x700,%sr
669
 
670
        moveq   #-1,%d0
671
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
672
                                        /* signifies that the stack frame */
673
                                        /* is NOT for syscall */
674
        addql   #1,SYMBOL_NAME(intr_count)
675
                                        /*  put exception # in d0 */
676
        /*movel %sp@(LFORMATVEC),%d0 */
677
        /*lsr   #4,%d0 */
678
        movew %sp@(LFORMATVEC),%d0
679
        and     #0x3ff,%d0
680
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
681
 
682
        movel   %sp,%sp@-
683
        movel   #65,%sp@-               /*  put vector # on stack (was %d0) */
684
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
685
        addql   #8,%sp                  /*  pop parameters off stack */
686
        bra     ret_from_interrupt      /* this was fallthrough */
687
 
688
/*
689
** This is the main interrupt handler, responsible for calling process_int()
690
*/
691
SYMBOL_NAME_LABEL(inthandler2)
692
        SAVE_ALL
693
        oriw #0x700,%sr
694
 
695
        moveq   #-1,%d0
696
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
697
                                        /* signifies that the stack frame */
698
                                        /* is NOT for syscall */
699
        addql   #1,SYMBOL_NAME(intr_count)
700
                                        /*  put exception # in d0 */
701
        /*movel %sp@(LFORMATVEC),%d0 */
702
        /*lsr   #4,%d0 */
703
        movew %sp@(LFORMATVEC),%d0
704
        and     #0x3ff,%d0
705
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
706
 
707
        movel   %sp,%sp@-
708
        movel   #66,%sp@-               /*  put vector # on stack (was %d0) */
709
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
710
        addql   #8,%sp                  /*  pop parameters off stack */
711
        bra     ret_from_interrupt      /* this was fallthrough */
712
 
713
/*
714
** This is the main interrupt handler, responsible for calling process_int()
715
*/
716
SYMBOL_NAME_LABEL(inthandler3)
717
        SAVE_ALL
718
        oriw #0x700,%sr
719
 
720
        moveq   #-1,%d0
721
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
722
                                        /* signifies that the stack frame */
723
                                        /* is NOT for syscall */
724
        addql   #1,SYMBOL_NAME(intr_count)
725
                                        /*  put exception # in d0 */
726
        /*movel %sp@(LFORMATVEC),%d0 */
727
        /*lsr   #4,%d0 */
728
        movew %sp@(LFORMATVEC),%d0
729
        and     #0x3ff,%d0
730
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
731
 
732
        movel   %sp,%sp@-
733
        movel   #67,%sp@-               /*  put vector # on stack (was %d0) */
734
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
735
        addql   #8,%sp                  /*  pop parameters off stack */
736
        bra     ret_from_interrupt      /* this was fallthrough */
737
 
738
/*
739
** This is the main interrupt handler, responsible for calling process_int()
740
*/
741
SYMBOL_NAME_LABEL(inthandler4)
742
        SAVE_ALL
743
        oriw #0x700,%sr
744
 
745
        moveq   #-1,%d0
746
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
747
                                        /* signifies that the stack frame */
748
                                        /* is NOT for syscall */
749
        addql   #1,SYMBOL_NAME(intr_count)
750
                                        /*  put exception # in d0 */
751
        /*movel %sp@(LFORMATVEC),%d0 */
752
        /*lsr   #4,%d0 */
753
        movew %sp@(LFORMATVEC),%d0
754
        and     #0x3ff,%d0
755
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
756
 
757
        movel   %sp,%sp@-
758
        movel   #68,%sp@-               /*  put vector # on stack (was %d0) */
759
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
760
        addql   #8,%sp                  /*  pop parameters off stack */
761
        bra     ret_from_interrupt      /* this was fallthrough */
762
 
763
/*
764
** This is the main interrupt handler, responsible for calling process_int()
765
*/
766
SYMBOL_NAME_LABEL(inthandler5)
767
        SAVE_ALL
768
        oriw #0x700,%sr
769
 
770
        moveq   #-1,%d0
771
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
772
                                        /* signifies that the stack frame */
773
                                        /* is NOT for syscall */
774
        addql   #1,SYMBOL_NAME(intr_count)
775
                                        /*  put exception # in d0 */
776
        /*movel %sp@(LFORMATVEC),%d0 */
777
        /*lsr   #4,%d0 */
778
        movew %sp@(LFORMATVEC),%d0
779
        and     #0x3ff,%d0
780
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
781
 
782
        movel   %sp,%sp@-
783
        movel   #69,%sp@-               /*  put vector # on stack (was %d0) */
784
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
785
        addql   #8,%sp                  /*  pop parameters off stack */
786
        bra     ret_from_interrupt      /* this was fallthrough */
787
 
788
/*
789
** This is the main interrupt handler, responsible for calling process_int()
790
*/
791
SYMBOL_NAME_LABEL(inthandler6)
792
        SAVE_ALL
793
        oriw #0x700,%sr
794
 
795
        moveq   #-1,%d0
796
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
797
                                        /* signifies that the stack frame */
798
                                        /* is NOT for syscall */
799
        addql   #1,SYMBOL_NAME(intr_count)
800
                                        /*  put exception # in d0 */
801
        /*movel %sp@(LFORMATVEC),%d0 */
802
        /*lsr   #4,%d0 */
803
        movew %sp@(LFORMATVEC),%d0
804
        and     #0x3ff,%d0
805
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
806
 
807
        movel   %sp,%sp@-
808
        movel   #70,%sp@-               /*  put vector # on stack (was %d0) */
809
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
810
        addql   #8,%sp                  /*  pop parameters off stack */
811
        bra     ret_from_interrupt      /* this was fallthrough */
812
 
813
/*
814
** This is the main interrupt handler, responsible for calling process_int()
815
*/
816
SYMBOL_NAME_LABEL(inthandler7)
817
        SAVE_ALL
818
        oriw #0x700,%sr
819
 
820
        moveq   #-1,%d0
821
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
822
                                        /* signifies that the stack frame */
823
                                        /* is NOT for syscall */
824
        addql   #1,SYMBOL_NAME(intr_count)
825
                                        /*  put exception # in d0 */
826
        /*movel %sp@(LFORMATVEC),%d0 */
827
        /*lsr   #4,%d0 */
828
        movew %sp@(LFORMATVEC),%d0
829
        and     #0x3ff,%d0
830
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
831
 
832
        movel   %sp,%sp@-
833
        movel   #71,%sp@-               /*  put vector # on stack (was %d0) */
834
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
835
        addql   #8,%sp                  /*  pop parameters off stack */
836
        bra     ret_from_interrupt      /* this was fallthrough */
837
 
838
/*
839
** This is the main interrupt handler, responsible for calling process_int()
840
*/
841
SYMBOL_NAME_LABEL(inthandler8)
842
        SAVE_ALL
843
        oriw #0x700,%sr
844
 
845
        moveq   #-1,%d0
846
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
847
                                        /* signifies that the stack frame */
848
                                        /* is NOT for syscall */
849
        addql   #1,SYMBOL_NAME(intr_count)
850
                                        /*  put exception # in d0 */
851
        /*movel %sp@(LFORMATVEC),%d0 */
852
        /*lsr   #4,%d0 */
853
        movew %sp@(LFORMATVEC),%d0
854
        and     #0x3ff,%d0
855
        /* bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
856
 
857
        movel   %sp,%sp@-
858
        movel   #72,%sp@-               /*  put vector # on stack (was %d0) */
859
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
860
        addql   #8,%sp                  /*  pop parameters off stack */
861
        bra     ret_from_interrupt      /* this was fallthrough */
862
 
863
/*
864
** This is the main interrupt handler, responsible for calling process_int()
865
*/
866
SYMBOL_NAME_LABEL(inthandler_wrap)
867
        SAVE_ALL
868
        oriw #0x700,%sr
869
 
870
        moveq   #-1,%d0
871
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
872
                                        /* signifies that the stack frame */
873
                                        /* is NOT for syscall */
874
        addql   #1,SYMBOL_NAME(intr_count)
875
                                        /*  put exception # in d0 */
876
        /*movel %sp@(LFORMATVEC),%d0 */
877
        /*lsr   #4,%d0 */
878
 
879
        movew %sp@(LFORMATVEC),%d0
880
        lsrl    #2, %d0
881
        andl    #0x3ff,%d0
882
 
883
        /*| bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
884
 
885
        movel   %sp,%sp@-
886
        movel   %d0 /*#31*/ ,%sp@-              /*  put vector # on stack */
887
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
888
        addql   #8,%sp                  /*  pop parameters off stack */
889
        bra     ret_from_interrupt      /* this was fallthrough */
890
 
891
 
892
/*
893
** This is the main interrupt handler, responsible for calling process_int()
894
*/
895
SYMBOL_NAME_LABEL(inthandler)
896
        SAVE_ALL
897
        oriw #0x700,%sr
898
 
899
        moveq   #-1,%d0
900
        movel   %d0,%sp@(LORIG_D0)      /* a -1 in the ORIG_D0 field */
901
                                        /* signifies that the stack frame */
902
                                        /* is NOT for syscall */
903
        addql   #1,SYMBOL_NAME(intr_count)
904
                                        /*  put exception # in d0 */
905
        /*movel %sp@(LFORMATVEC),%d0 */
906
        /*lsr   #4,%d0 */
907
 
908
        movew %sp@(LFORMATVEC),%d0
909
        lsrl    #2, %d0
910
        andl    #0x3ff,%d0
911
 
912
        /*| bfextu %sp@(LFORMATVEC){#4,#10},%d0 */
913
 
914
        movel   %sp,%sp@-
915
        movel   %d0,%sp@-               /*  put vector # on stack */
916
        jbsr    SYMBOL_NAME(process_int)/*  process the IRQ */
917
        addql   #8,%sp                  /*  pop parameters off stack */
918
 
919
SYMBOL_NAME_LABEL(ret_from_interrupt)
920
        /* check if we need to do software interrupts */
921
1:
922
        movel   SYMBOL_NAME(intr_count),%d1
923
        subql   #1,%d1
924
        jne     4f
925
 
926
        /*movel %sp@(LSR),%d0 */
927
        /*lsr   #5,%d0 */
928
        moveb   %sp@(LSR),%d0
929
        and     #0x7,%d0
930
        /*bfextu  %sp@(LSR){#5,#3},%d0    | Check for nested interrupt. */
931
#if MAX_NOINT_IPL > 0
932
        cmpiw   #MAX_NOINT_IPL,%d0
933
#endif
934
        jhi     4f
935
 
936
 
937
2:
938
        movel   SYMBOL_NAME(bh_active),%d0
939
        andl    SYMBOL_NAME(bh_mask),%d0
940
        jne     3f
941
 
942
        clrl    SYMBOL_NAME(intr_count) /* deliver signals, reschedule etc.. */
943
        jra     SYMBOL_NAME(ret_from_exception)
944
3:
945
        jbsr    SYMBOL_NAME(do_bottom_half)
946
        jbra    2b
947
4:
948
        movel   %d1,SYMBOL_NAME(intr_count)
949
        RESTORE_ALL
950
 
951
 
952
/* Handler for uninitialized and spurious interrupts */
953
 
954
SYMBOL_NAME_LABEL(bad_interrupt)
955
        addql   #1,SYMBOL_NAME(num_spurious)
956
        rte
957
 
958
ENTRY(sys_fork)
959
        SAVE_SWITCH_STACK
960
        pea     %sp@(SWITCH_STACK_SIZE)
961
        jbsr    SYMBOL_NAME(m68k_fork)
962
        addql   #4,%sp
963
        RESTORE_SWITCH_STACK
964
        rts
965
 
966
ENTRY(sys_clone)
967
        SAVE_SWITCH_STACK
968
        pea     %sp@(SWITCH_STACK_SIZE)
969
        jbsr    SYMBOL_NAME(m68k_clone)
970
        addql   #4,%sp
971
        RESTORE_SWITCH_STACK
972
        rts
973
 
974
ENTRY(sys_sigsuspend)
975
        SAVE_SWITCH_STACK
976
        pea     %sp@(SWITCH_STACK_SIZE)
977
        jbsr    SYMBOL_NAME(do_sigsuspend)
978
        addql   #4,%sp
979
        RESTORE_SWITCH_STACK
980
        rts
981
 
982
ENTRY(sys_sigreturn)
983
        SAVE_SWITCH_STACK
984
        jbsr    SYMBOL_NAME(do_sigreturn)
985
        RESTORE_SWITCH_STACK
986
        rts
987
 
988
LFLUSH_I_AND_D = 0x00000808
989
LTSS_KSP        = 0
990
LTSS_USP        = 4
991
LTSS_SR         = 8
992
LTSS_FS         = 10
993
LTSS_CRP        = 12
994
LTSS_FPCTXT     = 24
995
 
996
SYMBOL_NAME_LABEL(resume)
997
        /*
998
         * Beware - when entering resume, offset of tss is in d1,
999
         * prev (the current task) is in a0, next (the new task)
1000
         * is in a1 and d2.b is non-zero if the mm structure is
1001
         * shared between the tasks, so don't change these
1002
         * registers until their contents are no longer needed.
1003
         */
1004
 
1005
        /* offset of tss struct (processor state) from beginning
1006
           of task struct */
1007
        addl    %d1,%a0
1008
 
1009
        /* save sr */
1010
        movew   %sr,%a0@(LTSS_SR)
1011
 
1012
        /* disable interrupts */
1013
        oriw    #0x0700,%sr
1014
 
1015
#ifndef NO_MM
1016
        /* save fs (sfc,%dfc) (may be pointing to kernel memory) */
1017
        movec   %sfc,%d0
1018
        movew   %d0,%a0@(LTSS_FS)
1019
#endif
1020
 
1021
        /* save usp */
1022
        /* it is better to use a movel here instead of a movew 8*) */
1023
 
1024
 
1025
        /* save non-scratch registers on stack */
1026
        SAVE_SWITCH_STACK
1027
 
1028
        movel   %usp,%a2 /* usp */
1029
        movel   %a2,%a0@(LTSS_USP)
1030
#if 0
1031
        /* busted */
1032
        movel   %usp,%d0 /* usp */
1033
        movel   %d0,%a0@(LTSS_USP)
1034
#endif
1035
 
1036
        /* save current kernel stack pointer */
1037
        movel   %sp,%a0@(LTSS_KSP)
1038
 
1039
        /* get pointer to tss struct (a1 contains new task) */
1040
        movel   %a1,SYMBOL_NAME(current_set)
1041
        addl    %d1,%a1
1042
 
1043
        /* Skip address space switching if they are the same. */
1044
        /* FIXME: what did we hack out of here, this does nothing! */
1045
#if 0
1046
        tstb    %d2
1047
        jne     4f
1048
#endif
1049
2:
1050
4:
1051
        /* restore floating point context */
1052
 
1053
        /* restore the kernel stack pointer */
1054
        movel   %a1@(LTSS_KSP),%sp
1055
 
1056
        /* restore non-scratch registers */
1057
        RESTORE_SWITCH_STACK
1058
 
1059
        /* restore user stack pointer */
1060
        movel   %a1@(LTSS_USP),%a0
1061
        movel   %a0,%usp
1062
 
1063
#ifndef NO_MM
1064
        /* restore fs (sfc,%dfc) */
1065
        movew   %a1@(LTSS_FS),%a0
1066
        movec   %a0,%sfc
1067
        movec   %a0,%dfc
1068
#endif
1069
 
1070
        /* restore status register */
1071
        movew   %a1@(LTSS_SR),%sr
1072
 
1073
        rts
1074
 
1075
.text
1076
ALIGN
1077
SYMBOL_NAME_LABEL(sys_call_table)
1078
        .long SYMBOL_NAME(sys_setup)            /* 0 */
1079
        .long SYMBOL_NAME(sys_exit)
1080
        .long SYMBOL_NAME(sys_fork)
1081
        .long SYMBOL_NAME(sys_read)
1082
        .long SYMBOL_NAME(sys_write)
1083
        .long SYMBOL_NAME(sys_open)             /* 5 */
1084
        .long SYMBOL_NAME(sys_close)
1085
        .long SYMBOL_NAME(sys_waitpid)
1086
        .long SYMBOL_NAME(sys_creat)
1087
        .long SYMBOL_NAME(sys_link)
1088
        .long SYMBOL_NAME(sys_unlink)           /* 10 */
1089
        .long SYMBOL_NAME(sys_execve)
1090
        .long SYMBOL_NAME(sys_chdir)
1091
        .long SYMBOL_NAME(sys_time)
1092
        .long SYMBOL_NAME(sys_mknod)
1093
        .long SYMBOL_NAME(sys_chmod)            /* 15 */
1094
        .long SYMBOL_NAME(sys_chown)
1095
        .long SYMBOL_NAME(sys_break)
1096
        .long SYMBOL_NAME(sys_stat)
1097
        .long SYMBOL_NAME(sys_lseek)
1098
        .long SYMBOL_NAME(sys_getpid)           /* 20 */
1099
        .long SYMBOL_NAME(sys_mount)
1100
        .long SYMBOL_NAME(sys_umount)
1101
        .long SYMBOL_NAME(sys_setuid)
1102
        .long SYMBOL_NAME(sys_getuid)
1103
        .long SYMBOL_NAME(sys_stime)            /* 25 */
1104
        .long SYMBOL_NAME(sys_ptrace)
1105
        .long SYMBOL_NAME(sys_alarm)
1106
        .long SYMBOL_NAME(sys_fstat)
1107
        .long SYMBOL_NAME(sys_pause)
1108
        .long SYMBOL_NAME(sys_utime)            /* 30 */
1109
        .long SYMBOL_NAME(sys_stty)
1110
        .long SYMBOL_NAME(sys_gtty)
1111
        .long SYMBOL_NAME(sys_access)
1112
        .long SYMBOL_NAME(sys_nice)
1113
        .long SYMBOL_NAME(sys_ftime)            /* 35 */
1114
        .long SYMBOL_NAME(sys_sync)
1115
        .long SYMBOL_NAME(sys_kill)
1116
        .long SYMBOL_NAME(sys_rename)
1117
        .long SYMBOL_NAME(sys_mkdir)
1118
        .long SYMBOL_NAME(sys_rmdir)            /* 40 */
1119
        .long SYMBOL_NAME(sys_dup)
1120
        .long SYMBOL_NAME(sys_pipe)
1121
        .long SYMBOL_NAME(sys_times)
1122
        .long SYMBOL_NAME(sys_prof)
1123
        .long SYMBOL_NAME(sys_brk)              /* 45 */
1124
        .long SYMBOL_NAME(sys_setgid)
1125
        .long SYMBOL_NAME(sys_getgid)
1126
        .long SYMBOL_NAME(sys_signal)
1127
        .long SYMBOL_NAME(sys_geteuid)
1128
        .long SYMBOL_NAME(sys_getegid)          /* 50 */
1129
        .long SYMBOL_NAME(sys_acct)
1130
        .long SYMBOL_NAME(sys_phys)
1131
        .long SYMBOL_NAME(sys_lock)
1132
        .long SYMBOL_NAME(sys_ioctl)
1133
        .long SYMBOL_NAME(sys_fcntl)            /* 55 */
1134
        .long SYMBOL_NAME(sys_mpx)
1135
        .long SYMBOL_NAME(sys_setpgid)
1136
        .long SYMBOL_NAME(sys_ulimit)
1137
        .long SYMBOL_NAME(sys_olduname)
1138
        .long SYMBOL_NAME(sys_umask)            /* 60 */
1139
        .long SYMBOL_NAME(sys_chroot)
1140
        .long SYMBOL_NAME(sys_ustat)
1141
        .long SYMBOL_NAME(sys_dup2)
1142
        .long SYMBOL_NAME(sys_getppid)
1143
        .long SYMBOL_NAME(sys_getpgrp)          /* 65 */
1144
        .long SYMBOL_NAME(sys_setsid)
1145
        .long SYMBOL_NAME(sys_sigaction)
1146
        .long SYMBOL_NAME(sys_sgetmask)
1147
        .long SYMBOL_NAME(sys_ssetmask)
1148
        .long SYMBOL_NAME(sys_setreuid)         /* 70 */
1149
        .long SYMBOL_NAME(sys_setregid)
1150
        .long SYMBOL_NAME(sys_sigsuspend)
1151
        .long SYMBOL_NAME(sys_sigpending)
1152
        .long SYMBOL_NAME(sys_sethostname)
1153
        .long SYMBOL_NAME(sys_setrlimit)        /* 75 */
1154
        .long SYMBOL_NAME(sys_getrlimit)
1155
        .long SYMBOL_NAME(sys_getrusage)
1156
        .long SYMBOL_NAME(sys_gettimeofday)
1157
        .long SYMBOL_NAME(sys_settimeofday)
1158
        .long SYMBOL_NAME(sys_getgroups)        /* 80 */
1159
        .long SYMBOL_NAME(sys_setgroups)
1160
        .long SYMBOL_NAME(old_select)
1161
        .long SYMBOL_NAME(sys_symlink)
1162
        .long SYMBOL_NAME(sys_lstat)
1163
        .long SYMBOL_NAME(sys_readlink)         /* 85 */
1164
        .long SYMBOL_NAME(sys_uselib)
1165
        .long SYMBOL_NAME(sys_swapon)
1166
        .long SYMBOL_NAME(sys_reboot)
1167
        .long SYMBOL_NAME(old_readdir)
1168
        .long SYMBOL_NAME(old_mmap)             /* 90 */
1169
        .long SYMBOL_NAME(sys_munmap)
1170
        .long SYMBOL_NAME(sys_truncate)
1171
        .long SYMBOL_NAME(sys_ftruncate)
1172
        .long SYMBOL_NAME(sys_fchmod)
1173
        .long SYMBOL_NAME(sys_fchown)           /* 95 */
1174
        .long SYMBOL_NAME(sys_getpriority)
1175
        .long SYMBOL_NAME(sys_setpriority)
1176
        .long SYMBOL_NAME(sys_profil)
1177
        .long SYMBOL_NAME(sys_statfs)
1178
        .long SYMBOL_NAME(sys_fstatfs)          /* 100 */
1179
        .long SYMBOL_NAME(sys_ioperm)
1180
        .long SYMBOL_NAME(sys_socketcall)
1181
        .long SYMBOL_NAME(sys_syslog)
1182
        .long SYMBOL_NAME(sys_setitimer)
1183
        .long SYMBOL_NAME(sys_getitimer)        /* 105 */
1184
        .long SYMBOL_NAME(sys_newstat)
1185
        .long SYMBOL_NAME(sys_newlstat)
1186
        .long SYMBOL_NAME(sys_newfstat)
1187
        .long SYMBOL_NAME(sys_uname)
1188
        .long SYMBOL_NAME(sys_ni_syscall)       /* iopl for i386 */ /* 110 */
1189
        .long SYMBOL_NAME(sys_vhangup)
1190
        .long SYMBOL_NAME(sys_idle)
1191
        .long SYMBOL_NAME(sys_ni_syscall)       /* vm86 for i386 */
1192
        .long SYMBOL_NAME(sys_wait4)
1193
        .long SYMBOL_NAME(sys_swapoff)          /* 115 */
1194
        .long SYMBOL_NAME(sys_sysinfo)
1195
        .long SYMBOL_NAME(sys_ipc)
1196
        .long SYMBOL_NAME(sys_fsync)
1197
        .long SYMBOL_NAME(sys_sigreturn)
1198
        .long SYMBOL_NAME(sys_clone)            /* 120 */
1199
        .long SYMBOL_NAME(sys_setdomainname)
1200
        .long SYMBOL_NAME(sys_newuname)
1201
        .long SYMBOL_NAME(sys_cacheflush)       /* modify_ldt for i386 */
1202
        .long SYMBOL_NAME(sys_adjtimex)
1203
        .long SYMBOL_NAME(sys_mprotect)         /* 125 */
1204
        .long SYMBOL_NAME(sys_sigprocmask)
1205
        .long SYMBOL_NAME(sys_create_module)
1206
        .long SYMBOL_NAME(sys_init_module)
1207
        .long SYMBOL_NAME(sys_delete_module)
1208
        .long SYMBOL_NAME(sys_get_kernel_syms)  /* 130 */
1209
        .long SYMBOL_NAME(sys_quotactl)
1210
        .long SYMBOL_NAME(sys_getpgid)
1211
        .long SYMBOL_NAME(sys_fchdir)
1212
        .long SYMBOL_NAME(sys_bdflush)
1213
        .long SYMBOL_NAME(sys_sysfs)            /* 135 */
1214
        .long SYMBOL_NAME(sys_personality)
1215
        .long SYMBOL_NAME(sys_ni_syscall)       /* for afs_syscall */
1216
        .long SYMBOL_NAME(sys_setfsuid)
1217
        .long SYMBOL_NAME(sys_setfsgid)
1218
        .long SYMBOL_NAME(sys_llseek)           /* 140 */
1219
        .long SYMBOL_NAME(sys_getdents)
1220
        .long SYMBOL_NAME(sys_select)
1221
        .long SYMBOL_NAME(sys_flock)
1222
        .long SYMBOL_NAME(sys_msync)
1223
        .long SYMBOL_NAME(sys_readv)            /* 145 */
1224
        .long SYMBOL_NAME(sys_writev)
1225
        .long SYMBOL_NAME(sys_getsid)
1226
        .long SYMBOL_NAME(sys_fdatasync)
1227
        .long SYMBOL_NAME(sys_sysctl)
1228
        .long SYMBOL_NAME(sys_mlock)            /* 150 */
1229
        .long SYMBOL_NAME(sys_munlock)
1230
        .long SYMBOL_NAME(sys_mlockall)
1231
        .long SYMBOL_NAME(sys_munlockall)
1232
        .long SYMBOL_NAME(sys_sched_setparam)
1233
        .long SYMBOL_NAME(sys_sched_getparam)   /* 155 */
1234
        .long SYMBOL_NAME(sys_sched_setscheduler)
1235
        .long SYMBOL_NAME(sys_sched_getscheduler)
1236
        .long SYMBOL_NAME(sys_sched_yield)
1237
        .long SYMBOL_NAME(sys_sched_get_priority_max)
1238
        .long SYMBOL_NAME(sys_sched_get_priority_min)  /* 160 */
1239
        .long SYMBOL_NAME(sys_sched_rr_get_interval)
1240
        .long SYMBOL_NAME(sys_nanosleep)
1241
        .long SYMBOL_NAME(sys_mremap)
1242
        .space (NR_syscalls-163)*4

powered by: WebSVN 2.1.0

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