Changeset 738ad2e in mainline for generic


Ignore:
Timestamp:
2006-05-02T18:19:43Z (20 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
281224a
Parents:
e34a141
Message:

Changed interrupt_control to preemption_control.

Location:
generic
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • generic/include/ddi/ddi.h

    re34a141 r738ad2e  
    4040 * Interface to be implemented by all architectures.
    4141 */
    42 extern __native ddi_int_control_arch(__native enable, __native *flags);
    43 extern __native ddi_int_control(__native enable, __native *flags);
    4442extern int ddi_iospace_enable_arch(task_t *task, __address ioaddr, size_t size);
    4543
  • generic/include/security/cap.h

    re34a141 r738ad2e  
    6464
    6565/**
    66  * CAP_INT_CONTROL allows its holder to disable interrupts
     66 * CAP_PREEMPT_CONTROL allows its holder to disable interrupts
    6767 */
    68 #define CAP_INT_CONTROL         (1<<3)
     68#define CAP_PREEMPT_CONTROL         (1<<3)
    6969
    7070typedef __u32 cap_t;
  • generic/include/syscall/syscall.h

    re34a141 r738ad2e  
    3333        SYS_IO = 0,
    3434        SYS_TLS_SET = 1, /* Hardcoded in AMD64,IA32 uspace - psthread.S */
    35         SYS_INT_CONTROL = 2, /* Hardcoded in all SYSCALL handlers */
     35        SYS_PREEMPT_CONTROL,
    3636        SYS_THREAD_CREATE,
    3737        SYS_THREAD_EXIT,
  • generic/src/ddi/ddi.c

    re34a141 r738ad2e  
    204204        return (__native) ddi_iospace_enable((task_id_t) arg.task_id, (__address) arg.ioaddr, (size_t) arg.size);
    205205}
    206 
    207 __native ddi_int_control(__native enable, __native *flags)
    208 {
    209         if (! cap_get(TASK) & CAP_INT_CONTROL)
    210                 return EPERM;
    211         return ddi_int_control_arch(enable, flags);
    212 }
  • generic/src/syscall/syscall.c

    re34a141 r738ad2e  
    5757}
    5858
    59 static __native sys_int_control(int enable)
     59static __native sys_preempt_control(int enable)
    6060{
    61         panic("Not implemented.");
     61        if (! cap_get(TASK) & CAP_PREEMPT_CONTROL)
     62                return EPERM;
     63        if (enable)
     64                preemption_enable();
     65        else
     66                preemption_disable();
     67        return 0;
    6268}
    6369
     
    7581        sys_io,
    7682        sys_tls_set,
    77         sys_int_control,
     83        sys_preempt_control,
    7884
    7985        /* Thread and task related syscalls. */
Note: See TracChangeset for help on using the changeset viewer.