1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
6<META http-equiv="Content-Style-Type" content="text/css">
7<LINK rel="stylesheet" type="text/css" href="../CSS/revolution.css">
8<title>NANDCreateAsync</title>
9</head>
10
11<body>
12
13<h1>NANDCreateAsync</h1>
14
15<h2>C Specification</h2>
16<dl><dd><pre><code>
17#include &lt;revolution/nand.h&gt;
18
19#define NAND_PERM_OTHER_READ   0x01
20#define NAND_PERM_OTHER_WRITE  0x02
21#define NAND_PERM_GROUP_READ   0x04
22#define NAND_PERM_GROUP_WRITE  0x08
23#define NAND_PERM_OWNER_READ   0x10
24#define NAND_PERM_OWNER_WRITE  0x20
25
26typedef void (*NANDCallback)( s32 result, NANDCommandBlock *block );
27
28s32 NANDCreateAsync( const char *filename, u8 perm, u8 attr, NANDCallback cb, NANDCommandBlock *block );
29</code></pre></dd></dl>
30
31<h2>Arguments</h2>
32<p>
33<TABLE border="1" >
34  <tr>
35<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM><STRONG><EM><CODE>filename</CODE></EM></STRONG></EM></STRONG></CODE></TD>
36<TD width="520">Specifies the file name.</TD>
37  </tr>
38  <tr>
39<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM><STRONG><EM><CODE>perm</CODE></EM></STRONG></EM></STRONG></CODE></TD>
40<TD width="520">File permissions. Specify by taking the logical sum of <code>NAND_PERM_*</code>.</TD>
41  </tr>
42  <tr>
43<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM><STRONG><EM><CODE>attr</CODE></EM></STRONG></EM></STRONG></CODE></TD>
44<TD width="520">Specifies the file attributes.</TD>
45  </tr>
46  <tr>
47<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM>cb</EM></STRONG></CODE></TD>
48<TD width="520">Callback function to call when this function completes processing.</TD>
49  </tr>
50  <tr>
51<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM>block</EM></STRONG></CODE></TD>
52<TD width="520">Command block structure to be passed to the callback function.</TD>
53  </tr>
54</TABLE>
55</p>
56
57<h2>Return Values</h2>
58<p>
59Returns <CODE>NAND_RESULT_OK</CODE> when the request begins normally.
60<p>
61<code>NAND_RESULT_OK<br> NAND_RESULT_ACCESS<br> NAND_RESULT_ALLOC_FAILED<br> NAND_RESULT_BUSY<br> NAND_RESULT_CORRUPT<br> NAND_RESULT_EXISTS<br> NAND_RESULT_INVALID<br> NAND_RESULT_MAXFILES<br> NAND_RESULT_NOEXISTS<br> NAND_RESULT_UNKNOWN<br> NAND_RESULT_FATAL_ERROR<br></code>
62</p>
63</p>
64
65<H2>Description</H2>
66<p>
67Asynchronously creates a new file. The specified permissions and attributes are given to the file. <font color=#ff0000>However, the file must be granted at least <CODE>NAND_PERM_OWNER_READ</CODE> permission.</font>If <CODE>NAND_PERM_OWNER_READ</CODE> permission is not granted, the function returns <CODE>NAND_RESULT_INVALID</CODE>. <code>NAND_RESULT_BUSY</code> is returned and this function call is denied when the queue for accepting requests inside the library is full.
68</p>
69
70<h2>See Also</h2>
71<p>
72<code><a href="./NANDCreate.html">NANDCreate</a></code>, <code><a href="./NANDDelete.html">NANDDelete</a></code>, <code><a href="./NANDDeleteAsync.html">NANDDeleteAsync</a></code>
73</p>
74
75<H2>Revision History</H2>
76<p>
772006/11/13 Added explanation about the need to grant <CODE>NAND_PERM_OWNER_READ</CODE> permission.<br>2006/08/30 Added NAND_RESULT_NOEXISTS result code.<br>2006/06/16 Initial version. <br>
78</p>
79
80<hr>
81<P>CONFIDENTIAL</p>
82</BODY>
83</HTML>
84