Changeset 631ca4d in mainline for arch


Ignore:
Timestamp:
2006-03-13T20:51:35Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5c089c3a
Parents:
25d7709
Message:

New synchronous ipc.
Widened syscall to support up to 5 parameters.

Location:
arch
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • arch/amd64/include/syscall.h

    r25d7709 r631ca4d  
    3232#include <arch/types.h>
    3333
    34 extern __native syscall_handler(__native id, __native a1, __native a2, __native a3);
     34extern __native syscall_handler(__native a1,__native a2, __native a3,
     35                                __native a4, __native id);
    3536extern void syscall_setup_cpu(void);
    3637
  • arch/amd64/src/syscall.c

    r25d7709 r631ca4d  
    6464/** Dispatch system call */
    6565__native syscall_handler(__native a1, __native a2, __native a3,
    66                          __native id)
     66                         __native a4, __native id)
    6767{
    6868        if (id < SYSCALL_END)
    69                 return syscall_table[id](a1,a2,a3);
     69                return syscall_table[id](a1,a2,a3,a4);
    7070        else
    7171                panic("Undefined syscall %d", id);
  • arch/ia32/src/interrupt.c

    r25d7709 r631ca4d  
    108108{
    109109        interrupts_enable();
    110         if (istate->edx < SYSCALL_END)
    111                 istate->eax = syscall_table[istate->edx](istate->eax, istate->ebx, istate->ecx);
     110        if (istate->esi < SYSCALL_END)
     111                istate->eax = syscall_table[istate->esi](istate->eax, istate->ebx, istate->ecx, istate->edx);
    112112        else
    113                 panic("Undefined syscall %d", istate->edx);
     113                panic("Undefined syscall %d", istate->esi);
    114114        interrupts_disable();
    115115}
  • arch/mips32/src/exception.c

    r25d7709 r631ca4d  
    135135{
    136136        interrupts_enable();
    137         if (istate->a3 < SYSCALL_END)
    138                 istate->v0 = syscall_table[istate->a3](istate->a0,
     137        if (istate->t0 < SYSCALL_END)
     138                istate->v0 = syscall_table[istate->t0](istate->a0,
    139139                                                       istate->a1,
    140                                                        istate->a2);
     140                                                       istate->a2,
     141                                                       istate->a3);
    141142        else
    142143                panic("Undefined syscall %d", istate->a3);
Note: See TracChangeset for help on using the changeset viewer.