Use of this function is not recommended. If possible, consider using NANDSimpleSafe-related functions.
#include <revolution/nand.h> #define NAND_ACCESS_READ 0x01 #define NAND_ACCESS_WRITE 0x02 #define NAND_ACCESS_RW (NAND_ACCESS_READ | NAND_ACCESS_WRITE) typedef void (*NANDCallback)( s32 result, NANDCommandBlock *block ); s32 NANDSafeOpenAsync(const char *path, NANDFileInfo *info, u8 accType, void *buf, u32 length, NANDCallback cb, NANDCommandBlock *block);
path |
File name to open. |
|---|---|
| info | Pointer to a NANDFileInfo structure |
| accType | Access type. Specifies either NAND_ACCESS_READ, NAND_ACCESS_WRITE or NAND_ACCESS_RW. |
| buf | Specifies the leading address of the buffer to be used when copying files. The buffer must be 32-byte aligned. |
| length | Specifies the size of the buffer to be used when copying files. Buffer size must be a multiple of 32 bytes. We recommend a size between 4 KB and 16 KB. |
| cb | Callback function to call when this function completes processing. |
| block | Command block structure to be passed to the callback function. |
The result codes that can be returned by NANDSafeOpenAsync are listed below. Returns NAND_RESULT_OK when the request begins normally.
NAND_RESULT_OK
NAND_RESULT_ACCESS
NAND_RESULT_ALLOC_FAILED
NAND_RESULT_BUSY
NAND_RESULT_INVALID
NAND_RESULT_FATAL_ERROR
The result codes that may be passed to the callback function are listed below.
NAND_RESULT_OK
NAND_RESULT_ACCESS
NAND_RESULT_ALLOC_FAILED
NAND_RESULT_AUTHENTICATION
NAND_RESULT_BUSY
NAND_RESULT_CORRUPT
NAND_RESULT_ECC_CRIT
NAND_RESULT_INVALID
NAND_RESULT_MAXBLOCKS
NAND_RESULT_MAXFD
NAND_RESULT_MAXFILES
NAND_RESULT_NOEXISTS
NAND_RESULT_UNKNOWN
NAND_RESULT_FATAL_ERROR
Asynchronously opens a file in a manner that guarantees the atomic nature of file updates. The file opened using this function must be closed using NANDSafeClose or NANDSafeCloseAsync. Appropriate permissions (both read and write) must be set for the parent directory of the file to which NANDSafe-type functions are applied. NAND_RESULT_BUSY is returned and this function call is denied when the queue for accepting requests inside the library is full.
Unlike a large number of asynchronous NAND functions, the callback specified with this function might receive NAND_RESULT_ALLOC_FAILED or NAND_RESULT_BUSY when NAND_ACCESS_WRITE or NAND_ACCESS_RW is specified for accType.
When NAND_ACCESS_WRITE or NAND_ACCESS_RW is specified for accType, this function will update the FAT in Wii console NAND memory.
NANDSafeOpen, NANDSafeClose, NANDSafeCloseAsync
2008/07/29 Added information regarding the result code that the callback function might receive.
2008/05/13 Described the result codes passed to the callback function.
2007/05/09 Noted that the use of this function is not recommended.
2006/09/19 Added information regarding the result code that the callback function may receive.
2006/09/08 Added a requirement for the parent directory permissions.
2006/08/15 Initial version.
CONFIDENTIAL