text: // ==============================================================
  // File generated by Vivado(TM) HLS - High-Level Synthesis from C, C++ and SystemC
  // Version: 2018.2.2
  // Copyright (C) 1986-2018 Xilinx, Inc. All Rights Reserved.
  // 
  // ==============================================================
  
  #ifndef XDEMOSAIC_ROOT_H
  #define XDEMOSAIC_ROOT_H
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /***************************** Include Files *********************************/
  #ifndef __linux__
  #include "xil_types.h"
  #include "xil_assert.h"
  #include "xstatus.h"
  #include "xil_io.h"
  #else
  #include <stdint.h>
  #include <assert.h>
  #include <dirent.h>
  #include <fcntl.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <sys/mman.h>
  #include <unistd.h>
  #include <stddef.h>
  #endif
  #include "xdemosaic_root_hw.h"
  
  /**************************** Type Definitions ******************************/
  #ifdef __linux__
  typedef uint8_t u8;
  typedef uint16_t u16;
  typedef uint32_t u32;
  #else
  typedef struct {
      u16 DeviceId;
      u32 Bus_axi4ls_BaseAddress;
  } XDemosaic_root_Config;
  #endif
  
  typedef struct {
      u32 Bus_axi4ls_BaseAddress;
      u32 IsReady;
  } XDemosaic_root;
  
  /***************** Macros (Inline Functions) Definitions *********************/
  #ifndef __linux__
  #define XDemosaic_root_WriteReg(BaseAddress, RegOffset, Data) \
      Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data))
  #define XDemosaic_root_ReadReg(BaseAddress, RegOffset) \
      Xil_In32((BaseAddress) + (RegOffset))
  #else
  #define XDemosaic_root_WriteReg(BaseAddress, RegOffset, Data) \
      *(volatile u32*)((BaseAddress) + (RegOffset)) = (u32)(Data)
  #define XDemosaic_root_ReadReg(BaseAddress, RegOffset) \
      *(volatile u32*)((BaseAddress) + (RegOffset))
  
  #define Xil_AssertVoid(expr)    assert(expr)
  #define Xil_AssertNonvoid(expr) assert(expr)
  
  #define XST_SUCCESS             0
  #define XST_DEVICE_NOT_FOUND    2
  #define XST_OPEN_DEVICE_FAILED  3
  #define XIL_COMPONENT_IS_READY  1
  #endif
  
  /************************** Function Prototypes *****************************/
  #ifndef __linux__
  int XDemosaic_root_Initialize(XDemosaic_root *InstancePtr, u16 DeviceId);
  XDemosaic_root_Config* XDemosaic_root_LookupConfig(u16 DeviceId);
  int XDemosaic_root_CfgInitialize(XDemosaic_root *InstancePtr, XDemosaic_root_Config *ConfigPtr);
  #else
  int XDemosaic_root_Initialize(XDemosaic_root *InstancePtr, const char* InstanceName);
  int XDemosaic_root_Release(XDemosaic_root *InstancePtr);
  #endif
  
  void XDemosaic_root_Start(XDemosaic_root *InstancePtr);
  u32 XDemosaic_root_IsDone(XDemosaic_root *InstancePtr);
  u32 XDemosaic_root_IsIdle(XDemosaic_root *InstancePtr);
  u32 XDemosaic_root_IsReady(XDemosaic_root *InstancePtr);
  void XDemosaic_root_EnableAutoRestart(XDemosaic_root *InstancePtr);
  void XDemosaic_root_DisableAutoRestart(XDemosaic_root *InstancePtr);
  u32 XDemosaic_root_Get_return(XDemosaic_root *InstancePtr);
  
  
  void XDemosaic_root_InterruptGlobalEnable(XDemosaic_root *InstancePtr);
  void XDemosaic_root_InterruptGlobalDisable(XDemosaic_root *InstancePtr);
  void XDemosaic_root_InterruptEnable(XDemosaic_root *InstancePtr, u32 Mask);
  void XDemosaic_root_InterruptDisable(XDemosaic_root *InstancePtr, u32 Mask);
  void XDemosaic_root_InterruptClear(XDemosaic_root *InstancePtr, u32 Mask);
  u32 XDemosaic_root_InterruptGetEnabled(XDemosaic_root *InstancePtr);
  u32 XDemosaic_root_InterruptGetStatus(XDemosaic_root *InstancePtr);
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif
  