RT1050 GUI demo using emWin library

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers IP_FS.h Source File

IP_FS.h

00001 /*********************************************************************
00002 *                SEGGER Microcontroller GmbH & Co. KG                *
00003 *        Solutions for real time microcontroller applications        *
00004 **********************************************************************
00005 *                                                                    *
00006 *        (c) 1996 - 2016  SEGGER Microcontroller GmbH & Co. KG       *
00007 *                                                                    *
00008 *        Internet: www.segger.com    Support:  support@segger.com    *
00009 *                                                                    *
00010 **********************************************************************
00011 
00012 ** emWin V5.38 - Graphical user interface for embedded applications **
00013 All  Intellectual Property rights  in the Software belongs to  SEGGER.
00014 emWin is protected by  international copyright laws.  Knowledge of the
00015 source code may not be used to write a similar product.  This file may
00016 only be used in accordance with the following terms:
00017 
00018 The software has been licensed to  NXP Semiconductors USA, Inc.  whose
00019 registered  office  is  situated  at 411 E. Plumeria Drive, San  Jose,
00020 CA 95134, USA  solely for  the  purposes  of  creating  libraries  for
00021 NXPs M0, M3/M4 and  ARM7/9 processor-based  devices,  sublicensed  and
00022 distributed under the terms and conditions of the NXP End User License
00023 Agreement.
00024 Full source code is available at: www.segger.com
00025 
00026 We appreciate your understanding and fairness.
00027 ----------------------------------------------------------------------
00028 Licensing information
00029 
00030 Licensor:                 SEGGER Microcontroller Systems LLC
00031 Licensed to:              NXP Semiconductors, 1109 McKay Dr, M/S 76, San Jose, CA 95131, USA
00032 Licensed SEGGER software: emWin
00033 License number:           GUI-00186
00034 License model:            emWin License Agreement, dated August 20th 2011
00035 Licensed product:         -
00036 Licensed platform:        NXP's ARM 7/9, Cortex-M0,M3,M4
00037 Licensed number of seats: -
00038 ----------------------------------------------------------------------
00039 File        : IP_FS.h
00040 Purpose     : File system abstraction layer
00041 ---------------------------END-OF-HEADER------------------------------
00042 
00043 Attention : Do not modify this file !
00044 */
00045 
00046 #ifndef  IP_FS_H
00047 #define  IP_FS_H
00048 
00049 #include "SEGGER.h"
00050 
00051 #if defined(__cplusplus)
00052 extern "C" {     /* Make sure we have C-declarations in C++ programs */
00053 #endif
00054 
00055 /*********************************************************************
00056 *
00057 *       Functions
00058 *
00059 **********************************************************************
00060 */
00061 
00062 typedef struct {
00063   //
00064   // Read only file operations. These have to be present on ANY file system, even the simplest one.
00065   //
00066   void* (*pfOpenFile)             (const char* sFilename);
00067   int   (*pfCloseFile)            (void* hFile);
00068   int   (*pfReadAt)               (void* hFile, void* pBuffer, U32 Pos, U32 NumBytes);
00069   long  (*pfGetLen)               (void* hFile);
00070   //
00071   // Directory query operations.
00072   //
00073   void  (*pfForEachDirEntry)      (void* pContext, const char* sDir, void (*pf)(void* pContext, void* pFileEntry));
00074   void  (*pfGetDirEntryFileName)  (void* pFileEntry, char* sFileName, U32 SizeOfBuffer);
00075   U32   (*pfGetDirEntryFileSize)  (void* pFileEntry, U32* pFileSizeHigh);
00076   U32   (*pfGetDirEntryFileTime)  (void* pFileEntry);
00077   int   (*pfGetDirEntryAttributes)(void* pFileEntry);
00078   //
00079   // Write file operations.
00080   //
00081   void* (*pfCreate)               (const char* sFileName);
00082   void* (*pfDeleteFile)           (const char* sFilename);
00083   int   (*pfRenameFile)           (const char* sOldFilename, const char* sNewFilename);
00084   int   (*pfWriteAt)              (void* hFile, void* pBuffer, U32 Pos, U32 NumBytes);
00085   //
00086   // Additional directory operations
00087   //
00088   int   (*pfMKDir)                (const char* sDirName);
00089   int   (*pfRMDir)                (const char* sDirName);
00090   //
00091   // Additional operations
00092   //
00093   int   (*pfIsFolder)             (const char* sPath);
00094   int   (*pfMove)                 (const char* sOldFilename, const char* sNewFilename);
00095 } IP_FS_API;
00096 
00097 extern const IP_FS_API IP_FS_ReadOnly;              // Read-only file system, typically located in flash memory.
00098 extern const IP_FS_API IP_FS_Win32;                 // File system interface for Win32.
00099 extern const IP_FS_API IP_FS_Linux;                 // File system interface for Linux
00100 extern const IP_FS_API IP_FS_FS;                    // Target file system (emFile), shows and allows access to hidden files.
00101 extern const IP_FS_API IP_FS_FS_AllowHiddenAccess;  // Target file system (emFile), does not show hidden files but allows access to them.
00102 extern const IP_FS_API IP_FS_FS_DenyHiddenAccess;   // Target file system (emFile), does not show hidden files and does not allow access to them.
00103 
00104 void IP_FS_WIN32_ConfigBaseDir(const char* sDir);
00105 
00106 
00107 #if defined(__cplusplus)
00108   }
00109 #endif
00110 
00111 
00112 #endif   /* Avoid multiple inclusion */
00113 
00114 /*************************** End of file ****************************/