File indexing completed on 2025-05-11 08:22:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include <rtems/score/armv4.h>
0014
0015 #include <bsp.h>
0016 #include <bsp/irq.h>
0017 #include <bsp/irq-generic.h>
0018
0019 #include <mc9328mxl.h>
0020
0021 void bsp_interrupt_dispatch(void)
0022 {
0023
0024 rtems_vector_number vector = MC9328MXL_AITC_NIVECSR >> 16;
0025
0026 bsp_interrupt_handler_dispatch(vector);
0027 }
0028
0029 rtems_status_code bsp_interrupt_get_attributes(
0030 rtems_vector_number vector,
0031 rtems_interrupt_attributes *attributes
0032 )
0033 {
0034 return RTEMS_SUCCESSFUL;
0035 }
0036
0037 rtems_status_code bsp_interrupt_is_pending(
0038 rtems_vector_number vector,
0039 bool *pending
0040 )
0041 {
0042 bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
0043 bsp_interrupt_assert(pending != NULL);
0044 *pending = false;
0045 return RTEMS_UNSATISFIED;
0046 }
0047
0048 rtems_status_code bsp_interrupt_raise(rtems_vector_number vector)
0049 {
0050 bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
0051 return RTEMS_UNSATISFIED;
0052 }
0053
0054 rtems_status_code bsp_interrupt_clear(rtems_vector_number vector)
0055 {
0056 bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
0057 return RTEMS_UNSATISFIED;
0058 }
0059
0060 rtems_status_code bsp_interrupt_vector_is_enabled(
0061 rtems_vector_number vector,
0062 bool *enabled
0063 )
0064 {
0065 bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
0066 bsp_interrupt_assert(enabled != NULL);
0067 *enabled = false;
0068 return RTEMS_UNSATISFIED;
0069 }
0070
0071 rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
0072 {
0073 bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
0074
0075 if (vector < MC9328MXL_NUM_INTS)
0076 MC9328MXL_AITC_INTENNUM = vector;
0077
0078 return RTEMS_SUCCESSFUL;
0079 }
0080
0081 rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
0082 {
0083 bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
0084
0085 if (vector < MC9328MXL_NUM_INTS)
0086 MC9328MXL_AITC_INTDISNUM = vector;
0087
0088 return RTEMS_SUCCESSFUL;
0089 }
0090
0091 rtems_status_code bsp_interrupt_set_priority(
0092 rtems_vector_number vector,
0093 uint32_t priority
0094 )
0095 {
0096 bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
0097 return RTEMS_UNSATISFIED;
0098 }
0099
0100 rtems_status_code bsp_interrupt_get_priority(
0101 rtems_vector_number vector,
0102 uint32_t *priority
0103 )
0104 {
0105 bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
0106 bsp_interrupt_assert(priority != NULL);
0107 return RTEMS_UNSATISFIED;
0108 }
0109
0110 void bsp_interrupt_facility_initialize(void)
0111 {
0112 _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
0113 }