NuMaker emWin HMI

Revision:
1:c0f972361605
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emWin/Include/IP_FS.h	Wed Feb 27 14:34:09 2019 +0800
@@ -0,0 +1,143 @@
+/*********************************************************************
+*                 SEGGER Software GmbH                               *
+*        Solutions for real time microcontroller applications        *
+**********************************************************************
+*                                                                    *
+*        (c) 1996 - 2018  SEGGER Microcontroller GmbH                *
+*                                                                    *
+*        Internet: www.segger.com    Support:  support@segger.com    *
+*                                                                    *
+**********************************************************************
+
+** emWin V5.48 - Graphical user interface for embedded applications **
+All  Intellectual Property rights in the Software belongs to  SEGGER.
+emWin is protected by  international copyright laws.  Knowledge of the
+source code may not be used to write a similar product. This file may
+only be used in accordance with the following terms:
+
+The  software has  been licensed by SEGGER Software GmbH to Nuvoton Technology Corporationat the address: No. 4, Creation Rd. III, Hsinchu Science Park, Taiwan
+for the purposes  of  creating  libraries  for its 
+Arm Cortex-M and  Arm9 32-bit microcontrollers, commercialized and distributed by Nuvoton Technology Corporation
+under  the terms and conditions  of  an  End  User  
+License  Agreement  supplied  with  the libraries.
+Full source code is available at: www.segger.com
+
+We appreciate your understanding and fairness.
+----------------------------------------------------------------------
+Licensing information
+Licensor:                 SEGGER Software GmbH
+Licensed to:              Nuvoton Technology Corporation, No. 4, Creation Rd. III, Hsinchu Science Park, 30077 Hsinchu City, Taiwan
+Licensed SEGGER software: emWin
+License number:           GUI-00735
+License model:            emWin License Agreement, signed February 27, 2018
+Licensed platform:        Cortex-M and ARM9 32-bit series microcontroller designed and manufactured by or for Nuvoton Technology Corporation
+----------------------------------------------------------------------
+Support and Update Agreement (SUA)
+SUA period:               2018-03-26 - 2019-03-27
+Contact to extend SUA:    sales@segger.com
+-------------------------- END-OF-HEADER -----------------------------
+
+File    : IP_FS.h
+Purpose : Header file for file system abstraction layer.
+*/
+
+#ifndef IP_FS_H               // Avoid multiple inclusion.
+#define IP_FS_H
+
+#include "SEGGER.h"
+
+#if defined(__cplusplus)
+  extern "C" {                // Make sure we have C-declarations in C++ programs.
+#endif
+
+/*********************************************************************
+*
+*       Types
+*
+**********************************************************************
+*/
+
+typedef struct {
+  //
+  // Read only file operations. These have to be present on ANY file system, even the simplest one.
+  //
+  void* (*pfOpenFile)             (const char* sFilename);
+  int   (*pfCloseFile)            (void* hFile);
+  int   (*pfReadAt)               (void* hFile, void* pBuffer, U32 Pos, U32 NumBytes);
+  long  (*pfGetLen)               (void* hFile);
+  //
+  // Directory query operations.
+  //
+  void  (*pfForEachDirEntry)      (void* pContext, const char* sDir, void (*pf)(void*, void*));
+  void  (*pfGetDirEntryFileName)  (void* pFileEntry, char* sFileName, U32 SizeOfBuffer);
+  U32   (*pfGetDirEntryFileSize)  (void* pFileEntry, U32* pFileSizeHigh);
+  U32   (*pfGetDirEntryFileTime)  (void* pFileEntry);
+  int   (*pfGetDirEntryAttributes)(void* pFileEntry);
+  //
+  // Write file operations.
+  //
+  void* (*pfCreate)               (const char* sFileName);
+  void* (*pfDeleteFile)           (const char* sFilename);
+  int   (*pfRenameFile)           (const char* sOldFilename, const char* sNewFilename);
+  int   (*pfWriteAt)              (void* hFile, void* pBuffer, U32 Pos, U32 NumBytes);
+  //
+  // Additional directory operations
+  //
+  int   (*pfMKDir)                (const char* sDirName);
+  int   (*pfRMDir)                (const char* sDirName);
+  //
+  // Additional operations
+  //
+  int   (*pfIsFolder)             (const char* sPath);
+  int   (*pfMove)                 (const char* sOldFilename, const char* sNewFilename);
+} IP_FS_API;
+
+typedef struct {
+  const          char* sPath;
+  const unsigned char* pData;
+        unsigned int   FileSize;
+} IP_FS_READ_ONLY_FILE_ENTRY;
+
+typedef struct IP_FS_READ_ONLY_FILE_HOOK_STRUCT IP_FS_READ_ONLY_FILE_HOOK;
+struct IP_FS_READ_ONLY_FILE_HOOK_STRUCT {
+  IP_FS_READ_ONLY_FILE_HOOK* pNext;
+  IP_FS_READ_ONLY_FILE_ENTRY FileEntry;
+};
+
+/*********************************************************************
+*
+*       API functions
+*
+**********************************************************************
+*/
+
+#define IP_FS_FS                    IP_FS_emFile
+#define IP_FS_FS_AllowHiddenAccess  IP_FS_emFile_AllowHiddenAccess
+#define IP_FS_FS_DenyHiddenAccess   IP_FS_emFile_DenyHiddenAccess
+
+extern const IP_FS_API IP_FS_ReadOnly;                  // Read-only file system, typically located in flash memory.
+extern const IP_FS_API IP_FS_Win32;                     // File system interface for Win32.
+extern const IP_FS_API IP_FS_Linux;                     // File system interface for Linux
+extern const IP_FS_API IP_FS_emFile;                    // Target file system (emFile), shows and allows access to hidden files.
+extern const IP_FS_API IP_FS_emFile_AllowHiddenAccess;  // Target file system (emFile), does not show hidden files but allows access to them.
+extern const IP_FS_API IP_FS_emFile_DenyHiddenAccess;   // Target file system (emFile), does not show hidden files and does not allow access to them.
+
+//
+// Helper functions for Read Only file system layer.
+//
+void IP_FS_READ_ONLY_ClrFileHooks(void);
+void IP_FS_READ_ONLY_AddFileHook (IP_FS_READ_ONLY_FILE_HOOK* pHook, const char* sPath, const unsigned char* pData, unsigned int FileSize);
+
+//
+// Helper functions for Win32 file system layer.
+//
+void IP_FS_WIN32_ConfigBaseDir(const char* sDir);
+
+
+#if defined(__cplusplus)
+}                             // Make sure we have C-declarations in C++ programs.
+#endif
+
+#endif                        // Avoid multiple inclusion.
+
+/*************************** End of file ****************************/