#ifndef _WIFI_CFG_H_ #define _WIFI_CFG_H_ #ifdef __cplusplus extern "C" { #endif #define WIFI_CFG_WEP_NOTATION_HEX 0 // 16進数表記 #define WIFI_CFG_WEP_NOTATION_ASCII 1 // ASCII コード表記 #define WIFI_CFG_PROXY_MODE_NONE 0 /* プロキシを使用しない */ #define WIFI_CFG_PROXY_MODE_NORMAL 1 /* 通常のプロキシ */ #define WIFI_CFG_PROXY_AUTHTYPE_NONE 0 /* 認証なし */ #define WIFI_CFG_PROXY_AUTHTYPE_BASIC 1 /* BASIC 認証 */ BOOL wifi_config_nvram_get( void ); BOOL wifi_config_nvram_set( void ); BOOL wifi_config_clear_slot(int slot_no); void wifi_config_print(void); BOOL wifi_config_set_ip_addr(int slot_no, u32 ipaddr); BOOL wifi_config_set_ssid(int slot_no, char *ssid_str, int ssid_len); BOOL wifi_config_set_dns(int slot_no, int dns_no, u32 dnsaddr); BOOL wifi_config_set_gateway(int slot_no, u32 ipaddr); BOOL wifi_config_set_netmask(int slot_no, u32 mask); BOOL wifi_config_set_wep_key_str(int slot_no, int wepmode, char *wepkey ); BOOL wifi_config_set_wep_key_bin(int slot_no, int wepmode, u8 *wepkey, int wepkey_len ); BOOL wifi_config_set_wpa_key_str(int slot_no, int wpamode, char *wpakey ); BOOL wifi_config_set_wpa_key_bin(int slot_no, int wpamode, u8 *wpakey , int wpakey_len); #ifdef __cplusplus } #endif #if 0 #define NCFG_SETTYPE_WPS NCFG_SETTYPE_WPS_WPA // WEP 暗号化モード種別 // WCM_WEPMODE_* よりコピー typedef enum { NCFG_WEPMODE_NONE = 0, // 暗号化なし NCFG_WEPMODE_40 = 1, // RC4 ( 40 ビット ) 暗号化モード NCFG_WEPMODE_104 = 2, // RC4 ( 104 ビット ) 暗号化モード NCFG_WEPMODE_128 = 3 // RC4 ( 128 ビット ) 暗号化モード } NCFGWEPMode; // WEP 表記 // util/setting.h よりコピー typedef enum { NCFG_WEP_NOTATION_HEX, // 16進数表記 NCFG_WEP_NOTATION_ASCII // ASCII コード表記 } NCFGWEPNotation; // Proxy モード typedef enum { NCFG_PROXY_MODE_NONE = 0x00, /* プロキシを使用しない */ NCFG_PROXY_MODE_NORMAL = 0x01 /* 通常のプロキシ */ } NCFGProxyMode; // Proxy 認証形式 typedef enum { NCFG_PROXY_AUTHTYPE_NONE = 0x00, /* 認証なし */ NCFG_PROXY_AUTHTYPE_BASIC = 0x01 /* BASIC 認証 */ } NCFGProxyAuthType; // WPA モード種別 typedef enum { NCFG_WPAMODE_WPA_PSK_TKIP = 0x04, /* WPA-PSK ( TKIP ) 暗号 */ NCFG_WPAMODE_WPA2_PSK_TKIP = 0x05, /* WPA2-PSK ( TKIP ) 暗号 */ NCFG_WPAMODE_WPA_PSK_AES = 0x06, /* WPA-PSK ( AES ) 暗号 */ NCFG_WPAMODE_WPA2_PSK_AES = 0x07 /* WPA2-PSK ( AES ) 暗号 */ } NCFGWPAMode; // 各種フラグ typedef enum { NCFG_FLAG_NONE = 0x00, NCFG_FLAG_ALWAYS_ACTIVE = 0x01, /* PowerSave を無効にする (未使用) */ NCFG_FLAG_SAFE_MTU = 0x02 /* MTU を 576 バイトにする (未使用/削除予定) */ } NCFGFlag; OS_TPrintf("IP addr:"); // ワークメモリサイズ #define NCFG_CHECKCONFIG_WORK_SIZE 0x700 #define NCFG_READCONFIG_WORK_SIZE 0x700 #define NCFG_WRITECONFIG_WORK_SIZE 0x700 #define NCFG_CHECKCONFIGEX_WORK_SIZE 0x1000 #define NCFG_READCONFIGEX_WORK_SIZE 0x1000 #define NCFG_WRITECONFIGEX_WORK_SIZE 0x1000 /*---------------------------------------------------------------------------* マクロ 定義 *---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------* 構造体 定義 *---------------------------------------------------------------------------*/ // アクセスポイント接続情報 typedef struct NCFGApInfo { u8 ispId [0x20]; // ISP 用 ID u8 ispPass [0x20]; // ISP 用パスワード u8 ssid [2][0x20]; // SSID (ssid[1] : AOSS WEP40 用) u8 wep [4][0x10]; // WEP キー u8 ip [0x04]; // IP アドレス u8 gateway [0x04]; // デフォルトゲートウェイ u8 dns [2][0x04]; // DNS u8 netmask; // サブネットマスク u8 wep2 [4][0x05]; // WEP キー (AOSS 用) u8 authType; // 認証方法 u8 wepMode : 2; // WEP モード u8 wepNotation : 6; // WEP 表記 u8 setType; // 設定方法 u8 ssidLength[2]; // SSID 長 (0 ならば ssid に NULL が来るまで) u16 mtu; // MTU 長 (0 ならばデフォルト値で解釈) u8 rsv [0x02]; // 予備 u8 flags; // フラグ (NCFG_FLAG_*) u8 state; // 使用状況 } NCFGApInfo; // 拡張アクセスポイント接続情報 typedef struct NCFGApInfoEx { union { struct { u8 wpaKey[0x20]; // WPA PMK u8 wpaPassphrase[0x40]; // WPA パスフレーズ (NULL 終端文字列 or 64桁 HEX) u8 rsv[0x21]; u8 wpaMode; // WPA モード } wpa; struct { u8 wpaKey[2][0x20]; // WPA PMK (AOSS 用 [0]:TKIP, [1]:AES) u8 ssid[2][0x20]; // SSID (AOSS 用 [0]:TKIP, [1]:AES) u8 ssidLength[2]; // SSID 長 (AOSS 用 [0]:TKIP, [1]:AES) } aossEx; }; u8 proxyMode; // Proxy mode u8 proxyAuthType; // Proxy 認証形式 u8 proxyHost[0x64]; // Proxy hostname u16 proxyPort; // Proxy port u8 rsvEx [0x06]; // 予備 } NCFGApInfoEx; // 内蔵バックアップメモリ 1 スロット分 (1 ページ) typedef struct NCFGSlotInfo { NCFGApInfo ap; // アクセスポイント接続情報 u8 wifi[0x0E]; // WiFi 情報 u16 crc; // CRC } NCFGSlotInfo; // 拡張設定の内蔵バックアップメモリ 1 スロット分 (2ページ) typedef struct NCFGSlotInfoEx { NCFGApInfo ap; // アクセスポイント接続情報 u8 wifi[0x0E]; // WiFi 情報 u16 crc; // CRC NCFGApInfoEx apEx; // 拡張アクセスポイント接続情報 u8 rsvEx[0x0E]; // 予備 u16 crcEx; // CRC } NCFGSlotInfoEx; // 内蔵バックアップメモリの全体マップ typedef struct NCFGConfig { NCFGSlotInfo slot[3]; NCFGSlotInfo rsv; } NCFGConfig; // 拡張設定を含んだ内蔵バックアップメモリの全体マップ typedef struct NCFGConfigEx { NCFGSlotInfoEx slotEx[3]; union { NCFGConfig compat; struct { NCFGSlotInfo slot[3]; NCFGSlotInfo rsv; }; }; } NCFGConfigEx; #define NCFG_CHECKCONFIG_WORK_SIZE 0x700 #define NCFG_READCONFIG_WORK_SIZE 0x700 #define NCFG_WRITECONFIG_WORK_SIZE 0x700 #define NCFG_CHECKCONFIGEX_WORK_SIZE 0x1000 #define NCFG_READCONFIGEX_WORK_SIZE 0x1000 #define NCFG_WRITECONFIGEX_WORK_SIZE 0x1000 #endif #endif /* _WIFI_CFG_H_ */