⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fs_mkfatfs.h

📁 這是一個實時嵌入式作業系統 實作了MCS51 ARM等MCU
💻 H
字号:
/**************************************************************************** * fs/fat/fs_mkfat.h * *   Copyright (C) 2008 Gregory Nutt. All rights reserved. *   Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * 3. Neither the name NuttX nor the names of its contributors may be *    used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************/#ifndef __FS_FAT_FS_MKATFS_H#define __FS_FAT_FS_MKATFS_H/**************************************************************************** * Included Files ****************************************************************************/#include <nuttx/config.h>#include <sys/types.h>/**************************************************************************** * Definitions ****************************************************************************//* Only the "hard drive" media type is used */#define FAT_DEFAULT_MEDIA_TYPE         0xf8/*  Default hard driver geometry */#define FAT_DEFAULT_SECPERTRK          63#define FAT_DEFAULT_NUMHEADS           255/* FSINFO is always at this sector */#define FAT_DEFAULT_FSINFO_SECTOR      1/* FAT32 foot cluster number */#define FAT32_DEFAULT_ROOT_CLUSTER     2/* Macros to simplify direct block driver access */#define DEV_OPEN() \    var->fb_inode->u.i_bops->open ? \    var->fv_inode->u.i_bops->open(var->fv_inode) : \    0#define DEV_CLOSE() \    var->fb_inode->u.i_bops->close ? \    var->fv_inode->u.i_bops->close(var->fv_inode) : \    0#define DEV_READ(buf, sect, nsect) \    var->fv_inode->u.i_bops->read(var->fv_inode, buf, sect, nsect)#define DEV_WRITE(buf, sect, nsect) \    var->fv_inode->u.i_bops->write(var->fv_inode, buf, sect, nsect)#define DEV_GEOMETRY(geo) \    var->fv_inode->u.i_bops->geometry(var->fv_inode, &geo)#define DEV_IOCTL(cmd, arg) \    var->fv_inode->u.i_bops->ioctl(var->fv_inode, cmd, arg)/**************************************************************************** * Public Types ****************************************************************************//* This structure (plus the user-provided struct fat_format_s) describes * the format FAT file system.  All "global" variables used in the format * logic are contained in this structure so that is possible to format two * block devices concurrently. */struct fat_var_s{   struct inode *fv_inode;          /* The block driver "handle" */   ubyte         fv_jump[3];        /* 3-byte boot jump instruction */   ubyte         fv_sectshift;      /* Log2 of fv_sectorsize */   ubyte         fv_nrootdirsects;  /* Number of root directory sectors */   ubyte         fv_fattype;        /* FAT size: 0 (not determined), 12, 16, or 32 */   uint16        fv_bootcodesize;   /* Size of array at fv_bootcode */   uint32        fv_createtime;     /* Creation time */   uint32        fv_sectorsize;     /* Size of one hardware sector */   uint32        fv_nfatsects;      /* Number of sectors in each FAT */   uint32        fv_nclusters;      /* Number of clusters */   ubyte        *fv_sect;           /* Allocated working sector buffer */   const ubyte  *fv_bootcode;       /* Points to boot code to put into MBR */};/**************************************************************************** * Global Variables ****************************************************************************//**************************************************************************** * Public Function Prototypes ****************************************************************************/#undef EXTERN#if defined(__cplusplus)#define EXTERN extern "C"extern "C" {#else#define EXTERN extern#endif/**************************************************************************** * Name: mkfatfs_configfatfs * * Description: *   Based on the geometry of the block device and upon the caller-selected *   values, configure the FAT filesystem for the device. * * Input: *    fmt  - Caller specified format parameters *    var  - Holds disk geomtry data.  Also, the location to return FAT *           configuration data * * Return: *    Zero on success; negated errno on failure * ****************************************************************************/EXTERN int mkfatfs_configfatfs(FAR struct fat_format_s *fmt,                               FAR struct fat_var_s *var);/**************************************************************************** * Name: mkfatfs_writefat * * Description: *   Write the configured fat filesystem to the block device * * Input: *    fmt  - Caller specified format parameters *    var  - Other format parameters that are not caller specifiable. (Most *           set by mkfatfs_configfatfs()). * * Return: *    Zero on success; negated errno on failure * ****************************************************************************/EXTERN int mkfatfs_writefatfs(FAR struct fat_format_s *fmt,                              FAR struct fat_var_s *var);#undef EXTERN#if defined(__cplusplus)}#endif#endif /* __FS_FAT_FS_MKATFS_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -