The official mbed C/C SDK provides the software platform and libraries to build your applications.

Fork of mbed by mbed official

Committer:
ldyz
Date:
Fri Jul 05 13:16:13 2013 +0000
Revision:
64:75c1708b266b
Parent:
59:0883845fe643
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 54:71b101360fb9 1 /* mbed Microcontroller Library
emilmont 54:71b101360fb9 2 * Copyright (c) 2006-2013 ARM Limited
emilmont 54:71b101360fb9 3 *
emilmont 59:0883845fe643 4 * Licensed under the Apache License, Version 2.0 (the "License");
emilmont 59:0883845fe643 5 * you may not use this file except in compliance with the License.
emilmont 59:0883845fe643 6 * You may obtain a copy of the License at
emilmont 59:0883845fe643 7 *
emilmont 59:0883845fe643 8 * http://www.apache.org/licenses/LICENSE-2.0
emilmont 54:71b101360fb9 9 *
emilmont 59:0883845fe643 10 * Unless required by applicable law or agreed to in writing, software
emilmont 59:0883845fe643 11 * distributed under the License is distributed on an "AS IS" BASIS,
emilmont 59:0883845fe643 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
emilmont 59:0883845fe643 13 * See the License for the specific language governing permissions and
emilmont 59:0883845fe643 14 * limitations under the License.
emilmont 54:71b101360fb9 15 */
emilmont 54:71b101360fb9 16 #ifndef MBED_FILEBASE_H
emilmont 54:71b101360fb9 17 #define MBED_FILEBASE_H
emilmont 54:71b101360fb9 18
emilmont 54:71b101360fb9 19 typedef int FILEHANDLE;
emilmont 54:71b101360fb9 20
emilmont 54:71b101360fb9 21 #include <stdio.h>
emilmont 54:71b101360fb9 22
emilmont 55:d722ed6a4237 23 #if defined(__ARMCC_VERSION) || defined(__ICCARM__)
emilmont 54:71b101360fb9 24 # define O_RDONLY 0
emilmont 54:71b101360fb9 25 # define O_WRONLY 1
emilmont 54:71b101360fb9 26 # define O_RDWR 2
emilmont 54:71b101360fb9 27 # define O_CREAT 0x0200
emilmont 54:71b101360fb9 28 # define O_TRUNC 0x0400
emilmont 54:71b101360fb9 29 # define O_APPEND 0x0008
emilmont 54:71b101360fb9 30
emilmont 54:71b101360fb9 31 # define NAME_MAX 255
emilmont 54:71b101360fb9 32
emilmont 54:71b101360fb9 33 typedef int mode_t;
emilmont 54:71b101360fb9 34 typedef int ssize_t;
emilmont 54:71b101360fb9 35 typedef long off_t;
emilmont 54:71b101360fb9 36
emilmont 54:71b101360fb9 37 #else
emilmont 54:71b101360fb9 38 # include <sys/fcntl.h>
emilmont 54:71b101360fb9 39 # include <sys/types.h>
emilmont 54:71b101360fb9 40 # include <sys/syslimits.h>
emilmont 54:71b101360fb9 41 #endif
emilmont 54:71b101360fb9 42
emilmont 54:71b101360fb9 43 #include "platform.h"
emilmont 54:71b101360fb9 44
emilmont 54:71b101360fb9 45 namespace mbed {
emilmont 54:71b101360fb9 46
emilmont 54:71b101360fb9 47 typedef enum {
emilmont 54:71b101360fb9 48 FilePathType,
emilmont 54:71b101360fb9 49 FileSystemPathType
emilmont 54:71b101360fb9 50 } PathType;
emilmont 54:71b101360fb9 51
emilmont 54:71b101360fb9 52 class FileBase {
emilmont 54:71b101360fb9 53 public:
emilmont 54:71b101360fb9 54 FileBase(const char *name, PathType t);
emilmont 55:d722ed6a4237 55
emilmont 54:71b101360fb9 56 virtual ~FileBase();
emilmont 55:d722ed6a4237 57
emilmont 54:71b101360fb9 58 const char* getName(void);
emilmont 54:71b101360fb9 59 PathType getPathType(void);
emilmont 55:d722ed6a4237 60
emilmont 54:71b101360fb9 61 static FileBase *lookup(const char *name, unsigned int len);
emilmont 55:d722ed6a4237 62
emilmont 54:71b101360fb9 63 static FileBase *get(int n);
emilmont 54:71b101360fb9 64
emilmont 55:d722ed6a4237 65 protected:
emilmont 54:71b101360fb9 66 static FileBase *_head;
emilmont 55:d722ed6a4237 67
emilmont 54:71b101360fb9 68 FileBase *_next;
emilmont 54:71b101360fb9 69 const char *_name;
emilmont 54:71b101360fb9 70 PathType _path_type;
emilmont 54:71b101360fb9 71 };
emilmont 54:71b101360fb9 72
emilmont 54:71b101360fb9 73 } // namespace mbed
emilmont 54:71b101360fb9 74
emilmont 54:71b101360fb9 75 #endif