FSFile

Definition

#include <nitro/fs.h>

/* file and directory structure */
typedef struct FSFile
{
/* private: */

/* for archive control */
FSFileLink          link;
struct  FSArchive   *arc;
/* for internal status */
u32                 stat;
FSCommandType       command;
FSResult            error;
OSThreadQueue       queue[4 / sizeof(OSThreadQueue)];

/* private: (except direct operation with FSArchive) */

/* handle property */
union {
/* file-handle property */
struct {
u32           own_id; /* own file-id */
u32           top;    /* image-top */
u32           bottom; /* image-bottom */
u32           pos;    /* current position */
} file;
/* directory-handle property */
struct {
FSDirPos      pos;    /* current-directory-position */
u32           parent; /* parent directory-id */
} dir;
} prop;

/* command argument and return value area */
union {
FSReadFileInfo        readfile;
FSWriteFileInfo       writefile;
FSSeekDirInfo         seekdir;
FSReadDirInfo         readdir;
FSFindPathInfo        findpath;
FSGetPathInfo         getpath;
FSOpenFileFastInfo    openfilefast;
FSOpenFileDirectInfo  openfiledirect;
FSCloseFileInfo       closefile;
} arg;

} FSFile;
  

Description

This structure is used by file and directory access functions.
All members are used only in internal processing. Direct operation of these is prohibited.

Note

This type of internal expression may change in future enhancements. Avoid programming that depends upon sizes and members in the current package.

See Also

FS_OpenFile, FS_OpenFileFast, FS_CloseFile, FS_GetLength, FS_ReadFile, FS_SeekFile, FS_SeekFileToBegin, FS_SeekFileToEnd, FS_FindDir, FS_ReadDir, FS_TellDir, FS_SeekDir, FS_RewindDir

Revision History

11/02/2004 Corrected the structure definition to match the header file.
05/20/2004 Description changes due changes in FSFile.
05/14/2004 Description changes due changes in FSFile.
04/13/2004 Description changes due changes in FSFile.
04/08/2004 Description changes due to the integration of FSDir and FSFile.
04/01/2004 Initial version.