/** 
 * @brief           UDI extern Header
 * @author          AXELL CORPORATION
 * @description     UDI(Uniform Driver Interface)標準からの抜粋
 * @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 __UDI_EXTERN_H__
#define __UDI_EXTERN_H__
/* DOM-IGNORE-END */

// *************************************************************************************************
//	define
// *************************************************************************************************
typedef signed char                     udi_sbit8_t;        /* 符号付き8bit型 */
typedef signed short                    udi_sbit16_t;       /* 符号付き16bit型 */
typedef signed long                     udi_sbit32_t;       /* 符号付き32bit型 */
typedef unsigned char                   udi_ubit8_t;        /* 符号無し8bit型 */
typedef unsigned short                  udi_ubit16_t;       /* 符号無し16bit型 */
typedef unsigned long                   udi_ubit32_t;       /* 符号無し32bit型 */

typedef udi_ubit8_t                     udi_boolean_t;      /* ブール代数 0==False, 0!=True */

typedef udi_sbit32_t                    udi_status_t;       /* 関数戻り値型 */

/* Mask Values and Flags for udi_status_t */
#define UDI_STATUS_CODE_MASK            (0x0000FFFF)
#define UDI_STAT_META_SPECIFIC          (0x00008000)
#define UDI_SPECIFIC_STATUS_MASK        (0x00007FFF)
#define UDI_CORRELATE_OFFSET            (16)
#define UDI_CORRELATE_MASK              (0xFFFF0000)

/* Common Status Values */
/** 正常終了 */
#define UDI_OK                          (0)
/** サポートされていない */
#define UDI_STAT_NOT_SUPPORTED          (-1)
/** 解釈不能 */
#define UDI_STAT_NOT_UNDERSTOOD         (-2)
/** 不正な状態 */
#define UDI_STAT_INVALID_STATE          (-3)
/** 認識に失敗 */
#define UDI_STAT_MISTAKEN_IDENTITY      (-4)
/** 中断 */
#define UDI_STAT_ABORTED                (-5)
/** タイムアウト */
#define UDI_STAT_TIMEOUT                (-6)
/** ビジー */
#define UDI_STAT_BUSY                   (-7)
/** リソース不足 */
#define UDI_STAT_RESOURCE_UNAVAIL       (-8)
/** HWエラー */
#define UDI_STAT_HW_PROBLEM             (-9)
/** 反応がない */
#define UDI_STAT_NOT_RESPONDING         (-10)

//	|	#define UDI_STAT_DATA_UNDERRUN          (-11)

/** データオーバーラン */
#define UDI_STAT_DATA_OVERRUN           (-12)
/** データエラー */
#define UDI_STAT_DATA_ERROR             (-13)

//	|	#define UDI_STAT_PARENT_DRV_ERROR       (-14)
//	|	#define UDI_STAT_CANNOT_BIND            (-15)
//	|	#define UDI_STAT_CANNOT_BIND_EXCL       (-16)

/** 接続デバイス総数超過 */
#define UDI_STAT_TOO_MANY_PARENTS       (-17)

//	|	#define UDI_STAT_BAD_PARENT_TYPE        (-18)

/** 完了済み */
#define UDI_STAT_TERMINATED             (-19)
/** 属性不一致 */
#define UDI_STAT_ATTR_MISMATCH          (-20)

typedef unsigned int                    udi_size_t;         /* サイズ指定 */
typedef unsigned char                   udi_index_t;        /* インデックス指定 */

#endif /* __UDI_EXTERN_H__ */

