mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
emilmont
Date:
Mon Feb 18 11:44:18 2013 +0000
Revision:
2:143cac498751
Update mbed sources to Rev 59

Who changed what in which revision?

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