www.pudn.com > LPC2200_USB.rar > OSFile.h, change:2004-07-09,size:13719b


/****************************************Copyright (c)************************************************** 
**                               广州周立功单片机发展有限公司 
**                                     研    究    所 
**                                        ARM开发组 
** 
**                                 http://www.zlgmcu.com 
** 
**--------------文件信息-------------------------------------------------------------------------------- 
**文   件   名: OSFile.h 
**创   建   人: 陈明计 
**最后修改日期: 2004年7月9日 
**描        述: ZLG/FS在μCOS-II下使用的接口 
**               
**--------------历史版本信息---------------------------------------------------------------------------- 
** 创建人: 陈明计 
** 版  本: V1.0 
** 日 期: 2003年12月12日 
** 描 述: 原始版本 
** 
**--------------当前版本修订------------------------------------------------------------------------------ 
** 修改人: 陈明计 
** 日 期: 2004年7月9日 
** 描 述: 修改注释 
** 
**------------------------------------------------------------------------------------------------------ 
********************************************************************************************************/ 
#ifndef FILE_Q_SIZE 
#define FILE_Q_SIZE         32          /* 可以保存的未处理的命令数目 */ 
#endif 
 
typedef enum _OSFileCommand             /* 命令代码 */ 
{ 
    OS_RemoveFile,                      /* 删除文件 */ 
    OS_FileOpen,                        /* 打开文件 */ 
    OS_FileClose,                       /* 关闭文件 */ 
    OS_FileGetCh,                       /* 从文件中读取一个字节数据 */ 
    OS_FileRead,                        /* 从文件中读取多个字节数据 */ 
    OS_FilePutCh,                       /* 写一个字节数据到文件 */ 
    OS_FileWrite,                       /* 写多个字节数据到文件 */ 
    OS_FileCloseAll,                    /* 关闭所有文件 */ 
    OS_FileEof,                         /* 判断文件是否结束 */ 
    OS_FileSeek,                        /* 移动文件指针 */ 
    OS_MakeDir,                         /* 建立目录 */ 
    OS_RemoveDir,                       /* 删除空目录 */ 
    OS_ChangeDir,                       /* 改变当前目录 */ 
    OS_GetDrive,                        /* 获取指定目录所在的逻辑盘的内部表示法 */ 
    OS_ChangeDrive,                     /* 改变当前逻辑盘 */ 
    OS_GetFDTInfo,                      /* 获取指定FDT信息 */ 
    OS_AddFileDriver,                   /* 增加底层驱动程序 */ 
    OS_RemoveFileDriver,                /* 删除底层驱动程序 */ 
    OS_AllCacheWriteBack                /* 同步cache和逻辑盘 */ 
}OSFileCommand; 
 
 
typedef union _Parameter 
{ 
    uint8           Puint8; 
    uint16          Puint16; 
    uint32          Puint32; 
    int8            Pint8; 
    int16           Pint16; 
    int32           Pint32; 
    HANDLE          Handle; 
    char            *cp; 
    unsigned char   *ucp; 
    void            *Pvp; 
}Parameter; 
 
 
/* OS下文件系统参数数据结构 */ 
typedef struct _OSFileParameter 
{ 
    OSFileCommand   Command;        // 命令 
    OS_EVENT        *Rt;            // 用于返回 
    Parameter       P1;             // 第一个参数及返回值 
    Parameter       P2;             // 第二个参数 
    Parameter       P3;             // 第三个参数 
    Parameter       P4;             // 第四个参数 
}OSFileParameter; 
 
 
#ifndef IN_OSFILE 
 
extern uint8 OSRemoveFile(char *DirFileName); 
/********************************************************************************************************* 
** 函数名称: OSRemoveFile 
** 功能描述: 删除文件 
** 
** 输 入: DirFileName:用户使用的文件名 
** 
** 输 出: RETURN_OK:成功 
**        其它参考fat.h中关于返回值的说明 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
********************************************************************************************************/ 
 
HANDLE OSFileOpen(char *DirFileName, char *Type); 
/********************************************************************************************************* 
** 函数名称: OSFileOpen 
** 功能描述: 以指定方式打开文件 
** 
** 输 入: DirFileName:用户使用的文件名 
**        Type:打开方式 
** 输 出: 文件句柄,Not_Open_FILE为不能打开 
**          
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
********************************************************************************************************/ 
 
extern uint8 OSFileClose(HANDLE Handle); 
/********************************************************************************************************* 
** 函数名称: OSFileClose 
** 功能描述: 关闭指定文件 
** 
** 输 入: Handle:文件句柄 
** 
** 输 出: RETURN_OK:成功 
**        其它参考fat.h中关于返回值的说明  
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
********************************************************************************************************/ 
 
extern uint8 OSFileGetCh(uint8 *Ch, HANDLE Handle); 
/********************************************************************************************************* 
** 函数名称: OSFileGetCh 
** 功能描述: 从文件读一个字节 
** 
** 输 入: Ch:返回读到的数据 
**        Handle:文件句柄 
** 输 出: RETURN_OK:成功 
**        其它参考fat.h中关于返回值的说明  
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
********************************************************************************************************/ 
 
extern uint32 OSFileRead(void *Buf, uint32 Size, HANDLE Handle); 
/********************************************************************************************************* 
** 函数名称: OSFileRead 
** 功能描述: 读取文件 
** 
** 输 入: Buf:保存读回的数据 
**        Size:要读的字节数 
**        Handle:文件句柄 
** 输 出: 实际读到的字节数 
**          
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
********************************************************************************************************/ 
 
extern uint8 OSFilePutCh(uint8 Ch, HANDLE Handle); 
/********************************************************************************************************* 
** 函数名称: OSFilePutCh 
** 功能描述: 写一个字节到文件 
** 
** 输 入: Ch:要写的数据 
**        Handle:文件句柄 
** 输 出: RETURN_OK:成功 
**        其它参考fat.h中关于返回值的说明  
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
********************************************************************************************************/ 
 
extern uint32 OSFileWrite(void *Buf, uint32 Size, HANDLE Handle); 
/********************************************************************************************************* 
** 函数名称: OSFileWrite 
** 功能描述: 写文件 
** 
** 输 入: Buf:要写的数据 
**        Size:要写的字节数 
**        Handle:文件句柄 
** 输 出: 实际写的字节数 
**          
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
********************************************************************************************************/ 
 
extern uint8 OSFileCloseAll(void); 
/********************************************************************************************************* 
** 函数名称: OSFileCloseAll 
** 功能描述: 关闭所有打开的文件 
** 
** 输 入: 无 
** 
** 输 出: NOT_RUN:未执行 
**        RETURN_OK:成功 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSFileEof(HANDLE Handle); 
/********************************************************************************************************* 
** 函数名称: OSFileEof 
** 功能描述: 判断文件是否到读\写到文件尾 
** 
** 输 入: Handle:文件句柄 
** 
** 输 出: 0:否 
**        1:是  
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSFileSeek(HANDLE Handle, int32 offset, uint8 Whence); 
/********************************************************************************************************* 
** 函数名称: OSFileSeek 
** 功能描述: 移动文件读\写位置 
** 
** 输 入: Handle:文件句柄 
**        offset:移动偏移量 
**        Whence:移动模式SEEK_SET:从文件头计算SEEK_CUR:从当前位置计算SEEK_END:从文件尾计算 
** 输 出: 无 
**          
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSMakeDir(char *Path); 
/********************************************************************************************************* 
** 函数名称: OSMakeDir 
** 功能描述: 建立目录 
** 
** 输 入: Path:绝对路径名 
** 
** 输 出: RETURN_OK:成功 
**        其它参考fat.h中关于返回值的说明 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSRemoveDir(char *Path); 
/********************************************************************************************************* 
** 函数名称: OSRemoveDir 
** 功能描述: 删除目录 
** 
** 输 入: Path:绝对路径名 
** 
** 输 出: RETURN_OK:成功 
**        其它参考fat.h中关于返回值的说明 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSChangeDir(char *Path); 
/********************************************************************************************************* 
** 函数名称: OSChangeDir 
** 功能描述: 改变当前目录 
** 
** 输 入: Path:路径名 
** 
** 输 出: RETURN_OK:成功 
**        其它参考fat.h中关于返回值的说明 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSGetDrive(char *Path); 
/********************************************************************************************************* 
** 函数名称: OSGetDrive 
** 功能描述: 获取指定目录的驱动器 
** 
** 输 入: Path:路径名 
**         
** 输 出: 驱动器号 
** 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSChangeDrive(char *Drive); 
/********************************************************************************************************* 
** 函数名称: OSChangeDrive 
** 功能描述: 改变当前逻辑盘 
** 
** 输 入: Drive:逻辑盘符字符串 
**         
** 输 出: RETURN_OK:成功 
**        NOT_FIND_DISK:逻辑盘不存在 
**        PARAMETER_ERR:非法参数 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
** 作 者: 陈明计 
** 日 期: 2003年9月8日 
**------------------------------------------------------------------------------------------------------- 
** 修改人: 
** 日 期: 
**------------------------------------------------------------------------------------------------------ 
********************************************************************************************************/ 
 
extern uint8 OSGetFDTInfo(FDT *Rt,uint8 Drive, uint32 ClusIndex, uint32 Index); 
/********************************************************************************************************* 
** 函数名称: OSGetFDTInfo 
** 功能描述: 获取指定目录指定文件(目录)信息 
** 
** 输 入: Rt:存储返回信息的指针 
**        Drive:驱动器号 
**        ClusIndex:目录首簇号 
**        Index:文件(目录)在FDT中的位置 
** 输 出: RETURN_OK:成功 
**        其它参考fat.h中关于返回值的说明 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSAddFileDriver(uint16  (* DiakCommand)(uint8 Cammand, void *Parameter)); 
/********************************************************************************************************* 
** 函数名称: OSAddFileDriver 
** 功能描述: 增加一个底层驱动程序 
** 
** 输 入: DiakCommand:驱动程序接口函数 
** 
** 输 出: NOT_RUN:没有执行 
**        RETURN_OK:执行成功 
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern uint8 OSRemoveFileDriver(uint8 Drive); 
/********************************************************************************************************* 
** 函数名称: OSRemoveFileDriver 
** 功能描述: 删除一个底层驱动程序 
** 
** 输 入: Drive:逻辑驱动器号 
** 
** 输 出: 无 
**          
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern void OSAllCacheWriteBack(void); 
/********************************************************************************************************* 
** 函数名称: OSAllCacheWriteBack 
** 功能描述: 把所有已改变的扇区写回逻辑盘 
** 
** 输 入: 无 
** 
** 输 出: NOT_RUN:没有执行 
**        RETURN_OK:执行成功 
**          
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
 
extern void OSFileTask(void *pdata); 
/********************************************************************************************************* 
** 函数名称: OSFileTask 
** 功能描述: 文件系统服务任务 
** 
** 输 入: 无 
** 
** 输 出: 无 
**          
** 全局变量:  
** 调用模块: OSQPost,OSTaskSuspend 
** 
********************************************************************************************************/ 
#endif 
 
/********************************************************************************************************* 
**                            End Of File 
********************************************************************************************************/