Ignore:
Timestamp:
2006-09-28T15:48:31Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c23baab
Parents:
a9ac978
Message:

IPI/cross-call support for sparc64.
SMP on sparc64 is now fully supported.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/trap/interrupt.c

    ra9ac978 r00b38a3  
    4646#include <print.h>
    4747#include <genarch/kbd/z8530.h>
     48#include <arch.h>
     49#include <mm/tlb.h>
     50#include <config.h>
    4851
    4952/** Register Interrupt Level Handler.
     
    98101
    99102#endif
     103        default:
     104                if (data0 > config.base) {
     105                        /*
     106                         * This is a cross-call.
     107                         * data0 contains address of kernel function.
     108                         * We call the function only after we verify
     109                         * it is on of the supported ones.
     110                         */
     111#ifdef CONFIG_SMP
     112                        if (data0 == (uintptr_t) tlb_shootdown_ipi_recv) {
     113                                tlb_shootdown_ipi_recv();
     114                                break;
     115                        }
     116#endif
     117                }
     118                       
     119                printf("cpu%d: spurious interrupt (intrcv=%#llx, data0=%#llx)\n", CPU->id, intrcv, data0);
     120                break;
    100121        }
    101122
Note: See TracChangeset for help on using the changeset viewer.