summaryrefslogtreecommitdiff
path: root/digital/beacon/src/Bitcloud_stack/Components/HAL/avr/common/src/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'digital/beacon/src/Bitcloud_stack/Components/HAL/avr/common/src/irq.c')
-rw-r--r--digital/beacon/src/Bitcloud_stack/Components/HAL/avr/common/src/irq.c143
1 files changed, 0 insertions, 143 deletions
diff --git a/digital/beacon/src/Bitcloud_stack/Components/HAL/avr/common/src/irq.c b/digital/beacon/src/Bitcloud_stack/Components/HAL/avr/common/src/irq.c
deleted file mode 100644
index c681ba74..00000000
--- a/digital/beacon/src/Bitcloud_stack/Components/HAL/avr/common/src/irq.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/**************************************************************************//**
- \file irq.c
-
- \brief Implementation of IRQ interface.
-
- \author
- Atmel Corporation: http://www.atmel.com \n
- Support email: avr@atmel.com
-
- Copyright (c) 2008-2011, Atmel Corporation. All rights reserved.
- Licensed under Atmel's Limited License Agreement (BitCloudTM).
-
- \internal
- History:
- 5/12/07 A. Khromykh - Created
- ******************************************************************************/
-/******************************************************************************
- * WARNING: CHANGING THIS FILE MAY AFFECT CORE FUNCTIONALITY OF THE STACK. *
- * EXPERT USERS SHOULD PROCEED WITH CAUTION. *
- ******************************************************************************/
-
-/******************************************************************************
- Includes section
-******************************************************************************/
-#include <halIrq.h>
-
-/******************************************************************************
- External global variables section
-******************************************************************************/
-extern IrqCallback_t IrqCallbackList[HAL_NUM_IRQ_LINES];
-
-/******************************************************************************
- Implementations section
-******************************************************************************/
-/******************************************************************************
- Registers user's irqNumber interrupt
- Parameters:
- irqNumber - IRQ number
- irqMode - Interrupt sence control
- f - user's interrupt handler. Handler must be executed less than 100 us.
- Returns:
- -1 - if irqNumber is out of range, not valid irq mode, invalid interrupt handler
- or such interrupt has been already registered.
- 0 - otherwise.
-******************************************************************************/
-int HAL_RegisterIrq(HAL_IrqNumber_t irqNumber, HAL_IrqMode_t irqMode, void (*f)(void))
-{
- uint8_t irqOffsetNumber = irqNumber - HAL_FIRST_VALID_IRQ;
-
- // irqNumber is out of range
- if (irqOffsetNumber >= HAL_NUM_IRQ_LINES)
- return -1;
- // Such interrupt has been already register
- if (NULL != IrqCallbackList[irqOffsetNumber])
- return -1;
- // not valid irq mode
- if (IRQ_HIGH_LEVEL == irqMode)
- return -1;
- // invalid interrupt handler
- if (NULL == f)
- return -1;
-
- /* type HAL_IrqMode_t has not valid IRQ_HIGH_LEVEL state,
- * because for saving to register all states need decrement after IRQ_LOW_LEVEL state. */
- if (IRQ_LOW_LEVEL == irqMode)
- halSetIrqConfig(irqNumber, irqMode);
- else
- halSetIrqConfig(irqNumber, irqMode - 1);
-
- IrqCallbackList[irqOffsetNumber] = f;
- return 0;
-}
-
-/******************************************************************************
- Enables irqNumber interrupt
- Parameters:
- irqNumber - IRQ number
- Returns:
- -1 - if irqNumber is out of range or has not been
- registered yet.
- 0 - otherwise.
-******************************************************************************/
-int HAL_EnableIrq(HAL_IrqNumber_t irqNumber)
-{
- uint8_t irqOffsetNumber = irqNumber - HAL_FIRST_VALID_IRQ;
- // irqNumber is out of range
- if (irqOffsetNumber >= HAL_NUM_IRQ_LINES)
- return -1;
- // Interrupt has not been opened yet
- if (NULL == IrqCallbackList[irqOffsetNumber])
- return -1;
- halEnableIrqInterrupt(irqNumber);
- return 0;
-}
-
-/******************************************************************************
- Disables irqNumber interrupt
- Parameters:
- irqNumber - IRQ number
- Returns:
- -1 - if irqNumber is out of range or has not been
- registered yet.
- 0 - otherwise.
-******************************************************************************/
-int HAL_DisableIrq(HAL_IrqNumber_t irqNumber)
-{
- uint8_t irqOffsetNumber = irqNumber - HAL_FIRST_VALID_IRQ;
- // irqNumber is out of range
- if (irqOffsetNumber >= HAL_NUM_IRQ_LINES)
- return -1;
- // Interrupt has not been opened yet
- if (NULL == IrqCallbackList[irqOffsetNumber])
- return -1;
- halDisableIrqInterrupt(irqNumber);
- return 0;
-}
-
-/******************************************************************************
- Unregisters user's irqNumber interrupt
- Parameters:
- irqNumber - IRQ number
- Returns:
- -1 - if irqNumber is out of range or has not been
- registered yet.
- 0 - otherwise.
-******************************************************************************/
-int HAL_UnregisterIrq(HAL_IrqNumber_t irqNumber)
-{
- uint8_t irqOffsetNumber = irqNumber - HAL_FIRST_VALID_IRQ;
- // irqNumber is out of range
- if (irqOffsetNumber >= HAL_NUM_IRQ_LINES)
- return -1;
- // Interrupt has not been opened yet
- if (NULL == IrqCallbackList[irqOffsetNumber])
- return -1;
- // Disable external interrupt request
- halDisableIrqInterrupt(irqNumber);
- halClrIrqConfig(irqNumber);
- IrqCallbackList[irqOffsetNumber] = NULL;
- return 0;
-}
-
-// eof irq.c