From d3c37c08b36dbbf4c0996a56dbdfe856d0ec9b2b Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 28 May 2002 17:27:12 +0000 Subject: 2002-05-28 Ralf Corsepius * libblock, libfs moved to src/exec for multilib'ing. --- c/src/libfs/src/dosfs/msdos.h | 408 ------------------------------------------ 1 file changed, 408 deletions(-) delete mode 100644 c/src/libfs/src/dosfs/msdos.h (limited to 'c/src/libfs/src/dosfs/msdos.h') diff --git a/c/src/libfs/src/dosfs/msdos.h b/c/src/libfs/src/dosfs/msdos.h deleted file mode 100644 index a9216b1ed3..0000000000 --- a/c/src/libfs/src/dosfs/msdos.h +++ /dev/null @@ -1,408 +0,0 @@ -/* - * msdos.h - * - * The MSDOS filesystem constants/data structures/prototypes - * - * Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia - * Author: Eugeny S. Mints - * - * 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 __DOSFS_MSDOS_H__ -#define __DOSFS_MSDOS_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -#include "fat.h" -#include "fat_file.h" - -#ifndef RC_OK -#define RC_OK 0x00000000 -#endif - -#define MSDOS_NAME_NOT_FOUND_ERR 0xDD000001 - -/* - * This structure identifies the instance of the filesystem on the MSDOS - * level. - */ -typedef struct msdos_fs_info_s -{ - fat_fs_info_t fat; /* - * volume - * description - */ - rtems_filesystem_file_handlers_r *directory_handlers; /* - * a set of routines - * that handles the - * nodes of directory - * type - */ - rtems_filesystem_file_handlers_r *file_handlers; /* - * a set of routines - * that handles the - * nodes of file - * type - */ - rtems_id vol_sema; /* - * semaphore - * associated with - * the volume - */ - unsigned8 *cl_buf; /* - * just placeholder - * for anything - */ -} msdos_fs_info_t; - -/* a set of routines that handle the nodes which are directories */ -extern rtems_filesystem_file_handlers_r msdos_dir_handlers; - -/* a set of routines that handle the nodes which are files */ -extern rtems_filesystem_file_handlers_r msdos_file_handlers; - -/* Volume semaphore timeout value */ -#define MSDOS_VOLUME_SEMAPHORE_TIMEOUT 100 - -/* Node types */ -#define MSDOS_DIRECTORY RTEMS_FILESYSTEM_DIRECTORY -#define MSDOS_REGULAR_FILE RTEMS_FILESYSTEM_MEMORY_FILE - -typedef rtems_filesystem_node_types_t msdos_node_type_t; - -/* - * Macros for fetching fields from 32 bytes long FAT Directory Entry - * Structure (see M$ White Paper) - */ -#define MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE 32 /* 32 bytes */ - -#define MSDOS_DIR_NAME(x) (unsigned8 *)((x) + 0) -#define MSDOS_DIR_ATTR(x) (unsigned8 *)((x) + 11) -#define MSDOS_DIR_NT_RES(x) (unsigned8 *)((x) + 12) -#define MSDOS_DIR_CRT_TIME_TENTH(x) (unsigned8 *)((x) + 13) -#define MSDOS_DIR_CRT_TIME(x) (unsigned16 *)((x) + 14) -#define MSDOS_DIR_CRT_DATE(x) (unsigned16 *)((x) + 16) -#define MSDOS_DIR_LAST_ACCESS_DATE(x) (unsigned16 *)((x) + 18) -#define MSDOS_DIR_FIRST_CLUSTER_HI(x) (unsigned16 *)((x) + 20) -#define MSDOS_DIR_WRITE_TIME(x) (unsigned16 *)((x) + 22) -#define MSDOS_DIR_WRITE_DATE(x) (unsigned16 *)((x) + 24) -#define MSDOS_DIR_FIRST_CLUSTER_LOW(x) (unsigned16 *)((x) + 26) -#define MSDOS_DIR_FILE_SIZE(x) (unsigned32 *)((x) + 28) - -#define MSDOS_EXTRACT_CLUSTER_NUM(p) \ - (unsigned32)( (CF_LE_W(*MSDOS_DIR_FIRST_CLUSTER_LOW(p))) | \ - ((CF_LE_W((*MSDOS_DIR_FIRST_CLUSTER_HI(p))))<<16) ) - -/* - * Fields offset in 32 bytes long FAT Directory Entry - * Structure (see M$ White Paper) - */ -#define MSDOS_FILE_SIZE_OFFSET 28 -#define MSDOS_FILE_NAME_OFFSET 0 -#define MSDOS_FIRST_CLUSTER_HI_OFFSET 20 -#define MSDOS_FIRST_CLUSTER_LOW_OFFSET 26 -#define MSDOS_FILE_WDATE_OFFSET 24 -#define MSDOS_FILE_WTIME_OFFSET 22 - -/* - * Possible values of DIR_Attr field of 32 bytes long FAT Directory Entry - * Structure (see M$ White Paper) - */ -#define MSDOS_ATTR_READ_ONLY 0x01 -#define MSDOS_ATTR_HIDDEN 0x02 -#define MSDOS_ATTR_SYSTEM 0x04 -#define MSDOS_ATTR_VOLUME_ID 0x08 -#define MSDOS_ATTR_DIRECTORY 0x10 -#define MSDOS_ATTR_ARCHIVE 0x20 - -/* - * Possible values of DIR_Name[0] field of 32 bytes long FAT Directory Entry - * Structure (see M$ White Paper) - */ -#define MSDOS_THIS_DIR_ENTRY_EMPTY 0xE5 -#define MSDOS_THIS_DIR_ENTRY_AND_REST_EMPTY 0x00 - - -/* - * Macros for names parsing and formatting - */ -#define msdos_is_valid_name_char(_ch) (1) -#define msdos_is_separator(_ch) rtems_filesystem_is_separator(_ch) - -#define MSDOS_SHORT_NAME_LEN 11 /* 11 characters */ -#define MSDOS_NAME_MAX MSDOS_SHORT_NAME_LEN -#define MSDOS_NAME_MAX_WITH_DOT (MSDOS_NAME_MAX + 1) - -#define MSDOS_DOT_NAME ". " /* ".", padded to MSDOS_NAME chars */ -#define MSDOS_DOTDOT_NAME ".. " /* "..", padded to MSDOS_NAME chars */ - -typedef enum msdos_token_types_e -{ - MSDOS_NO_MORE_PATH, - MSDOS_CURRENT_DIR, - MSDOS_UP_DIR, - MSDOS_NAME, - MSDOS_INVALID_TOKEN -} msdos_token_types_t; - -/* Others macros */ -#define MSDOS_RES_NT_VALUE 0x00 -#define MSDOS_INIT_DIR_SIZE 0x00 - -/* "dot" entry offset in a directory */ -#define MSDOS_DOT_DIR_ENTRY_OFFSET 0x00 /* first entry in directory */ - -/* "dotdot" entry offset in a directory */ -#define MSDOS_DOTDOT_DIR_ENTRY_OFFSET 0x20 /* second entry in directory */ - -/* 'p' should be char* */ -#define DOT_NODE_P(p) ((char *)(p)) -#define DOTDOT_NODE_P(p) ((char *)((p) + MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)) - -/* Size limits for files and directories (see M$ White Paper) */ -#define MSDOS_MAX_DIR_LENGHT 0x200000 /* 2,097,152 bytes */ -#define MSDOS_MAX_FILE_SIZE 0xFFFFFFFF /* 4 Gb */ - -/* - * The number of 32 bytes long FAT Directory Entry - * Structures per 512 bytes sector - */ -#define MSDOS_DPS512_NUM 16 - -/* Prototypes */ -int -msdos_initialize(rtems_filesystem_mount_table_entry_t *temp_mt_entry); - -int -msdos_shut_down(rtems_filesystem_mount_table_entry_t *temp_mt_entry); - -int -msdos_eval_path(const char *pathname, /* IN */ - int flags, /* IN */ - rtems_filesystem_location_info_t *pathloc /* IN/OUT */); - -int -msdos_eval4make(const char *path, /* IN */ - rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ - const char **name /* OUT */); - -int -msdos_unlink(rtems_filesystem_location_info_t *pathloc /* IN */); - -int -msdos_free_node_info(rtems_filesystem_location_info_t *pathloc /* IN */); - -rtems_filesystem_node_types_t -msdos_node_type(rtems_filesystem_location_info_t *pathloc); - -int -msdos_mknod(const char *path, /* IN */ - mode_t mode, /* IN */ - dev_t dev, /* IN */ - rtems_filesystem_location_info_t *pathloc /* IN/OUT */); - -int -msdos_utime(rtems_filesystem_location_info_t *pathloc, /* IN */ - time_t actime, /* IN */ - time_t modtime /* IN */); - -int -msdos_initialize_support( - rtems_filesystem_mount_table_entry_t *temp_mt_entry, - rtems_filesystem_operations_table *op_table, - rtems_filesystem_file_handlers_r *file_handlers, - rtems_filesystem_file_handlers_r *directory_handlers -); - -int -msdos_file_open( - rtems_libio_t *iop, /* IN */ - const char *pathname, /* IN */ - unsigned32 flag, /* IN */ - unsigned32 mode /* IN */ -); - -int -msdos_file_close(rtems_libio_t *iop /* IN */); - -ssize_t -msdos_file_read( - rtems_libio_t *iop, /* IN */ - void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -ssize_t -msdos_file_write( - rtems_libio_t *iop, /* IN */ - const void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -int -msdos_file_lseek( - rtems_libio_t *iop, /* IN */ - off_t offset, /* IN */ - int whence /* IN */ -); - -int -msdos_file_stat(rtems_filesystem_location_info_t *loc, /* IN */ - struct stat *buf /* OUT */); - -int -msdos_file_ftruncate( - rtems_libio_t *iop, /* IN */ - off_t length /* IN */ -); - -int -msdos_file_sync(rtems_libio_t *iop); - -int -msdos_file_datasync(rtems_libio_t *iop); - -int -msdos_file_ioctl( - rtems_libio_t *iop, /* IN */ - unsigned32 command, /* IN */ - void *buffer /* IN */ -); - -int -msdos_file_rmnod(rtems_filesystem_location_info_t *pathloc /* IN */); - -int -msdos_dir_open( - rtems_libio_t *iop, /* IN */ - const char *pathname, /* IN */ - unsigned32 flag, /* IN */ - unsigned32 mode /* IN */ -); - -int -msdos_dir_close(rtems_libio_t *iop /* IN */); - -ssize_t -msdos_dir_read( - rtems_libio_t *iop, /* IN */ - void *buffer, /* IN */ - unsigned32 count /* IN */ -); - -int -msdos_dir_lseek( - rtems_libio_t *iop, /* IN */ - off_t offset, /* IN */ - int whence /* IN */ -); - -int -msdos_dir_rmnod(rtems_filesystem_location_info_t *pathloc /* IN */); - -int -msdos_dir_sync(rtems_libio_t *iop); - -int -msdos_dir_stat( - rtems_filesystem_location_info_t *loc, /* IN */ - struct stat *buf /* OUT */ -); - -int -msdos_creat_node(rtems_filesystem_location_info_t *parent_loc, - msdos_node_type_t type, - char *name, - mode_t mode); - -/* Misc prototypes */ -msdos_token_types_t msdos_get_token(const char *path, - char *token, - int *token_len); - -int -msdos_find_name(rtems_filesystem_location_info_t *parent_loc, - char *name); - -int -msdos_get_name_node(rtems_filesystem_location_info_t *parent_loc, - char *name, - fat_auxiliary_t *paux, - char *name_dir_entry); - -int -msdos_dir_info_remove(rtems_filesystem_location_info_t *pathloc); - -void -msdos_date_unix2dos(int unix_date, - unsigned short *time_val, - unsigned short *date); - -unsigned int -msdos_date_dos2unix(unsigned short time_val, unsigned short date); - -int -msdos_set_first_cluster_num(rtems_filesystem_mount_table_entry_t *mt_entry, - fat_file_fd_t *fat_fd); - -int -msdos_set_file_size(rtems_filesystem_mount_table_entry_t *mt_entry, - fat_file_fd_t *fat_fd); - -int -msdos_set_first_char4file_name(rtems_filesystem_mount_table_entry_t *mt_entry, - unsigned32 cl, - unsigned32 ofs, - unsigned char first_char); - -int -msdos_set_dir_wrt_time_and_date( - rtems_filesystem_mount_table_entry_t *mt_entry, - fat_file_fd_t *fat_fd -); - - -int -msdos_dir_is_empty(rtems_filesystem_mount_table_entry_t *mt_entry, - fat_file_fd_t *fat_fd, - rtems_boolean *ret_val); - -int -msdos_find_name_in_fat_file( - rtems_filesystem_mount_table_entry_t *mt_entry, - fat_file_fd_t *fat_fd, - char *name, - fat_auxiliary_t *paux, - char *name_dir_entry); - -int -msdos_find_node_by_cluster_num_in_fat_file( - rtems_filesystem_mount_table_entry_t *mt_entry, - fat_file_fd_t *fat_fd, - unsigned32 cl4find, - fat_auxiliary_t *paux, - char *dir_entry -); - -int -msdos_get_dotdot_dir_info_cluster_num_and_offset( - rtems_filesystem_mount_table_entry_t *mt_entry, - unsigned32 cln, - fat_auxiliary_t *paux, - char *dir_entry -); - -#ifdef __cplusplus -} -#endif - -#endif /* __DOSFS_MSDOS_H__ */ -- cgit v1.2.3