blob: f56f2905c7a8d408d1b168dacc1bb37f22c1ef0e [file] [log] [blame]
/*
* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#pragma once
#include "flash_gateway.h"
#define ERR printf
#define DBG printf
#define INFO printf
//#define _EXIT_(val) {exit (val);}
extern bool g_debug;
typedef struct _FLSH_ACCSS_DLL_VERSION
{
int major;
int minor;
int maintenance;
int build;
char fullFilePath[256];
}FLSH_ACCSS_DLL_VERSION;
// The following ifdef block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the WLCTPCIACSS_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see
// WLCTPCIACSS_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
#ifdef _WINDOWS
#ifdef FLSHACSS_EXPORTS
#define FLSHACSS_API __declspec(dllexport)
#else
#define FLSHACSS_API __declspec(dllimport)
#endif
#endif // _WINDOWS
#if defined(__GNUC__)
#if defined(__i386)
#define FLSHACSS_API extern "C" __attribute__((cdecl))
#else
#define FLSHACSS_API extern "C"
#endif
#endif // __GNUC__
FLSHACSS_API int wfa_create_flash_access_handler(DType devType, void* pDeviceAccess, void** pFlashAccess);
FLSHACSS_API int wfa_close_flash_access_handler(void* pFlashAccess);
FLSHACSS_API int wfa_read(void* pFlashAccess, BYTE *buffer, unsigned long offset, unsigned long size);
FLSHACSS_API int wfa_write(void* pFlashAccess, const BYTE *buffer, unsigned long offset, unsigned long size);
FLSHACSS_API int wfa_program(void* pFlashAccess);
FLSHACSS_API int wfa_erase(void* pFlashAccess);
FLSHACSS_API int wfa_run_command(void* pFlashAccss, UCHAR flash_cmd, FLASH_PHASE phase, bool bWrite, unsigned long addr, unsigned long ulSize);
FLSHACSS_API int wfa_set_data(void* pFlashAccss, const BYTE *buffer, unsigned long size);
FLSHACSS_API int wfa_get_data(void* pFlashAccss, BYTE *buffer, unsigned long size);
FLSHACSS_API int wfa_wait_done(void* pFlashAccss);
FLSHACSS_API int wfa_boot_done(void* pFlashAccss);
FLSHACSS_API bool wfa_get_lock(void* pFlashAccss);
FLSHACSS_API int wfa_force_lock(void* pFlashAccss);
FLSHACSS_API int wfa_release_lock(void* pFlashAccss);