diff --git a/arch/arm/aarch64/include/arch_helpers.h b/arch/arm/aarch64/include/arch_interrupt.h similarity index 92% rename from arch/arm/aarch64/include/arch_helpers.h rename to arch/arm/aarch64/include/arch_interrupt.h index ec8b3cd02148b1f1edf2123aff5ef6645210dfc4..746dcd41ac547fad91329d897922433f086ba9bd 100644 --- a/arch/arm/aarch64/include/arch_helpers.h +++ b/arch/arm/aarch64/include/arch_interrupt.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2024-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ diff --git a/arch/arm/aarch64/src/arch_gic.c b/arch/arm/aarch64/src/arch_gic.c index 0217e20453ab51c8bcf057f9d0694b17b08a2295..9e12cd4db915cd82c64ab7f8f55acd8310452626 100644 --- a/arch/arm/aarch64/src/arch_gic.c +++ b/arch/arm/aarch64/src/arch_gic.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2024-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include @@ -85,21 +85,7 @@ void irq_global(void) current_iar = INTERRUPT_ID_INVALID; } -static int global_enable(void) -{ - arch_interrupts_enable(0); - - return FWK_SUCCESS; -} - -static int global_disable(void) -{ - arch_interrupts_disable(); - - return FWK_SUCCESS; -} - -static int is_enabled(unsigned int interrupt, bool *enabled) +int arch_interrupt_is_enabled(unsigned int interrupt, bool *enabled) { switch (interrupt_type_from_id(interrupt)) { case INTERRUPT_TYPE_SGI: @@ -120,7 +106,7 @@ static int is_enabled(unsigned int interrupt, bool *enabled) return FWK_SUCCESS; } -static int enable(unsigned int interrupt) +int arch_interrupt_enable(unsigned int interrupt) { switch (interrupt_type_from_id(interrupt)) { case INTERRUPT_TYPE_SGI: @@ -141,7 +127,7 @@ static int enable(unsigned int interrupt) return FWK_SUCCESS; } -static int disable(unsigned int interrupt) +int arch_interrupt_disable(unsigned int interrupt) { switch (interrupt_type_from_id(interrupt)) { case INTERRUPT_TYPE_SGI: @@ -162,7 +148,7 @@ static int disable(unsigned int interrupt) return FWK_SUCCESS; } -static int is_pending(unsigned int interrupt, bool *pending) +int arch_interrupt_is_pending(unsigned int interrupt, bool *pending) { switch (interrupt_type_from_id(interrupt)) { case INTERRUPT_TYPE_SGI: @@ -183,7 +169,7 @@ static int is_pending(unsigned int interrupt, bool *pending) return FWK_SUCCESS; } -static int set_pending(unsigned int interrupt) +int arch_interrupt_set_pending(unsigned int interrupt) { switch (interrupt_type_from_id(interrupt)) { case INTERRUPT_TYPE_SGI: @@ -203,7 +189,7 @@ static int set_pending(unsigned int interrupt) return FWK_SUCCESS; } -static int clear_pending(unsigned int interrupt) +int arch_interrupt_clear_pending(unsigned int interrupt) { switch (interrupt_type_from_id(interrupt)) { case INTERRUPT_TYPE_SGI: @@ -223,7 +209,7 @@ static int clear_pending(unsigned int interrupt) return FWK_SUCCESS; } -static int set_isr_irq(unsigned int interrupt, void (*isr)(void)) +int arch_interrupt_set_isr_irq(unsigned int interrupt, void (*isr)(void)) { struct isr_callback *entry; @@ -238,7 +224,7 @@ static int set_isr_irq(unsigned int interrupt, void (*isr)(void)) return FWK_SUCCESS; } -static int set_isr_irq_param( +int arch_interrupt_set_isr_irq_param( unsigned int interrupt, void (*isr)(uintptr_t param), uintptr_t parameter) @@ -256,19 +242,31 @@ static int set_isr_irq_param( return FWK_SUCCESS; } -static int set_isr_dummy(void (*isr)(void)) +int arch_interrupt_set_isr_nmi(void (*isr)(void)) { return FWK_E_SUPPORT; } -static int set_isr_dummy_param( +int arch_interrupt_set_isr_nmi_param( + void (*isr)(uintptr_t), + uintptr_t parameter) +{ + return FWK_E_SUPPORT; +} + +int arch_interrupt_set_isr_dummy(void (*isr)(void)) +{ + return FWK_E_SUPPORT; +} + +int arch_interrupt_set_isr_dummy_param( void (*isr)(uintptr_t param), uintptr_t parameter) { return FWK_E_SUPPORT; } -static int get_current(unsigned int *interrupt) +int arch_interrupt_get_current(unsigned int *interrupt) { if (interrupt == NULL) { return FWK_E_PARAM; @@ -279,36 +277,12 @@ static int get_current(unsigned int *interrupt) return FWK_SUCCESS; } -static bool is_interrupt_context(void) +bool arch_interrupt_is_interrupt_context(void) { return current_iar != INTERRUPT_ID_INVALID; } -const struct fwk_arch_interrupt_driver arm_gic_driver = { - .global_enable = global_enable, - .global_disable = global_disable, - .is_enabled = is_enabled, - .enable = enable, - .disable = disable, - .is_pending = is_pending, - .set_pending = set_pending, - .clear_pending = clear_pending, - .set_isr_irq = set_isr_irq, - .set_isr_irq_param = set_isr_irq_param, - .set_isr_nmi = set_isr_dummy, - .set_isr_nmi_param = set_isr_dummy_param, - .set_isr_fault = set_isr_dummy, - .get_current = get_current, - .is_interrupt_context = is_interrupt_context, -}; - -int arch_gic_init(const struct fwk_arch_interrupt_driver **driver) +int arch_interrupt_init() { - if (driver == NULL) { - return FWK_E_PARAM; - } - - *driver = &arm_gic_driver; - return FWK_SUCCESS; } diff --git a/arch/arm/aarch64/src/arch_main.c b/arch/arm/aarch64/src/arch_main.c index ce0a60e44f01530a7bbaf0915fedc1aeae73510b..22ff1ac1b8abbe01a62b62ffadd68d2c62fe2a87 100644 --- a/arch/arm/aarch64/src/arch_main.c +++ b/arch/arm/aarch64/src/arch_main.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2024-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -10,15 +10,9 @@ #include #include -#include - -extern int arch_gic_init(const struct fwk_arch_interrupt_driver **driver); - -static const struct fwk_arch_init_driver arch_init_driver = { - .interrupt = arch_gic_init, -}; +#include int arm_main(void) { - return fwk_arch_init(&arch_init_driver); + return fwk_arch_init(); } diff --git a/arch/arm/arm-m/include/arch_helpers.h b/arch/arm/arm-m/include/arch_interrupt.h similarity index 95% rename from arch/arm/arm-m/include/arch_helpers.h rename to arch/arm/arm-m/include/arch_interrupt.h index dc6aa541ddbf0e38ae5d7db25be4a1517aff05a2..fbdd3bd46314b322a7b15c59dac22c91fa1ea77e 100644 --- a/arch/arm/arm-m/include/arch_helpers.h +++ b/arch/arm/arm-m/include/arch_interrupt.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2021-2023, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2021-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ diff --git a/arch/arm/arm-m/include/arch_nvic.h b/arch/arm/arm-m/include/arch_nvic.h index cfc4bbaa246d0fbf04df758c2ea33b8ce326d288..89281121fbb108dc7500ad9416c66b0c55f5f004 100644 --- a/arch/arm/arm-m/include/arch_nvic.h +++ b/arch/arm/arm-m/include/arch_nvic.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2020-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -20,6 +20,6 @@ * * \return Status code representing the result of the operation. */ -int arch_nvic_init(const struct fwk_arch_interrupt_driver **driver); +int arch_interrupt_init(); #endif /* ARCH_NVIC_H */ diff --git a/arch/arm/arm-m/src/arch_main.c b/arch/arm/arm-m/src/arch_main.c index d73adadac2a86afd767df92bb31263579ed31164..2e5f4a32c702f9d49f9e147af7ee941107a7ef50 100644 --- a/arch/arm/arm-m/src/arch_main.c +++ b/arch/arm/arm-m/src/arch_main.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2023, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -11,17 +11,14 @@ #include #include -#include - #include #include -#include /* * This variable is used to ensure spurious nested calls won't * enable interrupts. This is been accessed from inline function defined in - * arch_helpers.h + * arch_interrupt.h */ unsigned int critical_section_nest_level; @@ -35,10 +32,6 @@ void _exit(int status) } #endif -static const struct fwk_arch_init_driver arch_init_driver = { - .interrupt = arch_nvic_init, -}; - #ifndef ARMV6M static void arch_init_ccr(void) { @@ -70,5 +63,5 @@ int main(void) arch_init_ccr(); #endif - return fwk_arch_init(&arch_init_driver); + return fwk_arch_init(); } diff --git a/arch/arm/arm-m/src/arch_nvic.c b/arch/arm/arm-m/src/arch_nvic.c index 5d3402aa42265160f2b12e629848badcc5afadcf..78fa45a61e4f04c4cf05c406f3a5d6171e96901b 100644 --- a/arch/arm/arm-m/src/arch_nvic.c +++ b/arch/arm/arm-m/src/arch_nvic.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -22,7 +22,6 @@ #include #include -#include #include #include @@ -61,28 +60,28 @@ struct irq_callback { static struct irq_callback *callback; -static void irq_global(void) +void irq_global(void) { struct irq_callback *entry = &callback[__get_IPSR() - 1]; entry->func(entry->param); } -static int global_enable(void) +int arch_interrupt_global_enable(void) { __enable_irq(); return FWK_SUCCESS; } -static int global_disable(void) +int arch_interrupt_global_disable(void) { __disable_irq(); return FWK_SUCCESS; } -static int is_enabled(unsigned int interrupt, bool *enabled) +int arch_interrupt_is_enabled(unsigned int interrupt, bool *enabled) { if (interrupt >= irq_count) { return FWK_E_PARAM; @@ -93,7 +92,7 @@ static int is_enabled(unsigned int interrupt, bool *enabled) return FWK_SUCCESS; } -static int enable(unsigned int interrupt) +int arch_interrupt_enable(unsigned int interrupt) { if (interrupt >= irq_count) { return FWK_E_PARAM; @@ -104,7 +103,7 @@ static int enable(unsigned int interrupt) return FWK_SUCCESS; } -static int disable(unsigned int interrupt) +int arch_interrupt_disable(unsigned int interrupt) { if (interrupt >= irq_count) { return FWK_E_PARAM; @@ -115,7 +114,7 @@ static int disable(unsigned int interrupt) return FWK_SUCCESS; } -static int is_pending(unsigned int interrupt, bool *pending) +int arch_interrupt_is_pending(unsigned int interrupt, bool *pending) { if (interrupt >= irq_count) { return FWK_E_PARAM; @@ -126,7 +125,7 @@ static int is_pending(unsigned int interrupt, bool *pending) return FWK_SUCCESS; } -static int set_pending(unsigned int interrupt) +int arch_interrupt_set_pending(unsigned int interrupt) { if (interrupt >= irq_count) { return FWK_E_PARAM; @@ -137,7 +136,7 @@ static int set_pending(unsigned int interrupt) return FWK_SUCCESS; } -static int clear_pending(unsigned int interrupt) +int arch_interrupt_clear_pending(unsigned int interrupt) { if (interrupt >= irq_count) { return FWK_E_PARAM; @@ -148,7 +147,7 @@ static int clear_pending(unsigned int interrupt) return FWK_SUCCESS; } -static int set_isr_irq(unsigned int interrupt, void (*isr)(void)) +int arch_interrupt_set_isr_irq(unsigned int interrupt, void (*isr)(void)) { if (interrupt >= irq_count) { return FWK_E_PARAM; @@ -159,7 +158,7 @@ static int set_isr_irq(unsigned int interrupt, void (*isr)(void)) return FWK_SUCCESS; } -static int set_isr_irq_param( +int arch_interrupt_set_isr_irq_param( unsigned int interrupt, void (*isr)(uintptr_t param), uintptr_t parameter) @@ -178,14 +177,16 @@ static int set_isr_irq_param( return FWK_SUCCESS; } -static int set_isr_nmi(void (*isr)(void)) +int arch_interrupt_set_isr_nmi(void (*isr)(void)) { NVIC_SetVector(NonMaskableInt_IRQn, (uint32_t)isr); return FWK_SUCCESS; } -static int set_isr_nmi_param(void (*isr)(uintptr_t param), uintptr_t parameter) +int arch_interrupt_set_isr_nmi_param( + void (*isr)(uintptr_t param), + uintptr_t parameter) { struct irq_callback *entry; @@ -198,7 +199,7 @@ static int set_isr_nmi_param(void (*isr)(uintptr_t param), uintptr_t parameter) return FWK_SUCCESS; } -static int set_isr_fault(void (*isr)(void)) +int arch_interrupt_set_isr_fault(void (*isr)(void)) { NVIC_SetVector(HardFault_IRQn, (uint32_t)isr); NVIC_SetVector(MemoryManagement_IRQn, (uint32_t)isr); @@ -208,7 +209,7 @@ static int set_isr_fault(void (*isr)(void)) return FWK_SUCCESS; } -static int get_current(unsigned int *interrupt) +int arch_interrupt_get_current(unsigned int *interrupt) { *interrupt = __get_IPSR(); @@ -228,7 +229,7 @@ static int get_current(unsigned int *interrupt) return FWK_SUCCESS; } -static bool is_interrupt_context(void) +bool arch_interrupt_is_interrupt_context(void) { /* Not an interrupt */ if (__get_IPSR() == 0) { @@ -238,31 +239,13 @@ static bool is_interrupt_context(void) return true; } -static const struct fwk_arch_interrupt_driver arch_nvic_driver = { - .global_enable = global_enable, - .global_disable = global_disable, - .is_enabled = is_enabled, - .enable = enable, - .disable = disable, - .is_pending = is_pending, - .set_pending = set_pending, - .clear_pending = clear_pending, - .set_isr_irq = set_isr_irq, - .set_isr_irq_param = set_isr_irq_param, - .set_isr_nmi = set_isr_nmi, - .set_isr_nmi_param = set_isr_nmi_param, - .set_isr_fault = set_isr_fault, - .get_current = get_current, - .is_interrupt_context = is_interrupt_context, -}; - -static void irq_invalid(void) +void arch_interrupt_irq_invalid(void) { - (void)disable(__get_IPSR()); + (void)arch_interrupt_disable(__get_IPSR()); } #ifndef ARMV6M -int arch_nvic_init(const struct fwk_arch_interrupt_driver **driver) +int arch_interrupt_init() { uint32_t ictr_intlinesnum; uint32_t align_entries; @@ -270,10 +253,6 @@ int arch_nvic_init(const struct fwk_arch_interrupt_driver **driver) uint32_t *vector; uint32_t irq; - if (driver == NULL) { - return FWK_E_PARAM; - } - /* Find the number of interrupt lines implemented in hardware */ # ifdef SCnSCB ictr_intlinesnum = SCnSCB->ICTR & SCnSCB_ICTR_INTLINESNUM_Msk; @@ -333,8 +312,9 @@ int arch_nvic_init(const struct fwk_arch_interrupt_driver **driver) NVIC_DisableIRQ((IRQn_Type)irq); NVIC_ClearPendingIRQ((IRQn_Type)irq); - /* Initialize all IRQ entries to point to the irq_invalid() handler */ - NVIC_SetVector((IRQn_Type)irq, (uint32_t)irq_invalid); + /* Initialize all IRQ entries to point to the + * arch_interrupt_irq_invalid() handler */ + NVIC_SetVector((IRQn_Type)irq, (uint32_t)arch_interrupt_irq_invalid); } __enable_irq(); @@ -343,21 +323,15 @@ int arch_nvic_init(const struct fwk_arch_interrupt_driver **driver) SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk | SCB_SHCSR_BUSFAULTENA_Msk | SCB_SHCSR_USGFAULTENA_Msk; - *driver = &arch_nvic_driver; - return FWK_SUCCESS; } #else -int arch_nvic_init(const struct fwk_arch_interrupt_driver **driver) +int arch_interrupt_init() { uint32_t ictr_intlinesnum; uint32_t irq; - if (driver == NULL) { - return FWK_E_PARAM; - } - /* Find the number of interrupt lines implemented in hardware */ ictr_intlinesnum = 0; irq_count = (ictr_intlinesnum + 1) * 32; @@ -380,14 +354,13 @@ int arch_nvic_init(const struct fwk_arch_interrupt_driver **driver) NVIC_DisableIRQ((IRQn_Type)irq); NVIC_ClearPendingIRQ((IRQn_Type)irq); - /* Initialize all IRQ entries to point to the irq_invalid() handler */ - NVIC_SetVector((IRQn_Type)irq, (uint32_t)irq_invalid); + /* Initialize all IRQ entries to point to the + * arch_interrupt_irq_invalid() handler */ + NVIC_SetVector((IRQn_Type)irq, (uint32_t)arch_interrupt_irq_invalid); } __enable_irq(); - *driver = &arch_nvic_driver; - return FWK_SUCCESS; } #endif diff --git a/arch/arm/armv8-a/include/arch_gic.h b/arch/arm/armv8-a/include/arch_gic.h index d0a5a5de5b27eacf82ece17f2cf072e5cc60eeec..2f77d9317bfd63713494492a525adff85b44b626 100644 --- a/arch/arm/armv8-a/include/arch_gic.h +++ b/arch/arm/armv8-a/include/arch_gic.h @@ -1,6 +1,6 @@ /* * Renesas SCP/MCP Software - * Copyright (c) 2020-2021, Renesas Electronics Corporation. All rights + * Copyright (c) 2020-2025, Renesas Electronics Corporation. All rights * reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -11,7 +11,7 @@ #include -#include +#include /* Constants to categorise priorities */ #define GIC_HIGHEST_SEC_PRIORITY 0x0 @@ -129,7 +129,6 @@ #define RCAR_GICV_BASE U(0xF1060000) void gic_init(void); -int arm_gic_init(const struct fwk_arch_interrupt_driver **driver); void irq_global(uint32_t iid); #endif /* ARMV8A_GIC_H */ diff --git a/arch/arm/armv8-a/include/arch_helpers.h b/arch/arm/armv8-a/include/arch_interrupt.h similarity index 98% rename from arch/arm/armv8-a/include/arch_helpers.h rename to arch/arm/armv8-a/include/arch_interrupt.h index 4d01e9db2bc41342a8f8a0153b35f0a4335615b3..bdc1c89bb4f74d2acfa462c8aed7a87a4a12a340 100644 --- a/arch/arm/armv8-a/include/arch_helpers.h +++ b/arch/arm/armv8-a/include/arch_interrupt.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2013-2023, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -430,10 +430,10 @@ DEFINE_SYSREG_RW_FUNCS(cnthctl_el2) (((x) >> CNTP_CTL_ISTATUS_SHIFT) & CNTP_CTL_ISTATUS_MASK) #define set_cntp_ctl_enable(x) ((x) |= (U(1) << CNTP_CTL_ENABLE_SHIFT)) -#define set_cntp_ctl_imask(x) ((x) |= (U(1) << CNTP_CTL_IMASK_SHIFT)) +#define set_cntp_ctl_imask(x) ((x) |= (U(1) << CNTP_CTL_IMASK_SHIFT)) #define clr_cntp_ctl_enable(x) ((x) &= ~(U(1) << CNTP_CTL_ENABLE_SHIFT)) -#define clr_cntp_ctl_imask(x) ((x) &= ~(U(1) << CNTP_CTL_IMASK_SHIFT)) +#define clr_cntp_ctl_imask(x) ((x) &= ~(U(1) << CNTP_CTL_IMASK_SHIFT)) DEFINE_SYSREG_RW_FUNCS(tpidr_el3) @@ -540,13 +540,13 @@ static inline uint64_t el_implemented(unsigned int el) #define read_mpidr() read_mpidr_el1() -#define read_scr() read_scr_el3() +#define read_scr() read_scr_el3() #define write_scr(_v) write_scr_el3(_v) -#define read_hcr() read_hcr_el2() +#define read_hcr() read_hcr_el2() #define write_hcr(_v) write_hcr_el2(_v) -#define read_cpacr() read_cpacr_el1() +#define read_cpacr() read_cpacr_el1() #define write_cpacr(_v) write_cpacr_el1(_v) /* diff --git a/arch/arm/armv8-a/src/arch_gic.c b/arch/arm/armv8-a/src/arch_gic.c index ecf499361c5fdac0b0091bc538eb7a0483ac4743..2243bd17e49c8bc9fd78b9ace84a7bcfde9b8675 100644 --- a/arch/arm/armv8-a/src/arch_gic.c +++ b/arch/arm/armv8-a/src/arch_gic.c @@ -1,6 +1,6 @@ /* * Renesas SCP/MCP Software - * Copyright (c) 2020-2024, Renesas Electronics Corporation. All rights + * Copyright (c) 2020-2025, Renesas Electronics Corporation. All rights * reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -357,19 +357,19 @@ void gic_init(void) /* --------------------------------------------------- */ -static int global_enable(void) +int arch_interrupt_global_enable(void) { __asm__ volatile("msr DAIFClr, #1"); /* FIQ */ return FWK_SUCCESS; } -static int global_disable(void) +int arch_interrupt_global_disable(void) { __asm__ volatile("msr DAIFSet, #1"); /* FIQ */ return FWK_SUCCESS; } -static int is_enabled(unsigned int interrupt, bool *enabled) +int arch_interrupt_is_enabled(unsigned int interrupt, bool *enabled) { if (!IS_SUPPORT_INT(interrupt)) return FWK_E_PARAM; @@ -379,7 +379,7 @@ static int is_enabled(unsigned int interrupt, bool *enabled) return FWK_SUCCESS; } -static int enable(unsigned int interrupt) +int arch_interrupt_enable(unsigned int interrupt) { if (!IS_SUPPORT_INT(interrupt)) return FWK_E_PARAM; @@ -389,7 +389,7 @@ static int enable(unsigned int interrupt) return FWK_SUCCESS; } -static int disable(unsigned int interrupt) +int arch_interrupt_disable(unsigned int interrupt) { if (!IS_SUPPORT_INT(interrupt)) return FWK_E_PARAM; @@ -399,7 +399,7 @@ static int disable(unsigned int interrupt) return FWK_SUCCESS; } -static int is_pending(unsigned int interrupt, bool *pending) +int arch_interrupt_is_pending(unsigned int interrupt, bool *pending) { unsigned int bit; @@ -414,7 +414,7 @@ static int is_pending(unsigned int interrupt, bool *pending) return FWK_SUCCESS; } -static int set_pending(unsigned int interrupt) +int arch_interrupt_set_pending(unsigned int interrupt) { unsigned int bit; @@ -427,7 +427,7 @@ static int set_pending(unsigned int interrupt) return FWK_SUCCESS; } -static int clear_pending(unsigned int interrupt) +int arch_interrupt_clear_pending(unsigned int interrupt) { unsigned int bit; @@ -442,49 +442,49 @@ static int clear_pending(unsigned int interrupt) #else -static int global_enable(void) +int arch_interrupt_global_enable(void) { return FWK_SUCCESS; } -static int global_disable(void) +int arch_interrupt_global_disable(void) { return FWK_SUCCESS; } -static int is_enabled(unsigned int interrupt, bool *enabled) +int arch_interrupt_is_enabled(unsigned int interrupt, bool *enabled) { return FWK_SUCCESS; } -static int enable(unsigned int interrupt) +int arch_interrupt_enable(unsigned int interrupt) { return FWK_SUCCESS; } -static int disable(unsigned int interrupt) +int arch_interrupt_disable(unsigned int interrupt) { return FWK_SUCCESS; } -static int is_pending(unsigned int interrupt, bool *pending) +int arch_interrupt_is_pending(unsigned int interrupt, bool *pending) { return FWK_SUCCESS; } -static int set_pending(unsigned int interrupt) +int arch_interrupt_set_pending(unsigned int interrupt) { return FWK_SUCCESS; } -static int clear_pending(unsigned int interrupt) +int arch_interrupt_clear_pending(unsigned int interrupt) { return FWK_SUCCESS; } #endif /* RCAR_SCMI_LIB */ -static int set_isr_irq(unsigned int interrupt, void (*isr)(void)) +int arch_interrupt_set_isr_irq(unsigned int interrupt, void (*isr)(void)) { struct callback *entry; int ret; @@ -505,7 +505,7 @@ static int set_isr_irq(unsigned int interrupt, void (*isr)(void)) return FWK_SUCCESS; } -static int set_isr_irq_param( +int arch_interrupt_set_isr_irq_param( unsigned int interrupt, void (*isr)(uintptr_t param), uintptr_t parameter) @@ -529,19 +529,31 @@ static int set_isr_irq_param( return FWK_SUCCESS; } -static int set_isr_dummy(void (*isr)(void)) +int arch_interrupt_set_isr_dummy(void (*isr)(void)) { return FWK_SUCCESS; } -static int set_isr_dummy_param( +int arch_interrupt_set_isr_dummy_param( void (*isr)(uintptr_t param), uintptr_t parameter) { return FWK_SUCCESS; } -static int get_current(unsigned int *interrupt) +int arch_interrupt_set_isr_nmi(void (*isr)(void)) +{ + return FWK_E_SUPPORT; +} + +int arch_interrupt_set_isr_nmi_param( + void (*isr)(uintptr_t), + uintptr_t parameter) +{ + return FWK_E_SUPPORT; +} + +int arch_interrupt_get_current(unsigned int *interrupt) { *interrupt = c_interrupt; @@ -552,7 +564,7 @@ static int get_current(unsigned int *interrupt) return FWK_SUCCESS; } -static bool is_interrupt_context(void) +bool arch_interrupt_is_interrupt_context(void) { /* Not an interrupt */ if (c_interrupt == 0) { @@ -562,25 +574,7 @@ static bool is_interrupt_context(void) return true; } -static const struct fwk_arch_interrupt_driver arm_gic_driver = { - .global_enable = global_enable, - .global_disable = global_disable, - .is_enabled = is_enabled, - .enable = enable, - .disable = disable, - .is_pending = is_pending, - .set_pending = set_pending, - .clear_pending = clear_pending, - .set_isr_irq = set_isr_irq, - .set_isr_irq_param = set_isr_irq_param, - .set_isr_nmi = set_isr_dummy, - .set_isr_nmi_param = set_isr_dummy_param, - .set_isr_fault = set_isr_dummy, - .get_current = get_current, - .is_interrupt_context = is_interrupt_context, -}; - -int arm_gic_init(const struct fwk_arch_interrupt_driver **driver) +int arch_interrupt_init() { /* * Allocate and initialize a table for the callback functions and their @@ -592,15 +586,5 @@ int arm_gic_init(const struct fwk_arch_interrupt_driver **driver) gic_init(); - /* - * Initialize all exception entries to point to the arm_exception_invalid() - * handler. - * - * Note: Initialization starts from entry 1 since entry 0 is not an - * exception pointer but the default stack pointer. - */ - - *driver = &arm_gic_driver; - return FWK_SUCCESS; } diff --git a/arch/arm/armv8-a/src/arch_main.c b/arch/arm/armv8-a/src/arch_main.c index 743a52d624f833f8151d2b9d3ea8886c365f5369..1df757d7e925816bcffbd8fc550c5b62153534bb 100644 --- a/arch/arm/armv8-a/src/arch_main.c +++ b/arch/arm/armv8-a/src/arch_main.c @@ -1,6 +1,6 @@ /* * Renesas SCP/MCP Software - * Copyright (c) 2020-2022, Renesas Electronics Corporation. All rights + * Copyright (c) 2020-2025, Renesas Electronics Corporation. All rights * reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -12,14 +12,14 @@ #include #include -#include +#include #include /* * This variable is used to ensure spurious nested calls won't * enable interrupts. This is been accessed from inline function defined in - * arch_helpers.h + * arch_interrupt.h */ unsigned int critical_section_nest_level; @@ -37,10 +37,6 @@ void panic(void) wfi(); } -static struct fwk_arch_init_driver arch_init_driver = { - .interrupt = arm_gic_init, -}; - void arm_main(void) { int status; @@ -52,7 +48,7 @@ void arm_main(void) __asm__ volatile("msr cntv_ctl_el0, %0" ::"r"(cntv_ctl)); #endif /* BUILD_MODE_DEBUG */ - status = fwk_arch_init(&arch_init_driver); + status = fwk_arch_init(); if (status != FWK_SUCCESS) panic(); } diff --git a/arch/none/host/include/arch_helpers.h b/arch/none/host/include/arch_helpers.h deleted file mode 100644 index 5514f0b683258ee5af7d59efd82b5174c9a9d0d6..0000000000000000000000000000000000000000 --- a/arch/none/host/include/arch_helpers.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Arm SCP/MCP Software - * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#ifndef ARCH_HELPERS_H -#define ARCH_HELPERS_H - -/*! - * \brief Enables global CPU interrupts. (stub) - * - */ -inline static void arch_interrupts_enable(unsigned int not_used) -{ -} - -/*! - * \brief Disables global CPU interrupts. (stub) - * - */ -inline static unsigned int arch_interrupts_disable(void) -{ - return 0; -} - -/*! - * \brief Suspend execution of current CPU. - * - */ -inline static void arch_suspend(void) -{ -} - -#endif /* ARCH_HELPERS_H */ diff --git a/arch/none/host/include/arch_interrupt.h b/arch/none/host/include/arch_interrupt.h index 5827c50f104aa33afaedf13030165ffe6ce405dd..f8249793ba7aee8144b5249a3e053716e950245d 100644 --- a/arch/none/host/include/arch_interrupt.h +++ b/arch/none/host/include/arch_interrupt.h @@ -1,25 +1,36 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2020-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ -#ifndef ARCH_INTERRUPT_H -#define ARCH_INTERRUPT_H - -#include +#ifndef ARCH_HELPERS_H +#define ARCH_HELPERS_H /*! - * \brief Initialize the architecture interrupt management component. + * \brief Enables global CPU interrupts. (stub) * - * \param[out] Pointer to the interrupt driver. + */ +inline static void arch_interrupts_enable(unsigned int not_used) +{ +} + +/*! + * \brief Disables global CPU interrupts. (stub) * - * \retval ::FWK_E_PANIC The operation failed. - * \retval ::FWK_SUCCESS The operation succeeded. + */ +inline static unsigned int arch_interrupts_disable(void) +{ + return 0; +} + +/*! + * \brief Suspend execution of current CPU. * - * \return Status code representing the result of the operation. */ -int arch_interrupt_init(const struct fwk_arch_interrupt_driver **driver); +inline static void arch_suspend(void) +{ +} -#endif /* ARCH_INTERRUPT_H */ +#endif /* ARCH_HELPERS_H */ diff --git a/arch/none/host/src/arch_interrupt.c b/arch/none/host/src/arch_interrupt.c index 64aee4df362f5f6ddc06960cb8208f43e2ebc1fc..44570fffea2b43211ffe535fdf64275addd3b96c 100644 --- a/arch/none/host/src/arch_interrupt.c +++ b/arch/none/host/src/arch_interrupt.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -14,52 +14,52 @@ #include #include -static int global_enable(void) +int arch_interrupt_global_enable(void) { return FWK_E_SUPPORT; } -static int global_disable(void) +int arch_interrupt_global_disable(void) { return FWK_E_SUPPORT; } -static int is_enabled(unsigned int interrupt, bool *state) +int arch_interrupt_is_enabled(unsigned int interrupt, bool *state) { return FWK_E_SUPPORT; } -static int enable(unsigned int interrupt) +int arch_interrupt_enable(unsigned int interrupt) { return FWK_E_SUPPORT; } -static int disable(unsigned int interrupt) +int arch_interrupt_disable(unsigned int interrupt) { return FWK_E_SUPPORT; } -static int is_pending(unsigned int interrupt, bool *state) +int arch_interrupt_is_pending(unsigned int interrupt, bool *state) { return FWK_E_SUPPORT; } -static int set_pending(unsigned int interrupt) +int arch_interrupt_set_pending(unsigned int interrupt) { return FWK_E_SUPPORT; } -static int clear_pending(unsigned int interrupt) +int arch_interrupt_clear_pending(unsigned int interrupt) { return FWK_E_SUPPORT; } -static int set_isr_irq(unsigned int interrupt, void (*isr)(void)) +int arch_interrupt_set_isr_irq(unsigned int interrupt, void (*isr)(void)) { return FWK_E_SUPPORT; } -static int set_isr_irq_param( +int arch_interrupt_set_isr_irq_param( unsigned int interrupt, void (*isr)(uintptr_t param), uintptr_t parameter) @@ -67,54 +67,34 @@ static int set_isr_irq_param( return FWK_E_SUPPORT; } -static int set_isr_nmi(void (*isr)(void)) +int arch_interrupt_set_isr_nmi(void (*isr)(void)) { return FWK_E_SUPPORT; } -static int set_isr_nmi_param(void (*isr)(uintptr_t param), uintptr_t parameter) +int arch_interrupt_set_isr_nmi_param( + void (*isr)(uintptr_t param), + uintptr_t parameter) { return FWK_E_SUPPORT; } -static int set_isr_fault(void (*isr)(void)) +int arch_interrupt_set_isr_fault(void (*isr)(void)) { return FWK_E_SUPPORT; } -static int get_current(unsigned int *interrupt) +int arch_interrupt_get_current(unsigned int *interrupt) { return FWK_E_SUPPORT; } -static bool is_interrupt_context(void) +bool arch_interrupt_is_interrupt_context(void) { return false; } -static const struct fwk_arch_interrupt_driver driver = { - .global_enable = global_enable, - .global_disable = global_disable, - .is_enabled = is_enabled, - .enable = enable, - .disable = disable, - .is_pending = is_pending, - .set_pending = set_pending, - .clear_pending = clear_pending, - .set_isr_irq = set_isr_irq, - .set_isr_irq_param = set_isr_irq_param, - .set_isr_nmi = set_isr_nmi, - .set_isr_nmi_param = set_isr_nmi_param, - .set_isr_fault = set_isr_fault, - .get_current = get_current, - .is_interrupt_context = is_interrupt_context, -}; - -int arch_interrupt_init(const struct fwk_arch_interrupt_driver **_driver) -{ - if (_driver == NULL) - return FWK_E_PARAM; - - *_driver = &driver; +int arch_interrupt_init() +{ return FWK_SUCCESS; } diff --git a/arch/none/host/src/arch_main.c b/arch/none/host/src/arch_main.c index c17b325966cc60cca91440c8ee9cc1b535a58d0d..376b847791b4f06f6b624fc97e7470fe1b34a868 100644 --- a/arch/none/host/src/arch_main.c +++ b/arch/none/host/src/arch_main.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2021, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -23,15 +23,11 @@ static noreturn void panic(void) exit(1); } -static const struct fwk_arch_init_driver arch_init_driver = { - .interrupt = arch_interrupt_init, -}; - int main(void) { int status; - status = fwk_arch_init(&arch_init_driver); + status = fwk_arch_init(); if (status != FWK_SUCCESS) panic(); } diff --git a/arch/none/optee/include/arch_helpers.h b/arch/none/optee/include/arch_helpers.h deleted file mode 100644 index ab3526fa714ab0d92c37c57d0f7c7b7daba4aeb9..0000000000000000000000000000000000000000 --- a/arch/none/optee/include/arch_helpers.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Arm SCP/MCP Software - * Copyright (c) 2022, Linaro Limited and Contributors. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#ifndef ARCH_HELPERS_H -#define ARCH_HELPERS_H - -/*! - * \brief Enables global CPU interrupts. (stub) - * - */ -inline static void arch_interrupts_enable(unsigned int not_used) -{ -} - -/*! - * \brief Disables global CPU interrupts. (stub) - * - */ -inline static unsigned int arch_interrupts_disable(void) -{ - return 0; -} - -/*! - * \brief Suspend execution of current CPU. - * - */ -inline static void arch_suspend(void) -{ -} - -#endif /* ARCH_HELPERS_H */ diff --git a/arch/none/optee/include/arch_interrupt.h b/arch/none/optee/include/arch_interrupt.h index 372a60fef8c15eb96cac678b7e71210620b48365..5d430204bd106e87bfa21e3bccca0363c5f48472 100644 --- a/arch/none/optee/include/arch_interrupt.h +++ b/arch/none/optee/include/arch_interrupt.h @@ -1,14 +1,38 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2022-2025, Linaro Limited and Contributors. All rights + * reserved. * * SPDX-License-Identifier: BSD-3-Clause */ -#ifndef ARCH_INTERRUPT_H -#define ARCH_INTERRUPT_H +#ifndef ARCH_HELPERS_H +#define ARCH_HELPERS_H -#include +/*! + * \brief Enables global CPU interrupts. (stub) + * + */ +inline static void arch_interrupts_enable(unsigned int not_used) +{ +} + +/*! + * \brief Disables global CPU interrupts. (stub) + * + */ +inline static unsigned int arch_interrupts_disable(void) +{ + return 0; +} + +/*! + * \brief Suspend execution of current CPU. + * + */ +inline static void arch_suspend(void) +{ +} /*! * \brief Initialize the architecture interrupt management component. @@ -20,6 +44,5 @@ * * \return Status code representing the result of the operation. */ -int arch_interrupt_init(const struct fwk_arch_interrupt_driver **driver); -#endif /* ARCH_INTERRUPT_H */ +#endif /* ARCH_HELPERS_H */ diff --git a/arch/none/optee/src/arch_interrupt.c b/arch/none/optee/src/arch_interrupt.c index 362bf19b2d35615e9f2c13f8b1370bdb675e0cf5..4fa0404c723245230e02588874ea6ded8c21195f 100644 --- a/arch/none/optee/src/arch_interrupt.c +++ b/arch/none/optee/src/arch_interrupt.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -11,57 +11,57 @@ #include #include +#include + #include #include -#include - -static int global_enable(void) +int arch_interrupt_global_enable(void) { return FWK_E_SUPPORT; } -static int global_disable(void) +int arch_interrupt_global_disable(void) { return FWK_E_SUPPORT; } -static int is_enabled(unsigned int interrupt, bool *state) +int arch_interrupt_is_enabled(unsigned int interrupt, bool *state) { return FWK_E_SUPPORT; } -static int enable(unsigned int interrupt) +int arch_interrupt_enable(unsigned int interrupt) { return FWK_E_SUPPORT; } -static int disable(unsigned int interrupt) +int arch_interrupt_disable(unsigned int interrupt) { return FWK_E_SUPPORT; } -static int is_pending(unsigned int interrupt, bool *state) +int arch_interrupt_is_pending(unsigned int interrupt, bool *state) { return FWK_E_SUPPORT; } -static int set_pending(unsigned int interrupt) +int arch_interrupt_set_pending(unsigned int interrupt) { return FWK_E_SUPPORT; } -static int clear_pending(unsigned int interrupt) +int arch_interrupt_clear_pending(unsigned int interrupt) { return FWK_E_SUPPORT; } -static int set_isr_irq(unsigned int interrupt, void (*isr)(void)) +int arch_interrupt_set_isr_irq(unsigned int interrupt, void (*isr)(void)) { return FWK_E_SUPPORT; } -static int set_isr_irq_param( +int arch_interrupt_set_isr_irq_param( unsigned int interrupt, void (*isr)(uintptr_t param), uintptr_t parameter) @@ -69,54 +69,34 @@ static int set_isr_irq_param( return FWK_E_SUPPORT; } -static int set_isr_nmi(void (*isr)(void)) +int arch_interrupt_set_isr_nmi(void (*isr)(void)) { return FWK_E_SUPPORT; } -static int set_isr_nmi_param(void (*isr)(uintptr_t param), uintptr_t parameter) +int arch_interrupt_set_isr_nmi_param( + void (*isr)(uintptr_t param), + uintptr_t parameter) { return FWK_E_SUPPORT; } -static int set_isr_fault(void (*isr)(void)) +int arch_interrupt_set_isr_fault(void (*isr)(void)) { return FWK_E_SUPPORT; } -static int get_current(unsigned int *interrupt) +int arch_interrupt_get_current(unsigned int *interrupt) { return FWK_E_SUPPORT; } -static bool is_interrupt_context(void) +bool arch_interrupt_is_interrupt_context(void) { return false; } -static const struct fwk_arch_interrupt_driver driver = { - .global_enable = global_enable, - .global_disable = global_disable, - .is_enabled = is_enabled, - .enable = enable, - .disable = disable, - .is_pending = is_pending, - .set_pending = set_pending, - .clear_pending = clear_pending, - .set_isr_irq = set_isr_irq, - .set_isr_irq_param = set_isr_irq_param, - .set_isr_nmi = set_isr_nmi, - .set_isr_nmi_param = set_isr_nmi_param, - .set_isr_fault = set_isr_fault, - .get_current = get_current, - .is_interrupt_context = is_interrupt_context, -}; - -int arch_interrupt_init(const struct fwk_arch_interrupt_driver **_driver) -{ - if (_driver == NULL) - return FWK_E_PARAM; - - *_driver = &driver; +int arch_interrupt_init() +{ return FWK_SUCCESS; } diff --git a/arch/none/optee/src/arch_main.c b/arch/none/optee/src/arch_main.c index 5ae2cb863b277dcc7343ac8be8822958fd0da477..7d3e034c031b4d8aeedcffa8f9341c9738af031d 100644 --- a/arch/none/optee/src/arch_main.c +++ b/arch/none/optee/src/arch_main.c @@ -1,38 +1,35 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2022-2023, Linaro Limited and Contributors. All rights reserved. + * Copyright (c) 2022-2025, Linaro Limited and Contributors. All rights + * reserved. * * SPDX-License-Identifier: BSD-3-Clause */ +#include + +#include + #include #include #include #include #include #include -#include +#include +#include + +#include #include #include #include #include -#include - -#include - -#include -#include - -static const struct fwk_arch_init_driver scmi_init_driver = { - .interrupt = arch_interrupt_init, -}; - int scmi_arch_init(void) { int status; - status = fwk_arch_init(&scmi_init_driver); + status = fwk_arch_init(); fwk_log_flush(); diff --git a/framework/include/fwk_arch.h b/framework/include/fwk_arch.h index 6aa0b1b23075adad18dee8ebd901a130d3f23823..1522551724b34c7db50268d8adacc6da3202178f 100644 --- a/framework/include/fwk_arch.h +++ b/framework/include/fwk_arch.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2023, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -26,189 +26,172 @@ */ /*! - * \brief Interrupt driver interface. - * - * \details The interrupt driver interface allows the framework to provide - * architecture-specific handling of the system interrupts. - */ -struct fwk_arch_interrupt_driver { - /*! - * \brief Enable interrupts. - * - * \retval ::FWK_SUCCESS Operation succeeded. - */ - int (*global_enable)(void); - - /*! - * \brief Disable interrupts. - * - * \retval ::FWK_SUCCESS Operation succeeded. - */ - int (*global_disable)(void); - - /*! - * \brief Test whether an interrupt is enabled. - * - * \param interrupt Interrupt number. - * \param [out] enabled \c true if the interrupt is enabled, else \c false. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*is_enabled)(unsigned int interrupt, bool *enabled); - - /*! - * \brief Enable an interrupt. - * - * \param interrupt Interrupt number. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*enable)(unsigned int interrupt); - - /*! - * \brief Disable an interrupt. - * - * \param interrupt Interrupt number. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*disable)(unsigned int interrupt); - - /*! - * \brief Check if an interrupt is pending. - * - * \param interrupt Interrupt number. - * \param [out] pending \c true if the interrupt is pending, else \c false. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*is_pending)(unsigned int interrupt, bool *pending); - - /*! - * \brief Set an interrupt as pending. - * - * \param interrupt Interrupt number. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*set_pending)(unsigned int interrupt); - - /*! - * \brief Clear a pending interrupt. - * - * \param interrupt Interrupt number. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*clear_pending)(unsigned int interrupt); - - /*! - * \brief Set an IRQ interrupt service routine. - * - * \param interrupt Interrupt number. - * \param isr Pointer to the interrupt service routine function. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*set_isr_irq)(unsigned int interrupt, void (*isr)(void)); - - /*! - * \brief Set an IRQ interrupt service routine that should receive a - * parameter. - * - * \param interrupt Interrupt number. - * \param isr Pointer to the interrupt service routine function. - * \param parameter Parameter that should be passed to the isr function. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*set_isr_irq_param)(unsigned int interrupt, - void (*isr)(uintptr_t param), - uintptr_t parameter); - - /*! - * \brief Set the interrupt service routine for the non-maskable interrupt - * (NMI). - * - * \param isr Pointer to the NMI interrupt service routine function. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*set_isr_nmi)(void (*isr)(void)); - - /*! - * \brief Set the interrupt service routine for the non-maskable interrupt - * (NMI) that should receive a parameter. - * - * \param isr Pointer to the NMI interrupt service routine function. - * \param parameter Parameter that should be passed to the isr function. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*set_isr_nmi_param)(void (*isr)(uintptr_t param), uintptr_t parameter); - - /*! - * \brief Set the fault interrupt service routine. - * - * \param isr Pointer to the fault interrupt service routine function. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ - int (*set_isr_fault)(void (*isr)(void)); - - /*! - * \brief Get the interrupt number for the current interrupt service routine - * being processed. - * - * \param [out] interrupt Interrupt number. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - * \retval ::FWK_E_STATE An interrupt is not currently being serviced. - */ - int (*get_current)(unsigned int *interrupt); - - /*! - * \brief Check if in interrupt context. - * - * \retval true if in an interrupt context. - * \retval false not in an interrupt context. - */ - bool (*is_interrupt_context)(void); -}; - -/*! - * \brief Initialization driver interface. - * - * \details The initialization driver interface allows the framework to request - * low-level (architecture-specific) initialization. - */ -struct fwk_arch_init_driver { - /*! - * \brief Interrupt driver initialization. - * - * \details This handler is used by the framework library to request the - * interrupt driver. - * - * \param [out] driver Pointer to an interrupt driver. - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM The parameter received by the handler is invalid. - * \retval ::FWK_E_PANIC Unrecoverable initialization error. - */ - int (*interrupt)(const struct fwk_arch_interrupt_driver **driver); -}; + * \brief Initialize the architecture interrupt management component. + * + * \retval ::FWK_E_PANIC The operation failed. + * \retval ::FWK_SUCCESS The operation succeeded. + * + * \return Status code representing the result of the operation. + */ +int arch_interrupt_init(void); + +/*! + * \brief Enable interrupts. + * + * \retval ::FWK_SUCCESS Operation succeeded. + */ +int arch_interrupt_global_enable(void); + +/*! + * \brief Disable interrupts. + * + * \retval ::FWK_SUCCESS Operation succeeded. + */ +int arch_interrupt_global_disable(void); + +/*! + * \brief Test whether an interrupt is enabled. + * + * \param interrupt Interrupt number. + * \param [out] enabled \c true if the interrupt is enabled, else \c false. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_is_enabled(unsigned int interrupt, bool *enabled); + +/*! + * \brief Enable an interrupt. + * + * \param interrupt Interrupt number. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_enable(unsigned int interrupt); + +/*! + * \brief Disable an interrupt. + * + * \param interrupt Interrupt number. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_disable(unsigned int interrupt); + +/*! + * \brief Check if an interrupt is pending. + * + * \param interrupt Interrupt number. + * \param [out] pending \c true if the interrupt is pending, else \c false. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_is_pending(unsigned int interrupt, bool *pending); + +/*! + * \brief Set an interrupt as pending. + * + * \param interrupt Interrupt number. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_set_pending(unsigned int interrupt); + +/*! + * \brief Clear a pending interrupt. + * + * \param interrupt Interrupt number. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_clear_pending(unsigned int interrupt); + +/*! + * \brief Set an IRQ interrupt service routine. + * + * \param interrupt Interrupt number. + * \param isr Pointer to the interrupt service routine function. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_set_isr_irq(unsigned int interrupt, void (*isr)(void)); + +/*! + * \brief Set an IRQ interrupt service routine that should receive a + * parameter. + * + * \param interrupt Interrupt number. + * \param isr Pointer to the interrupt service routine function. + * \param parameter Parameter that should be passed to the isr function. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_set_isr_irq_param( + unsigned int interrupt, + void (*isr)(uintptr_t param), + uintptr_t parameter); + +/*! + * \brief Set the interrupt service routine for the non-maskable interrupt + * (NMI). + * + * \param isr Pointer to the NMI interrupt service routine function. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_set_isr_nmi(void (*isr)(void)); + +/*! + * \brief Set the interrupt service routine for the non-maskable interrupt + * (NMI) that should receive a parameter. + * + * \param isr Pointer to the NMI interrupt service routine function. + * \param parameter Parameter that should be passed to the isr function. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_set_isr_nmi_param( + void (*isr)(uintptr_t param), + uintptr_t parameter); + +/*! + * \brief Set the fault interrupt service routine. + * + * \param isr Pointer to the fault interrupt service routine function. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + */ +int arch_interrupt_set_isr_fault(void (*isr)(void)); + +/*! + * \brief Get the interrupt number for the current interrupt service routine + * being processed. + * + * \param [out] interrupt Interrupt number. + * + * \retval ::FWK_SUCCESS Operation succeeded. + * \retval ::FWK_E_PARAM One or more parameters were invalid. + * \retval ::FWK_E_STATE An interrupt is not currently being serviced. + */ +int arch_interrupt_get_current(unsigned int *interrupt); + +/*! + * \brief Check if in interrupt context. + * + * \retval true if in an interrupt context. + * \retval false not in an interrupt context. + */ +bool arch_interrupt_is_interrupt_context(void); /*! * \brief Initialize the framework library. @@ -220,7 +203,7 @@ struct fwk_arch_init_driver { * \retval ::FWK_E_PARAM One or more parameters were invalid. * \retval ::FWK_E_PANIC Unrecoverable initialization error. */ -int fwk_arch_init(const struct fwk_arch_init_driver *driver); +int fwk_arch_init(); /*! * \brief Stop the framework library. diff --git a/framework/include/fwk_interrupt.h b/framework/include/fwk_interrupt.h index 2c0a2af27cbce679689992b71fea5a64ef0c792d..0c47c8aa803ba31d066b47374feeb7bfacb3c092 100644 --- a/framework/include/fwk_interrupt.h +++ b/framework/include/fwk_interrupt.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -15,9 +15,7 @@ #include #include -#if FWK_HAS_INCLUDE() -# include -#endif +#include #include #include @@ -64,16 +62,6 @@ */ #define FWK_INTERRUPT_EXCEPTION (UINT_MAX - 2) -/*! - * \brief Register interrupt driver in the framework. - * - * \param driver Interrupt driver instance to register - * - * \retval ::FWK_SUCCESS Operation succeeded. - * \retval ::FWK_E_PARAM One or more parameters were invalid. - */ -int fwk_interrupt_init(const struct fwk_arch_interrupt_driver *driver); - /*! * \brief Enable interrupts. * @@ -94,6 +82,7 @@ inline static unsigned int fwk_interrupt_global_disable(void) return arch_interrupts_disable(); } +int fwk_arch_interrupt_init(); /*! * \brief Test whether an interrupt is enabled. * diff --git a/framework/include/fwk_module.h b/framework/include/fwk_module.h index 89abe86f669e46a93e047917351e3906ffc8eebc..3663e887a813dc9ca413c968844143f3a4d83359 100644 --- a/framework/include/fwk_module.h +++ b/framework/include/fwk_module.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * diff --git a/framework/src/fwk_arch.c b/framework/src/fwk_arch.c index bc5eb0e8b1fca56649846f227fac67ee3e1e5fa7..a30c2107c36394e73b04dd2aa50a4d5ca64c8842 100644 --- a/framework/src/fwk_arch.c +++ b/framework/src/fwk_arch.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2023, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -12,7 +12,7 @@ #include #include -#include +#include #if FWK_HAS_INCLUDE() # include @@ -20,6 +20,7 @@ #include +#include #include #include #include @@ -28,45 +29,10 @@ #include -extern int fwk_interrupt_init(const struct fwk_arch_interrupt_driver *driver); - -static int fwk_arch_interrupt_init(int (*interrupt_init_handler)( - const struct fwk_arch_interrupt_driver **driver)) -{ - /* Initialize interrupt management */ - int status; - const struct fwk_arch_interrupt_driver *driver; - - /* - * Retrieve a pointer to the interrupt management driver from the - * architecture layer. - */ - status = interrupt_init_handler(&driver); - if (status != FWK_SUCCESS) { - return FWK_E_PANIC; - } - - /* Initialize the interrupt management component */ - status = fwk_interrupt_init(driver); - if (status != FWK_SUCCESS) { - return FWK_E_PANIC; - } - - return FWK_SUCCESS; -} - -int fwk_arch_init(const struct fwk_arch_init_driver *driver) +int fwk_arch_init() { int status; - if (driver == NULL) { - return FWK_E_PARAM; - } - - if (driver->interrupt == NULL) { - return FWK_E_PARAM; - } - fwk_module_init(); status = fwk_io_init(); @@ -80,7 +46,7 @@ int fwk_arch_init(const struct fwk_arch_init_driver *driver) } /* Initialize interrupt management */ - status = fwk_arch_interrupt_init(driver->interrupt); + status = fwk_arch_interrupt_init(); if (!fwk_expect(status == FWK_SUCCESS)) { return FWK_E_PANIC; } diff --git a/framework/src/fwk_interrupt.c b/framework/src/fwk_interrupt.c index 4f8730f30b08bf37da1f5898ee6dc6e421fc6612..eee73352a7fc9b27a6a4b799689af9863f16f4e7 100644 --- a/framework/src/fwk_interrupt.c +++ b/framework/src/fwk_interrupt.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -14,143 +14,61 @@ #include #include -#include -#include +#include -static bool initialized; -static const struct fwk_arch_interrupt_driver *fwk_interrupt_driver; - -int fwk_interrupt_init(const struct fwk_arch_interrupt_driver *driver) +int fwk_arch_interrupt_init() { - /* Validate driver by checking that all function pointers are non-null */ - if (driver == NULL) { - return FWK_E_PARAM; - } - if (driver->global_enable == NULL) { - return FWK_E_PARAM; - } - if (driver->global_disable == NULL) { - return FWK_E_PARAM; - } - if (driver->is_enabled == NULL) { - return FWK_E_PARAM; - } - if (driver->enable == NULL) { - return FWK_E_PARAM; - } - if (driver->disable == NULL) { - return FWK_E_PARAM; - } - if (driver->is_pending == NULL) { - return FWK_E_PARAM; - } - if (driver->set_pending == NULL) { - return FWK_E_PARAM; - } - if (driver->clear_pending == NULL) { - return FWK_E_PARAM; - } - if (driver->set_isr_irq == NULL) { - return FWK_E_PARAM; - } - if (driver->set_isr_irq_param == NULL) { - return FWK_E_PARAM; - } - if (driver->set_isr_nmi == NULL) { - return FWK_E_PARAM; - } - if (driver->set_isr_nmi_param == NULL) { - return FWK_E_PARAM; - } - if (driver->set_isr_fault == NULL) { - return FWK_E_PARAM; - } - if (driver->get_current == NULL) { - return FWK_E_PARAM; - } - - fwk_interrupt_driver = driver; - initialized = true; - - return FWK_SUCCESS; + return arch_interrupt_init(); } int fwk_interrupt_is_enabled(unsigned int interrupt, bool *enabled) { - if (!initialized) { - return FWK_E_INIT; - } - if (enabled == NULL) { return FWK_E_PARAM; } - return fwk_interrupt_driver->is_enabled(interrupt, enabled); + return arch_interrupt_is_enabled(interrupt, enabled); } int fwk_interrupt_enable(unsigned int interrupt) { - if (!initialized) { - return FWK_E_INIT; - } - - return fwk_interrupt_driver->enable(interrupt); + return arch_interrupt_enable(interrupt); } int fwk_interrupt_disable(unsigned int interrupt) { - if (!initialized) { - return FWK_E_INIT; - } - - return fwk_interrupt_driver->disable(interrupt); + return arch_interrupt_disable(interrupt); } int fwk_interrupt_is_pending(unsigned int interrupt, bool *pending) { - if (!initialized) { - return FWK_E_INIT; - } - if (pending == NULL) { return FWK_E_PARAM; } - return fwk_interrupt_driver->is_pending(interrupt, pending); + return arch_interrupt_is_pending(interrupt, pending); } int fwk_interrupt_set_pending(unsigned int interrupt) { - if (!initialized) { - return FWK_E_INIT; - } - - return fwk_interrupt_driver->set_pending(interrupt); + return arch_interrupt_set_pending(interrupt); } int fwk_interrupt_clear_pending(unsigned int interrupt) { - if (!initialized) { - return FWK_E_INIT; - } - - return fwk_interrupt_driver->clear_pending(interrupt); + return arch_interrupt_clear_pending(interrupt); } int fwk_interrupt_set_isr(unsigned int interrupt, void (*isr)(void)) { - if (!initialized) { - return FWK_E_INIT; - } - if (isr == NULL) { return FWK_E_PARAM; } if (interrupt == FWK_INTERRUPT_NMI) { - return fwk_interrupt_driver->set_isr_nmi(isr); + return arch_interrupt_set_isr_nmi(isr); } else { - return fwk_interrupt_driver->set_isr_irq(interrupt, isr); + return arch_interrupt_set_isr_irq(interrupt, isr); } } @@ -158,53 +76,37 @@ int fwk_interrupt_set_isr_param(unsigned int interrupt, void (*isr)(uintptr_t param), uintptr_t param) { - if (!initialized) { - return FWK_E_INIT; - } - if (isr == NULL) { return FWK_E_PARAM; } if (interrupt == FWK_INTERRUPT_NMI) { - return fwk_interrupt_driver->set_isr_nmi_param(isr, param); + return arch_interrupt_set_isr_nmi_param(isr, param); } else { - return fwk_interrupt_driver->set_isr_irq_param(interrupt, isr, param); + return arch_interrupt_set_isr_irq_param(interrupt, isr, param); } } int fwk_interrupt_get_current(unsigned int *interrupt) { - if (!initialized) { - return FWK_E_INIT; - } - if (interrupt == NULL) { return FWK_E_PARAM; } - return fwk_interrupt_driver->get_current(interrupt); + return arch_interrupt_get_current(interrupt); } bool fwk_is_interrupt_context(void) { - if (!initialized) { - return false; - } - - return fwk_interrupt_driver->is_interrupt_context(); + return arch_interrupt_is_interrupt_context(); } /* This function is only for internal use by the framework */ int fwk_interrupt_set_isr_fault(void (*isr)(void)) { - if (!initialized) { - return FWK_E_INIT; - } - if (isr == NULL) { return FWK_E_PARAM; } - return fwk_interrupt_driver->set_isr_fault(isr); + return arch_interrupt_set_isr_fault(isr); } diff --git a/framework/test/CMakeLists.txt b/framework/test/CMakeLists.txt index f0b2d8ae228261bfea9c1ea2d2d8faa630605ff1..023c5d5b4262bef5380a9f659e27a50cb7ad36dc 100644 --- a/framework/test/CMakeLists.txt +++ b/framework/test/CMakeLists.txt @@ -134,6 +134,7 @@ list(APPEND COMMON_SRC ${FWK_SRC_ROOT}/fwk_delayed_resp.c) list(APPEND COMMON_SRC ${FWK_SRC_ROOT}/fwk_time.c) list(APPEND COMMON_SRC ${FWK_SRC_ROOT}/fwk_trace.c) list(APPEND COMMON_SRC ${FWK_SRC_ROOT}/fwk_status.c) +list(APPEND COMMON_SRC ${FWK_TEST_ROOT}/interrupt_functions.c) # CMake internal function enables testing for this directory enable_testing() diff --git a/framework/test/fwk_test.c b/framework/test/fwk_test.c index cd3eb3bf017a38c60bcc43ad90bc9b7087e3f97a..2cb15a086257b5524aacfd754a7c81d4c927b9fb 100644 --- a/framework/test/fwk_test.c +++ b/framework/test/fwk_test.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -18,7 +18,7 @@ /* * This variable is used by arm architecture to ensure spurious nested calls * won't enable interrupts. This is been accessed from inline function defined - * in arch_helpers.h + * in arch_interrupt.h */ unsigned int critical_section_nest_level; diff --git a/framework/test/arch_helpers.h b/framework/test/include/arch_interrupt.h similarity index 89% rename from framework/test/arch_helpers.h rename to framework/test/include/arch_interrupt.h index 2c4de70966021cef2cc6523471011cc57e25c70d..b298229c27d34dce22963e0bbf1774e67fd03775 100644 --- a/framework/test/arch_helpers.h +++ b/framework/test/include/arch_interrupt.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2022-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -11,6 +11,7 @@ * This variable is used to ensure spurious nested calls won't * enable interrupts. This is been defined in fwk_test.c */ + extern unsigned int critical_section_nest_level; /*! @@ -44,4 +45,6 @@ inline static void arch_suspend(void) { } +int arch_interrupt_init(); + #endif /* ARCH_HELPERS_H */ diff --git a/framework/test/fwk_module_idx.h b/framework/test/include/fwk_module_idx.h similarity index 100% rename from framework/test/fwk_module_idx.h rename to framework/test/include/fwk_module_idx.h diff --git a/framework/test/fwk_test.h b/framework/test/include/fwk_test.h similarity index 100% rename from framework/test/fwk_test.h rename to framework/test/include/fwk_test.h diff --git a/framework/test/include/interrupt_functions.h b/framework/test/include/interrupt_functions.h new file mode 100644 index 0000000000000000000000000000000000000000..05f44c070e96b6be09d3eedc791759ec2d1c1548 --- /dev/null +++ b/framework/test/include/interrupt_functions.h @@ -0,0 +1,33 @@ +/* + * Arm SCP/MCP Software + * Copyright (c) 2025, Arm Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef INTERRUPT_FUNCTIONS_H_ +#define INTERRUPT_FUNCTIONS_H_ + +#include + +#include + +extern int init_return_val; +extern int is_enabled_return_val; +extern int enable_return_val; +extern int disable_return_val; +extern int is_pending_return_val; +extern int set_pending_return_val; +extern int clear_pending_return_val; +extern int set_isr_return_val; +extern int set_isr_param_return_val; +extern int set_isr_nmi_return_val; +extern int set_isr_nmi_param_return_val; +extern int set_isr_fault_return_val; +extern int get_current_return_val; + +void fake_isr(void); +void fake_isr_param(uintptr_t param); +void test_case_setup(void); + +#endif /* INTERRUPT_FUNCTIONS_H_ */ diff --git a/framework/test/test_fwk_module_module_idx.h b/framework/test/include/test_fwk_module_module_idx.h similarity index 100% rename from framework/test/test_fwk_module_module_idx.h rename to framework/test/include/test_fwk_module_module_idx.h diff --git a/framework/test/interrupt_functions.c b/framework/test/interrupt_functions.c new file mode 100644 index 0000000000000000000000000000000000000000..c60d81b9145bdf98ebb514c85616621024e627fc --- /dev/null +++ b/framework/test/interrupt_functions.c @@ -0,0 +1,139 @@ +/* + * Arm SCP/MCP Software + * Copyright (c) 2025, Arm Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include "interrupt_functions.h" + +#include + +#include +#include +#include +#include +#include +#include + +#include + +int init_return_val; +int is_enabled_return_val; +int enable_return_val; +int disable_return_val; +int is_pending_return_val; +int set_pending_return_val; +int clear_pending_return_val; +int set_isr_return_val; +int set_isr_param_return_val; +int set_isr_nmi_return_val; +int set_isr_nmi_param_return_val; +int set_isr_fault_return_val; +int get_current_return_val; + +void fake_isr(void) +{ + return; +} + +void fake_isr_param(uintptr_t param) +{ + return; +} + +int arch_interrupt_init(void) +{ + return init_return_val; +} + +int arch_interrupt_global_enable(void) +{ + return FWK_SUCCESS; +} + +int arch_interrupt_global_disable(void) +{ + return FWK_SUCCESS; +} + +int arch_interrupt_is_enabled(unsigned int interrupt, bool *state) +{ + return is_enabled_return_val; +} + +int arch_interrupt_enable(unsigned int interrupt) +{ + return enable_return_val; +} + +int arch_interrupt_disable(unsigned int interrupt) +{ + return disable_return_val; +} + +int arch_interrupt_is_pending(unsigned int interrupt, bool *state) +{ + return is_pending_return_val; +} + +int arch_interrupt_set_pending(unsigned int interrupt) +{ + return set_pending_return_val; +} + +int arch_interrupt_clear_pending(unsigned int interrupt) +{ + return clear_pending_return_val; +} + +int arch_interrupt_set_isr(unsigned int interrupt, void (*isr)(void)) +{ + return set_isr_return_val; +} + +int arch_interrupt_set_isr_param( + unsigned int interrupt, + void (*isr)(uintptr_t p), + uintptr_t p) +{ + return set_isr_param_return_val; +} + +int arch_interrupt_set_isr_nmi(void (*isr)(void)) +{ + return set_isr_nmi_return_val; +} + +int arch_interrupt_set_isr_irq(unsigned int interrupt, void (*isr)(void)) +{ + return set_isr_return_val; +} + +int arch_interrupt_set_isr_irq_param( + unsigned int interrupt, + void (*isr)(uintptr_t param), + uintptr_t parameter) +{ + return set_isr_param_return_val; +} + +int arch_interrupt_set_isr_nmi_param(void (*isr)(uintptr_t p), uintptr_t p) +{ + return set_isr_nmi_param_return_val; +} + +int arch_interrupt_set_isr_fault(void (*isr)(void)) +{ + return set_isr_fault_return_val; +} + +int arch_interrupt_get_current(unsigned int *interrupt) +{ + return get_current_return_val; +} + +bool arch_interrupt_is_interrupt_context(void) +{ + return (get_current_return_val == FWK_SUCCESS); +} diff --git a/framework/test/test_fwk_interrupt.c b/framework/test/test_fwk_interrupt.c index b6395c65e5378cbe3c532f6de3a6803c5c8775e1..0b058dcd61d7ab0befaf369b4a1d34f841661dea 100644 --- a/framework/test/test_fwk_interrupt.c +++ b/framework/test/test_fwk_interrupt.c @@ -1,9 +1,11 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ +#include "interrupt_functions.h" + #include #include @@ -14,135 +16,17 @@ #include #include -#include +#include #define INTERRUPT_ID 42 /* * Variables for the mock functions */ -static int is_enabled_return_val; -static int enable_return_val; -static int disable_return_val; -static int is_pending_return_val; -static int set_pending_return_val; -static int clear_pending_return_val; -static int set_isr_return_val; -static int set_isr_param_return_val; -static int set_isr_nmi_return_val; -static int set_isr_nmi_param_return_val; -static int set_isr_fault_return_val; -static int get_current_return_val; - -static void fake_isr(void) -{ - return; -} - -static void fake_isr_param(uintptr_t param) -{ - return; -} - -static int global_enable(void) -{ - return FWK_SUCCESS; -} - -static int global_disable(void) -{ - return FWK_SUCCESS; -} - -static int is_enabled(unsigned int interrupt, bool *state) -{ - return is_enabled_return_val; -} - -static int enable(unsigned int interrupt) -{ - return enable_return_val; -} - -static int disable(unsigned int interrupt) -{ - return disable_return_val; -} - -static int is_pending(unsigned int interrupt, bool *state) -{ - return is_pending_return_val; -} - -static int set_pending(unsigned int interrupt) -{ - return set_pending_return_val; -} - -static int clear_pending(unsigned int interrupt) -{ - return clear_pending_return_val; -} - -static int set_isr(unsigned int interrupt, void (*isr)(void)) -{ - return set_isr_return_val; -} - -static int set_isr_param(unsigned int interrupt, - void (*isr)(uintptr_t p), - uintptr_t p) -{ - return set_isr_param_return_val; -} - -static int set_isr_nmi(void (*isr)(void)) -{ - return set_isr_nmi_return_val; -} - -static int set_isr_nmi_param(void (*isr)(uintptr_t p), uintptr_t p) -{ - return set_isr_nmi_param_return_val; -} - -static int set_isr_fault(void (*isr)(void)) -{ - return set_isr_fault_return_val; -} - -static int get_current(unsigned int *interrupt) -{ - return get_current_return_val; -} -static bool is_interrupt_context(void) -{ - return (get_current_return_val == FWK_SUCCESS); -} - -static const struct fwk_arch_interrupt_driver driver = { - .global_enable = global_enable, - .global_disable = global_disable, - .is_enabled = is_enabled, - .enable = enable, - .disable = disable, - .is_pending = is_pending, - .set_pending = set_pending, - .clear_pending = clear_pending, - .set_isr_irq = set_isr, - .set_isr_irq_param = set_isr_param, - .set_isr_nmi = set_isr_nmi, - .set_isr_nmi_param = set_isr_nmi_param, - .set_isr_fault = set_isr_fault, - .get_current = get_current, - .is_interrupt_context = is_interrupt_context, -}; - -static const struct fwk_arch_interrupt_driver driver_invalid = {}; - -static void test_case_setup(void) +void test_case_setup(void) { + init_return_val = FWK_E_HANDLER; is_enabled_return_val = FWK_E_HANDLER; enable_return_val = FWK_E_HANDLER; disable_return_val = FWK_E_HANDLER; @@ -157,58 +41,12 @@ static void test_case_setup(void) get_current_return_val = FWK_E_HANDLER; } -static void test_fwk_interrupt_before_init(void) -{ - int result; - unsigned int interrupt = 1; - bool state; - - result = fwk_interrupt_is_enabled(interrupt, &state); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_enable(interrupt); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_disable(interrupt); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_is_pending(interrupt, &state); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_set_pending(interrupt); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_clear_pending(interrupt); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_set_isr(interrupt, fake_isr); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_set_isr_param(interrupt, fake_isr_param, 0); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_set_isr_fault(fake_isr); - assert(result == FWK_E_INIT); - - result = fwk_interrupt_get_current(&interrupt); - assert(result == FWK_E_INIT); - - state = fwk_is_interrupt_context(); - assert(state == false); -} - static void test_fwk_interrupt_init(void) { int result; - result = fwk_interrupt_init(NULL); - assert(result == FWK_E_PARAM); - - /* Driver has NULL value */ - result = fwk_interrupt_init(&driver_invalid); - assert(result == FWK_E_PARAM); - - result = fwk_interrupt_init(&driver); + init_return_val = FWK_SUCCESS; + result = fwk_arch_interrupt_init(); assert(result == FWK_SUCCESS); } @@ -367,7 +205,6 @@ static void test_fwk_interrupt_nested_critical_section(void) } static const struct fwk_test_case_desc test_case_table[] = { - FWK_TEST_CASE(test_fwk_interrupt_before_init), FWK_TEST_CASE(test_fwk_interrupt_init), FWK_TEST_CASE(test_fwk_interrupt_critical_section), FWK_TEST_CASE(test_fwk_interrupt_is_enabled), diff --git a/module/armv8r_mpu/src/armv8r_mpu_reg.c b/module/armv8r_mpu/src/armv8r_mpu_reg.c index 0e45448a1aaa67b932497b78ef03eb85b4927d0a..ab9623883bb69e42118ea78c2abc1cab8bec799c 100644 --- a/module/armv8r_mpu/src/armv8r_mpu_reg.c +++ b/module/armv8r_mpu/src/armv8r_mpu_reg.c @@ -1,13 +1,13 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2024-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include -#include +#include #include uint64_t read_mair_el2(void) diff --git a/product/rcar/module/rcar_arch_timer/src/mod_rcar_arch_timer.c b/product/rcar/module/rcar_arch_timer/src/mod_rcar_arch_timer.c index ad3d687cb62499fde7041bfb451237697c9e08aa..c532803b720e3bbbf42a7ac7626ebcc17e1a4177 100644 --- a/product/rcar/module/rcar_arch_timer/src/mod_rcar_arch_timer.c +++ b/product/rcar/module/rcar_arch_timer/src/mod_rcar_arch_timer.c @@ -1,13 +1,11 @@ /* * Renesas SCP/MCP Software - * Copyright (c) 2020-2021, Renesas Electronics Corporation. All rights + * Copyright (c) 2020-2025, Renesas Electronics Corporation. All rights * reserved. * * SPDX-License-Identifier: BSD-3-Clause */ -#include - #include #include #include @@ -22,6 +20,8 @@ #include #include +#include + #include #include diff --git a/product/rcar/module/rcar_system/src/mod_rcar_system.c b/product/rcar/module/rcar_system/src/mod_rcar_system.c index 4ed854134a30419bf8c7e6a99521d18239904898..708631016b3fea233cf793de23fc8998e672ef72 100644 --- a/product/rcar/module/rcar_system/src/mod_rcar_system.c +++ b/product/rcar/module/rcar_system/src/mod_rcar_system.c @@ -1,6 +1,6 @@ /* * Renesas SCP/MCP Software - * Copyright (c) 2020-2024, Renesas Electronics Corporation. All rights + * Copyright (c) 2020-2025, Renesas Electronics Corporation. All rights * reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -33,7 +33,7 @@ #include #include -#include +#include #include /* Device context */ diff --git a/product/rcar/module/rcar_system/src/rcar_pwc.c b/product/rcar/module/rcar_system/src/rcar_pwc.c index ced94605df42bdd00142e81c75a1ca9834231bd7..5880aafcbcaba29c1e3b48a280de76e0ba361bbc 100644 --- a/product/rcar/module/rcar_system/src/rcar_pwc.c +++ b/product/rcar/module/rcar_system/src/rcar_pwc.c @@ -1,6 +1,6 @@ /* * Renesas SCP/MCP Software - * Copyright (c) 2020-2024, Renesas Electronics Corporation. All rights + * Copyright (c) 2020-2025, Renesas Electronics Corporation. All rights * reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -14,7 +14,7 @@ #include #include -#include +#include #include #include diff --git a/product/test/CMakeLists.txt b/product/test/CMakeLists.txt index e545491f7a49bbb5e3751926e9c3b74d544b99cd..1365f814914345ffd3bbb7cc0887dac8f07e2460 100644 --- a/product/test/CMakeLists.txt +++ b/product/test/CMakeLists.txt @@ -67,6 +67,10 @@ set(FWK_MOCKS_SRC_ROOT ${SCP_ROOT}/unit_test/unity_mocks/mocks) set(TEST_ON_HOST TRUE) +# Architecture sources +set(ARCH_ROOT ${SCP_ROOT}/arch/none/host) +set(ARCH_SRC_ROOT ${ARCH_ROOT}/src) + # Common flags list(APPEND EXTRA_COMPILE_FLAGS -g3) list(APPEND EXTRA_COMPILE_FLAGS -Wall) @@ -104,6 +108,7 @@ list(APPEND FWK_SRC ${FWK_SRC_ROOT}/fwk_status.c) list(APPEND FWK_SRC ${FWK_SRC_ROOT}/fwk_string.c) list(APPEND FWK_SRC ${FWK_SRC_ROOT}/fwk_delayed_resp.c) list(APPEND FWK_SRC ${FWK_SRC_ROOT}/fwk_time.c) +list(APPEND FWK_SRC ${ARCH_ROOT}/src/arch_interrupt.c) list(APPEND FWK_SRC ${UNITY_SRC_ROOT}/unity.c) list(APPEND SCP_UNITY_SRC ${SCP_ROOT}/unit_test/unity_mocks/scp_unity.c) diff --git a/unit_test/CMakeLists.txt b/unit_test/CMakeLists.txt index d47ee1ecbd2c54cf795b6b9bf4998674ff29c73e..1d0a6d50d8151e10b099100a41a8b2ddb39c3e71 100644 --- a/unit_test/CMakeLists.txt +++ b/unit_test/CMakeLists.txt @@ -62,6 +62,10 @@ set(CMOCK_SRC_ROOT ${CMOCK_ROOT}/src) # Framework mock sources set(FWK_MOCKS_SRC_ROOT ${TEST_ROOT}/unity_mocks/mocks) +# Architecture sources +set(ARCH_ROOT ${SCP_ROOT}/arch/none/host) +set(ARCH_SRC_ROOT ${ARCH_ROOT}/src) + set(TEST_ON_HOST TRUE) # Common flags @@ -102,6 +106,7 @@ list(APPEND FWK_SRC ${FWK_SRC_ROOT}/fwk_string.c) list(APPEND FWK_SRC ${FWK_SRC_ROOT}/fwk_delayed_resp.c) list(APPEND FWK_SRC ${FWK_SRC_ROOT}/fwk_time.c) list(APPEND FWK_SRC ${UNITY_SRC_ROOT}/unity.c) +list(APPEND FWK_SRC ${ARCH_SRC_ROOT}/arch_interrupt.c) list(APPEND SCP_UNITY_SRC ${TEST_ROOT}/unity_mocks/scp_unity.c) diff --git a/unit_test/unity_mocks/arch_helpers.h b/unit_test/unity_mocks/arch_interrupt.h similarity index 95% rename from unit_test/unity_mocks/arch_helpers.h rename to unit_test/unity_mocks/arch_interrupt.h index 5514f0b683258ee5af7d59efd82b5174c9a9d0d6..7de65fbb201116b3bad3112faeec72d5da231a0b 100644 --- a/unit_test/unity_mocks/arch_helpers.h +++ b/unit_test/unity_mocks/arch_interrupt.h @@ -33,4 +33,6 @@ inline static void arch_suspend(void) { } +int arch_interrupt_init(); + #endif /* ARCH_HELPERS_H */ diff --git a/unit_test/unity_mocks/mocks/Mockfwk_arch.c b/unit_test/unity_mocks/mocks/Mockfwk_arch.c index b750847f580f9217d4b55c416b83681b3603a4aa..9d0be64aa2d1f43016a04e1252d7ccb1dc4060a1 100644 --- a/unit_test/unity_mocks/mocks/Mockfwk_arch.c +++ b/unit_test/unity_mocks/mocks/Mockfwk_arch.c @@ -5,19 +5,203 @@ #include "cmock.h" #include "Mockfwk_arch.h" -static const char* CMockString_driver = "driver"; +static const char* CMockString_arch_interrupt_clear_pending = "arch_interrupt_clear_pending"; +static const char* CMockString_arch_interrupt_disable = "arch_interrupt_disable"; +static const char* CMockString_arch_interrupt_enable = "arch_interrupt_enable"; +static const char* CMockString_arch_interrupt_get_current = "arch_interrupt_get_current"; +static const char* CMockString_arch_interrupt_global_disable = "arch_interrupt_global_disable"; +static const char* CMockString_arch_interrupt_global_enable = "arch_interrupt_global_enable"; +static const char* CMockString_arch_interrupt_is_enabled = "arch_interrupt_is_enabled"; +static const char* CMockString_arch_interrupt_is_interrupt_context = "arch_interrupt_is_interrupt_context"; +static const char* CMockString_arch_interrupt_is_pending = "arch_interrupt_is_pending"; +static const char* CMockString_arch_interrupt_set_isr_fault = "arch_interrupt_set_isr_fault"; +static const char* CMockString_arch_interrupt_set_isr_irq = "arch_interrupt_set_isr_irq"; +static const char* CMockString_arch_interrupt_set_isr_irq_param = "arch_interrupt_set_isr_irq_param"; +static const char* CMockString_arch_interrupt_set_isr_nmi = "arch_interrupt_set_isr_nmi"; +static const char* CMockString_arch_interrupt_set_isr_nmi_param = "arch_interrupt_set_isr_nmi_param"; +static const char* CMockString_arch_interrupt_set_pending = "arch_interrupt_set_pending"; +static const char* CMockString_enabled = "enabled"; static const char* CMockString_fwk_arch_deinit = "fwk_arch_deinit"; static const char* CMockString_fwk_arch_init = "fwk_arch_init"; static const char* CMockString_fwk_arch_suspend = "fwk_arch_suspend"; +static const char* CMockString_interrupt = "interrupt"; +static const char* CMockString_isr = "isr"; +static const char* CMockString_parameter = "parameter"; +static const char* CMockString_pending = "pending"; + +typedef struct _CMOCK_arch_interrupt_global_enable_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + +} CMOCK_arch_interrupt_global_enable_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_global_disable_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + +} CMOCK_arch_interrupt_global_disable_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int Expected_interrupt; + bool* Expected_enabled; + int Expected_enabled_Depth; + char ReturnThruPtr_enabled_Used; + bool* ReturnThruPtr_enabled_Val; + size_t ReturnThruPtr_enabled_Size; + char IgnoreArg_interrupt; + char IgnoreArg_enabled; + +} CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_enable_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int Expected_interrupt; + char IgnoreArg_interrupt; + +} CMOCK_arch_interrupt_enable_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_disable_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int Expected_interrupt; + char IgnoreArg_interrupt; + +} CMOCK_arch_interrupt_disable_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_is_pending_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int Expected_interrupt; + bool* Expected_pending; + int Expected_pending_Depth; + char ReturnThruPtr_pending_Used; + bool* ReturnThruPtr_pending_Val; + size_t ReturnThruPtr_pending_Size; + char IgnoreArg_interrupt; + char IgnoreArg_pending; + +} CMOCK_arch_interrupt_is_pending_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_set_pending_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int Expected_interrupt; + char IgnoreArg_interrupt; + +} CMOCK_arch_interrupt_set_pending_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int Expected_interrupt; + char IgnoreArg_interrupt; + +} CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int Expected_interrupt; + cmock_fwk_arch_func_ptr1 Expected_isr; + char IgnoreArg_interrupt; + char IgnoreArg_isr; + +} CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int Expected_interrupt; + cmock_fwk_arch_func_ptr2 Expected_isr; + uintptr_t Expected_parameter; + char IgnoreArg_interrupt; + char IgnoreArg_isr; + char IgnoreArg_parameter; + +} CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + cmock_fwk_arch_func_ptr3 Expected_isr; + char IgnoreArg_isr; + +} CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + cmock_fwk_arch_func_ptr4 Expected_isr; + uintptr_t Expected_parameter; + char IgnoreArg_isr; + char IgnoreArg_parameter; + +} CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + cmock_fwk_arch_func_ptr5 Expected_isr; + char IgnoreArg_isr; + +} CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_get_current_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + int ReturnVal; + unsigned int* Expected_interrupt; + int Expected_interrupt_Depth; + char ReturnThruPtr_interrupt_Used; + unsigned int* ReturnThruPtr_interrupt_Val; + size_t ReturnThruPtr_interrupt_Size; + char IgnoreArg_interrupt; + +} CMOCK_arch_interrupt_get_current_CALL_INSTANCE; + +typedef struct _CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE +{ + UNITY_LINE_TYPE LineNumber; + char ExpectAnyArgsBool; + bool ReturnVal; + +} CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE; typedef struct _CMOCK_fwk_arch_init_CALL_INSTANCE { UNITY_LINE_TYPE LineNumber; char ExpectAnyArgsBool; int ReturnVal; - const struct fwk_arch_init_driver* Expected_driver; - int Expected_driver_Depth; - char IgnoreArg_driver; } CMOCK_fwk_arch_init_CALL_INSTANCE; @@ -38,6 +222,96 @@ typedef struct _CMOCK_fwk_arch_suspend_CALL_INSTANCE static struct Mockfwk_archInstance { + char arch_interrupt_global_enable_IgnoreBool; + int arch_interrupt_global_enable_FinalReturn; + char arch_interrupt_global_enable_CallbackBool; + CMOCK_arch_interrupt_global_enable_CALLBACK arch_interrupt_global_enable_CallbackFunctionPointer; + int arch_interrupt_global_enable_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_global_enable_CallInstance; + char arch_interrupt_global_disable_IgnoreBool; + int arch_interrupt_global_disable_FinalReturn; + char arch_interrupt_global_disable_CallbackBool; + CMOCK_arch_interrupt_global_disable_CALLBACK arch_interrupt_global_disable_CallbackFunctionPointer; + int arch_interrupt_global_disable_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_global_disable_CallInstance; + char arch_interrupt_is_enabled_IgnoreBool; + int arch_interrupt_is_enabled_FinalReturn; + char arch_interrupt_is_enabled_CallbackBool; + CMOCK_arch_interrupt_is_enabled_CALLBACK arch_interrupt_is_enabled_CallbackFunctionPointer; + int arch_interrupt_is_enabled_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_is_enabled_CallInstance; + char arch_interrupt_enable_IgnoreBool; + int arch_interrupt_enable_FinalReturn; + char arch_interrupt_enable_CallbackBool; + CMOCK_arch_interrupt_enable_CALLBACK arch_interrupt_enable_CallbackFunctionPointer; + int arch_interrupt_enable_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_enable_CallInstance; + char arch_interrupt_disable_IgnoreBool; + int arch_interrupt_disable_FinalReturn; + char arch_interrupt_disable_CallbackBool; + CMOCK_arch_interrupt_disable_CALLBACK arch_interrupt_disable_CallbackFunctionPointer; + int arch_interrupt_disable_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_disable_CallInstance; + char arch_interrupt_is_pending_IgnoreBool; + int arch_interrupt_is_pending_FinalReturn; + char arch_interrupt_is_pending_CallbackBool; + CMOCK_arch_interrupt_is_pending_CALLBACK arch_interrupt_is_pending_CallbackFunctionPointer; + int arch_interrupt_is_pending_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_is_pending_CallInstance; + char arch_interrupt_set_pending_IgnoreBool; + int arch_interrupt_set_pending_FinalReturn; + char arch_interrupt_set_pending_CallbackBool; + CMOCK_arch_interrupt_set_pending_CALLBACK arch_interrupt_set_pending_CallbackFunctionPointer; + int arch_interrupt_set_pending_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_set_pending_CallInstance; + char arch_interrupt_clear_pending_IgnoreBool; + int arch_interrupt_clear_pending_FinalReturn; + char arch_interrupt_clear_pending_CallbackBool; + CMOCK_arch_interrupt_clear_pending_CALLBACK arch_interrupt_clear_pending_CallbackFunctionPointer; + int arch_interrupt_clear_pending_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_clear_pending_CallInstance; + char arch_interrupt_set_isr_irq_IgnoreBool; + int arch_interrupt_set_isr_irq_FinalReturn; + char arch_interrupt_set_isr_irq_CallbackBool; + CMOCK_arch_interrupt_set_isr_irq_CALLBACK arch_interrupt_set_isr_irq_CallbackFunctionPointer; + int arch_interrupt_set_isr_irq_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_set_isr_irq_CallInstance; + char arch_interrupt_set_isr_irq_param_IgnoreBool; + int arch_interrupt_set_isr_irq_param_FinalReturn; + char arch_interrupt_set_isr_irq_param_CallbackBool; + CMOCK_arch_interrupt_set_isr_irq_param_CALLBACK arch_interrupt_set_isr_irq_param_CallbackFunctionPointer; + int arch_interrupt_set_isr_irq_param_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_set_isr_irq_param_CallInstance; + char arch_interrupt_set_isr_nmi_IgnoreBool; + int arch_interrupt_set_isr_nmi_FinalReturn; + char arch_interrupt_set_isr_nmi_CallbackBool; + CMOCK_arch_interrupt_set_isr_nmi_CALLBACK arch_interrupt_set_isr_nmi_CallbackFunctionPointer; + int arch_interrupt_set_isr_nmi_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_set_isr_nmi_CallInstance; + char arch_interrupt_set_isr_nmi_param_IgnoreBool; + int arch_interrupt_set_isr_nmi_param_FinalReturn; + char arch_interrupt_set_isr_nmi_param_CallbackBool; + CMOCK_arch_interrupt_set_isr_nmi_param_CALLBACK arch_interrupt_set_isr_nmi_param_CallbackFunctionPointer; + int arch_interrupt_set_isr_nmi_param_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_set_isr_nmi_param_CallInstance; + char arch_interrupt_set_isr_fault_IgnoreBool; + int arch_interrupt_set_isr_fault_FinalReturn; + char arch_interrupt_set_isr_fault_CallbackBool; + CMOCK_arch_interrupt_set_isr_fault_CALLBACK arch_interrupt_set_isr_fault_CallbackFunctionPointer; + int arch_interrupt_set_isr_fault_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_set_isr_fault_CallInstance; + char arch_interrupt_get_current_IgnoreBool; + int arch_interrupt_get_current_FinalReturn; + char arch_interrupt_get_current_CallbackBool; + CMOCK_arch_interrupt_get_current_CALLBACK arch_interrupt_get_current_CallbackFunctionPointer; + int arch_interrupt_get_current_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_get_current_CallInstance; + char arch_interrupt_is_interrupt_context_IgnoreBool; + bool arch_interrupt_is_interrupt_context_FinalReturn; + char arch_interrupt_is_interrupt_context_CallbackBool; + CMOCK_arch_interrupt_is_interrupt_context_CALLBACK arch_interrupt_is_interrupt_context_CallbackFunctionPointer; + int arch_interrupt_is_interrupt_context_CallbackCalls; + CMOCK_MEM_INDEX_TYPE arch_interrupt_is_interrupt_context_CallInstance; char fwk_arch_init_IgnoreBool; int fwk_arch_init_FinalReturn; char fwk_arch_init_CallbackBool; @@ -63,6 +337,201 @@ void Mockfwk_arch_Verify(void) { UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; CMOCK_MEM_INDEX_TYPE call_instance; + call_instance = Mock.arch_interrupt_global_enable_CallInstance; + if (Mock.arch_interrupt_global_enable_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_global_enable); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_global_enable_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_global_disable_CallInstance; + if (Mock.arch_interrupt_global_disable_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_global_disable); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_global_disable_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_is_enabled_CallInstance; + if (Mock.arch_interrupt_is_enabled_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_is_enabled); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_is_enabled_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_enable_CallInstance; + if (Mock.arch_interrupt_enable_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_enable); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_enable_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_disable_CallInstance; + if (Mock.arch_interrupt_disable_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_disable); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_disable_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_is_pending_CallInstance; + if (Mock.arch_interrupt_is_pending_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_is_pending); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_is_pending_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_set_pending_CallInstance; + if (Mock.arch_interrupt_set_pending_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_pending); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_set_pending_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_clear_pending_CallInstance; + if (Mock.arch_interrupt_clear_pending_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_clear_pending); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_clear_pending_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_set_isr_irq_CallInstance; + if (Mock.arch_interrupt_set_isr_irq_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_irq); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_set_isr_irq_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_set_isr_irq_param_CallInstance; + if (Mock.arch_interrupt_set_isr_irq_param_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_irq_param); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_set_isr_irq_param_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_set_isr_nmi_CallInstance; + if (Mock.arch_interrupt_set_isr_nmi_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_nmi); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_set_isr_nmi_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_set_isr_nmi_param_CallInstance; + if (Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_nmi_param); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_set_isr_nmi_param_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_set_isr_fault_CallInstance; + if (Mock.arch_interrupt_set_isr_fault_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_fault); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_set_isr_fault_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_get_current_CallInstance; + if (Mock.arch_interrupt_get_current_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_get_current); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_get_current_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } + call_instance = Mock.arch_interrupt_is_interrupt_context_CallInstance; + if (Mock.arch_interrupt_is_interrupt_context_IgnoreBool) + call_instance = CMOCK_GUTS_NONE; + if (CMOCK_GUTS_NONE != call_instance) + { + UNITY_SET_DETAIL(CMockString_arch_interrupt_is_interrupt_context); + UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); + } + if (Mock.arch_interrupt_is_interrupt_context_CallbackFunctionPointer != NULL) + { + call_instance = CMOCK_GUTS_NONE; + (void)call_instance; + } call_instance = Mock.fwk_arch_init_CallInstance; if (Mock.fwk_arch_init_IgnoreBool) call_instance = CMOCK_GUTS_NONE; @@ -115,121 +584,1897 @@ void Mockfwk_arch_Destroy(void) memset(&Mock, 0, sizeof(Mock)); } -int fwk_arch_init(const struct fwk_arch_init_driver* driver) +int arch_interrupt_global_enable(void) { UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; - CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance; - UNITY_SET_DETAIL(CMockString_fwk_arch_init); - cmock_call_instance = (CMOCK_fwk_arch_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.fwk_arch_init_CallInstance); - Mock.fwk_arch_init_CallInstance = CMock_Guts_MemNext(Mock.fwk_arch_init_CallInstance); - if (Mock.fwk_arch_init_IgnoreBool) + CMOCK_arch_interrupt_global_enable_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_global_enable); + cmock_call_instance = (CMOCK_arch_interrupt_global_enable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_global_enable_CallInstance); + Mock.arch_interrupt_global_enable_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_global_enable_CallInstance); + if (Mock.arch_interrupt_global_enable_IgnoreBool) { UNITY_CLR_DETAILS(); if (cmock_call_instance == NULL) - return Mock.fwk_arch_init_FinalReturn; - Mock.fwk_arch_init_FinalReturn = cmock_call_instance->ReturnVal; + return Mock.arch_interrupt_global_enable_FinalReturn; + Mock.arch_interrupt_global_enable_FinalReturn = cmock_call_instance->ReturnVal; return cmock_call_instance->ReturnVal; } - if (!Mock.fwk_arch_init_CallbackBool && - Mock.fwk_arch_init_CallbackFunctionPointer != NULL) + if (!Mock.arch_interrupt_global_enable_CallbackBool && + Mock.arch_interrupt_global_enable_CallbackFunctionPointer != NULL) { - int cmock_cb_ret = Mock.fwk_arch_init_CallbackFunctionPointer(driver, Mock.fwk_arch_init_CallbackCalls++); + int cmock_cb_ret = Mock.arch_interrupt_global_enable_CallbackFunctionPointer(Mock.arch_interrupt_global_enable_CallbackCalls++); UNITY_CLR_DETAILS(); return cmock_cb_ret; } UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); cmock_line = cmock_call_instance->LineNumber; - if (!cmock_call_instance->ExpectAnyArgsBool) - { - if (!cmock_call_instance->IgnoreArg_driver) - { - UNITY_SET_DETAILS(CMockString_fwk_arch_init,CMockString_driver); - if (cmock_call_instance->Expected_driver == NULL) - { UNITY_TEST_ASSERT_NULL(driver, cmock_line, CMockStringExpNULL); } - else - { UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY((void*)(cmock_call_instance->Expected_driver), (void*)(driver), sizeof(const struct fwk_arch_init_driver), cmock_call_instance->Expected_driver_Depth, cmock_line, CMockStringMismatch); } - } - } - if (Mock.fwk_arch_init_CallbackFunctionPointer != NULL) + if (Mock.arch_interrupt_global_enable_CallbackFunctionPointer != NULL) { - cmock_call_instance->ReturnVal = Mock.fwk_arch_init_CallbackFunctionPointer(driver, Mock.fwk_arch_init_CallbackCalls++); + cmock_call_instance->ReturnVal = Mock.arch_interrupt_global_enable_CallbackFunctionPointer(Mock.arch_interrupt_global_enable_CallbackCalls++); } UNITY_CLR_DETAILS(); return cmock_call_instance->ReturnVal; } -void CMockExpectParameters_fwk_arch_init(CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance, const struct fwk_arch_init_driver* driver, int driver_Depth); -void CMockExpectParameters_fwk_arch_init(CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance, const struct fwk_arch_init_driver* driver, int driver_Depth) +void arch_interrupt_global_enable_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) { - cmock_call_instance->Expected_driver = driver; - cmock_call_instance->Expected_driver_Depth = driver_Depth; - cmock_call_instance->IgnoreArg_driver = 0; -} - -void fwk_arch_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_arch_init_CALL_INSTANCE)); - CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_arch_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_global_enable_CALL_INSTANCE)); + CMOCK_arch_interrupt_global_enable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_global_enable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.fwk_arch_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_arch_init_CallInstance, cmock_guts_index); - Mock.fwk_arch_init_IgnoreBool = (char)0; + Mock.arch_interrupt_global_enable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_global_enable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_global_enable_IgnoreBool = (char)0; cmock_call_instance->LineNumber = cmock_line; cmock_call_instance->ExpectAnyArgsBool = (char)0; cmock_call_instance->ReturnVal = cmock_to_return; - Mock.fwk_arch_init_IgnoreBool = (char)1; + Mock.arch_interrupt_global_enable_IgnoreBool = (char)1; } -void fwk_arch_init_CMockStopIgnore(void) +void arch_interrupt_global_enable_CMockStopIgnore(void) { - if(Mock.fwk_arch_init_IgnoreBool) - Mock.fwk_arch_init_CallInstance = CMock_Guts_MemNext(Mock.fwk_arch_init_CallInstance); - Mock.fwk_arch_init_IgnoreBool = (char)0; + if(Mock.arch_interrupt_global_enable_IgnoreBool) + Mock.arch_interrupt_global_enable_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_global_enable_CallInstance); + Mock.arch_interrupt_global_enable_IgnoreBool = (char)0; } -void fwk_arch_init_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +void arch_interrupt_global_enable_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) { - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_arch_init_CALL_INSTANCE)); - CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_arch_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_global_enable_CALL_INSTANCE)); + CMOCK_arch_interrupt_global_enable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_global_enable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.fwk_arch_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_arch_init_CallInstance, cmock_guts_index); - Mock.fwk_arch_init_IgnoreBool = (char)0; + Mock.arch_interrupt_global_enable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_global_enable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_global_enable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_global_enable_AddCallback(CMOCK_arch_interrupt_global_enable_CALLBACK Callback) +{ + Mock.arch_interrupt_global_enable_IgnoreBool = (char)0; + Mock.arch_interrupt_global_enable_CallbackBool = (char)1; + Mock.arch_interrupt_global_enable_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_global_enable_Stub(CMOCK_arch_interrupt_global_enable_CALLBACK Callback) +{ + Mock.arch_interrupt_global_enable_IgnoreBool = (char)0; + Mock.arch_interrupt_global_enable_CallbackBool = (char)0; + Mock.arch_interrupt_global_enable_CallbackFunctionPointer = Callback; +} + +int arch_interrupt_global_disable(void) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_global_disable_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_global_disable); + cmock_call_instance = (CMOCK_arch_interrupt_global_disable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_global_disable_CallInstance); + Mock.arch_interrupt_global_disable_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_global_disable_CallInstance); + if (Mock.arch_interrupt_global_disable_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_global_disable_FinalReturn; + Mock.arch_interrupt_global_disable_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_global_disable_CallbackBool && + Mock.arch_interrupt_global_disable_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_global_disable_CallbackFunctionPointer(Mock.arch_interrupt_global_disable_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (Mock.arch_interrupt_global_disable_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_global_disable_CallbackFunctionPointer(Mock.arch_interrupt_global_disable_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void arch_interrupt_global_disable_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_global_disable_CALL_INSTANCE)); + CMOCK_arch_interrupt_global_disable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_global_disable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_global_disable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_global_disable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_global_disable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_global_disable_IgnoreBool = (char)1; +} + +void arch_interrupt_global_disable_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_global_disable_IgnoreBool) + Mock.arch_interrupt_global_disable_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_global_disable_CallInstance); + Mock.arch_interrupt_global_disable_IgnoreBool = (char)0; +} + +void arch_interrupt_global_disable_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_global_disable_CALL_INSTANCE)); + CMOCK_arch_interrupt_global_disable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_global_disable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_global_disable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_global_disable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_global_disable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_global_disable_AddCallback(CMOCK_arch_interrupt_global_disable_CALLBACK Callback) +{ + Mock.arch_interrupt_global_disable_IgnoreBool = (char)0; + Mock.arch_interrupt_global_disable_CallbackBool = (char)1; + Mock.arch_interrupt_global_disable_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_global_disable_Stub(CMOCK_arch_interrupt_global_disable_CALLBACK Callback) +{ + Mock.arch_interrupt_global_disable_IgnoreBool = (char)0; + Mock.arch_interrupt_global_disable_CallbackBool = (char)0; + Mock.arch_interrupt_global_disable_CallbackFunctionPointer = Callback; +} + +int arch_interrupt_is_enabled(unsigned int interrupt, bool* enabled) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_is_enabled); + cmock_call_instance = (CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_is_enabled_CallInstance); + Mock.arch_interrupt_is_enabled_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_is_enabled_CallInstance); + if (Mock.arch_interrupt_is_enabled_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_is_enabled_FinalReturn; + Mock.arch_interrupt_is_enabled_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_is_enabled_CallbackBool && + Mock.arch_interrupt_is_enabled_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_is_enabled_CallbackFunctionPointer(interrupt, enabled, Mock.arch_interrupt_is_enabled_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_is_enabled,CMockString_interrupt); + UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_interrupt, interrupt, cmock_line, CMockStringMismatch); + } + if (!cmock_call_instance->IgnoreArg_enabled) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_is_enabled,CMockString_enabled); + if (cmock_call_instance->Expected_enabled == NULL) + { UNITY_TEST_ASSERT_NULL(enabled, cmock_line, CMockStringExpNULL); } + else + { UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(cmock_call_instance->Expected_enabled, enabled, cmock_call_instance->Expected_enabled_Depth, cmock_line, CMockStringMismatch); } + } + } + if (Mock.arch_interrupt_is_enabled_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_is_enabled_CallbackFunctionPointer(interrupt, enabled, Mock.arch_interrupt_is_enabled_CallbackCalls++); + } + if (cmock_call_instance->ReturnThruPtr_enabled_Used) + { + UNITY_TEST_ASSERT_NOT_NULL(enabled, cmock_line, CMockStringPtrIsNULL); + memcpy((void*)enabled, (void*)cmock_call_instance->ReturnThruPtr_enabled_Val, + cmock_call_instance->ReturnThruPtr_enabled_Size); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_is_enabled(CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt, bool* enabled, int enabled_Depth); +void CMockExpectParameters_arch_interrupt_is_enabled(CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt, bool* enabled, int enabled_Depth) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->IgnoreArg_interrupt = 0; + cmock_call_instance->Expected_enabled = enabled; + cmock_call_instance->Expected_enabled_Depth = enabled_Depth; + cmock_call_instance->IgnoreArg_enabled = 0; + cmock_call_instance->ReturnThruPtr_enabled_Used = 0; +} + +void arch_interrupt_is_enabled_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_enabled_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_enabled_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_enabled_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_is_enabled_IgnoreBool = (char)1; +} + +void arch_interrupt_is_enabled_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_is_enabled_IgnoreBool) + Mock.arch_interrupt_is_enabled_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_is_enabled_CallInstance); + Mock.arch_interrupt_is_enabled_IgnoreBool = (char)0; +} + +void arch_interrupt_is_enabled_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_enabled_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_enabled_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_enabled_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_is_enabled_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, bool* enabled, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_enabled_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_enabled_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_enabled_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_is_enabled(cmock_call_instance, interrupt, enabled, 1); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_is_enabled_AddCallback(CMOCK_arch_interrupt_is_enabled_CALLBACK Callback) +{ + Mock.arch_interrupt_is_enabled_IgnoreBool = (char)0; + Mock.arch_interrupt_is_enabled_CallbackBool = (char)1; + Mock.arch_interrupt_is_enabled_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_is_enabled_Stub(CMOCK_arch_interrupt_is_enabled_CALLBACK Callback) +{ + Mock.arch_interrupt_is_enabled_IgnoreBool = (char)0; + Mock.arch_interrupt_is_enabled_CallbackBool = (char)0; + Mock.arch_interrupt_is_enabled_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_is_enabled_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, bool* enabled, int enabled_Depth, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_enabled_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_enabled_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_enabled_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_is_enabled(cmock_call_instance, interrupt, enabled, enabled_Depth); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_is_enabled_CMockReturnMemThruPtr_enabled(UNITY_LINE_TYPE cmock_line, bool* enabled, size_t cmock_size) +{ + CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_is_enabled_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringPtrPreExp); + cmock_call_instance->ReturnThruPtr_enabled_Used = 1; + cmock_call_instance->ReturnThruPtr_enabled_Val = enabled; + cmock_call_instance->ReturnThruPtr_enabled_Size = cmock_size; +} + +void arch_interrupt_is_enabled_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_is_enabled_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +void arch_interrupt_is_enabled_CMockIgnoreArg_enabled(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_enabled_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_is_enabled_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_enabled = 1; +} + +int arch_interrupt_enable(unsigned int interrupt) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_enable_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_enable); + cmock_call_instance = (CMOCK_arch_interrupt_enable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_enable_CallInstance); + Mock.arch_interrupt_enable_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_enable_CallInstance); + if (Mock.arch_interrupt_enable_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_enable_FinalReturn; + Mock.arch_interrupt_enable_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_enable_CallbackBool && + Mock.arch_interrupt_enable_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_enable_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_enable_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_enable,CMockString_interrupt); + UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_interrupt, interrupt, cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_enable_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_enable_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_enable_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_enable(CMOCK_arch_interrupt_enable_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt); +void CMockExpectParameters_arch_interrupt_enable(CMOCK_arch_interrupt_enable_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->IgnoreArg_interrupt = 0; +} + +void arch_interrupt_enable_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_enable_CALL_INSTANCE)); + CMOCK_arch_interrupt_enable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_enable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_enable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_enable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_enable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_enable_IgnoreBool = (char)1; +} + +void arch_interrupt_enable_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_enable_IgnoreBool) + Mock.arch_interrupt_enable_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_enable_CallInstance); + Mock.arch_interrupt_enable_IgnoreBool = (char)0; +} + +void arch_interrupt_enable_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_enable_CALL_INSTANCE)); + CMOCK_arch_interrupt_enable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_enable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_enable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_enable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_enable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_enable_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_enable_CALL_INSTANCE)); + CMOCK_arch_interrupt_enable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_enable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_enable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_enable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_enable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_enable(cmock_call_instance, interrupt); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_enable_AddCallback(CMOCK_arch_interrupt_enable_CALLBACK Callback) +{ + Mock.arch_interrupt_enable_IgnoreBool = (char)0; + Mock.arch_interrupt_enable_CallbackBool = (char)1; + Mock.arch_interrupt_enable_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_enable_Stub(CMOCK_arch_interrupt_enable_CALLBACK Callback) +{ + Mock.arch_interrupt_enable_IgnoreBool = (char)0; + Mock.arch_interrupt_enable_CallbackBool = (char)0; + Mock.arch_interrupt_enable_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_enable_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_enable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_enable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_enable_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +int arch_interrupt_disable(unsigned int interrupt) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_disable_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_disable); + cmock_call_instance = (CMOCK_arch_interrupt_disable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_disable_CallInstance); + Mock.arch_interrupt_disable_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_disable_CallInstance); + if (Mock.arch_interrupt_disable_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_disable_FinalReturn; + Mock.arch_interrupt_disable_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_disable_CallbackBool && + Mock.arch_interrupt_disable_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_disable_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_disable_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_disable,CMockString_interrupt); + UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_interrupt, interrupt, cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_disable_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_disable_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_disable_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_disable(CMOCK_arch_interrupt_disable_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt); +void CMockExpectParameters_arch_interrupt_disable(CMOCK_arch_interrupt_disable_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->IgnoreArg_interrupt = 0; +} + +void arch_interrupt_disable_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_disable_CALL_INSTANCE)); + CMOCK_arch_interrupt_disable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_disable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_disable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_disable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_disable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_disable_IgnoreBool = (char)1; +} + +void arch_interrupt_disable_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_disable_IgnoreBool) + Mock.arch_interrupt_disable_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_disable_CallInstance); + Mock.arch_interrupt_disable_IgnoreBool = (char)0; +} + +void arch_interrupt_disable_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_disable_CALL_INSTANCE)); + CMOCK_arch_interrupt_disable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_disable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_disable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_disable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_disable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_disable_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_disable_CALL_INSTANCE)); + CMOCK_arch_interrupt_disable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_disable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_disable_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_disable_CallInstance, cmock_guts_index); + Mock.arch_interrupt_disable_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_disable(cmock_call_instance, interrupt); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_disable_AddCallback(CMOCK_arch_interrupt_disable_CALLBACK Callback) +{ + Mock.arch_interrupt_disable_IgnoreBool = (char)0; + Mock.arch_interrupt_disable_CallbackBool = (char)1; + Mock.arch_interrupt_disable_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_disable_Stub(CMOCK_arch_interrupt_disable_CALLBACK Callback) +{ + Mock.arch_interrupt_disable_IgnoreBool = (char)0; + Mock.arch_interrupt_disable_CallbackBool = (char)0; + Mock.arch_interrupt_disable_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_disable_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_disable_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_disable_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_disable_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +int arch_interrupt_is_pending(unsigned int interrupt, bool* pending) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_is_pending); + cmock_call_instance = (CMOCK_arch_interrupt_is_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_is_pending_CallInstance); + Mock.arch_interrupt_is_pending_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_is_pending_CallInstance); + if (Mock.arch_interrupt_is_pending_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_is_pending_FinalReturn; + Mock.arch_interrupt_is_pending_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_is_pending_CallbackBool && + Mock.arch_interrupt_is_pending_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_is_pending_CallbackFunctionPointer(interrupt, pending, Mock.arch_interrupt_is_pending_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_is_pending,CMockString_interrupt); + UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_interrupt, interrupt, cmock_line, CMockStringMismatch); + } + if (!cmock_call_instance->IgnoreArg_pending) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_is_pending,CMockString_pending); + if (cmock_call_instance->Expected_pending == NULL) + { UNITY_TEST_ASSERT_NULL(pending, cmock_line, CMockStringExpNULL); } + else + { UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(cmock_call_instance->Expected_pending, pending, cmock_call_instance->Expected_pending_Depth, cmock_line, CMockStringMismatch); } + } + } + if (Mock.arch_interrupt_is_pending_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_is_pending_CallbackFunctionPointer(interrupt, pending, Mock.arch_interrupt_is_pending_CallbackCalls++); + } + if (cmock_call_instance->ReturnThruPtr_pending_Used) + { + UNITY_TEST_ASSERT_NOT_NULL(pending, cmock_line, CMockStringPtrIsNULL); + memcpy((void*)pending, (void*)cmock_call_instance->ReturnThruPtr_pending_Val, + cmock_call_instance->ReturnThruPtr_pending_Size); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_is_pending(CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt, bool* pending, int pending_Depth); +void CMockExpectParameters_arch_interrupt_is_pending(CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt, bool* pending, int pending_Depth) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->IgnoreArg_interrupt = 0; + cmock_call_instance->Expected_pending = pending; + cmock_call_instance->Expected_pending_Depth = pending_Depth; + cmock_call_instance->IgnoreArg_pending = 0; + cmock_call_instance->ReturnThruPtr_pending_Used = 0; +} + +void arch_interrupt_is_pending_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_is_pending_IgnoreBool = (char)1; +} + +void arch_interrupt_is_pending_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_is_pending_IgnoreBool) + Mock.arch_interrupt_is_pending_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_is_pending_CallInstance); + Mock.arch_interrupt_is_pending_IgnoreBool = (char)0; +} + +void arch_interrupt_is_pending_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_is_pending_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, bool* pending, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_is_pending(cmock_call_instance, interrupt, pending, 1); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_is_pending_AddCallback(CMOCK_arch_interrupt_is_pending_CALLBACK Callback) +{ + Mock.arch_interrupt_is_pending_IgnoreBool = (char)0; + Mock.arch_interrupt_is_pending_CallbackBool = (char)1; + Mock.arch_interrupt_is_pending_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_is_pending_Stub(CMOCK_arch_interrupt_is_pending_CALLBACK Callback) +{ + Mock.arch_interrupt_is_pending_IgnoreBool = (char)0; + Mock.arch_interrupt_is_pending_CallbackBool = (char)0; + Mock.arch_interrupt_is_pending_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_is_pending_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, bool* pending, int pending_Depth, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_is_pending(cmock_call_instance, interrupt, pending, pending_Depth); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_is_pending_CMockReturnMemThruPtr_pending(UNITY_LINE_TYPE cmock_line, bool* pending, size_t cmock_size) +{ + CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_is_pending_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringPtrPreExp); + cmock_call_instance->ReturnThruPtr_pending_Used = 1; + cmock_call_instance->ReturnThruPtr_pending_Val = pending; + cmock_call_instance->ReturnThruPtr_pending_Size = cmock_size; +} + +void arch_interrupt_is_pending_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_is_pending_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +void arch_interrupt_is_pending_CMockIgnoreArg_pending(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_is_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_is_pending_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_pending = 1; +} + +int arch_interrupt_set_pending(unsigned int interrupt) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_set_pending_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_pending); + cmock_call_instance = (CMOCK_arch_interrupt_set_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_set_pending_CallInstance); + Mock.arch_interrupt_set_pending_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_pending_CallInstance); + if (Mock.arch_interrupt_set_pending_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_set_pending_FinalReturn; + Mock.arch_interrupt_set_pending_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_set_pending_CallbackBool && + Mock.arch_interrupt_set_pending_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_set_pending_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_set_pending_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_pending,CMockString_interrupt); + UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_interrupt, interrupt, cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_set_pending_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_set_pending_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_set_pending_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_set_pending(CMOCK_arch_interrupt_set_pending_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt); +void CMockExpectParameters_arch_interrupt_set_pending(CMOCK_arch_interrupt_set_pending_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->IgnoreArg_interrupt = 0; +} + +void arch_interrupt_set_pending_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_set_pending_IgnoreBool = (char)1; +} + +void arch_interrupt_set_pending_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_set_pending_IgnoreBool) + Mock.arch_interrupt_set_pending_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_pending_CallInstance); + Mock.arch_interrupt_set_pending_IgnoreBool = (char)0; +} + +void arch_interrupt_set_pending_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_set_pending_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_set_pending(cmock_call_instance, interrupt); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_set_pending_AddCallback(CMOCK_arch_interrupt_set_pending_CALLBACK Callback) +{ + Mock.arch_interrupt_set_pending_IgnoreBool = (char)0; + Mock.arch_interrupt_set_pending_CallbackBool = (char)1; + Mock.arch_interrupt_set_pending_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_pending_Stub(CMOCK_arch_interrupt_set_pending_CALLBACK Callback) +{ + Mock.arch_interrupt_set_pending_IgnoreBool = (char)0; + Mock.arch_interrupt_set_pending_CallbackBool = (char)0; + Mock.arch_interrupt_set_pending_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_pending_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_pending_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +int arch_interrupt_clear_pending(unsigned int interrupt) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_clear_pending); + cmock_call_instance = (CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_clear_pending_CallInstance); + Mock.arch_interrupt_clear_pending_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_clear_pending_CallInstance); + if (Mock.arch_interrupt_clear_pending_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_clear_pending_FinalReturn; + Mock.arch_interrupt_clear_pending_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_clear_pending_CallbackBool && + Mock.arch_interrupt_clear_pending_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_clear_pending_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_clear_pending_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_clear_pending,CMockString_interrupt); + UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_interrupt, interrupt, cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_clear_pending_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_clear_pending_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_clear_pending_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_clear_pending(CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt); +void CMockExpectParameters_arch_interrupt_clear_pending(CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->IgnoreArg_interrupt = 0; +} + +void arch_interrupt_clear_pending_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_clear_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_clear_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_clear_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_clear_pending_IgnoreBool = (char)1; +} + +void arch_interrupt_clear_pending_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_clear_pending_IgnoreBool) + Mock.arch_interrupt_clear_pending_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_clear_pending_CallInstance); + Mock.arch_interrupt_clear_pending_IgnoreBool = (char)0; +} + +void arch_interrupt_clear_pending_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_clear_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_clear_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_clear_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_clear_pending_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE)); + CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_clear_pending_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_clear_pending_CallInstance, cmock_guts_index); + Mock.arch_interrupt_clear_pending_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_clear_pending(cmock_call_instance, interrupt); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_clear_pending_AddCallback(CMOCK_arch_interrupt_clear_pending_CALLBACK Callback) +{ + Mock.arch_interrupt_clear_pending_IgnoreBool = (char)0; + Mock.arch_interrupt_clear_pending_CallbackBool = (char)1; + Mock.arch_interrupt_clear_pending_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_clear_pending_Stub(CMOCK_arch_interrupt_clear_pending_CALLBACK Callback) +{ + Mock.arch_interrupt_clear_pending_IgnoreBool = (char)0; + Mock.arch_interrupt_clear_pending_CallbackBool = (char)0; + Mock.arch_interrupt_clear_pending_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_clear_pending_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_clear_pending_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_clear_pending_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +int arch_interrupt_set_isr_irq(unsigned int interrupt, cmock_fwk_arch_func_ptr1 isr) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_irq); + cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_set_isr_irq_CallInstance); + Mock.arch_interrupt_set_isr_irq_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_irq_CallInstance); + if (Mock.arch_interrupt_set_isr_irq_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_set_isr_irq_FinalReturn; + Mock.arch_interrupt_set_isr_irq_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_set_isr_irq_CallbackBool && + Mock.arch_interrupt_set_isr_irq_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_set_isr_irq_CallbackFunctionPointer(interrupt, isr, Mock.arch_interrupt_set_isr_irq_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_irq,CMockString_interrupt); + UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_interrupt, interrupt, cmock_line, CMockStringMismatch); + } + if (!cmock_call_instance->IgnoreArg_isr) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_irq,CMockString_isr); + UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_isr, isr, cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_set_isr_irq_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_set_isr_irq_CallbackFunctionPointer(interrupt, isr, Mock.arch_interrupt_set_isr_irq_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_set_isr_irq(CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt, cmock_fwk_arch_func_ptr1 isr); +void CMockExpectParameters_arch_interrupt_set_isr_irq(CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt, cmock_fwk_arch_func_ptr1 isr) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->IgnoreArg_interrupt = 0; + memcpy((void*)(&cmock_call_instance->Expected_isr), (void*)(&isr), + sizeof(cmock_fwk_arch_func_ptr1[sizeof(isr) == sizeof(cmock_fwk_arch_func_ptr1) ? 1 : -1])); /* add cmock_fwk_arch_func_ptr1 to :treat_as_array if this causes an error */ + cmock_call_instance->IgnoreArg_isr = 0; +} + +void arch_interrupt_set_isr_irq_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_irq_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_irq_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_irq_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_set_isr_irq_IgnoreBool = (char)1; +} + +void arch_interrupt_set_isr_irq_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_set_isr_irq_IgnoreBool) + Mock.arch_interrupt_set_isr_irq_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_irq_CallInstance); + Mock.arch_interrupt_set_isr_irq_IgnoreBool = (char)0; +} + +void arch_interrupt_set_isr_irq_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_irq_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_irq_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_irq_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_set_isr_irq_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, cmock_fwk_arch_func_ptr1 isr, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_irq_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_irq_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_irq_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_set_isr_irq(cmock_call_instance, interrupt, isr); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_set_isr_irq_AddCallback(CMOCK_arch_interrupt_set_isr_irq_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_irq_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_irq_CallbackBool = (char)1; + Mock.arch_interrupt_set_isr_irq_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_irq_Stub(CMOCK_arch_interrupt_set_isr_irq_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_irq_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_irq_CallbackBool = (char)0; + Mock.arch_interrupt_set_isr_irq_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_irq_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_irq_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +void arch_interrupt_set_isr_irq_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_irq_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_isr = 1; +} + +int arch_interrupt_set_isr_irq_param(unsigned int interrupt, cmock_fwk_arch_func_ptr2 isr, uintptr_t parameter) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_irq_param); + cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_set_isr_irq_param_CallInstance); + Mock.arch_interrupt_set_isr_irq_param_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_irq_param_CallInstance); + if (Mock.arch_interrupt_set_isr_irq_param_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_set_isr_irq_param_FinalReturn; + Mock.arch_interrupt_set_isr_irq_param_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_set_isr_irq_param_CallbackBool && + Mock.arch_interrupt_set_isr_irq_param_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_set_isr_irq_param_CallbackFunctionPointer(interrupt, isr, parameter, Mock.arch_interrupt_set_isr_irq_param_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_irq_param,CMockString_interrupt); + UNITY_TEST_ASSERT_EQUAL_HEX32(cmock_call_instance->Expected_interrupt, interrupt, cmock_line, CMockStringMismatch); + } + if (!cmock_call_instance->IgnoreArg_isr) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_irq_param,CMockString_isr); + UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_isr, isr, cmock_line, CMockStringMismatch); + } + if (!cmock_call_instance->IgnoreArg_parameter) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_irq_param,CMockString_parameter); + UNITY_TEST_ASSERT_EQUAL_MEMORY((void*)(&cmock_call_instance->Expected_parameter), (void*)(¶meter), sizeof(uintptr_t), cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_set_isr_irq_param_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_set_isr_irq_param_CallbackFunctionPointer(interrupt, isr, parameter, Mock.arch_interrupt_set_isr_irq_param_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_set_isr_irq_param(CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt, cmock_fwk_arch_func_ptr2 isr, uintptr_t parameter); +void CMockExpectParameters_arch_interrupt_set_isr_irq_param(CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance, unsigned int interrupt, cmock_fwk_arch_func_ptr2 isr, uintptr_t parameter) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->IgnoreArg_interrupt = 0; + memcpy((void*)(&cmock_call_instance->Expected_isr), (void*)(&isr), + sizeof(cmock_fwk_arch_func_ptr2[sizeof(isr) == sizeof(cmock_fwk_arch_func_ptr2) ? 1 : -1])); /* add cmock_fwk_arch_func_ptr2 to :treat_as_array if this causes an error */ + cmock_call_instance->IgnoreArg_isr = 0; + memcpy((void*)(&cmock_call_instance->Expected_parameter), (void*)(¶meter), + sizeof(uintptr_t[sizeof(parameter) == sizeof(uintptr_t) ? 1 : -1])); /* add uintptr_t to :treat_as_array if this causes an error */ + cmock_call_instance->IgnoreArg_parameter = 0; +} + +void arch_interrupt_set_isr_irq_param_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_irq_param_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_irq_param_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_irq_param_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_set_isr_irq_param_IgnoreBool = (char)1; +} + +void arch_interrupt_set_isr_irq_param_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_set_isr_irq_param_IgnoreBool) + Mock.arch_interrupt_set_isr_irq_param_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_irq_param_CallInstance); + Mock.arch_interrupt_set_isr_irq_param_IgnoreBool = (char)0; +} + +void arch_interrupt_set_isr_irq_param_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_irq_param_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_irq_param_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_irq_param_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_set_isr_irq_param_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, cmock_fwk_arch_func_ptr2 isr, uintptr_t parameter, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_irq_param_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_irq_param_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_irq_param_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_set_isr_irq_param(cmock_call_instance, interrupt, isr, parameter); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_set_isr_irq_param_AddCallback(CMOCK_arch_interrupt_set_isr_irq_param_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_irq_param_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_irq_param_CallbackBool = (char)1; + Mock.arch_interrupt_set_isr_irq_param_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_irq_param_Stub(CMOCK_arch_interrupt_set_isr_irq_param_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_irq_param_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_irq_param_CallbackBool = (char)0; + Mock.arch_interrupt_set_isr_irq_param_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_irq_param_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_irq_param_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +void arch_interrupt_set_isr_irq_param_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_irq_param_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_isr = 1; +} + +void arch_interrupt_set_isr_irq_param_CMockIgnoreArg_parameter(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_irq_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_irq_param_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_parameter = 1; +} + +int arch_interrupt_set_isr_nmi(cmock_fwk_arch_func_ptr3 isr) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_nmi); + cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_set_isr_nmi_CallInstance); + Mock.arch_interrupt_set_isr_nmi_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_nmi_CallInstance); + if (Mock.arch_interrupt_set_isr_nmi_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_set_isr_nmi_FinalReturn; + Mock.arch_interrupt_set_isr_nmi_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_set_isr_nmi_CallbackBool && + Mock.arch_interrupt_set_isr_nmi_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_set_isr_nmi_CallbackFunctionPointer(isr, Mock.arch_interrupt_set_isr_nmi_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_isr) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_nmi,CMockString_isr); + UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_isr, isr, cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_set_isr_nmi_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_set_isr_nmi_CallbackFunctionPointer(isr, Mock.arch_interrupt_set_isr_nmi_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_set_isr_nmi(CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE* cmock_call_instance, cmock_fwk_arch_func_ptr3 isr); +void CMockExpectParameters_arch_interrupt_set_isr_nmi(CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE* cmock_call_instance, cmock_fwk_arch_func_ptr3 isr) +{ + memcpy((void*)(&cmock_call_instance->Expected_isr), (void*)(&isr), + sizeof(cmock_fwk_arch_func_ptr3[sizeof(isr) == sizeof(cmock_fwk_arch_func_ptr3) ? 1 : -1])); /* add cmock_fwk_arch_func_ptr3 to :treat_as_array if this causes an error */ + cmock_call_instance->IgnoreArg_isr = 0; +} + +void arch_interrupt_set_isr_nmi_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_nmi_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_nmi_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_nmi_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_set_isr_nmi_IgnoreBool = (char)1; +} + +void arch_interrupt_set_isr_nmi_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_set_isr_nmi_IgnoreBool) + Mock.arch_interrupt_set_isr_nmi_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_nmi_CallInstance); + Mock.arch_interrupt_set_isr_nmi_IgnoreBool = (char)0; +} + +void arch_interrupt_set_isr_nmi_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_nmi_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_nmi_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_nmi_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_set_isr_nmi_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, cmock_fwk_arch_func_ptr3 isr, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_nmi_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_nmi_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_nmi_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_set_isr_nmi(cmock_call_instance, isr); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_set_isr_nmi_AddCallback(CMOCK_arch_interrupt_set_isr_nmi_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_nmi_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_nmi_CallbackBool = (char)1; + Mock.arch_interrupt_set_isr_nmi_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_nmi_Stub(CMOCK_arch_interrupt_set_isr_nmi_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_nmi_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_nmi_CallbackBool = (char)0; + Mock.arch_interrupt_set_isr_nmi_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_nmi_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_nmi_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_isr = 1; +} + +int arch_interrupt_set_isr_nmi_param(cmock_fwk_arch_func_ptr4 isr, uintptr_t parameter) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_nmi_param); + cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_set_isr_nmi_param_CallInstance); + Mock.arch_interrupt_set_isr_nmi_param_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_nmi_param_CallInstance); + if (Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_set_isr_nmi_param_FinalReturn; + Mock.arch_interrupt_set_isr_nmi_param_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_set_isr_nmi_param_CallbackBool && + Mock.arch_interrupt_set_isr_nmi_param_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_set_isr_nmi_param_CallbackFunctionPointer(isr, parameter, Mock.arch_interrupt_set_isr_nmi_param_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_isr) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_nmi_param,CMockString_isr); + UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_isr, isr, cmock_line, CMockStringMismatch); + } + if (!cmock_call_instance->IgnoreArg_parameter) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_nmi_param,CMockString_parameter); + UNITY_TEST_ASSERT_EQUAL_MEMORY((void*)(&cmock_call_instance->Expected_parameter), (void*)(¶meter), sizeof(uintptr_t), cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_set_isr_nmi_param_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_set_isr_nmi_param_CallbackFunctionPointer(isr, parameter, Mock.arch_interrupt_set_isr_nmi_param_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_set_isr_nmi_param(CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE* cmock_call_instance, cmock_fwk_arch_func_ptr4 isr, uintptr_t parameter); +void CMockExpectParameters_arch_interrupt_set_isr_nmi_param(CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE* cmock_call_instance, cmock_fwk_arch_func_ptr4 isr, uintptr_t parameter) +{ + memcpy((void*)(&cmock_call_instance->Expected_isr), (void*)(&isr), + sizeof(cmock_fwk_arch_func_ptr4[sizeof(isr) == sizeof(cmock_fwk_arch_func_ptr4) ? 1 : -1])); /* add cmock_fwk_arch_func_ptr4 to :treat_as_array if this causes an error */ + cmock_call_instance->IgnoreArg_isr = 0; + memcpy((void*)(&cmock_call_instance->Expected_parameter), (void*)(¶meter), + sizeof(uintptr_t[sizeof(parameter) == sizeof(uintptr_t) ? 1 : -1])); /* add uintptr_t to :treat_as_array if this causes an error */ + cmock_call_instance->IgnoreArg_parameter = 0; +} + +void arch_interrupt_set_isr_nmi_param_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_nmi_param_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_nmi_param_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool = (char)1; +} + +void arch_interrupt_set_isr_nmi_param_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool) + Mock.arch_interrupt_set_isr_nmi_param_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_nmi_param_CallInstance); + Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool = (char)0; +} + +void arch_interrupt_set_isr_nmi_param_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_nmi_param_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_nmi_param_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_set_isr_nmi_param_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, cmock_fwk_arch_func_ptr4 isr, uintptr_t parameter, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_nmi_param_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_nmi_param_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_set_isr_nmi_param(cmock_call_instance, isr, parameter); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_set_isr_nmi_param_AddCallback(CMOCK_arch_interrupt_set_isr_nmi_param_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_nmi_param_CallbackBool = (char)1; + Mock.arch_interrupt_set_isr_nmi_param_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_nmi_param_Stub(CMOCK_arch_interrupt_set_isr_nmi_param_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_nmi_param_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_nmi_param_CallbackBool = (char)0; + Mock.arch_interrupt_set_isr_nmi_param_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_nmi_param_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_nmi_param_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_isr = 1; +} + +void arch_interrupt_set_isr_nmi_param_CMockIgnoreArg_parameter(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_nmi_param_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_nmi_param_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_parameter = 1; +} + +int arch_interrupt_set_isr_fault(cmock_fwk_arch_func_ptr5 isr) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_set_isr_fault); + cmock_call_instance = (CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_set_isr_fault_CallInstance); + Mock.arch_interrupt_set_isr_fault_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_fault_CallInstance); + if (Mock.arch_interrupt_set_isr_fault_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_set_isr_fault_FinalReturn; + Mock.arch_interrupt_set_isr_fault_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_set_isr_fault_CallbackBool && + Mock.arch_interrupt_set_isr_fault_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_set_isr_fault_CallbackFunctionPointer(isr, Mock.arch_interrupt_set_isr_fault_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_isr) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_set_isr_fault,CMockString_isr); + UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_isr, isr, cmock_line, CMockStringMismatch); + } + } + if (Mock.arch_interrupt_set_isr_fault_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_set_isr_fault_CallbackFunctionPointer(isr, Mock.arch_interrupt_set_isr_fault_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_set_isr_fault(CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE* cmock_call_instance, cmock_fwk_arch_func_ptr5 isr); +void CMockExpectParameters_arch_interrupt_set_isr_fault(CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE* cmock_call_instance, cmock_fwk_arch_func_ptr5 isr) +{ + memcpy((void*)(&cmock_call_instance->Expected_isr), (void*)(&isr), + sizeof(cmock_fwk_arch_func_ptr5[sizeof(isr) == sizeof(cmock_fwk_arch_func_ptr5) ? 1 : -1])); /* add cmock_fwk_arch_func_ptr5 to :treat_as_array if this causes an error */ + cmock_call_instance->IgnoreArg_isr = 0; +} + +void arch_interrupt_set_isr_fault_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_fault_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_fault_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_fault_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_set_isr_fault_IgnoreBool = (char)1; +} + +void arch_interrupt_set_isr_fault_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_set_isr_fault_IgnoreBool) + Mock.arch_interrupt_set_isr_fault_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_set_isr_fault_CallInstance); + Mock.arch_interrupt_set_isr_fault_IgnoreBool = (char)0; +} + +void arch_interrupt_set_isr_fault_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_set_isr_fault_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_fault_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_fault_IgnoreBool = (char)0; cmock_call_instance->LineNumber = cmock_line; cmock_call_instance->ExpectAnyArgsBool = (char)0; cmock_call_instance->ReturnVal = cmock_to_return; cmock_call_instance->ExpectAnyArgsBool = (char)1; } -void fwk_arch_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct fwk_arch_init_driver* driver, int cmock_to_return) +void arch_interrupt_set_isr_fault_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, cmock_fwk_arch_func_ptr5 isr, int cmock_to_return) { - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_arch_init_CALL_INSTANCE)); - CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_arch_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE)); + CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.fwk_arch_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_arch_init_CallInstance, cmock_guts_index); - Mock.fwk_arch_init_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_fault_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_set_isr_fault_CallInstance, cmock_guts_index); + Mock.arch_interrupt_set_isr_fault_IgnoreBool = (char)0; cmock_call_instance->LineNumber = cmock_line; cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_fwk_arch_init(cmock_call_instance, driver, 1); + CMockExpectParameters_arch_interrupt_set_isr_fault(cmock_call_instance, isr); cmock_call_instance->ReturnVal = cmock_to_return; } -void fwk_arch_init_AddCallback(CMOCK_fwk_arch_init_CALLBACK Callback) +void arch_interrupt_set_isr_fault_AddCallback(CMOCK_arch_interrupt_set_isr_fault_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_fault_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_fault_CallbackBool = (char)1; + Mock.arch_interrupt_set_isr_fault_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_fault_Stub(CMOCK_arch_interrupt_set_isr_fault_CALLBACK Callback) +{ + Mock.arch_interrupt_set_isr_fault_IgnoreBool = (char)0; + Mock.arch_interrupt_set_isr_fault_CallbackBool = (char)0; + Mock.arch_interrupt_set_isr_fault_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_set_isr_fault_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_set_isr_fault_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_set_isr_fault_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_isr = 1; +} + +int arch_interrupt_get_current(unsigned int* interrupt) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_get_current); + cmock_call_instance = (CMOCK_arch_interrupt_get_current_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_get_current_CallInstance); + Mock.arch_interrupt_get_current_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_get_current_CallInstance); + if (Mock.arch_interrupt_get_current_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_get_current_FinalReturn; + Mock.arch_interrupt_get_current_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_get_current_CallbackBool && + Mock.arch_interrupt_get_current_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.arch_interrupt_get_current_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_get_current_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (!cmock_call_instance->ExpectAnyArgsBool) + { + if (!cmock_call_instance->IgnoreArg_interrupt) + { + UNITY_SET_DETAILS(CMockString_arch_interrupt_get_current,CMockString_interrupt); + if (cmock_call_instance->Expected_interrupt == NULL) + { UNITY_TEST_ASSERT_NULL(interrupt, cmock_line, CMockStringExpNULL); } + else + { UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(cmock_call_instance->Expected_interrupt, interrupt, cmock_call_instance->Expected_interrupt_Depth, cmock_line, CMockStringMismatch); } + } + } + if (Mock.arch_interrupt_get_current_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_get_current_CallbackFunctionPointer(interrupt, Mock.arch_interrupt_get_current_CallbackCalls++); + } + if (cmock_call_instance->ReturnThruPtr_interrupt_Used) + { + UNITY_TEST_ASSERT_NOT_NULL(interrupt, cmock_line, CMockStringPtrIsNULL); + memcpy((void*)interrupt, (void*)cmock_call_instance->ReturnThruPtr_interrupt_Val, + cmock_call_instance->ReturnThruPtr_interrupt_Size); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void CMockExpectParameters_arch_interrupt_get_current(CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance, unsigned int* interrupt, int interrupt_Depth); +void CMockExpectParameters_arch_interrupt_get_current(CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance, unsigned int* interrupt, int interrupt_Depth) +{ + cmock_call_instance->Expected_interrupt = interrupt; + cmock_call_instance->Expected_interrupt_Depth = interrupt_Depth; + cmock_call_instance->IgnoreArg_interrupt = 0; + cmock_call_instance->ReturnThruPtr_interrupt_Used = 0; +} + +void arch_interrupt_get_current_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_get_current_CALL_INSTANCE)); + CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_get_current_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_get_current_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_get_current_CallInstance, cmock_guts_index); + Mock.arch_interrupt_get_current_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_get_current_IgnoreBool = (char)1; +} + +void arch_interrupt_get_current_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_get_current_IgnoreBool) + Mock.arch_interrupt_get_current_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_get_current_CallInstance); + Mock.arch_interrupt_get_current_IgnoreBool = (char)0; +} + +void arch_interrupt_get_current_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_get_current_CALL_INSTANCE)); + CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_get_current_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_get_current_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_get_current_CallInstance, cmock_guts_index); + Mock.arch_interrupt_get_current_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + cmock_call_instance->ExpectAnyArgsBool = (char)1; +} + +void arch_interrupt_get_current_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int* interrupt, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_get_current_CALL_INSTANCE)); + CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_get_current_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_get_current_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_get_current_CallInstance, cmock_guts_index); + Mock.arch_interrupt_get_current_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_get_current(cmock_call_instance, interrupt, 1); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_get_current_AddCallback(CMOCK_arch_interrupt_get_current_CALLBACK Callback) +{ + Mock.arch_interrupt_get_current_IgnoreBool = (char)0; + Mock.arch_interrupt_get_current_CallbackBool = (char)1; + Mock.arch_interrupt_get_current_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_get_current_Stub(CMOCK_arch_interrupt_get_current_CALLBACK Callback) +{ + Mock.arch_interrupt_get_current_IgnoreBool = (char)0; + Mock.arch_interrupt_get_current_CallbackBool = (char)0; + Mock.arch_interrupt_get_current_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_get_current_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int* interrupt, int interrupt_Depth, int cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_get_current_CALL_INSTANCE)); + CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_get_current_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_get_current_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_get_current_CallInstance, cmock_guts_index); + Mock.arch_interrupt_get_current_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + CMockExpectParameters_arch_interrupt_get_current(cmock_call_instance, interrupt, interrupt_Depth); + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_get_current_CMockReturnMemThruPtr_interrupt(UNITY_LINE_TYPE cmock_line, unsigned int* interrupt, size_t cmock_size) +{ + CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_get_current_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_get_current_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringPtrPreExp); + cmock_call_instance->ReturnThruPtr_interrupt_Used = 1; + cmock_call_instance->ReturnThruPtr_interrupt_Val = interrupt; + cmock_call_instance->ReturnThruPtr_interrupt_Size = cmock_size; +} + +void arch_interrupt_get_current_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line) +{ + CMOCK_arch_interrupt_get_current_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_get_current_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.arch_interrupt_get_current_CallInstance)); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); + cmock_call_instance->IgnoreArg_interrupt = 1; +} + +bool arch_interrupt_is_interrupt_context(void) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_arch_interrupt_is_interrupt_context); + cmock_call_instance = (CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.arch_interrupt_is_interrupt_context_CallInstance); + Mock.arch_interrupt_is_interrupt_context_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_is_interrupt_context_CallInstance); + if (Mock.arch_interrupt_is_interrupt_context_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.arch_interrupt_is_interrupt_context_FinalReturn; + Mock.arch_interrupt_is_interrupt_context_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.arch_interrupt_is_interrupt_context_CallbackBool && + Mock.arch_interrupt_is_interrupt_context_CallbackFunctionPointer != NULL) + { + bool cmock_cb_ret = Mock.arch_interrupt_is_interrupt_context_CallbackFunctionPointer(Mock.arch_interrupt_is_interrupt_context_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (Mock.arch_interrupt_is_interrupt_context_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.arch_interrupt_is_interrupt_context_CallbackFunctionPointer(Mock.arch_interrupt_is_interrupt_context_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void arch_interrupt_is_interrupt_context_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, bool cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_interrupt_context_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_interrupt_context_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_interrupt_context_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.arch_interrupt_is_interrupt_context_IgnoreBool = (char)1; +} + +void arch_interrupt_is_interrupt_context_CMockStopIgnore(void) +{ + if(Mock.arch_interrupt_is_interrupt_context_IgnoreBool) + Mock.arch_interrupt_is_interrupt_context_CallInstance = CMock_Guts_MemNext(Mock.arch_interrupt_is_interrupt_context_CallInstance); + Mock.arch_interrupt_is_interrupt_context_IgnoreBool = (char)0; +} + +void arch_interrupt_is_interrupt_context_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, bool cmock_to_return) +{ + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE)); + CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE* cmock_call_instance = (CMOCK_arch_interrupt_is_interrupt_context_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.arch_interrupt_is_interrupt_context_CallInstance = CMock_Guts_MemChain(Mock.arch_interrupt_is_interrupt_context_CallInstance, cmock_guts_index); + Mock.arch_interrupt_is_interrupt_context_IgnoreBool = (char)0; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; +} + +void arch_interrupt_is_interrupt_context_AddCallback(CMOCK_arch_interrupt_is_interrupt_context_CALLBACK Callback) +{ + Mock.arch_interrupt_is_interrupt_context_IgnoreBool = (char)0; + Mock.arch_interrupt_is_interrupt_context_CallbackBool = (char)1; + Mock.arch_interrupt_is_interrupt_context_CallbackFunctionPointer = Callback; +} + +void arch_interrupt_is_interrupt_context_Stub(CMOCK_arch_interrupt_is_interrupt_context_CALLBACK Callback) +{ + Mock.arch_interrupt_is_interrupt_context_IgnoreBool = (char)0; + Mock.arch_interrupt_is_interrupt_context_CallbackBool = (char)0; + Mock.arch_interrupt_is_interrupt_context_CallbackFunctionPointer = Callback; +} + +int fwk_arch_init(void) +{ + UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; + CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_fwk_arch_init); + cmock_call_instance = (CMOCK_fwk_arch_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.fwk_arch_init_CallInstance); + Mock.fwk_arch_init_CallInstance = CMock_Guts_MemNext(Mock.fwk_arch_init_CallInstance); + if (Mock.fwk_arch_init_IgnoreBool) + { + UNITY_CLR_DETAILS(); + if (cmock_call_instance == NULL) + return Mock.fwk_arch_init_FinalReturn; + Mock.fwk_arch_init_FinalReturn = cmock_call_instance->ReturnVal; + return cmock_call_instance->ReturnVal; + } + if (!Mock.fwk_arch_init_CallbackBool && + Mock.fwk_arch_init_CallbackFunctionPointer != NULL) + { + int cmock_cb_ret = Mock.fwk_arch_init_CallbackFunctionPointer(Mock.fwk_arch_init_CallbackCalls++); + UNITY_CLR_DETAILS(); + return cmock_cb_ret; + } + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); + cmock_line = cmock_call_instance->LineNumber; + if (Mock.fwk_arch_init_CallbackFunctionPointer != NULL) + { + cmock_call_instance->ReturnVal = Mock.fwk_arch_init_CallbackFunctionPointer(Mock.fwk_arch_init_CallbackCalls++); + } + UNITY_CLR_DETAILS(); + return cmock_call_instance->ReturnVal; +} + +void fwk_arch_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) { + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_arch_init_CALL_INSTANCE)); + CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_arch_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); + memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); + Mock.fwk_arch_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_arch_init_CallInstance, cmock_guts_index); Mock.fwk_arch_init_IgnoreBool = (char)0; - Mock.fwk_arch_init_CallbackBool = (char)1; - Mock.fwk_arch_init_CallbackFunctionPointer = Callback; + cmock_call_instance->LineNumber = cmock_line; + cmock_call_instance->ExpectAnyArgsBool = (char)0; + cmock_call_instance->ReturnVal = cmock_to_return; + Mock.fwk_arch_init_IgnoreBool = (char)1; } -void fwk_arch_init_Stub(CMOCK_fwk_arch_init_CALLBACK Callback) +void fwk_arch_init_CMockStopIgnore(void) { + if(Mock.fwk_arch_init_IgnoreBool) + Mock.fwk_arch_init_CallInstance = CMock_Guts_MemNext(Mock.fwk_arch_init_CallInstance); Mock.fwk_arch_init_IgnoreBool = (char)0; - Mock.fwk_arch_init_CallbackBool = (char)0; - Mock.fwk_arch_init_CallbackFunctionPointer = Callback; } -void fwk_arch_init_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, const struct fwk_arch_init_driver* driver, int driver_Depth, int cmock_to_return) +void fwk_arch_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) { CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_arch_init_CALL_INSTANCE)); CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_arch_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); @@ -239,15 +2484,21 @@ void fwk_arch_init_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, con Mock.fwk_arch_init_IgnoreBool = (char)0; cmock_call_instance->LineNumber = cmock_line; cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_fwk_arch_init(cmock_call_instance, driver, driver_Depth); cmock_call_instance->ReturnVal = cmock_to_return; } -void fwk_arch_init_CMockIgnoreArg_driver(UNITY_LINE_TYPE cmock_line) +void fwk_arch_init_AddCallback(CMOCK_fwk_arch_init_CALLBACK Callback) { - CMOCK_fwk_arch_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_arch_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.fwk_arch_init_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_driver = 1; + Mock.fwk_arch_init_IgnoreBool = (char)0; + Mock.fwk_arch_init_CallbackBool = (char)1; + Mock.fwk_arch_init_CallbackFunctionPointer = Callback; +} + +void fwk_arch_init_Stub(CMOCK_fwk_arch_init_CALLBACK Callback) +{ + Mock.fwk_arch_init_IgnoreBool = (char)0; + Mock.fwk_arch_init_CallbackBool = (char)0; + Mock.fwk_arch_init_CallbackFunctionPointer = Callback; } int fwk_arch_deinit(void) diff --git a/unit_test/unity_mocks/mocks/Mockfwk_arch.h b/unit_test/unity_mocks/mocks/Mockfwk_arch.h index c0cede1643e2425971a194f3210184782a86200a..b4c78f3be6343fe883fe47f4cb9c2ce7070cc8bf 100644 --- a/unit_test/unity_mocks/mocks/Mockfwk_arch.h +++ b/unit_test/unity_mocks/mocks/Mockfwk_arch.h @@ -22,24 +22,251 @@ void Mockfwk_arch_Destroy(void); void Mockfwk_arch_Verify(void); +typedef void(*cmock_fwk_arch_func_ptr1)(void); +typedef void(*cmock_fwk_arch_func_ptr2)(uintptr_t param); +typedef void(*cmock_fwk_arch_func_ptr3)(void); +typedef void(*cmock_fwk_arch_func_ptr4)(uintptr_t param); +typedef void(*cmock_fwk_arch_func_ptr5)(void); +#define arch_interrupt_global_enable_IgnoreAndReturn(cmock_retval) arch_interrupt_global_enable_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_global_enable_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_global_enable_StopIgnore() arch_interrupt_global_enable_CMockStopIgnore() +void arch_interrupt_global_enable_CMockStopIgnore(void); +#define arch_interrupt_global_enable_ExpectAndReturn(cmock_retval) arch_interrupt_global_enable_CMockExpectAndReturn(__LINE__, cmock_retval) +void arch_interrupt_global_enable_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_global_enable_CALLBACK)(int cmock_num_calls); +void arch_interrupt_global_enable_AddCallback(CMOCK_arch_interrupt_global_enable_CALLBACK Callback); +void arch_interrupt_global_enable_Stub(CMOCK_arch_interrupt_global_enable_CALLBACK Callback); +#define arch_interrupt_global_enable_StubWithCallback arch_interrupt_global_enable_Stub +#define arch_interrupt_global_disable_IgnoreAndReturn(cmock_retval) arch_interrupt_global_disable_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_global_disable_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_global_disable_StopIgnore() arch_interrupt_global_disable_CMockStopIgnore() +void arch_interrupt_global_disable_CMockStopIgnore(void); +#define arch_interrupt_global_disable_ExpectAndReturn(cmock_retval) arch_interrupt_global_disable_CMockExpectAndReturn(__LINE__, cmock_retval) +void arch_interrupt_global_disable_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_global_disable_CALLBACK)(int cmock_num_calls); +void arch_interrupt_global_disable_AddCallback(CMOCK_arch_interrupt_global_disable_CALLBACK Callback); +void arch_interrupt_global_disable_Stub(CMOCK_arch_interrupt_global_disable_CALLBACK Callback); +#define arch_interrupt_global_disable_StubWithCallback arch_interrupt_global_disable_Stub +#define arch_interrupt_is_enabled_IgnoreAndReturn(cmock_retval) arch_interrupt_is_enabled_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_is_enabled_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_is_enabled_StopIgnore() arch_interrupt_is_enabled_CMockStopIgnore() +void arch_interrupt_is_enabled_CMockStopIgnore(void); +#define arch_interrupt_is_enabled_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_is_enabled_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_is_enabled_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_is_enabled_ExpectAndReturn(interrupt, enabled, cmock_retval) arch_interrupt_is_enabled_CMockExpectAndReturn(__LINE__, interrupt, enabled, cmock_retval) +void arch_interrupt_is_enabled_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, bool* enabled, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_is_enabled_CALLBACK)(unsigned int interrupt, bool* enabled, int cmock_num_calls); +void arch_interrupt_is_enabled_AddCallback(CMOCK_arch_interrupt_is_enabled_CALLBACK Callback); +void arch_interrupt_is_enabled_Stub(CMOCK_arch_interrupt_is_enabled_CALLBACK Callback); +#define arch_interrupt_is_enabled_StubWithCallback arch_interrupt_is_enabled_Stub +#define arch_interrupt_is_enabled_ExpectWithArrayAndReturn(interrupt, enabled, enabled_Depth, cmock_retval) arch_interrupt_is_enabled_CMockExpectWithArrayAndReturn(__LINE__, interrupt, enabled, enabled_Depth, cmock_retval) +void arch_interrupt_is_enabled_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, bool* enabled, int enabled_Depth, int cmock_to_return); +#define arch_interrupt_is_enabled_ReturnThruPtr_enabled(enabled) arch_interrupt_is_enabled_CMockReturnMemThruPtr_enabled(__LINE__, enabled, sizeof(bool)) +#define arch_interrupt_is_enabled_ReturnArrayThruPtr_enabled(enabled, cmock_len) arch_interrupt_is_enabled_CMockReturnMemThruPtr_enabled(__LINE__, enabled, cmock_len * sizeof(*enabled)) +#define arch_interrupt_is_enabled_ReturnMemThruPtr_enabled(enabled, cmock_size) arch_interrupt_is_enabled_CMockReturnMemThruPtr_enabled(__LINE__, enabled, cmock_size) +void arch_interrupt_is_enabled_CMockReturnMemThruPtr_enabled(UNITY_LINE_TYPE cmock_line, bool* enabled, size_t cmock_size); +#define arch_interrupt_is_enabled_IgnoreArg_interrupt() arch_interrupt_is_enabled_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_is_enabled_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_is_enabled_IgnoreArg_enabled() arch_interrupt_is_enabled_CMockIgnoreArg_enabled(__LINE__) +void arch_interrupt_is_enabled_CMockIgnoreArg_enabled(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_enable_IgnoreAndReturn(cmock_retval) arch_interrupt_enable_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_enable_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_enable_StopIgnore() arch_interrupt_enable_CMockStopIgnore() +void arch_interrupt_enable_CMockStopIgnore(void); +#define arch_interrupt_enable_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_enable_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_enable_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_enable_ExpectAndReturn(interrupt, cmock_retval) arch_interrupt_enable_CMockExpectAndReturn(__LINE__, interrupt, cmock_retval) +void arch_interrupt_enable_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_enable_CALLBACK)(unsigned int interrupt, int cmock_num_calls); +void arch_interrupt_enable_AddCallback(CMOCK_arch_interrupt_enable_CALLBACK Callback); +void arch_interrupt_enable_Stub(CMOCK_arch_interrupt_enable_CALLBACK Callback); +#define arch_interrupt_enable_StubWithCallback arch_interrupt_enable_Stub +#define arch_interrupt_enable_IgnoreArg_interrupt() arch_interrupt_enable_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_enable_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_disable_IgnoreAndReturn(cmock_retval) arch_interrupt_disable_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_disable_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_disable_StopIgnore() arch_interrupt_disable_CMockStopIgnore() +void arch_interrupt_disable_CMockStopIgnore(void); +#define arch_interrupt_disable_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_disable_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_disable_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_disable_ExpectAndReturn(interrupt, cmock_retval) arch_interrupt_disable_CMockExpectAndReturn(__LINE__, interrupt, cmock_retval) +void arch_interrupt_disable_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_disable_CALLBACK)(unsigned int interrupt, int cmock_num_calls); +void arch_interrupt_disable_AddCallback(CMOCK_arch_interrupt_disable_CALLBACK Callback); +void arch_interrupt_disable_Stub(CMOCK_arch_interrupt_disable_CALLBACK Callback); +#define arch_interrupt_disable_StubWithCallback arch_interrupt_disable_Stub +#define arch_interrupt_disable_IgnoreArg_interrupt() arch_interrupt_disable_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_disable_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_is_pending_IgnoreAndReturn(cmock_retval) arch_interrupt_is_pending_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_is_pending_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_is_pending_StopIgnore() arch_interrupt_is_pending_CMockStopIgnore() +void arch_interrupt_is_pending_CMockStopIgnore(void); +#define arch_interrupt_is_pending_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_is_pending_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_is_pending_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_is_pending_ExpectAndReturn(interrupt, pending, cmock_retval) arch_interrupt_is_pending_CMockExpectAndReturn(__LINE__, interrupt, pending, cmock_retval) +void arch_interrupt_is_pending_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, bool* pending, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_is_pending_CALLBACK)(unsigned int interrupt, bool* pending, int cmock_num_calls); +void arch_interrupt_is_pending_AddCallback(CMOCK_arch_interrupt_is_pending_CALLBACK Callback); +void arch_interrupt_is_pending_Stub(CMOCK_arch_interrupt_is_pending_CALLBACK Callback); +#define arch_interrupt_is_pending_StubWithCallback arch_interrupt_is_pending_Stub +#define arch_interrupt_is_pending_ExpectWithArrayAndReturn(interrupt, pending, pending_Depth, cmock_retval) arch_interrupt_is_pending_CMockExpectWithArrayAndReturn(__LINE__, interrupt, pending, pending_Depth, cmock_retval) +void arch_interrupt_is_pending_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, bool* pending, int pending_Depth, int cmock_to_return); +#define arch_interrupt_is_pending_ReturnThruPtr_pending(pending) arch_interrupt_is_pending_CMockReturnMemThruPtr_pending(__LINE__, pending, sizeof(bool)) +#define arch_interrupt_is_pending_ReturnArrayThruPtr_pending(pending, cmock_len) arch_interrupt_is_pending_CMockReturnMemThruPtr_pending(__LINE__, pending, cmock_len * sizeof(*pending)) +#define arch_interrupt_is_pending_ReturnMemThruPtr_pending(pending, cmock_size) arch_interrupt_is_pending_CMockReturnMemThruPtr_pending(__LINE__, pending, cmock_size) +void arch_interrupt_is_pending_CMockReturnMemThruPtr_pending(UNITY_LINE_TYPE cmock_line, bool* pending, size_t cmock_size); +#define arch_interrupt_is_pending_IgnoreArg_interrupt() arch_interrupt_is_pending_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_is_pending_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_is_pending_IgnoreArg_pending() arch_interrupt_is_pending_CMockIgnoreArg_pending(__LINE__) +void arch_interrupt_is_pending_CMockIgnoreArg_pending(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_pending_IgnoreAndReturn(cmock_retval) arch_interrupt_set_pending_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_pending_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_pending_StopIgnore() arch_interrupt_set_pending_CMockStopIgnore() +void arch_interrupt_set_pending_CMockStopIgnore(void); +#define arch_interrupt_set_pending_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_set_pending_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_pending_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_pending_ExpectAndReturn(interrupt, cmock_retval) arch_interrupt_set_pending_CMockExpectAndReturn(__LINE__, interrupt, cmock_retval) +void arch_interrupt_set_pending_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_set_pending_CALLBACK)(unsigned int interrupt, int cmock_num_calls); +void arch_interrupt_set_pending_AddCallback(CMOCK_arch_interrupt_set_pending_CALLBACK Callback); +void arch_interrupt_set_pending_Stub(CMOCK_arch_interrupt_set_pending_CALLBACK Callback); +#define arch_interrupt_set_pending_StubWithCallback arch_interrupt_set_pending_Stub +#define arch_interrupt_set_pending_IgnoreArg_interrupt() arch_interrupt_set_pending_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_set_pending_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_clear_pending_IgnoreAndReturn(cmock_retval) arch_interrupt_clear_pending_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_clear_pending_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_clear_pending_StopIgnore() arch_interrupt_clear_pending_CMockStopIgnore() +void arch_interrupt_clear_pending_CMockStopIgnore(void); +#define arch_interrupt_clear_pending_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_clear_pending_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_clear_pending_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_clear_pending_ExpectAndReturn(interrupt, cmock_retval) arch_interrupt_clear_pending_CMockExpectAndReturn(__LINE__, interrupt, cmock_retval) +void arch_interrupt_clear_pending_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_clear_pending_CALLBACK)(unsigned int interrupt, int cmock_num_calls); +void arch_interrupt_clear_pending_AddCallback(CMOCK_arch_interrupt_clear_pending_CALLBACK Callback); +void arch_interrupt_clear_pending_Stub(CMOCK_arch_interrupt_clear_pending_CALLBACK Callback); +#define arch_interrupt_clear_pending_StubWithCallback arch_interrupt_clear_pending_Stub +#define arch_interrupt_clear_pending_IgnoreArg_interrupt() arch_interrupt_clear_pending_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_clear_pending_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_irq_IgnoreAndReturn(cmock_retval) arch_interrupt_set_isr_irq_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_irq_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_irq_StopIgnore() arch_interrupt_set_isr_irq_CMockStopIgnore() +void arch_interrupt_set_isr_irq_CMockStopIgnore(void); +#define arch_interrupt_set_isr_irq_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_set_isr_irq_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_irq_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_irq_ExpectAndReturn(interrupt, isr, cmock_retval) arch_interrupt_set_isr_irq_CMockExpectAndReturn(__LINE__, interrupt, isr, cmock_retval) +void arch_interrupt_set_isr_irq_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, cmock_fwk_arch_func_ptr1 isr, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_set_isr_irq_CALLBACK)(unsigned int interrupt, cmock_fwk_arch_func_ptr1 isr, int cmock_num_calls); +void arch_interrupt_set_isr_irq_AddCallback(CMOCK_arch_interrupt_set_isr_irq_CALLBACK Callback); +void arch_interrupt_set_isr_irq_Stub(CMOCK_arch_interrupt_set_isr_irq_CALLBACK Callback); +#define arch_interrupt_set_isr_irq_StubWithCallback arch_interrupt_set_isr_irq_Stub +#define arch_interrupt_set_isr_irq_IgnoreArg_interrupt() arch_interrupt_set_isr_irq_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_set_isr_irq_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_irq_IgnoreArg_isr() arch_interrupt_set_isr_irq_CMockIgnoreArg_isr(__LINE__) +void arch_interrupt_set_isr_irq_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_irq_param_IgnoreAndReturn(cmock_retval) arch_interrupt_set_isr_irq_param_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_irq_param_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_irq_param_StopIgnore() arch_interrupt_set_isr_irq_param_CMockStopIgnore() +void arch_interrupt_set_isr_irq_param_CMockStopIgnore(void); +#define arch_interrupt_set_isr_irq_param_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_set_isr_irq_param_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_irq_param_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_irq_param_ExpectAndReturn(interrupt, isr, parameter, cmock_retval) arch_interrupt_set_isr_irq_param_CMockExpectAndReturn(__LINE__, interrupt, isr, parameter, cmock_retval) +void arch_interrupt_set_isr_irq_param_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int interrupt, cmock_fwk_arch_func_ptr2 isr, uintptr_t parameter, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_set_isr_irq_param_CALLBACK)(unsigned int interrupt, cmock_fwk_arch_func_ptr2 isr, uintptr_t parameter, int cmock_num_calls); +void arch_interrupt_set_isr_irq_param_AddCallback(CMOCK_arch_interrupt_set_isr_irq_param_CALLBACK Callback); +void arch_interrupt_set_isr_irq_param_Stub(CMOCK_arch_interrupt_set_isr_irq_param_CALLBACK Callback); +#define arch_interrupt_set_isr_irq_param_StubWithCallback arch_interrupt_set_isr_irq_param_Stub +#define arch_interrupt_set_isr_irq_param_IgnoreArg_interrupt() arch_interrupt_set_isr_irq_param_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_set_isr_irq_param_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_irq_param_IgnoreArg_isr() arch_interrupt_set_isr_irq_param_CMockIgnoreArg_isr(__LINE__) +void arch_interrupt_set_isr_irq_param_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_irq_param_IgnoreArg_parameter() arch_interrupt_set_isr_irq_param_CMockIgnoreArg_parameter(__LINE__) +void arch_interrupt_set_isr_irq_param_CMockIgnoreArg_parameter(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_nmi_IgnoreAndReturn(cmock_retval) arch_interrupt_set_isr_nmi_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_nmi_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_nmi_StopIgnore() arch_interrupt_set_isr_nmi_CMockStopIgnore() +void arch_interrupt_set_isr_nmi_CMockStopIgnore(void); +#define arch_interrupt_set_isr_nmi_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_set_isr_nmi_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_nmi_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_nmi_ExpectAndReturn(isr, cmock_retval) arch_interrupt_set_isr_nmi_CMockExpectAndReturn(__LINE__, isr, cmock_retval) +void arch_interrupt_set_isr_nmi_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, cmock_fwk_arch_func_ptr3 isr, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_set_isr_nmi_CALLBACK)(cmock_fwk_arch_func_ptr3 isr, int cmock_num_calls); +void arch_interrupt_set_isr_nmi_AddCallback(CMOCK_arch_interrupt_set_isr_nmi_CALLBACK Callback); +void arch_interrupt_set_isr_nmi_Stub(CMOCK_arch_interrupt_set_isr_nmi_CALLBACK Callback); +#define arch_interrupt_set_isr_nmi_StubWithCallback arch_interrupt_set_isr_nmi_Stub +#define arch_interrupt_set_isr_nmi_IgnoreArg_isr() arch_interrupt_set_isr_nmi_CMockIgnoreArg_isr(__LINE__) +void arch_interrupt_set_isr_nmi_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_nmi_param_IgnoreAndReturn(cmock_retval) arch_interrupt_set_isr_nmi_param_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_nmi_param_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_nmi_param_StopIgnore() arch_interrupt_set_isr_nmi_param_CMockStopIgnore() +void arch_interrupt_set_isr_nmi_param_CMockStopIgnore(void); +#define arch_interrupt_set_isr_nmi_param_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_set_isr_nmi_param_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_nmi_param_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_nmi_param_ExpectAndReturn(isr, parameter, cmock_retval) arch_interrupt_set_isr_nmi_param_CMockExpectAndReturn(__LINE__, isr, parameter, cmock_retval) +void arch_interrupt_set_isr_nmi_param_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, cmock_fwk_arch_func_ptr4 isr, uintptr_t parameter, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_set_isr_nmi_param_CALLBACK)(cmock_fwk_arch_func_ptr4 isr, uintptr_t parameter, int cmock_num_calls); +void arch_interrupt_set_isr_nmi_param_AddCallback(CMOCK_arch_interrupt_set_isr_nmi_param_CALLBACK Callback); +void arch_interrupt_set_isr_nmi_param_Stub(CMOCK_arch_interrupt_set_isr_nmi_param_CALLBACK Callback); +#define arch_interrupt_set_isr_nmi_param_StubWithCallback arch_interrupt_set_isr_nmi_param_Stub +#define arch_interrupt_set_isr_nmi_param_IgnoreArg_isr() arch_interrupt_set_isr_nmi_param_CMockIgnoreArg_isr(__LINE__) +void arch_interrupt_set_isr_nmi_param_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_nmi_param_IgnoreArg_parameter() arch_interrupt_set_isr_nmi_param_CMockIgnoreArg_parameter(__LINE__) +void arch_interrupt_set_isr_nmi_param_CMockIgnoreArg_parameter(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_set_isr_fault_IgnoreAndReturn(cmock_retval) arch_interrupt_set_isr_fault_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_fault_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_fault_StopIgnore() arch_interrupt_set_isr_fault_CMockStopIgnore() +void arch_interrupt_set_isr_fault_CMockStopIgnore(void); +#define arch_interrupt_set_isr_fault_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_set_isr_fault_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_set_isr_fault_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_set_isr_fault_ExpectAndReturn(isr, cmock_retval) arch_interrupt_set_isr_fault_CMockExpectAndReturn(__LINE__, isr, cmock_retval) +void arch_interrupt_set_isr_fault_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, cmock_fwk_arch_func_ptr5 isr, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_set_isr_fault_CALLBACK)(cmock_fwk_arch_func_ptr5 isr, int cmock_num_calls); +void arch_interrupt_set_isr_fault_AddCallback(CMOCK_arch_interrupt_set_isr_fault_CALLBACK Callback); +void arch_interrupt_set_isr_fault_Stub(CMOCK_arch_interrupt_set_isr_fault_CALLBACK Callback); +#define arch_interrupt_set_isr_fault_StubWithCallback arch_interrupt_set_isr_fault_Stub +#define arch_interrupt_set_isr_fault_IgnoreArg_isr() arch_interrupt_set_isr_fault_CMockIgnoreArg_isr(__LINE__) +void arch_interrupt_set_isr_fault_CMockIgnoreArg_isr(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_get_current_IgnoreAndReturn(cmock_retval) arch_interrupt_get_current_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_get_current_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_get_current_StopIgnore() arch_interrupt_get_current_CMockStopIgnore() +void arch_interrupt_get_current_CMockStopIgnore(void); +#define arch_interrupt_get_current_ExpectAnyArgsAndReturn(cmock_retval) arch_interrupt_get_current_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) +void arch_interrupt_get_current_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define arch_interrupt_get_current_ExpectAndReturn(interrupt, cmock_retval) arch_interrupt_get_current_CMockExpectAndReturn(__LINE__, interrupt, cmock_retval) +void arch_interrupt_get_current_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int* interrupt, int cmock_to_return); +typedef int (* CMOCK_arch_interrupt_get_current_CALLBACK)(unsigned int* interrupt, int cmock_num_calls); +void arch_interrupt_get_current_AddCallback(CMOCK_arch_interrupt_get_current_CALLBACK Callback); +void arch_interrupt_get_current_Stub(CMOCK_arch_interrupt_get_current_CALLBACK Callback); +#define arch_interrupt_get_current_StubWithCallback arch_interrupt_get_current_Stub +#define arch_interrupt_get_current_ExpectWithArrayAndReturn(interrupt, interrupt_Depth, cmock_retval) arch_interrupt_get_current_CMockExpectWithArrayAndReturn(__LINE__, interrupt, interrupt_Depth, cmock_retval) +void arch_interrupt_get_current_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, unsigned int* interrupt, int interrupt_Depth, int cmock_to_return); +#define arch_interrupt_get_current_ReturnThruPtr_interrupt(interrupt) arch_interrupt_get_current_CMockReturnMemThruPtr_interrupt(__LINE__, interrupt, sizeof(unsigned int)) +#define arch_interrupt_get_current_ReturnArrayThruPtr_interrupt(interrupt, cmock_len) arch_interrupt_get_current_CMockReturnMemThruPtr_interrupt(__LINE__, interrupt, cmock_len * sizeof(*interrupt)) +#define arch_interrupt_get_current_ReturnMemThruPtr_interrupt(interrupt, cmock_size) arch_interrupt_get_current_CMockReturnMemThruPtr_interrupt(__LINE__, interrupt, cmock_size) +void arch_interrupt_get_current_CMockReturnMemThruPtr_interrupt(UNITY_LINE_TYPE cmock_line, unsigned int* interrupt, size_t cmock_size); +#define arch_interrupt_get_current_IgnoreArg_interrupt() arch_interrupt_get_current_CMockIgnoreArg_interrupt(__LINE__) +void arch_interrupt_get_current_CMockIgnoreArg_interrupt(UNITY_LINE_TYPE cmock_line); +#define arch_interrupt_is_interrupt_context_IgnoreAndReturn(cmock_retval) arch_interrupt_is_interrupt_context_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void arch_interrupt_is_interrupt_context_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, bool cmock_to_return); +#define arch_interrupt_is_interrupt_context_StopIgnore() arch_interrupt_is_interrupt_context_CMockStopIgnore() +void arch_interrupt_is_interrupt_context_CMockStopIgnore(void); +#define arch_interrupt_is_interrupt_context_ExpectAndReturn(cmock_retval) arch_interrupt_is_interrupt_context_CMockExpectAndReturn(__LINE__, cmock_retval) +void arch_interrupt_is_interrupt_context_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, bool cmock_to_return); +typedef bool (* CMOCK_arch_interrupt_is_interrupt_context_CALLBACK)(int cmock_num_calls); +void arch_interrupt_is_interrupt_context_AddCallback(CMOCK_arch_interrupt_is_interrupt_context_CALLBACK Callback); +void arch_interrupt_is_interrupt_context_Stub(CMOCK_arch_interrupt_is_interrupt_context_CALLBACK Callback); +#define arch_interrupt_is_interrupt_context_StubWithCallback arch_interrupt_is_interrupt_context_Stub #define fwk_arch_init_IgnoreAndReturn(cmock_retval) fwk_arch_init_CMockIgnoreAndReturn(__LINE__, cmock_retval) void fwk_arch_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); #define fwk_arch_init_StopIgnore() fwk_arch_init_CMockStopIgnore() void fwk_arch_init_CMockStopIgnore(void); -#define fwk_arch_init_ExpectAnyArgsAndReturn(cmock_retval) fwk_arch_init_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) -void fwk_arch_init_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define fwk_arch_init_ExpectAndReturn(driver, cmock_retval) fwk_arch_init_CMockExpectAndReturn(__LINE__, driver, cmock_retval) -void fwk_arch_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct fwk_arch_init_driver* driver, int cmock_to_return); -typedef int (* CMOCK_fwk_arch_init_CALLBACK)(const struct fwk_arch_init_driver* driver, int cmock_num_calls); +#define fwk_arch_init_ExpectAndReturn(cmock_retval) fwk_arch_init_CMockExpectAndReturn(__LINE__, cmock_retval) +void fwk_arch_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +typedef int (* CMOCK_fwk_arch_init_CALLBACK)(int cmock_num_calls); void fwk_arch_init_AddCallback(CMOCK_fwk_arch_init_CALLBACK Callback); void fwk_arch_init_Stub(CMOCK_fwk_arch_init_CALLBACK Callback); #define fwk_arch_init_StubWithCallback fwk_arch_init_Stub -#define fwk_arch_init_ExpectWithArrayAndReturn(driver, driver_Depth, cmock_retval) fwk_arch_init_CMockExpectWithArrayAndReturn(__LINE__, driver, driver_Depth, cmock_retval) -void fwk_arch_init_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, const struct fwk_arch_init_driver* driver, int driver_Depth, int cmock_to_return); -#define fwk_arch_init_IgnoreArg_driver() fwk_arch_init_CMockIgnoreArg_driver(__LINE__) -void fwk_arch_init_CMockIgnoreArg_driver(UNITY_LINE_TYPE cmock_line); #define fwk_arch_deinit_IgnoreAndReturn(cmock_retval) fwk_arch_deinit_CMockIgnoreAndReturn(__LINE__, cmock_retval) void fwk_arch_deinit_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); #define fwk_arch_deinit_StopIgnore() fwk_arch_deinit_CMockStopIgnore() diff --git a/unit_test/unity_mocks/mocks/Mockfwk_interrupt.c b/unit_test/unity_mocks/mocks/Mockfwk_interrupt.c index 945bc1000a361ef0242ec30170eff02796509a08..24e3c25b216ac5f5ed7e533a3235c5d9205d6245 100644 --- a/unit_test/unity_mocks/mocks/Mockfwk_interrupt.c +++ b/unit_test/unity_mocks/mocks/Mockfwk_interrupt.c @@ -5,13 +5,12 @@ #include "cmock.h" #include "Mockfwk_interrupt.h" -static const char* CMockString_driver = "driver"; static const char* CMockString_enabled = "enabled"; +static const char* CMockString_fwk_arch_interrupt_init = "fwk_arch_interrupt_init"; static const char* CMockString_fwk_interrupt_clear_pending = "fwk_interrupt_clear_pending"; static const char* CMockString_fwk_interrupt_disable = "fwk_interrupt_disable"; static const char* CMockString_fwk_interrupt_enable = "fwk_interrupt_enable"; static const char* CMockString_fwk_interrupt_get_current = "fwk_interrupt_get_current"; -static const char* CMockString_fwk_interrupt_init = "fwk_interrupt_init"; static const char* CMockString_fwk_interrupt_is_enabled = "fwk_interrupt_is_enabled"; static const char* CMockString_fwk_interrupt_is_pending = "fwk_interrupt_is_pending"; static const char* CMockString_fwk_interrupt_set_isr = "fwk_interrupt_set_isr"; @@ -23,16 +22,13 @@ static const char* CMockString_isr = "isr"; static const char* CMockString_param = "param"; static const char* CMockString_pending = "pending"; -typedef struct _CMOCK_fwk_interrupt_init_CALL_INSTANCE +typedef struct _CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE { UNITY_LINE_TYPE LineNumber; char ExpectAnyArgsBool; int ReturnVal; - const struct fwk_arch_interrupt_driver* Expected_driver; - int Expected_driver_Depth; - char IgnoreArg_driver; -} CMOCK_fwk_interrupt_init_CALL_INSTANCE; +} CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE; typedef struct _CMOCK_fwk_interrupt_is_enabled_CALL_INSTANCE { @@ -156,12 +152,12 @@ typedef struct _CMOCK_fwk_is_interrupt_context_CALL_INSTANCE static struct Mockfwk_interruptInstance { - char fwk_interrupt_init_IgnoreBool; - int fwk_interrupt_init_FinalReturn; - char fwk_interrupt_init_CallbackBool; - CMOCK_fwk_interrupt_init_CALLBACK fwk_interrupt_init_CallbackFunctionPointer; - int fwk_interrupt_init_CallbackCalls; - CMOCK_MEM_INDEX_TYPE fwk_interrupt_init_CallInstance; + char fwk_arch_interrupt_init_IgnoreBool; + int fwk_arch_interrupt_init_FinalReturn; + char fwk_arch_interrupt_init_CallbackBool; + CMOCK_fwk_arch_interrupt_init_CALLBACK fwk_arch_interrupt_init_CallbackFunctionPointer; + int fwk_arch_interrupt_init_CallbackCalls; + CMOCK_MEM_INDEX_TYPE fwk_arch_interrupt_init_CallInstance; char fwk_interrupt_is_enabled_IgnoreBool; int fwk_interrupt_is_enabled_FinalReturn; char fwk_interrupt_is_enabled_CallbackBool; @@ -230,15 +226,15 @@ void Mockfwk_interrupt_Verify(void) { UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; CMOCK_MEM_INDEX_TYPE call_instance; - call_instance = Mock.fwk_interrupt_init_CallInstance; - if (Mock.fwk_interrupt_init_IgnoreBool) + call_instance = Mock.fwk_arch_interrupt_init_CallInstance; + if (Mock.fwk_arch_interrupt_init_IgnoreBool) call_instance = CMOCK_GUTS_NONE; if (CMOCK_GUTS_NONE != call_instance) { - UNITY_SET_DETAIL(CMockString_fwk_interrupt_init); + UNITY_SET_DETAIL(CMockString_fwk_arch_interrupt_init); UNITY_TEST_FAIL(cmock_line, CMockStringCalledLess); } - if (Mock.fwk_interrupt_init_CallbackFunctionPointer != NULL) + if (Mock.fwk_arch_interrupt_init_CallbackFunctionPointer != NULL) { call_instance = CMOCK_GUTS_NONE; (void)call_instance; @@ -386,139 +382,84 @@ void Mockfwk_interrupt_Destroy(void) memset(&Mock, 0, sizeof(Mock)); } -int fwk_interrupt_init(const struct fwk_arch_interrupt_driver* driver) +int fwk_arch_interrupt_init(void) { UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM; - CMOCK_fwk_interrupt_init_CALL_INSTANCE* cmock_call_instance; - UNITY_SET_DETAIL(CMockString_fwk_interrupt_init); - cmock_call_instance = (CMOCK_fwk_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.fwk_interrupt_init_CallInstance); - Mock.fwk_interrupt_init_CallInstance = CMock_Guts_MemNext(Mock.fwk_interrupt_init_CallInstance); - if (Mock.fwk_interrupt_init_IgnoreBool) + CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE* cmock_call_instance; + UNITY_SET_DETAIL(CMockString_fwk_arch_interrupt_init); + cmock_call_instance = (CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.fwk_arch_interrupt_init_CallInstance); + Mock.fwk_arch_interrupt_init_CallInstance = CMock_Guts_MemNext(Mock.fwk_arch_interrupt_init_CallInstance); + if (Mock.fwk_arch_interrupt_init_IgnoreBool) { UNITY_CLR_DETAILS(); if (cmock_call_instance == NULL) - return Mock.fwk_interrupt_init_FinalReturn; - Mock.fwk_interrupt_init_FinalReturn = cmock_call_instance->ReturnVal; + return Mock.fwk_arch_interrupt_init_FinalReturn; + Mock.fwk_arch_interrupt_init_FinalReturn = cmock_call_instance->ReturnVal; return cmock_call_instance->ReturnVal; } - if (!Mock.fwk_interrupt_init_CallbackBool && - Mock.fwk_interrupt_init_CallbackFunctionPointer != NULL) + if (!Mock.fwk_arch_interrupt_init_CallbackBool && + Mock.fwk_arch_interrupt_init_CallbackFunctionPointer != NULL) { - int cmock_cb_ret = Mock.fwk_interrupt_init_CallbackFunctionPointer(driver, Mock.fwk_interrupt_init_CallbackCalls++); + int cmock_cb_ret = Mock.fwk_arch_interrupt_init_CallbackFunctionPointer(Mock.fwk_arch_interrupt_init_CallbackCalls++); UNITY_CLR_DETAILS(); return cmock_cb_ret; } UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringCalledMore); cmock_line = cmock_call_instance->LineNumber; - if (!cmock_call_instance->ExpectAnyArgsBool) - { - if (!cmock_call_instance->IgnoreArg_driver) - { - UNITY_SET_DETAILS(CMockString_fwk_interrupt_init,CMockString_driver); - if (cmock_call_instance->Expected_driver == NULL) - { UNITY_TEST_ASSERT_NULL(driver, cmock_line, CMockStringExpNULL); } - else - { UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY((void*)(cmock_call_instance->Expected_driver), (void*)(driver), sizeof(const struct fwk_arch_interrupt_driver), cmock_call_instance->Expected_driver_Depth, cmock_line, CMockStringMismatch); } - } - } - if (Mock.fwk_interrupt_init_CallbackFunctionPointer != NULL) + if (Mock.fwk_arch_interrupt_init_CallbackFunctionPointer != NULL) { - cmock_call_instance->ReturnVal = Mock.fwk_interrupt_init_CallbackFunctionPointer(driver, Mock.fwk_interrupt_init_CallbackCalls++); + cmock_call_instance->ReturnVal = Mock.fwk_arch_interrupt_init_CallbackFunctionPointer(Mock.fwk_arch_interrupt_init_CallbackCalls++); } UNITY_CLR_DETAILS(); return cmock_call_instance->ReturnVal; } -void CMockExpectParameters_fwk_interrupt_init(CMOCK_fwk_interrupt_init_CALL_INSTANCE* cmock_call_instance, const struct fwk_arch_interrupt_driver* driver, int driver_Depth); -void CMockExpectParameters_fwk_interrupt_init(CMOCK_fwk_interrupt_init_CALL_INSTANCE* cmock_call_instance, const struct fwk_arch_interrupt_driver* driver, int driver_Depth) +void fwk_arch_interrupt_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) { - cmock_call_instance->Expected_driver = driver; - cmock_call_instance->Expected_driver_Depth = driver_Depth; - cmock_call_instance->IgnoreArg_driver = 0; -} - -void fwk_interrupt_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) -{ - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_interrupt_init_CALL_INSTANCE)); - CMOCK_fwk_interrupt_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE)); + CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.fwk_interrupt_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_interrupt_init_CallInstance, cmock_guts_index); - Mock.fwk_interrupt_init_IgnoreBool = (char)0; + Mock.fwk_arch_interrupt_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_arch_interrupt_init_CallInstance, cmock_guts_index); + Mock.fwk_arch_interrupt_init_IgnoreBool = (char)0; cmock_call_instance->LineNumber = cmock_line; cmock_call_instance->ExpectAnyArgsBool = (char)0; cmock_call_instance->ReturnVal = cmock_to_return; - Mock.fwk_interrupt_init_IgnoreBool = (char)1; -} - -void fwk_interrupt_init_CMockStopIgnore(void) -{ - if(Mock.fwk_interrupt_init_IgnoreBool) - Mock.fwk_interrupt_init_CallInstance = CMock_Guts_MemNext(Mock.fwk_interrupt_init_CallInstance); - Mock.fwk_interrupt_init_IgnoreBool = (char)0; + Mock.fwk_arch_interrupt_init_IgnoreBool = (char)1; } -void fwk_interrupt_init_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) +void fwk_arch_interrupt_init_CMockStopIgnore(void) { - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_interrupt_init_CALL_INSTANCE)); - CMOCK_fwk_interrupt_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.fwk_interrupt_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_interrupt_init_CallInstance, cmock_guts_index); - Mock.fwk_interrupt_init_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - cmock_call_instance->ReturnVal = cmock_to_return; - cmock_call_instance->ExpectAnyArgsBool = (char)1; + if(Mock.fwk_arch_interrupt_init_IgnoreBool) + Mock.fwk_arch_interrupt_init_CallInstance = CMock_Guts_MemNext(Mock.fwk_arch_interrupt_init_CallInstance); + Mock.fwk_arch_interrupt_init_IgnoreBool = (char)0; } -void fwk_interrupt_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct fwk_arch_interrupt_driver* driver, int cmock_to_return) +void fwk_arch_interrupt_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return) { - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_interrupt_init_CALL_INSTANCE)); - CMOCK_fwk_interrupt_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); + CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE)); + CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_arch_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.fwk_interrupt_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_interrupt_init_CallInstance, cmock_guts_index); - Mock.fwk_interrupt_init_IgnoreBool = (char)0; + Mock.fwk_arch_interrupt_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_arch_interrupt_init_CallInstance, cmock_guts_index); + Mock.fwk_arch_interrupt_init_IgnoreBool = (char)0; cmock_call_instance->LineNumber = cmock_line; cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_fwk_interrupt_init(cmock_call_instance, driver, 1); cmock_call_instance->ReturnVal = cmock_to_return; } -void fwk_interrupt_init_AddCallback(CMOCK_fwk_interrupt_init_CALLBACK Callback) -{ - Mock.fwk_interrupt_init_IgnoreBool = (char)0; - Mock.fwk_interrupt_init_CallbackBool = (char)1; - Mock.fwk_interrupt_init_CallbackFunctionPointer = Callback; -} - -void fwk_interrupt_init_Stub(CMOCK_fwk_interrupt_init_CALLBACK Callback) +void fwk_arch_interrupt_init_AddCallback(CMOCK_fwk_arch_interrupt_init_CALLBACK Callback) { - Mock.fwk_interrupt_init_IgnoreBool = (char)0; - Mock.fwk_interrupt_init_CallbackBool = (char)0; - Mock.fwk_interrupt_init_CallbackFunctionPointer = Callback; + Mock.fwk_arch_interrupt_init_IgnoreBool = (char)0; + Mock.fwk_arch_interrupt_init_CallbackBool = (char)1; + Mock.fwk_arch_interrupt_init_CallbackFunctionPointer = Callback; } -void fwk_interrupt_init_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, const struct fwk_arch_interrupt_driver* driver, int driver_Depth, int cmock_to_return) +void fwk_arch_interrupt_init_Stub(CMOCK_fwk_arch_interrupt_init_CALLBACK Callback) { - CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_fwk_interrupt_init_CALL_INSTANCE)); - CMOCK_fwk_interrupt_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringOutOfMemory); - memset(cmock_call_instance, 0, sizeof(*cmock_call_instance)); - Mock.fwk_interrupt_init_CallInstance = CMock_Guts_MemChain(Mock.fwk_interrupt_init_CallInstance, cmock_guts_index); - Mock.fwk_interrupt_init_IgnoreBool = (char)0; - cmock_call_instance->LineNumber = cmock_line; - cmock_call_instance->ExpectAnyArgsBool = (char)0; - CMockExpectParameters_fwk_interrupt_init(cmock_call_instance, driver, driver_Depth); - cmock_call_instance->ReturnVal = cmock_to_return; -} - -void fwk_interrupt_init_CMockIgnoreArg_driver(UNITY_LINE_TYPE cmock_line) -{ - CMOCK_fwk_interrupt_init_CALL_INSTANCE* cmock_call_instance = (CMOCK_fwk_interrupt_init_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.fwk_interrupt_init_CallInstance)); - UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp); - cmock_call_instance->IgnoreArg_driver = 1; + Mock.fwk_arch_interrupt_init_IgnoreBool = (char)0; + Mock.fwk_arch_interrupt_init_CallbackBool = (char)0; + Mock.fwk_arch_interrupt_init_CallbackFunctionPointer = Callback; } int fwk_interrupt_is_enabled(unsigned int interrupt, bool* enabled) diff --git a/unit_test/unity_mocks/mocks/Mockfwk_interrupt.h b/unit_test/unity_mocks/mocks/Mockfwk_interrupt.h index 1d37626d3b5ed1ae81f8e668279749e7e2607236..0e7ce7ffb63e9924db47efbe31426e752882fb36 100644 --- a/unit_test/unity_mocks/mocks/Mockfwk_interrupt.h +++ b/unit_test/unity_mocks/mocks/Mockfwk_interrupt.h @@ -26,22 +26,16 @@ typedef void(*cmock_fwk_interrupt_func_ptr1)(void); typedef void(*cmock_fwk_interrupt_func_ptr2)(uintptr_t param); -#define fwk_interrupt_init_IgnoreAndReturn(cmock_retval) fwk_interrupt_init_CMockIgnoreAndReturn(__LINE__, cmock_retval) -void fwk_interrupt_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define fwk_interrupt_init_StopIgnore() fwk_interrupt_init_CMockStopIgnore() -void fwk_interrupt_init_CMockStopIgnore(void); -#define fwk_interrupt_init_ExpectAnyArgsAndReturn(cmock_retval) fwk_interrupt_init_CMockExpectAnyArgsAndReturn(__LINE__, cmock_retval) -void fwk_interrupt_init_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); -#define fwk_interrupt_init_ExpectAndReturn(driver, cmock_retval) fwk_interrupt_init_CMockExpectAndReturn(__LINE__, driver, cmock_retval) -void fwk_interrupt_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct fwk_arch_interrupt_driver* driver, int cmock_to_return); -typedef int (* CMOCK_fwk_interrupt_init_CALLBACK)(const struct fwk_arch_interrupt_driver* driver, int cmock_num_calls); -void fwk_interrupt_init_AddCallback(CMOCK_fwk_interrupt_init_CALLBACK Callback); -void fwk_interrupt_init_Stub(CMOCK_fwk_interrupt_init_CALLBACK Callback); -#define fwk_interrupt_init_StubWithCallback fwk_interrupt_init_Stub -#define fwk_interrupt_init_ExpectWithArrayAndReturn(driver, driver_Depth, cmock_retval) fwk_interrupt_init_CMockExpectWithArrayAndReturn(__LINE__, driver, driver_Depth, cmock_retval) -void fwk_interrupt_init_CMockExpectWithArrayAndReturn(UNITY_LINE_TYPE cmock_line, const struct fwk_arch_interrupt_driver* driver, int driver_Depth, int cmock_to_return); -#define fwk_interrupt_init_IgnoreArg_driver() fwk_interrupt_init_CMockIgnoreArg_driver(__LINE__) -void fwk_interrupt_init_CMockIgnoreArg_driver(UNITY_LINE_TYPE cmock_line); +#define fwk_arch_interrupt_init_IgnoreAndReturn(cmock_retval) fwk_arch_interrupt_init_CMockIgnoreAndReturn(__LINE__, cmock_retval) +void fwk_arch_interrupt_init_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +#define fwk_arch_interrupt_init_StopIgnore() fwk_arch_interrupt_init_CMockStopIgnore() +void fwk_arch_interrupt_init_CMockStopIgnore(void); +#define fwk_arch_interrupt_init_ExpectAndReturn(cmock_retval) fwk_arch_interrupt_init_CMockExpectAndReturn(__LINE__, cmock_retval) +void fwk_arch_interrupt_init_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); +typedef int (* CMOCK_fwk_arch_interrupt_init_CALLBACK)(int cmock_num_calls); +void fwk_arch_interrupt_init_AddCallback(CMOCK_fwk_arch_interrupt_init_CALLBACK Callback); +void fwk_arch_interrupt_init_Stub(CMOCK_fwk_arch_interrupt_init_CALLBACK Callback); +#define fwk_arch_interrupt_init_StubWithCallback fwk_arch_interrupt_init_Stub #define fwk_interrupt_is_enabled_IgnoreAndReturn(cmock_retval) fwk_interrupt_is_enabled_CMockIgnoreAndReturn(__LINE__, cmock_retval) void fwk_interrupt_is_enabled_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, int cmock_to_return); #define fwk_interrupt_is_enabled_StopIgnore() fwk_interrupt_is_enabled_CMockStopIgnore() diff --git a/unit_test/user_guide.md b/unit_test/user_guide.md index ae6ea513beb43faedf4c7db8357fd8301e24a92a..41341394282b8f9f777d4cd07611fdca7c21a014 100644 --- a/unit_test/user_guide.md +++ b/unit_test/user_guide.md @@ -58,7 +58,7 @@ unit_test ├── cfg.yml ├── CMakeLists.txt ├── unity_mocks - │ ├── arch_helpers.h + │ ├── arch_interrupt.h │ └── mocks ├── utils │ └── zip_coverage_report.sh