/** 
 * @brief           UHS list Header
 * @author          AXELL CORPORATION
 * @description     uhs_list.c用ヘッダ
 * @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.
 */
/* DOM-IGNORE-END */


#ifndef __UHS_LIST_H__
    #define __UHS_LIST_H__

// *************************************************************************************************
//	structure
// *************************************************************************************************
typedef struct list_node {          //  __st__
    struct list_node * next;            // 次ノード参照
    struct list_node * prevent;     // 前ノード参照
    void * element;             // リスト管理バッファアドレス
}uhs_list_node_t;


// *************************************************************************************************
//	extern
// *************************************************************************************************
extern void lists_init_List(uhs_list_node_t *list_base);
extern uhs_list_node_t *lists_find_ListEnd(uhs_list_node_t *list_base);
extern void lists_addition_ListTail(uhs_list_node_t *list_base, void *new_element);
extern void lists_delet_FromList(uhs_list_node_t *list_base, void *element);
extern void * lists_get_FirstElement(uhs_list_node_t *list_base);
extern uhs_boolean_t lists_get_RoopIsEnd(void *element);
extern void * lists_get_NextElement(uhs_list_node_t *list_base, void *element);
extern void * lists_get_PrevElement(uhs_list_node_t *list_base, void *element);
extern uhs_boolean_t lists_ListEmpty(uhs_list_node_t *list_base);


#endif	// __UHS_LIST_H__

