Changeset e686744c in mainline for kernel


Ignore:
Timestamp:
2007-11-16T16:15:33Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
296426ad
Parents:
2829b354
Message:

Start support for six syscall arguments.
This breaks all architectures.

Location:
kernel/generic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/syscall/syscall.h

    r2829b354 re686744c  
    3838typedef enum {
    3939        SYS_IO = 0,
    40         SYS_TLS_SET = 1, /* Hardcoded in AMD64, IA32 uspace - psthread.S */
     40        SYS_TLS_SET = 1, /* Hardcoded in AMD64, IA32 uspace - fibril.S */
    4141        SYS_THREAD_CREATE,
    4242        SYS_THREAD_EXIT,
     
    7474#include <arch/types.h>
    7575
    76 typedef unative_t (*syshandler_t)(unative_t, unative_t, unative_t, unative_t);
     76typedef unative_t (*syshandler_t)(unative_t, unative_t, unative_t, unative_t,
     77    unative_t, unative_t);
    7778
    7879extern syshandler_t syscall_table[SYSCALL_END];
    79 extern unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3,
    80                                 unative_t a4, unative_t id);
    81 extern unative_t sys_tls_set(unative_t addr);
     80extern unative_t syscall_handler(unative_t, unative_t, unative_t, unative_t,
     81    unative_t, unative_t, unative_t);
     82extern unative_t sys_tls_set(unative_t);
    8283
    8384#endif
  • kernel/generic/src/syscall/syscall.c

    r2829b354 re686744c  
    9393
    9494/** Dispatch system call */
    95 unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3, unative_t a4,
    96     unative_t id)
     95unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3,
     96    unative_t a4, unative_t a5, unative_t a6, unative_t id)
    9797{
    9898        unative_t rc;
    9999
    100100        if (id < SYSCALL_END)
    101                 rc = syscall_table[id](a1, a2, a3, a4);
     101                rc = syscall_table[id](a1, a2, a3, a4, a5, a6);
    102102        else {
    103                 klog_printf("TASK %llu: Unknown syscall id %d", TASK->taskid,
     103                klog_printf("TASK %llu: Unknown syscall id %llx", TASK->taskid,
    104104                    id);
    105105                task_kill(TASK->taskid);
Note: See TracChangeset for help on using the changeset viewer.