📄 disk.h
字号:
/*******************************************************************************
(C) Copyright 2006, RAE Systems Inc. All rights reserved
----------------- File Information ---------------------------------------------
File Name: DISK.H
Last Modify Date: 9/19/2006
Discription: Logical disk management header file
---------------- Important Notes -----------------------------------------------
----------------- Rivision History ---------------------------------------------
Version: V1.00
Last Modify Date: 9/17/2006
Discription: Initial version, imported from ZLG_FS V1.00, derived from FAT.H
*******************************************************************************/
#ifndef __DISK_H__
#define __DISK_H__
#ifndef MAX_DRIVES
#define MAX_DRIVES 1 // Max logical disks can be loaded concurrently
#endif
/* Low level driver command */
#define DISK_INIT 0
#define DISK_CLOSE 1
#define DISK_READ_SECTOR 2
#define DISK_WRITE_SECTOR 3
#define DISK_CREATE_BOOT_SECTOR 4
/* Low level driver return code */
#define DISK_READ_OK 0x01
#define DISK_READ_NOT_OK 0x80
#define DISK_WRITE_OK 0x02
#define DISK_WRITE_NOT_OK 0x82
#define DISK_INIT_OK 0x03
#define DISK_INIT_NOT_OK 0x83
#define BAD_DISK_COMMAND 0xFFFF
/* Empty logical driver, not used now */
#define EMPTY_DRIVE 0xFF
/* Low level driver parameter strucure */
typedef struct _Disk_RW_Parameter
{
INT8U Drive; // Logical disk number
INT32U SectorIndex; // Sector number
INT32U RsvdForLow; // Reserved for low level driver,copy from _Disk_Info
INT8U *Buf; // Data buffer
} Disk_RW_Parameter;
/* Logical disk information structure */
typedef struct _Disk_Info
{
INT8U Drive; // Logical disk number
INT8U FATType; // FAT type: FAT12,FAT16,FAT32
INT8U SecPerClus; // Sector per cluster
INT8U NumFATs; // NO. of FAT
INT32U SecPerDisk; // Sectors per disk
INT32U BytsPerSec; // Bytes per sector
INT32U RootDirTable; // Roor dir start sector(FAT32:start cluster)
INT32U RootSecCnt; // Sectors of root dir
INT32U FATStartSec; // Start sector of FAT
INT32U FATSecCnt; // Sectors per FAT
INT32U DataStartSec; // Start sector of data
INT32U ClusPerData; // Clusters of data
INT32U PathClusIndex; // Start cluster of current dir FAT,0-root dir
INT32U RsvdForLow; // Reserved for low level driver
INT16U (* DiskCommand)( INT8U Cammand, void *Parameter );
// Driver
} Disk_Info;
extern Disk_Info DiskInfo[MAX_DRIVES]; // Logical disk information
extern void DiskInit( void );
extern Disk_Info * GetDiskInfo( INT8U Drive );
extern Disk_Info * GetEmptyDiskInfoAddr( void );
extern void AddFileDriver( INT16U (* DiskCommand)(INT8U Cammand, void *Parameter) );
extern void RemoveFileDriver( INT8U Drive );
#endif /* #ifndef __DISK_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -