Changeset c7c0b89b in mainline for arch/amd64/src


Ignore:
Timestamp:
2006-04-22T18:05:16Z (20 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
613bc54
Parents:
68091bd
Message:

Added uspace call to enable/disable interrupts.

Location:
arch/amd64/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • arch/amd64/src/asm_utils.S

    r68091bd rc7c0b89b  
    244244        sti
    245245        movq %r9, %rcx      # Exchange last parameter as a third
     246       
     247        cmp $2, %r8          # Is this SYS_INT_CONTROL
     248        je sys_int_ctrl
     249       
    246250        call syscall_handler
     251sys_end:       
    247252        cli                 # We will be touching stack pointer
    248253               
     
    251256        movq 0(%rsp), %rsp
    252257        sysretq
     258       
     259sys_int_ctrl:
     260        mov %rsp, %rsi      # Pointer to flags
     261        call ddi_int_control
     262        jmp sys_end
     263       
    253264               
    254265.data
  • arch/amd64/src/ddi/ddi.c

    r68091bd rc7c0b89b  
    3535#include <arch/pm.h>
    3636#include <errno.h>
     37#include <arch/cpu.h>
    3738
    3839/** Enable I/O space range for task.
     
    9192        return 0;
    9293}
     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 |= RFLAGS_IF;
     104        else
     105                *flags &= ~RFLAGS_IF;
     106        return 0;
     107}
  • arch/amd64/src/mm/page.c

    r68091bd rc7c0b89b  
    169169        if (!as_page_fault(page)) {
    170170                print_info_errcode(n, istate);
    171                 printf("Page fault address: %Q\n", page);
     171                printf("Page fault address: %llX\n", page);
    172172                panic("page fault\n");
    173173        }
Note: See TracChangeset for help on using the changeset viewer.