Ignore:
Timestamp:
2014-12-22T17:47:40Z (9 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8c7d5ad
Parents:
eae91e0 (diff), 759ea0d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge the CHT pre-integration branch

This branch contains:

  • the merge of lp:~adam-hraska+lp/helenos/rcu, which brings:
  • a new preemptible kernel RCU variant called A-RCU,
  • a preemptible variant of Podzimek's non-preemptible kernel RCU and
  • a new variant of usersace RCU,
  • a new concurrent hash table (CHT) implementation based on RCU,
  • a deployment of CHT in kernel futex handling,
  • a deployment of the userspace RCU in the implementation of upgradable futexes,

all described in Adam Hraska's master thesis named Read-Copy-Update
for HelenOS, defended in 2013 at MFF UK; furthemore, the branch
fixes two synchronization bugs in condvars and waitq, respectively:

  • revid:adam.hraska+hos@gmail.com-20121116144921-3to9u1tn1sg07rg7
  • revid:adam.hraska+hos@gmail.com-20121116173623-km7gwtqixwudpe66
  • build fixes required to pass make check
  • overhaul of ia64 and sparc64 trap handling, to allow exc_dispatch() to be used now when the kernel is more picky about CPU state accounting
  • an important fix of the sparc64/sun4v preemptible trap handler
  • various other fixes of issues discovered on non-x86 architectures
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/include/arch/interrupt.h

    reae91e0 r235d31d  
    3636#define KERN_ia64_INTERRUPT_H_
    3737
     38#ifndef __ASM__
    3839#include <typedefs.h>
    3940#include <arch/istate.h>
     41#endif
     42
     43#define EXC_ALT_ITLB_FAULT      0xc
     44#define EXC_ALT_DTLB_FAULT      0x10
     45#define EXC_NESTED_TLB_FAULT    0x14
     46#define EXC_DATA_D_BIT_FAULT    0x20
     47#define EXC_INST_A_BIT_FAULT    0x24
     48#define EXC_DATA_A_BIT_FAULT    0x28
     49#define EXC_BREAK_INSTRUCTION   0x2c
     50#define EXC_EXT_INTERRUPT       0x30
     51#define EXC_PAGE_NOT_PRESENT    0x50
     52#define EXC_DATA_AR_FAULT       0x53
     53#define EXC_GENERAL_EXCEPTION   0x54
     54#define EXC_DISABLED_FP_REG     0x55
     55#define EXC_SPECULATION         0x57
    4056
    4157/** ia64 has 256 INRs. */
    4258#define INR_COUNT  256
    4359
    44 /*
    45  * We need to keep this just to compile.
    46  * We might eventually move interrupt/ stuff
    47  * to genarch.
    48  */
    49 #define IVT_ITEMS  0
     60#define IVT_ITEMS  128
    5061#define IVT_FIRST  0
    5162
     
    7283#define EOI  0  /**< The actual value doesn't matter. */
    7384
     85#ifndef __ASM__
    7486extern void *ivt;
    7587
    76 extern void general_exception(uint64_t, istate_t *);
    77 extern int break_instruction(uint64_t, istate_t *);
    78 extern void universal_handler(uint64_t, istate_t *);
    79 extern void nop_handler(uint64_t, istate_t *);
    80 extern void external_interrupt(uint64_t, istate_t *);
    81 extern void disabled_fp_register(uint64_t, istate_t *);
     88extern void general_exception(unsigned int, istate_t *);
     89extern sysarg_t break_instruction(unsigned int, istate_t *);
     90extern void universal_handler(unsigned int, istate_t *);
     91extern void external_interrupt(unsigned int, istate_t *);
     92extern void disabled_fp_register(unsigned int, istate_t *);
    8293
    8394extern void trap_virtual_enable_irqs(uint16_t);
     95
     96void exception_init(void);
     97#endif
    8498
    8599#endif
Note: See TracChangeset for help on using the changeset viewer.