1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     fs_Api.h
4 
5   Copyright (C)2009 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 33378 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_FS_FS_API_H_
17 #define NN_FS_FS_API_H_
18 
19 #include <nn/Result.h>
20 #include <nn/os.h>
21 
22 namespace nn {
23 namespace fs {
24 
25 //----------------------------------------
26 //! @name 初期化
27 //@{
28 
29 /*!
30     @brief  fsライブラリを初期化します。
31 
32             fs ライブラリにあるクラスや関数を使うためには、先にこの関数を呼ぶ必要があります。
33 */
34 void  Initialize();
35 void  Finalize();
36 bool  IsInitialized();
37 
38 //@}
39 
40 //----------------------------------------
41 //! @name SD カード
42 //@{
43 
44 /*!
45     @brief  SD カード挿入時にシグナルされる @ref nn::os::LightEvent を登録します。
46 
47             このイベントは、壊れた SD カードが挿されたり、SD カードでないもの (空の SD カードアダプタ等) が挿された場合にもシグ
48             ナルされます。
49 
50     @param[in] p    SD カード挿入時にシグナルされる @ref nn::os::LightEvent を指定します。
51 */
52 void RegisterSdmcInsertedEvent(nn::os::LightEvent* p);
53 
54 /*!
55     @brief  @ref nn::fs::RegisterSdmcInsertedEvent の登録を解除します。
56 */
57 void UnregisterSdmcInsertedEvent();
58 
59 /*!
60     @brief  SD カード取り出し時にシグナルされる @ref nn::os::LightEvent を登録します。
61 
62     @param[in] p    SD カード取り出し時にシグナルされる @ref nn::os::LightEvent を指定します。
63 */
64 void RegisterSdmcEjectedEvent(nn::os::LightEvent* p);
65 
66 /*!
67     @brief  @ref nn::fs::RegisterSdmcEjectedEvent の登録を解除します。
68 */
69 void UnregisterSdmcEjectedEvent();
70 
71 /*!
72     @brief  SD カードが挿入されているかを返します。
73 
74             本関数は高負荷のため、SD カード挿入イベントや取り出しイベントを待つ場合は、@ref nn::fs::RegisterSdmcInsertedEvent,
75             @ref nn::fs::RegisterSdmcEjectedEvent 関数で登録した@ref nn::os::LightEvent を使用してください。
76 
77             壊れた SD カードが挿されたり、SD カードでないもの (空の SD カードアダプタ等) が挿された場合にも、この関数は true を
78             返します。
79 
80     @return     挿入されていれば true を、挿入されていなければ false を返します。
81 */
82 bool IsSdmcInserted();
83 
84 /*!
85     @brief  SD カードが書き込み可能かを返します。
86 
87             SD カードが書き込み可能である状態とは、SD カードが挿入されており、かつ SD カードが LOCK スイッチにより書き込み禁止
88             されていない状態です。
89 
90     @return     書き込み可能であれば true を、書き込み不可能であれば false を返します。
91 */
92 bool IsSdmcWritable();
93 
94 /*!
95     @brief  SD カードの総容量と空き容量を取得します。
96 
97     @param[out] pTotal      SD カードの総容量を返します。
98     @param[out] pFree       SD カードの空き容量を返します。
99 
100     @return 処理の結果を返します。
101     @retval 成功            処理に成功しました。戻り値の IsSuccess 関数が true を返す状態です。
102     @retval ResultNotFound  SD カードが見つからないか、もしくは認識できません。
103                             また、SD カードが挿さっていても、SD カード上のファイルシステムにアクセスできないときは、このエラー
104                             が返ります。
105     @retval 上記以外        アプリケーション側の不具合、もしくは想定外のエラーです。
106 */
107 
108 Result GetSdmcSize( s64* pTotal, s64* pFree );
109 
110 //@}
111 
112 }
113 }
114 
115 #endif /* NN_FS_FS_API_H_ */
116