Ignore:
Timestamp:
Mar 5, 2013, 1:42:57 PM (11 years ago)
Author:
joannou
Message:
  • Bugfix in Interruption mechanism :
    • _it_mask() and _it_restore() functions now share a global array indexed by the proc_id (used a simple global variable before => problem with multiproc)
    • added 2 new fuctions _it_enable() and _it_disable() that only affect the IE bit of the status register in COP0
    • replaced interrupt masking/restoring arround _ctx_switch() in sys_handler by a simple interrupt disabling before the call to _ctx_switch (restoring after a _ctx_switch wouldn't restore the correct task's status register)
    • replaced the use of _ctx_switch in _exit() by a call to _context_switch() (this function actually does the interrupt disabling)
  • Added some comments in the ctx_handler.h
  • Added the delay reset in the idle task (ctx_handler.c)
  • Added a new irq type (PTI)
    • Modifications in xml_parser.c to accept PTI irq type (now used in xml mappings)
    • Added the test on the irq type in the _irq_demux() function. This leads to a different argument passed to the ISR (i.e. either channel_id or irq_id (aka icuid) )
File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/sys/ctx_handler.h

    r218 r231  
    3737#define CTX_PTPR_ID             39
    3838
    39 #define CTX_TTY_ID              40
    40 #define CTX_DMA_ID          41
    41 #define CTX_NIC_ID          42
    42 #define CTX_TIMER_ID    43
    43 #define CTX_PTAB_ID             44
    44 #define CTX_LTID_ID             45
    45 #define CTX_VSID_ID             46
    46 #define CTX_RUN_ID              47
     39#define CTX_TTY_ID              40  // Integer : global TTY terminal index
     40#define CTX_DMA_ID          41  // Integer : global DMA channel index
     41#define CTX_NIC_ID          42  // Integer : global NIC channel index
     42#define CTX_TIMER_ID    43  // Integer : user level timer index / UNUSED
     43#define CTX_PTAB_ID             44  // Pointer : page table virtual base adress
     44#define CTX_LTID_ID             45  // Integer : local task index (in scheduler) / UNUSED
     45#define CTX_VSID_ID             46  // Integer : vspace index
     46#define CTX_RUN_ID              47  // Boolean : task runable
    4747
    4848//////////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.