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>NANDCreate</title>
9</head>
10
11<body>
12
13<h1>NANDCreate</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
26s32 NANDCreate(const char *filename, u8 perm, u8 attr);
27</code></pre></dd></dl>
28
29<h2>Arguments</h2>
30<p>
31<TABLE border="1" >
32  <tr>
33<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM><STRONG><EM><CODE>filename</CODE></EM></STRONG></EM></STRONG></CODE></TD>
34<TD width="520">Specifies the file name.</TD>
35  </tr>
36  <tr>
37<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM><STRONG><EM><CODE>perm</CODE></EM></STRONG></EM></STRONG></CODE></TD>
38<TD width="520">File permissions. Specify by taking the logical sum of <code>NAND_PERM_*</code>.</TD>
39  </tr>
40  <tr>
41<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM><STRONG><EM><CODE>attr</CODE></EM></STRONG></EM></STRONG></CODE></TD>
42<TD width="520">Specifies the file attributes.</TD>
43  </tr>
44</TABLE>
45</p>
46
47<h2>Return Values</h2>
48<p>
49Returns one of the following codes:
50<p>
51<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>
52</p>
53</p>
54
55<H2>Description</H2>
56<p>
57Creates 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>.
58</p>
59
60<p>
61This function may put the current thread to sleep. For precautions when calling similar functions, refer to <a href="../os/Interrupt/intro.html">Interrupts and Callback Functions</a>.
62</p>
63
64<h2>See Also</h2>
65<p>
66<code><a href="./NANDCreateAsync.html">NANDCreateAsync</a></code>, <code><a href="./NANDDelete.html">NANDDelete</a></code>, <code><a href="./NANDDeleteAsync.html">NANDDeleteAsync</a></code>, <a href="../os/Interrupt/intro.html">Interrupts and Callback Functions</a>
67</p>
68
69<H2>Revision History</H2>
70<p>
712007/09/25 Added information on the sleep status of threads.<br>2006/11/30 Added <CODE>NAND_RESULT_ALLOC_FAILED</CODE> and <CODE>NAND_RESULT_BUSY</CODE> codes.<br>2006/11/13 Added explanation about the need to grant <CODE>NAND_PERM_OWNER_READ</CODE> permission.<br>2006/08/30 Added the <CODE>NAND_RESULT_NOEXISTS</CODE> result code.<br>2006/06/16 Initial version.<br>
72</p>
73
74<hr><p>CONFIDENTIAL</p></body>
75</html>
76