diff options
Diffstat (limited to 'cpukit/libfs/src/dosfs/dosfs.h')
-rw-r--r-- | cpukit/libfs/src/dosfs/dosfs.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/cpukit/libfs/src/dosfs/dosfs.h b/cpukit/libfs/src/dosfs/dosfs.h new file mode 100644 index 0000000000..5b6cdec2bf --- /dev/null +++ b/cpukit/libfs/src/dosfs/dosfs.h @@ -0,0 +1,88 @@ +/** + * @file rtems/dosfs.h + * + * Application interface to MSDOS filesystem. + */ + +/* + * Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia + * Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * @(#) $Id$ + */ + +#ifndef _RTEMS_DOSFS_H +#define _RTEMS_DOSFS_H + +#include <rtems.h> +#include <rtems/libio.h> + +#ifdef __cplusplus +extern "C" { +#endif + +int rtems_dosfs_initialize(rtems_filesystem_mount_table_entry_t *mt_entry, + const void *data); + +#define MSDOS_FMT_FATANY 0 +#define MSDOS_FMT_FAT12 1 +#define MSDOS_FMT_FAT16 2 +#define MSDOS_FMT_FAT32 3 + +#define MSDOS_FMT_INFO_LEVEL_NONE (0) +#define MSDOS_FMT_INFO_LEVEL_INFO (1) +#define MSDOS_FMT_INFO_LEVEL_DETAIL (2) +#define MSDOS_FMT_INFO_LEVEL_DEBUG (3) + +/* + * data to be filled out for formatter: parameters for format call + * any parameter set to 0 or NULL will be automatically detected/computed + */ +typedef struct { + const char *OEMName; /* OEM Name string or NULL */ + const char *VolLabel; /* Volume Label string or NULL */ + uint32_t sectors_per_cluster; /* request value: sectors per cluster */ + uint32_t fat_num; /* request value: number of FATs on disk */ + uint32_t files_per_root_dir; /* request value: file entries in root */ + uint8_t fattype; /* request value: MSDOS_FMT_FAT12/16/32 */ + uint8_t media; /* media code. default: 0xF8 */ + bool quick_format; /* true: do not clear out data sectors */ + uint32_t cluster_align; /* requested value: cluster alignment */ + /* make sector number of first sector */ + /* of first cluster divisible by this */ + /* value. This can optimize clusters */ + /* to be located at start of track */ + /* or start of flash block */ + int info_level; /* The amount of info to output */ +} msdos_format_request_param_t; + +/*=========================================================================*\ +| Function: | +\*-------------------------------------------------------------------------*/ +int msdos_format +( +/*-------------------------------------------------------------------------*\ +| Purpose: | +| format device with msdos filesystem | ++---------------------------------------------------------------------------+ +| Input Parameters: | +\*-------------------------------------------------------------------------*/ + const char *devname, /* device name */ + const msdos_format_request_param_t *rqdata /* requested fmt parameters */ + /* set to NULL for automatic */ + /* determination */ + ); +/*-------------------------------------------------------------------------*\ +| Return Value: | +| 0, if success, -1 and errno if failed | +\*=========================================================================*/ + +#ifdef __cplusplus +} +#endif + +#endif |