/**
 * @brief           INT Manager Header
 * @author          AXELL CORPORATION
 * @description     INT Manager提供ヘッダ。<p>INT Manager使用時にincludeして下さい。
 * @note            none
 * @history         2017_02_22  初版
 * @history         2017_10_26  Ver2.0
*/
/* DOM-IGNORE-BEGIN */
/*
 * This program was created by AXELL CORPORATION.
 * Copyright (C) 2017 AXELL CORPORATION, all rights reserved.
 */

#ifndef _INTMGR_H_
#define _INTMGR_H_
/* DOM-IGNORE-END */

#include <stdint.h>
#include "osw/oswrapper.h"

#ifdef __cplusplus
extern "C" {
#endif

/** 割込みハンドラ属性 */
#define AG903_INT_HLNG	AG903_OSW_HLNG

/** 割込みハンドラパラメータ */
typedef AG903_OSWCIsr	AG903_INTMgrHdrPrm;

/** 割込みハンドラステータス */
typedef AG903_OSWRIsr	AG903_INTMgrHdrStat;



int32_t AG903_INTMgrInit(void);
int32_t AG903_INTMgrDisableInt(uint32_t intno);
int32_t AG903_INTMgrEnableInt(uint32_t intno);
int32_t AG903_INTMgrSetMask(uint32_t intmsk);
int32_t AG903_INTMgrGetMask(uint32_t* intmsk);
int32_t AG903_INTMgrSetPriority(uint32_t intno, uint8_t intpri);
int32_t AG903_INTMgrSetHandler(AG903_INTMgrHdrPrm * hdrprm);
int32_t AG903_INTMgrDeleteHandler(uint32_t hdrid);
int32_t AG903_INTMgrReferHandler(uint32_t hdrid, AG903_INTMgrHdrStat* status);


#ifdef __cplusplus
}
#endif
#endif/* __INTMGR_H__ */
