diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2002-07-22 09:46:48 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2002-07-22 09:46:48 +0000 |
commit | 2b3e9d9b244e279ef5693a7cf5dacc7903164af5 (patch) | |
tree | 955e5242d4d08a8ec747c8350f55003bb9d4b519 /c/src/exec/libfs/src/imfs/imfs.h | |
parent | Remove everything. (diff) | |
download | rtems-2b3e9d9b244e279ef5693a7cf5dacc7903164af5.tar.bz2 |
Remove, moved to cpukit.
Diffstat (limited to '')
-rw-r--r-- | c/src/exec/libfs/src/imfs/imfs.h | 546 |
1 files changed, 0 insertions, 546 deletions
diff --git a/c/src/exec/libfs/src/imfs/imfs.h b/c/src/exec/libfs/src/imfs/imfs.h deleted file mode 100644 index 4113553768..0000000000 --- a/c/src/exec/libfs/src/imfs/imfs.h +++ /dev/null @@ -1,546 +0,0 @@ -/* - * Header file for the In-Memory File System - * - * COPYRIGHT (c) 1989-1999. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#ifndef __IMFS_h -#define __IMFS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include <rtems.h> -#include <chain.h> - -#include <sys/types.h> -#include <limits.h> -#include <rtems/libio.h> - -/* - * File name macros - */ - -#define IMFS_is_valid_name_char( _ch ) ( 1 ) - -#define IMFS_is_separator( _ch ) \ - rtems_filesystem_is_separator( _ch ) - -/* - * Data types - */ - -struct IMFS_jnode_tt; -typedef struct IMFS_jnode_tt IMFS_jnode_t; - -typedef struct { - Chain_Control Entries; - rtems_filesystem_mount_table_entry_t *mt_fs; -} IMFS_directory_t; - -typedef struct { - rtems_device_major_number major; - rtems_device_minor_number minor; -} IMFS_device_t; - -typedef struct { - IMFS_jnode_t *link_node; -} IMFS_link_t; - -typedef struct { - const char *name; -} IMFS_sym_link_t; - -/* - * IMFS "memfile" information - * - * The data structure for the in-memory "memfiles" is based on classic UNIX. - * - * block_ptr is a pointer to a block of IMFS_MEMFILE_BYTES_PER_BLOCK in - * length which could be data or a table of pointers to blocks. - * - * Setting IMFS_MEMFILE_BYTES_PER_BLOCK to different values has a significant - * impact on the maximum file size supported as well as the amount of - * memory wasted due to internal file fragmentation. The following - * is a list of maximum file sizes based on various settings - * - * max_filesize with blocks of 16 is 1,328 - * max_filesize with blocks of 32 is 18,656 - * max_filesize with blocks of 64 is 279,488 - * max_filesize with blocks of 128 is 4,329,344 - * max_filesize with blocks of 256 is 68,173,568 - * max_filesize with blocks of 512 is 1,082,195,456 - */ - -#define IMFS_MEMFILE_BYTES_PER_BLOCK 128 -#define IMFS_MEMFILE_BLOCK_SLOTS \ - (IMFS_MEMFILE_BYTES_PER_BLOCK / sizeof(void *)) - -typedef unsigned char * block_p; -typedef block_p *block_ptr; - -typedef struct { - off_t size; /* size of file in bytes */ - block_ptr indirect; /* array of 128 data blocks pointers */ - block_ptr doubly_indirect; /* 128 indirect blocks */ - block_ptr triply_indirect; /* 128 doubly indirect blocks */ -} IMFS_memfile_t; - -typedef struct { - off_t size; /* size of file in bytes */ - block_p direct; /* pointer to file image */ -} IMFS_linearfile_t; - -/* - * Important block numbers for "memfiles" - */ - -#define FIRST_INDIRECT (0) -#define LAST_INDIRECT (IMFS_MEMFILE_BLOCK_SLOTS - 1) - -#define FIRST_DOUBLY_INDIRECT (LAST_INDIRECT + 1) -#define LAST_DOUBLY_INDIRECT \ - (LAST_INDIRECT + \ - (IMFS_MEMFILE_BLOCK_SLOTS * IMFS_MEMFILE_BLOCK_SLOTS)) - -#define FIRST_TRIPLY_INDIRECT (LAST_DOUBLY_INDIRECT + 1) -#define LAST_TRIPLY_INDIRECT \ - (LAST_DOUBLY_INDIRECT +\ - (IMFS_MEMFILE_BLOCK_SLOTS * \ - IMFS_MEMFILE_BLOCK_SLOTS * IMFS_MEMFILE_BLOCK_SLOTS)) - -#define IMFS_MEMFILE_MAXIMUM_SIZE \ - (LAST_TRIPLY_INDIRECT * IMFS_MEMFILE_BYTES_PER_BLOCK) - -/* - * What types of IMFS file systems entities there can be. - */ - -#define IMFS_jnode_types_t rtems_filesystem_node_types_t -#define IMFS_DIRECTORY RTEMS_FILESYSTEM_DIRECTORY -#define IMFS_DEVICE RTEMS_FILESYSTEM_DEVICE -#define IMFS_HARD_LINK RTEMS_FILESYSTEM_HARD_LINK -#define IMFS_SYM_LINK RTEMS_FILESYSTEM_SYM_LINK -#define IMFS_MEMORY_FILE RTEMS_FILESYSTEM_MEMORY_FILE -#define IMFS_LINEAR_FILE (IMFS_MEMORY_FILE + 1) - -#define IMFS_NUMBER_OF_TYPES (IMFS_LINEAR_FILE + 1) - -typedef union { - IMFS_directory_t directory; - IMFS_device_t device; - IMFS_link_t hard_link; - IMFS_sym_link_t sym_link; - IMFS_memfile_t file; - IMFS_linearfile_t linearfile; -} IMFS_types_union; - -/* - * Maximum length of a "basename" of an IMFS file/node. - */ - -#define IMFS_NAME_MAX 32 - -/* - * The control structure for an IMFS jnode. - */ - -struct IMFS_jnode_tt { - Chain_Node Node; /* for chaining them together */ - IMFS_jnode_t *Parent; /* Parent node */ - char name[IMFS_NAME_MAX+1]; /* "basename" */ - mode_t st_mode; /* File mode */ - nlink_t st_nlink; /* Link count */ - ino_t st_ino; /* inode */ - - uid_t st_uid; /* User ID of owner */ - gid_t st_gid; /* Group ID of owner */ - - time_t stat_atime; /* Time of last access */ - time_t stat_mtime; /* Time of last modification */ - time_t stat_ctime; /* Time of last status change */ - IMFS_jnode_types_t type; /* Type of this entry */ - IMFS_types_union info; -}; - -#define IMFS_update_atime( _jnode ) \ - do { \ - struct timeval tv; \ - gettimeofday( &tv, 0 ); \ - _jnode->stat_atime = (time_t) tv.tv_sec; \ - } while (0) - -#define IMFS_update_mtime( _jnode ) \ - do { \ - struct timeval tv; \ - gettimeofday( &tv, 0 ); \ - _jnode->stat_mtime = (time_t) tv.tv_sec; \ - } while (0) - -#define IMFS_update_ctime( _jnode ) \ - do { \ - struct timeval tv; \ - gettimeofday( &tv, 0 ); \ - _jnode->stat_ctime = (time_t) tv.tv_sec; \ - } while (0) - -#define IMFS_atime_mtime_update( _jnode ) \ - do { \ - struct timeval tv; \ - gettimeofday( &tv, 0 ); \ - _jnode->stat_mtime = (time_t) tv.tv_sec; \ - _jnode->stat_atime = (time_t) tv.tv_sec; \ - } while (0) - -typedef struct { - ino_t ino_count; - rtems_filesystem_file_handlers_r *linearfile_handlers; - rtems_filesystem_file_handlers_r *memfile_handlers; - rtems_filesystem_file_handlers_r *directory_handlers; -} IMFS_fs_info_t; - -#if UNUSED -/* FIXME: Unused, we might want to remove it */ -#define increment_and_check_linkcounts( _fs_info ) \ - ((IMFS_fs_info_t * )_fs_info)->link_counts++; \ - if ( ((IMFS_fs_info_t * )_fs_info)->link_counts > MAXSYMLINKS ) \ - rtems_set_errno_and_return_minus_one( ELOOP ) -#endif - -#define decrement_linkcounts( _fs_info ) \ - ((IMFS_fs_info_t * )_fs_info)->link_counts--; - -/* - * Type defination for tokens returned from IMFS_get_token - */ - -typedef enum { - IMFS_NO_MORE_PATH, - IMFS_CURRENT_DIR, - IMFS_UP_DIR, - IMFS_NAME, - IMFS_INVALID_TOKEN -} IMFS_token_types; - -/* - * Shared Data - */ - -extern rtems_filesystem_file_handlers_r IMFS_directory_handlers; -extern rtems_filesystem_file_handlers_r IMFS_device_handlers; -extern rtems_filesystem_file_handlers_r IMFS_link_handlers; -extern rtems_filesystem_file_handlers_r IMFS_linearfile_handlers; -extern rtems_filesystem_file_handlers_r IMFS_memfile_handlers; -extern rtems_filesystem_operations_table IMFS_ops; -extern rtems_filesystem_operations_table miniIMFS_ops; -extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS; - -/* - * Routines - */ - -int IMFS_initialize( - rtems_filesystem_mount_table_entry_t *mt_entry -); - -int miniIMFS_initialize( - rtems_filesystem_mount_table_entry_t *mt_entry -); - -int IMFS_initialize_support( - rtems_filesystem_mount_table_entry_t *mt_entry, - rtems_filesystem_operations_table *op_table, - rtems_filesystem_file_handlers_r *linearfile_handlers, - rtems_filesystem_file_handlers_r *memfile_handlers, - rtems_filesystem_file_handlers_r *directory_handlers -); - -int IMFS_fsunmount( - rtems_filesystem_mount_table_entry_t *mt_entry -); - -int rtems_tarfs_load( - char *mountpoint, - unsigned char *addr, - unsigned long length -); - -/* - * Returns the number of characters copied from path to token. - */ -IMFS_token_types IMFS_get_token( - const char *path, - char *token, - int *token_len -); - -void IMFS_dump( void ); - -void IMFS_initialize_jnode( - IMFS_jnode_t *the_jnode, - IMFS_jnode_types_t type, - IMFS_jnode_t *the_parent, - char *name, - mode_t mode -); - -IMFS_jnode_t *IMFS_find_match_in_dir( - IMFS_jnode_t *directory, /* IN */ - char *name /* IN */ -); - -rtems_filesystem_node_types_t IMFS_node_type( - rtems_filesystem_location_info_t *pathloc /* IN */ -); - -int IMFS_stat( - rtems_filesystem_location_info_t *loc, /* IN */ - struct stat *buf /* OUT */ -); - -int IMFS_Set_handlers( - rtems_filesystem_location_info_t *loc -); - -int IMFS_evaluate_link( - rtems_filesystem_location_info_t *node, /* IN/OUT */ - int flags /* IN */ -); - -int IMFS_eval_path( - const char *pathname, /* IN */ - int flags, /* IN */ - rtems_filesystem_location_info_t *pathloc /* IN/OUT */ -); - - -int IMFS_link( - rtems_filesystem_location_info_t *to_loc, /* IN */ - rtems_filesystem_location_info_t *parent_loc, /* IN */ - const char *token /* IN */ -); - -int IMFS_unlink( - rtems_filesystem_location_info_t *pathloc /* IN */ -); - -int IMFS_chown( - rtems_filesystem_location_info_t *pathloc, /* IN */ - uid_t owner, /* IN */ - gid_t group /* IN */ -); - -int IMFS_freenodinfo( - rtems_filesystem_location_info_t *pathloc /* IN */ -); - -int IMFS_mknod( - const char *path, /* IN */ - mode_t mode, /* IN */ - dev_t dev, /* IN */ - rtems_filesystem_location_info_t *pathloc /* IN/OUT */ -); - -IMFS_jnode_t *IMFS_create_node( - rtems_filesystem_location_info_t *parent_loc, /* IN */ - IMFS_jnode_types_t type, /* IN */ - char *name, /* IN */ - mode_t mode, /* IN */ - IMFS_types_union *info /* IN */ -); - -int IMFS_evaluate_for_make( - const char *path, /* IN */ - rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ - const char **name /* OUT */ -); - -int IMFS_mount( - rtems_filesystem_mount_table_entry_t *mt_entry /* IN */ -); - -int IMFS_unmount( - rtems_filesystem_mount_table_entry_t *mt_entry /* IN */ -); - -int IMFS_freenod( - rtems_filesystem_location_info_t *node /* IN/OUT */ -); - -int IMFS_memfile_remove( - IMFS_jnode_t *the_jnode /* IN/OUT */ -); - -int memfile_ftruncate( - rtems_libio_t *iop, /* IN */ - off_t length /* IN */ -); - -int imfs_dir_open( - rtems_libio_t *iop, /* IN */ - const char *pathname, /* IN */ - unsigned32 flag, /* IN */ - unsigned32 mode /* IN */ -); - -int imfs_dir_close( - rtems_libio_t *iop /* IN */ -); - -int imfs_dir_read( - rtems_libio_t *iop, /* IN */ - void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -int imfs_dir_lseek( - rtems_libio_t *iop, /* IN */ - off_t offset, /* IN */ - int whence /* IN */ -); - -int imfs_dir_fstat( - rtems_filesystem_location_info_t *loc, /* IN */ - struct stat *buf /* OUT */ -); - -int imfs_dir_rmnod( - rtems_filesystem_location_info_t *pathloc /* IN */ -); - -int linearfile_read( - rtems_libio_t *iop, /* IN */ - void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -int linearfile_lseek( - rtems_libio_t *iop, /* IN */ - off_t offset, /* IN */ - int whence /* IN */ -); - -int memfile_open( - rtems_libio_t *iop, /* IN */ - const char *pathname, /* IN */ - unsigned32 flag, /* IN */ - unsigned32 mode /* IN */ -); - -int memfile_close( - rtems_libio_t *iop /* IN */ -); - -int memfile_read( - rtems_libio_t *iop, /* IN */ - void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -int memfile_write( - rtems_libio_t *iop, /* IN */ - const void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -int memfile_ioctl( - rtems_libio_t *iop, /* IN */ - unsigned32 command, /* IN */ - void *buffer /* IN */ -); - -int memfile_lseek( - rtems_libio_t *iop, /* IN */ - off_t offset, /* IN */ - int whence /* IN */ -); - -int memfile_rmnod( - rtems_filesystem_location_info_t *pathloc /* IN */ -); - -int device_open( - rtems_libio_t *iop, /* IN */ - const char *pathname, /* IN */ - unsigned32 flag, /* IN */ - unsigned32 mode /* IN */ -); - -int device_close( - rtems_libio_t *iop /* IN */ -); - -int device_read( - rtems_libio_t *iop, /* IN */ - void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -int device_write( - rtems_libio_t *iop, /* IN */ - const void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -int device_ioctl( - rtems_libio_t *iop, /* IN */ - unsigned32 command, /* IN */ - void *buffer /* IN */ -); - -int device_lseek( - rtems_libio_t *iop, /* IN */ - off_t offset, /* IN */ - int whence /* IN */ -); - -int IMFS_utime( - rtems_filesystem_location_info_t *pathloc, /* IN */ - time_t actime, /* IN */ - time_t modtime /* IN */ -); - -int IMFS_fchmod( - rtems_filesystem_location_info_t *loc, - mode_t mode -); - -int IMFS_symlink( - rtems_filesystem_location_info_t *parent_loc, /* IN */ - const char *link_name, - const char *node_name -); - -int IMFS_readlink( - rtems_filesystem_location_info_t *loc, /* IN */ - char *buf, /* OUT */ - size_t bufsize -); - -int IMFS_fdatasync( - rtems_libio_t *iop -); - -int IMFS_fcntl( - int cmd, - rtems_libio_t *iop -); - -int IMFS_rmnod( - rtems_filesystem_location_info_t *pathloc /* IN */ -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ |