Changeset 2ee1ccc in mainline for kernel/arch


Ignore:
Timestamp:
2012-07-01T05:18:27Z (13 years ago)
Author:
Adam Hraska <adam.hraska+hos@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d71331b
Parents:
49e6c6b4
Message:

smp_call: initial unicast version for ia32, amd64.

Location:
kernel/arch
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/Makefile.inc

    r49e6c6b4 r2ee1ccc  
    104104                arch/$(KARCH)/src/smp/ipi.c \
    105105                arch/$(KARCH)/src/smp/mps.c \
     106                arch/$(KARCH)/src/smp/smp_call.c \
    106107                arch/$(KARCH)/src/smp/smp.c
    107108endif
  • kernel/arch/amd64/include/interrupt.h

    r49e6c6b4 r2ee1ccc  
    6969#define VECTOR_TLB_SHOOTDOWN_IPI  (IVT_FREEBASE + 1)
    7070#define VECTOR_DEBUG_IPI          (IVT_FREEBASE + 2)
     71#define VECTOR_SMP_CALL_IPI       (IVT_FREEBASE + 3)
    7172
    7273extern void (* disable_irqs_function)(uint16_t);
  • kernel/arch/amd64/src/interrupt.c

    r49e6c6b4 r2ee1ccc  
    5454#include <symtab.h>
    5555#include <stacktrace.h>
     56#include <smp/smp_call.h>
    5657
    5758/*
     
    161162        tlb_shootdown_ipi_recv();
    162163}
     164
     165static void arch_smp_call_ipi_recv(unsigned int n, istate_t *istate)
     166{
     167        trap_virtual_eoi();
     168        smp_call_ipi_recv();
     169}
    163170#endif
    164171
     
    222229        exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true,
    223230            (iroutine_t) tlb_shootdown_ipi);
     231        exc_register(VECTOR_SMP_CALL_IPI, "smp_call", true,
     232                (iroutine_t) arch_smp_call_ipi_recv);
    224233#endif
    225234}
  • kernel/arch/ia32/Makefile.inc

    r49e6c6b4 r2ee1ccc  
    8686        arch/$(KARCH)/src/smp/mps.c \
    8787        arch/$(KARCH)/src/smp/smp.c \
     88        arch/$(KARCH)/src/smp/smp_call.c \
    8889        arch/$(KARCH)/src/atomic.S \
    8990        arch/$(KARCH)/src/smp/ipi.c \
  • kernel/arch/ia32/include/interrupt.h

    r49e6c6b4 r2ee1ccc  
    6969#define VECTOR_TLB_SHOOTDOWN_IPI  (IVT_FREEBASE + 1)
    7070#define VECTOR_DEBUG_IPI          (IVT_FREEBASE + 2)
     71#define VECTOR_SMP_CALL_IPI       (IVT_FREEBASE + 3)
    7172
    7273extern void (* disable_irqs_function)(uint16_t);
  • kernel/arch/ia32/src/interrupt.c

    r49e6c6b4 r2ee1ccc  
    5454#include <symtab.h>
    5555#include <stacktrace.h>
     56#include <smp/smp_call.h>
    5657
    5758/*
     
    170171        tlb_shootdown_ipi_recv();
    171172}
     173
     174static void arch_smp_call_ipi_recv(unsigned int n, istate_t *istate)
     175{
     176        trap_virtual_eoi();
     177        smp_call_ipi_recv();
     178}
    172179#endif
    173180
     
    230237        exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true,
    231238            (iroutine_t) tlb_shootdown_ipi);
     239        exc_register(VECTOR_SMP_CALL_IPI, "smp_call", true,
     240            (iroutine_t) arch_smp_call_ipi_recv);
    232241#endif
    233242}
Note: See TracChangeset for help on using the changeset viewer.