1 // interface to file system for Forth programs
3 // Copyright 2009 Christopher Hall <hsw@openmoko.com>
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
9 // 1. Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
12 // 2. Redistributions in binary form must reproduce the above copyright
13 // notice, this list of conditions and the following disclaimer in
14 // the documentation and/or other materials provided with the
17 // THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY
18 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE
21 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 // BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 // IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #if !defined(_FILE_SYSTEM_H_)
30 #define _FILE_SYSTEM_H_ 1
34 void FileSystem_initialise(void);
35 void FileSystem_CloseAll(void);
37 Forth_ReturnType
FileSystem_rename(const Forth_PointerType OldFilename
, Forth_CellType OldLength
,
38 const Forth_PointerType NewFilename
, Forth_CellType NewLength
);
39 Forth_ReturnType
FileSystem_delete(const Forth_PointerType filename
, Forth_CellType length
);
40 Forth_ReturnType
FileSystem_create(const Forth_PointerType filename
, Forth_CellType length
, Forth_CellType fam
);
42 Forth_ReturnType
FileSystem_open(const Forth_PointerType filename
, Forth_CellType length
, Forth_CellType fam
);
43 Forth_ReturnType
FileSystem_close(Forth_CellType handle
);
44 Forth_ReturnType
FileSystem_read(Forth_CellType handle
, void *buffer
, Forth_CellType length
);
45 Forth_ReturnType
FileSystem_write(Forth_CellType handle
, void *buffer
, Forth_CellType length
);
46 Forth_ReturnType
FileSystem_sync(Forth_CellType handle
);
47 Forth_ReturnType
FileSystem_lseek(Forth_CellType handle
, Forth_CellType pos
);
48 Forth_ReturnType
FileSystem_ltell(Forth_CellType handle
, Forth_CellType pos
);
49 Forth_ReturnType
FileSystem_lsize(Forth_CellType handle
, Forth_CellType pos
);
51 Forth_CellType
FileSystem_ReadOnly(void);
52 Forth_CellType
FileSystem_ReadWrite(void);
53 Forth_CellType
FileSystem_WriteOnly(void);
54 Forth_CellType
FileSystem_bin(Forth_CellType fam
);
56 Forth_ReturnType
FileSystem_OpenDirectory(const Forth_PointerType directoryname
, Forth_CellType length
);
57 Forth_ReturnType
FileSystem_CloseDirectory(Forth_CellType handle
);
58 Forth_ReturnType
FileSystem_ReadDirectory(Forth_CellType handle
, void *buffer
, Forth_CellType length
);
61 Forth_ReturnType
FileSystem_AbsoluteRead(Forth_CellType sector
, void *buffer
, Forth_CellType count
);
62 Forth_ReturnType
FileSystem_AbsoluteWrite(Forth_CellType sector
, const void *buffer
, Forth_CellType count
);