Files
banban/ql-kernel/threadx/common/include/RDisk.h
T

314 lines
8.0 KiB
C

#ifndef RDISKFSYS_H
#define RDISKFSYS_H
/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
Rdiskfsys.h
GENERAL DESCRIPTION
This file is for RAM disk file system.
EXTERNALIZED FUNCTIONS
INITIALIZATION AND SEQUENCING REQUIREMENTS
Copyright (c) 2011 by Marvell, Incorporated. All Rights Reserved.
*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
*===========================================================================
EDIT HISTORY FOR MODULE
This section contains comments describing changes made to the module.
Notice that changes are listed in reverse chronological order.
when who what, where, why
-------- ------ ----------------------------------------------------------
11/26/08 zhoujin Created module
===========================================================================*/
/*===========================================================================
INCLUDE FILES FOR MODULE
===========================================================================*/
#include <stdlib.h>
#include "string.h"
#include "osa.h"
#include "global_types.h"
#define RAM_DISK_FILE_SYSTEM
#ifdef RAM_DISK_FILE_SYSTEM
/*===========================================================================
LOCAL MACRO
===========================================================================*/
//#define RDISK_DEBUG
/*
* Description:
* Maximum number of open files
*
* Remarks:
* Each handle takes 36 bytes
*
*/
#define RDISK_DELETED '\xE5'
#if (defined(LTEONLY_THIN) || defined(LTEGSM_THIN))
#define RDISK_NUM_HANDLES 8
#else
#define RDISK_NUM_HANDLES 32
#endif
#define RDISK_FILE_NAME_SIZE 128
#define RDISK_RW_FILE_SIZE (8*1024)
/* --------------------------------------------------------------------
** Type declarations.
** -------------------------------------------------------------------
*/
typedef unsigned int time_t;
/* --------------------------------------------------------------------
** macro declarations.
** -------------------------------------------------------------------
*/
#define TRUE 1
#define FALSE 0
/* --------------------------------------------------------------------
** Type declarations for RAM Disk file handle.
** -------------------------------------------------------------------
*/
typedef struct
{
UINT32 StartAddress;
UINT32 Size;
UINT32 FilePos;
char filename[RDISK_FILE_NAME_SIZE];
}Rdisk_file_sHandle;
/* --------------------------------------------------------------------
** Type declarations for RAM Disk stat.
** -------------------------------------------------------------------
*/
typedef struct
{
UINT32 st_size; /* File size in bytes */
time_t st_time; /* Timestamp of last modification */
}
Rdisk_sStat;
/*===========================================================================
FUNCTION Rdisk_FindHandle
DESCRIPTION
Find the destination file handle in rdisk file table.
DEPENDENCIES
none
RETURN VALUE
return staus
SIDE EFFECTS
none
===========================================================================*/
int Rdisk_FindHandle(const char *name);
/****************************************************************************
* Functions: Rdisk_fopen
*
* DESCRIPTION:
* The function Rdisk_fopen takes as arguments a file name, it is specified as a
* character string. The file name is used in an implementation-specified matter
* to open or create a file and associate it with a stream.
* Returns the StreamInfoTable index used for the opened file.
*
* USAGE:
* UINT32 Rdisk_fopen(const char *filename)
*
* PARAMETERS:
*
* INPUTS:
* filename_ptr const character string for file name
*
* OUTPUTS:
*
* RETURNS:
* Returns the StreamInfoTable index used for the opened file.
* If an error is detected, FDI_fopen returns 0.
*
* History:
* 20.05.05 Dmitry P. Initial version. Originaly described in FDI_FILE.c:260
*
****************************************************************************/
UINT32 Rdisk_fopen(const char *filename);
/*===========================================================================
FUNCTION RdiskSemaphoreInit
DESCRIPTION
initialize the semaphore for ram disk file system.
DEPENDENCIES
none
RETURN VALUE
return staus
SIDE EFFECTS
none
===========================================================================*/
void RdiskSemaphoreInit(void);
/*****************************************************************************
* Function Name: Rdisk_fclose()
*
* DESCRIPTION:
* None.
*
* USAGE:
* int Rdisk_fclose(UINT32 stream)
*
* PARAMETERS:
*
* INPUTS:
* filename_ptr const character null terminated string of the filename
* to check
*
* OUTPUTS:
*
* RETURNS:
* Returns TRUE if filename is valid; otherwise, it returns FALSE.
*
* HISTORY:
* 20.05.05 dmp Took from FDI5 from FDI_FILE.c:3875; and simplifyed.
*
***************************************************************************/
int Rdisk_fclose(UINT32 stream);
/*****************************************************************************
* Function Name: Rdisk_fread()
*
* DESCRIPTION:
* None.
*
* USAGE:
* size_t FDI_fread(void *buff, size_t element_size, size_t count, FILE_ID stream)
*
* PARAMETERS:
*
* INPUTS:
* filename_ptr const character null terminated string of the filename
* to check
*
* OUTPUTS:
*
* RETURNS:
* Returns TRUE if filename is valid; otherwise, it returns FALSE.
*
* HISTORY:
* 20.05.05 dmp Took from FDI5 from FDI_FILE.c:3875; and simplifyed.
*
***************************************************************************/
UINT32 Rdisk_fread(char *buff, UINT32 element_size, UINT32 count, UINT32 stream);
/*****************************************************************************
* Function Name: Rdisk_fwrite()
*
* DESCRIPTION:
* None.
*
* USAGE:
* UINT32 Rdisk_fwrite(const void *buff, UINT32 element_size, UINT32 count, UINT32 stream)
*
* PARAMETERS:
*
* INPUTS:
* filename_ptr const character null terminated string of the filename
* to check
*
* OUTPUTS:
*
* RETURNS:
* Returns TRUE if filename is valid; otherwise, it returns FALSE.
*
* HISTORY:
* 20.05.05 dmp Took from FDI5 from FDI_FILE.c:3875; and simplifyed.
*
***************************************************************************/
UINT32 Rdisk_fwrite(const char *buff, UINT32 element_size, UINT32 count, UINT32 stream);
/*****************************************************************************
* Function Name: Rdisk_stat()
*
* DESCRIPTION:
* None.
*
* USAGE:
* int Rdisk_stat(const char *file_name, Rdisk_sStat *stat)
*
* PARAMETERS:
*
* INPUTS:
* filename_ptr const character null terminated string of the filename
* to check
*
* OUTPUTS:
*
* RETURNS:
* Returns TRUE if filename is valid; otherwise, it returns FALSE.
*
* HISTORY:
* 20.05.05 dmp Took from FDI5 from FDI_FILE.c:3875; and simplifyed.
*
***************************************************************************/
int Rdisk_stat(const char *file_name, Rdisk_sStat *stat);
/*****************************************************************************
* Function Name: Rdisk_remove()
*
* DESCRIPTION:
* None.
*
* USAGE:
* int Rdisk_remove(const char *filename_ptr)
*
* PARAMETERS:
*
* INPUTS:
* filename_ptr const character null terminated string of the filename
* to check
*
* OUTPUTS:
*
* RETURNS:
* Returns TRUE if filename is valid; otherwise, it returns FALSE.
*
* HISTORY:
* 20.05.05 dmp Took from FDI5 from FDI_FILE.c:3875; and simplifyed.
*
***************************************************************************/
int Rdisk_remove(const char *filename_ptr);
#endif
#endif /* RDISKFSYS_H */