osPfsFileState osPfsFileState (function)

Obtains game note information


#include <ultra64.h>        /* os.h */
s32 osPfsFileState(OSPfs *pfs,  s32 file_no,  OSPfsState *state);


The osPfsFileState obtains the specified game note information. To specify a game note, use the note number file_no (file descriptor) argument. To retrieve specific game note information, it is necessary to obtain the note number by calling osPfsFindFile, before calling this function. Also, to retrieve all game note information in a Controller Pak, assign 0 to 15 to the file number (file_no) and call osPfsFileState 16 times.

The OSPfs handle pfs must be the handle initialized with osPfsInitPak. See the osPfsInitPak page for information on how to create this handle.

The game note information is stored in the OSPfsState structure specified by the pointer state argument. The following is the definition of that structure:

typedef struct {
    u32     file_size;      /* Note Size (number of bytes)  */
    u32     game_code;      /* Game Code                    */
    u16     company_code;   /* Company Code                 */
    char    ext_name[4];    /* Note Extension               */
    char    game_name[16];  /* Note Name                    */

If this function is called successfully, 0 is returned. If an error occurs, one of the following error codes is returned:

Either the Controller Pak is not inserted into the specified Controller or the Controller is not properly connected. To determine which is the case, use osContStartQuery or osContGetQuery.

A different Controller Pak has been inserted. To use the inserted Controller Pak, initialize it by calling osPfsInitPak.

There is a problem in the file system's management area. Usually this error does not occur because osPfsChecker is called internally when you initialize the file system by calling osPfsInitPak. If this error is returned, either the Controller Pak is not connected properly, or the Controller Pak itself is damaged.

Data transfer to or from the Controller has failed. If a transfer error occurs, up to three tries will be done internally. Therefore, it is rather rare to see this error. If this error has returned, it is possible that either the Controller is not connected properly, or the Controller Pak or Controller Socket is damaged.

If this error is returned, an incorrect argument was specified when this function was called, the specified game note does not exist, or the Pfs function has been called without being initialized using osPfsInitPak. Also, if the functions for the Controller were executed after the file handle structure pfs was initialized by other than osPfsInitPak, this error occurs.For instance, if osPfsFileState is executed after the initialization function for rumble pak osMotorInit is used to initialize OSPfs structure, then this error occurs.

See Also

osContInit, osContStartQuery, osContGetQuery, osPfsAllocateFile, osPfsChecker, osPfsDeleteFile, osPfsFindFile, osPfsFreeBlocks, osPfsInitPak, osPfsIsPlug, and osPfsReadWriteFile

Revision History

1999/02/01 Completely revised
1999/04/30 Changed format