#ifndef _ATCA_LIB_H
#define _ATCA_LIB_H
#include <stddef.h>
#include <string.h>
#include "atca_config.h"
#define ATCA_SHA_SUPPORT (defined(ATCA_ATSHA204A_SUPPORT) \
|| defined(ATCA_ATSHA206A_SUPPORT))
#define ATCA_ECC_SUPPORT (defined(ATCA_ATECC108A_SUPPORT) \
|| defined(ATCA_ATECC508A_SUPPORT) \
|| defined(ATCA_ATECC608A_SUPPORT))
#define ATCA_CA_SUPPORT (ATCA_SHA_SUPPORT || ATCA_ECC_SUPPORT)
#define ATCA_TA_SUPPORT defined(ATCA_TA100_SUPPORT)
#include "hal/atca_hal.h"
#include "atca_status.h"
#include "atca_device.h"
#include "atca_command.h"
#include "atca_cfgs.h"
#include "basic/atca_basic.h"
#include "basic/atca_helpers.h"
#ifdef ATCAPRINTF
#include <stdio.h>
#define BREAK(status, message) { printf(": "message " -- Status: %02X\r\n", status); break; }
#define RETURN(status, message) { printf(": "message " -- Status: %02X\r\n", status); return status; }
#define PRINTSTAT(status, message) { printf(": "message " -- Status: %02X\r\n", status); }
#define PRINT(message) { printf(": "message "\r\n"); break; }
#define DBGOUT(message) { printf(": "message "\r\n"); break; }
#else
#define BREAK(status, message) { break; }
#define RETURN(status, message) { return status; }
#define PRINT(message) { break; }
#define DBGOUT(message) { break; }
#endif
#endif