1 /* 2 * Copyright (c) 2022 FuZhou Lockzhiner Electronic Co., Ltd. All rights reserved. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 /** 17 * @addtogroup Lockzhiner 18 * 19 * @file interrupt.h 20 */ 21 22 #ifndef LZ_HARDWARE_INTERRUPT_H 23 #define LZ_HARDWARE_INTERRUPT_H 24 25 typedef void (*ProcFunc)(void *arg); 26 27 /** 28 * @brief Create a hardware interrupt. 29 * 30 * 31 * 32 * @param irq Indicates hardware interrupt number. 33 * @param irq Indicates interrupt handler used when a hardware interrupt is triggered. 34 * @param arg Indicates input parameter of the interrupt handler used when a hardware interrupt is triggered. 35 * @return Returns {@link HAL_SUCCESS} if the irq is requested successfully; 36 * returns {@link HAL_FAILURE} otherwise. For details about other return values. 37 */ 38 int RequestIrq(unsigned int irq, ProcFunc isr, void *arg); 39 40 /** 41 * @brief Delete hardware interrupt. 42 * 43 * 44 * 45 * @param irq Indicates hardware interrupt number. 46 * @return Returns {@link HAL_SUCCESS} if the irq is free successfully; 47 * returns {@link HAL_FAILURE} otherwise. For details about other return values, see the chip description. 48 */ 49 50 int FreeIrq(unsigned int irq); 51 52 #endif 53 54