New developer version 0.6.8; added select () function; added demonstrating example...
[ZeXOS.git] / libc / include / vfs.h
blob8bea3b11488c71d0a35ba54779547f21928f1289
1 /*
2 * ZeX/OS
3 * Copyright (C) 2007 Tomas 'ZeXx86' Jedrzejek (zexx86@zexos.org)
4 * Copyright (C) 2009 Tomas 'ZeXx86' Jedrzejek (zexx86@zexos.org)
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef _VFS_H
22 #define _VFS_H
24 #define VFS_FILEATTR_FILE 0x1
25 #define VFS_FILEATTR_DIR 0x2
26 #define VFS_FILEATTR_HIDDEN 0x4
27 #define VFS_FILEATTR_SYSTEM 0x8
28 #define VFS_FILEATTR_BIN 0x10
29 #define VFS_FILEATTR_READ 0x20
30 #define VFS_FILEATTR_WRITE 0x40
31 #define VFS_FILEATTR_MOUNTED 0x80
32 #define VFS_FILEATTR_DEVICE 0x100
34 #define VFS_FILENAME_LEN 10
35 #define VFS_MOUNTPOINT_LEN 32
37 /* VFS dirent structure */
38 typedef struct {
39 char *name;
40 unsigned attrib;
41 unsigned char next;
42 unsigned char unused;
43 } __attribute__ ((__packed__)) vfs_dirent_t;
45 /* Virtual filesystem structure */
46 typedef struct vfs_context {
47 struct vfs_context *next, *prev;
49 char *name;
50 char mountpoint[VFS_MOUNTPOINT_LEN];
51 unsigned attrib;
52 char *ptr;
53 } vfs_ent_t;
56 extern int mount (const char *devname, const char *mountpoint);
58 #endif