Webserver+3d print

Dependents:   Nucleo

Revision:
0:8918a71cdbe9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/fs_port.h	Sat Feb 04 18:15:49 2017 +0000
@@ -0,0 +1,148 @@
+/**
+ * @file fs_port.h
+ * @brief File system abstraction layer
+ *
+ * @section License
+ *
+ * Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ * @author Oryx Embedded SARL (www.oryx-embedded.com)
+ * @version 1.7.6
+ **/
+
+#ifndef _FS_PORT_H
+#define _FS_PORT_H
+
+//Dependencies
+#include "fs_port_config.h"
+#include "os_port.h"
+#include "date_time.h"
+#include "error.h"
+
+//Number of files that can be opened simultaneously
+#ifndef FS_MAX_FILES
+   #define FS_MAX_FILES 8
+#elif (FS_MAX_FILES < 1)
+   #error FS_MAX_FILES parameter is not valid
+#endif
+
+//Number of directories that can be opened simultaneously
+#ifndef FS_MAX_DIRS
+   #define FS_MAX_DIRS 8
+#elif (FS_MAX_DIRS < 1)
+   #error FS_MAX_DIRS parameter is not valid
+#endif
+
+//Maximum filename length
+#ifndef FS_MAX_NAME_LEN
+   #define FS_MAX_NAME_LEN 127
+#elif (FS_MAX_NAME_LEN < 11)
+   #error FS_MAX_NAME_LEN parameter is not valid
+#endif
+
+
+/**
+ * @brief File attributes
+ **/
+
+typedef enum
+{
+   FS_FILE_ATTR_READ_ONLY   = 0x01,
+   FS_FILE_ATTR_HIDDEN      = 0x02,
+   FS_FILE_ATTR_SYSTEM      = 0x04,
+   FS_FILE_ATTR_VOLUME_NAME = 0x08,
+   FS_FILE_ATTR_DIRECTORY   = 0x10,
+   FS_FILE_ATTR_ARCHIVE     = 0x20
+} FsFileAttributes;
+
+
+/**
+ * @brief File access mode
+ **/
+
+typedef enum
+{
+   FS_FILE_MODE_READ   = 1,
+   FS_FILE_MODE_WRITE  = 2,
+   FS_FILE_MODE_CREATE = 4,
+   FS_FILE_MODE_TRUNC  = 8
+} FsFileMode;
+
+
+/**
+ * @brief File seek origin
+ **/
+
+typedef enum
+{
+   FS_SEEK_SET = 0,
+   FS_SEEK_CUR = 1,
+   FS_SEEK_END = 2
+} FsSeekOrigin;
+
+
+/**
+ * @brief Directory entry
+ **/
+
+typedef struct
+{
+   uint32_t attributes;
+   uint32_t size;
+   DateTime modified;
+   char_t name[FS_MAX_NAME_LEN + 1];
+} FsDirEntry;
+
+
+/**
+ * @brief File handle
+ **/
+
+typedef void FsFile;
+
+
+/**
+ * @brief Directory handle
+ **/
+
+typedef void FsDir;
+
+
+//File system abstraction layer
+error_t fsInit(void);
+
+bool_t fsFileExists(const char_t *path);
+error_t fsGetFileSize(const char_t *path, uint32_t *size);
+error_t fsRenameFile(const char_t *oldPath, const char_t *newPath);
+error_t fsDeleteFile(const char_t *path);
+
+FsFile *fsOpenFile(const char_t *path, uint_t mode);
+error_t fsSeekFile(FsFile *file, int_t offset, uint_t origin);
+error_t fsWriteFile(FsFile *file, void *data, size_t length);
+error_t fsReadFile(FsFile *file, void *data, size_t size, size_t *length);
+void fsCloseFile(FsFile *file);
+
+bool_t fsDirExists(const char_t *path);
+error_t fsCreateDir(const char_t *path);
+error_t fsRemoveDir(const char_t *path);
+
+FsDir *fsOpenDir(const char_t *path);
+error_t fsReadDir(FsDir *dir, FsDirEntry *dirEntry);
+void fsCloseDir(FsDir *dir);
+
+#endif
+