- Timestamp:
- 2006-04-22T18:05:16Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 613bc54
- Parents:
- 68091bd
- Location:
- arch/ia32
- Files:
-
- 3 edited
-
include/cpu.h (modified) (1 diff)
-
src/asm.S (modified) (3 diffs)
-
src/ddi/ddi.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/include/cpu.h
r68091bd rc7c0b89b 34 34 #include <arch/asm.h> 35 35 36 #define EFLAGS_IF (1 << 9) 36 37 #define EFLAGS_RF (1 << 16) 37 38 -
arch/ia32/src/asm.S
r68091bd rc7c0b89b 87 87 # and call exc_dispatch(). 88 88 # 89 #define INTERRUPT_ALIGN 6489 #define INTERRUPT_ALIGN 128 90 90 .macro handler i n 91 91 … … 109 109 110 110 sti 111 cmp $2, %edi # Is this SYS_INT_CONTROL? 112 je sys_int_ctrl 113 111 114 call syscall_handler # syscall_handler(ax,cx,dx,si,di) 115 sysc_end: 112 116 cli 113 117 addl $20, %esp # clean-up of parameters … … 120 124 CLEAR_NT_FLAG 121 125 iret 126 sys_int_ctrl: # Interrupt control 127 mov %esp, %eax 128 add $44, %eax 129 mov %eax, 4(%esp) # Pointer to flags - 2nd argument 130 call ddi_int_control 131 jmp sysc_end 122 132 .else 123 133 /* -
arch/ia32/src/ddi/ddi.c
r68091bd rc7c0b89b 35 35 #include <arch/pm.h> 36 36 #include <errno.h> 37 #include <arch/cpu.h> 37 38 38 39 /** Enable I/O space range for task. … … 91 92 return 0; 92 93 } 94 95 /** Enable/disable interrupts form syscall 96 * 97 * @param enable If non-zero, interrupts are enabled, otherwise disabled 98 * @param flags CP0 flags register 99 */ 100 __native ddi_int_control_arch(__native enable, __native *flags) 101 { 102 if (enable) 103 *flags |= EFLAGS_IF; 104 else 105 *flags &= ~EFLAGS_IF; 106 return 0; 107 }
Note:
See TracChangeset
for help on using the changeset viewer.
