/* =============================================================================
 *  scpp_errno_posix.hpp
 *  Copyright (c)  2003 - 2011  Nomura Kei
 *  LICENSE :
 *  LGPL (GNU Lesser General General Public License - Version 3,29 June 2007)
 *  http://www.gnu.org/copyleft/lesser.html
 * =============================================================================
 *
 * Windows の エラーを扱います.
 */
#ifndef SCPP_ERRNO_POSIX_HPP
#define SCPP_ERRNO_POSIX_HPP

#include <cerrno>

#include <scpp_os.hpp>

#if (!SCPP_IS_WINDOWS)


#define SCPP_E2BIG            E2BIG           /// 引き数リストが長過ぎる
#define SCPP_EACCES           EACCES          /// 許可がない
#define SCPP_EADDRINUSE       EADDRINUSE      /// アドレスがすでに使用されている
#define SCPP_EADDRNOTAVAIL    EADDRNOTAVAIL   /// アドレスが使用できない
#define SCPP_EAFNOSUPPORT     EAFNOSUPPORT    /// アドレス・ファミリーがサポートされていない
#define SCPP_EAGAIN           EAGAIN          /// リソースが一時的に利用不可
#define SCPP_EALREADY         EALREADY        /// 接続が既に処理中である
#define SCPP_EBADF            EBADF           /// ファイルディスクリプタが不正である
#define SCPP_EBADMSG          EBADMSG         /// メッセージが不正である
#define SCPP_EBUSY            EBUSY           /// リソースが使用中である
#define SCPP_ECANCELED        ECANCELED       /// 操作がキャンセルされた
#define SCPP_ECONNABORTED     ECONNABORTED    /// 接続が中止された
#define SCPP_ECONNREFUSED     ECONNREFUSED    /// 接続が拒否された
#define SCPP_ECONNRESET       ECONNRESET      /// 接続がリセットされた
#define SCPP_EDEADLK          EDEADLK         /// リソースのデッドロックを回避した
#define SCPP_EDESTADDRREQ     EDESTADDRREQ    /// 宛先アドレスが必要である
#define SCPP_EDOM             EDOM            /// 数学関数で引き数が領域外である
#define SCPP_EDQUOT           EDQUOT          /// ディスク・クォータ (quota) を超過した
#define SCPP_EEXIST           EEXIST          /// ファイルが存在する
#define SCPP_EFAULT           EFAULT          /// アドレスが不正である
#define SCPP_EFBIG            EFBIG           /// ファイルが大き過ぎる
#define SCPP_EHOSTDOWN        EHOSTDOWN       /// ホストがダウンしている
#define SCPP_EHOSTUNREACH     EHOSTUNREACH    /// ホストに到達不能である
#define SCPP_EIDRM            EIDRM           /// 識別子が削除された
#define SCPP_EILSEQ           EILSEQ          /// 不正なバイト列
#define SCPP_EINPROGRESS      EINPROGRESS     /// 操作が実行中である
#define SCPP_EINTR            EINTR           /// 関数呼び出しが割り込まれた
#define SCPP_EINVAL           EINVAL          /// 引数が無効である
#define SCPP_EIO              EIO             /// 入出力エラー
#define SCPP_EISCONN          EISCONN         /// ソケットが接続されている
#define SCPP_ELOOP            ELOOP           /// シンボリック・リンクの回数が多過ぎる
#define SCPP_EMFILE           EMFILE          /// オープンされたファイルが多すぎます
#define SCPP_EMLINK           EMLINK          /// リンクが多すぎます
#define SCPP_EMSGSIZE         EMSGSIZE        /// メッセージが長過ぎる
#define SCPP_ENAMETOOLONG     ENAMETOOLONG    /// ファイル名が長過ぎる
#define SCPP_ENETDOWN         ENETDOWN        /// ネットワークが不通である
#define SCPP_ENETRESET        ENETRESET       /// 接続がネットワーク側から中止された
#define SCPP_ENETUNREACH      ENETUNREACH     /// ネットワークが到達不能である
#define SCPP_ENFILE           ENFILE          /// ファイルテーブルがオーバフローしました
#define SCPP_ENOBUFS          ENOBUFS         /// 使用可能なバッファ空間がない
#define SCPP_ENODATA          ENODATA         /// ストリームの読み出しキューの先頭に読み出し可能なメッセージがない
#define SCPP_ENODEV           ENODEV          /// デバイスが存在しません
#define SCPP_ENOENT           ENOENT          /// ファイルまたはディレクトリが存在しません
#define SCPP_ENOEXEC          ENOEXEC         /// exec フォーマットエラー
#define SCPP_ENOMEM           ENOMEM          /// 十分な空きメモリ領域が無い
#define SCPP_ENOPROTOOPT      ENOPROTOOPT     /// 指定されたプロトコルが利用できない
#define SCPP_ENOSPC           ENOSPC          /// デバイス上のスペースが足りません
#define SCPP_ENOSYS           ENOSYS          /// 関数が実装されていない
#define SCPP_ENOTCONN         ENOTCONN        /// ソケットが接続されていない
#define SCPP_ENOTEMPTY        ENOTEMPTY       /// ディレクトリが空ではない
#define SCPP_ENOTSOCK         ENOTSOCK        /// ソケットではない
#define SCPP_ENOTSUP          ENOTSUP         /// 操作がサポートされていない
#define SCPP_ENOTTY           ENOTTY          /// デバイスへのioctl が正しくありません
#define SCPP_ENXIO            ENXIO           /// デバイスまたはアドレスが存在しません
#define SCPP_EOPNOTSUPP       EOPNOTSUPP      /// ソケットでサポートしていない操作である
#define SCPP_EPERM            EPERM           /// スーパーユーザではありません
#define SCPP_EPFNOSUPPORT     EPFNOSUPPORT    /// サポートされていないプロトコルファミリーである
#define SCPP_EPIPE            EPIPE           /// パイプが中断されました
#define SCPP_EPROTO           EPROTO          /// プロトコル・エラー
#define SCPP_EPROTONOSUPPORT  EPROTONOSUPPORT /// プロトコルがサポートされていない
#define SCPP_EPROTOTYPE       EPROTOTYPE      /// ソケットに指定できないプロトコル・タイプである
#define SCPP_ERANGE           ERANGE          /// 数学関数結果が表示不可能です
#define SCPP_EREMOTE          EREMOTE         /// オブジェクトがリモートにある
#define SCPP_EROFS            EROFS           /// 読み取り専用のファイルシステムです
#define SCPP_ESHUTDOWN        ESHUTDOWN       /// 通信相手がシャットダウンされて送信できない
#define SCPP_ESOCKTNOSUPPORT  ESOCKTNOSUPPORT /// サポートされていないソケット種別である
#define SCPP_ESPIPE           ESPIPE          /// シークが正しくありません
#define SCPP_ESTALE           ESTALE          /// ファイルハンドルが古い状態になっている
#define SCPP_ETIME            ETIME           /// 時間が経過した
#define SCPP_ETIMEDOUT        ETIMEDOUT       /// 操作がタイムアウトした
#define SCPP_ETXTBSY          ETXTBSY         /// テキストファイルは使われています。(旧仕様)
#define SCPP_EXDEV            EXDEV           /// デバイスにまたがるリンクになります


#endif	// !SCPP_IS_WINDOWS

#endif	// SCPP_ERRNO_POSIX_HPP

