Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more
core/uip/NyLPC_cIPv4Config.h@27:eb66b517efe6, 2013-05-02 (annotated)
- Committer:
- nyatla
- Date:
- Thu May 02 14:42:30 2013 +0000
- Revision:
- 27:eb66b517efe6
- Parent:
- 24:6ee4ba298152
- Child:
- 37:fc4b4fd6a649
add bord detection
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| nyatla | 0:142ee8b12fef | 1 | /********************************************************************************* |
| nyatla | 0:142ee8b12fef | 2 | * PROJECT: MiMic |
| nyatla | 0:142ee8b12fef | 3 | * -------------------------------------------------------------------------------- |
| nyatla | 0:142ee8b12fef | 4 | * |
| nyatla | 0:142ee8b12fef | 5 | * This file is part of MiMic |
| nyatla | 0:142ee8b12fef | 6 | * Copyright (C)2011 Ryo Iizuka |
| nyatla | 0:142ee8b12fef | 7 | * |
| nyatla | 0:142ee8b12fef | 8 | * MiMic is free software: you can redistribute it and/or modify |
| nyatla | 0:142ee8b12fef | 9 | * it under the terms of the GNU Lesser General Public License as published |
| nyatla | 0:142ee8b12fef | 10 | * by the Free Software Foundation, either version 3 of the License, or |
| nyatla | 0:142ee8b12fef | 11 | * (at your option) any later version. |
| nyatla | 0:142ee8b12fef | 12 | * |
| nyatla | 0:142ee8b12fef | 13 | * This program is distributed in the hope that it will be useful, |
| nyatla | 0:142ee8b12fef | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| nyatla | 0:142ee8b12fef | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| nyatla | 0:142ee8b12fef | 16 | * GNU General Public License for more details. |
| nyatla | 0:142ee8b12fef | 17 | * |
| nyatla | 0:142ee8b12fef | 18 | * You should have received a copy of the GNU Lesser General Public License |
| nyatla | 0:142ee8b12fef | 19 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
| nyatla | 0:142ee8b12fef | 20 | * |
| nyatla | 0:142ee8b12fef | 21 | * For further information please contact. |
| nyatla | 0:142ee8b12fef | 22 | * http://nyatla.jp/ |
| nyatla | 0:142ee8b12fef | 23 | * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp> |
| nyatla | 0:142ee8b12fef | 24 | * |
| nyatla | 0:142ee8b12fef | 25 | *********************************************************************************/ |
| nyatla | 0:142ee8b12fef | 26 | /** |
| nyatla | 0:142ee8b12fef | 27 | * @file |
| nyatla | 0:142ee8b12fef | 28 | * このファイルは、NyLPC_cIPv4Configクラスを定義します。 |
| nyatla | 0:142ee8b12fef | 29 | */ |
| nyatla | 0:142ee8b12fef | 30 | #ifndef NYLPC_CIPV4CONFIG_H_ |
| nyatla | 0:142ee8b12fef | 31 | #define NYLPC_CIPV4CONFIG_H_ |
| nyatla | 0:142ee8b12fef | 32 | |
| nyatla | 0:142ee8b12fef | 33 | |
| nyatla | 0:142ee8b12fef | 34 | #include "NyLPC_uip.h" |
| nyatla | 0:142ee8b12fef | 35 | |
| nyatla | 0:142ee8b12fef | 36 | /** |
| nyatla | 0:142ee8b12fef | 37 | * クラス型を定義します。 |
| nyatla | 0:142ee8b12fef | 38 | * NyLPC_cIPv4Configクラスは、IPと、下位のネットワーク層の設定を保持します。 |
| nyatla | 0:142ee8b12fef | 39 | * 関連するオブジェクトが、ネットワーク設定を問い合わせる為に使います。 |
| nyatla | 0:142ee8b12fef | 40 | */ |
| nyatla | 0:142ee8b12fef | 41 | typedef struct NyLPC_TcIPv4Config NyLPC_TcIPv4Config_t; |
| nyatla | 0:142ee8b12fef | 42 | |
| nyatla | 0:142ee8b12fef | 43 | #ifdef __cplusplus |
| nyatla | 0:142ee8b12fef | 44 | extern "C" { |
| nyatla | 0:142ee8b12fef | 45 | #endif /* __cplusplus */ |
| nyatla | 0:142ee8b12fef | 46 | /********************************************************************** |
| nyatla | 0:142ee8b12fef | 47 | * |
| nyatla | 0:142ee8b12fef | 48 | * class NyLPC_TcIPv4Config |
| nyatla | 0:142ee8b12fef | 49 | * |
| nyatla | 0:142ee8b12fef | 50 | **********************************************************************/ |
| nyatla | 0:142ee8b12fef | 51 | |
| nyatla | 0:142ee8b12fef | 52 | |
| nyatla | 0:142ee8b12fef | 53 | |
| nyatla | 0:142ee8b12fef | 54 | |
| nyatla | 0:142ee8b12fef | 55 | /** |
| nyatla | 0:142ee8b12fef | 56 | * NyLPC_TcIPv4Configクラスの構造体です。 |
| nyatla | 0:142ee8b12fef | 57 | */ |
| nyatla | 0:142ee8b12fef | 58 | struct NyLPC_TcIPv4Config |
| nyatla | 0:142ee8b12fef | 59 | { |
| nyatla | 0:142ee8b12fef | 60 | /** イーサネットアドレスを格納します。*/ |
| nyatla | 0:142ee8b12fef | 61 | struct NyLPC_TEthAddr eth_mac; |
| nyatla | 24:6ee4ba298152 | 62 | /** IPアドレスを格納します。Network orderです。*/ |
| nyatla | 0:142ee8b12fef | 63 | struct NyLPC_TIPv4Addr ip_addr; |
| nyatla | 24:6ee4ba298152 | 64 | /** ネットマスクを格納します。Network orderです。*/ |
| nyatla | 0:142ee8b12fef | 65 | struct NyLPC_TIPv4Addr netmask; |
| nyatla | 24:6ee4ba298152 | 66 | /** デフォルトゲートウェイアドレスを格納します。Network orderです。*/ |
| nyatla | 0:142ee8b12fef | 67 | struct NyLPC_TIPv4Addr dr_addr; |
| nyatla | 0:142ee8b12fef | 68 | /** デフォルトMMSサイズです。送信パケットのMSS値、受信パケットのデフォルトMSS値として使います。*/ |
| nyatla | 0:142ee8b12fef | 69 | NyLPC_TUInt16 default_mss; |
| nyatla | 0:142ee8b12fef | 70 | }; |
| nyatla | 0:142ee8b12fef | 71 | |
| nyatla | 27:eb66b517efe6 | 72 | #define NyLPC_TcIPv4Config_getEtherMac000120203(v)(((v)->eth_mac.addr[0]<<24)|((v)->eth_mac.addr[1]<<16)|((v)->eth_mac.addr[2]<<8)|((v)->eth_mac.addr[3]<<0)) |
| nyatla | 27:eb66b517efe6 | 73 | #define NyLPC_TcIPv4Config_getEtherMac0405xxxx(v) (((v)->eth_mac.addr[4]<<24)|((v)->eth_mac.addr[5]<<16)) |
| nyatla | 27:eb66b517efe6 | 74 | |
| nyatla | 0:142ee8b12fef | 75 | /** |
| nyatla | 0:142ee8b12fef | 76 | * コンストラクタです。 |
| nyatla | 0:142ee8b12fef | 77 | * イーサネット用にコンフィギュレーションを初期化します。 |
| nyatla | 0:142ee8b12fef | 78 | * @param i_inst |
| nyatla | 0:142ee8b12fef | 79 | * 初期化するインスタンスです。 |
| nyatla | 0:142ee8b12fef | 80 | * @param i_ether_frame_len |
| nyatla | 0:142ee8b12fef | 81 | * イーサネットフレームのサイズ。この数値から、MSSのデフォルト値を計算します。 |
| nyatla | 0:142ee8b12fef | 82 | */ |
| nyatla | 0:142ee8b12fef | 83 | void NyLPC_cIPv4Config_initialzeForEthernet(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TEthAddr* i_ether_addr,NyLPC_TUInt16 i_ether_frame_len); |
| nyatla | 0:142ee8b12fef | 84 | |
| nyatla | 13:a71705c5e6fd | 85 | |
| nyatla | 0:142ee8b12fef | 86 | /** |
| nyatla | 0:142ee8b12fef | 87 | * デストラクタです。インスタンスを破棄して、確保している動的リソースを元に戻します。 |
| nyatla | 0:142ee8b12fef | 88 | * @param i_inst |
| nyatla | 0:142ee8b12fef | 89 | * 破棄するインスタンスです。 |
| nyatla | 0:142ee8b12fef | 90 | * initializeに成功したインスタンスだけが指定できます。 |
| nyatla | 0:142ee8b12fef | 91 | */ |
| nyatla | 0:142ee8b12fef | 92 | #define NyLPC_cIPv4Config_finalize(i_inst) |
| nyatla | 0:142ee8b12fef | 93 | |
| nyatla | 0:142ee8b12fef | 94 | /** |
| nyatla | 0:142ee8b12fef | 95 | * この関数は、IPのデフォルトゲートウェイを設定します。dr_addrの値を更新します。 |
| nyatla | 0:142ee8b12fef | 96 | * @param i_inst |
| nyatla | 0:142ee8b12fef | 97 | * 操作するインスタンスです。 |
| nyatla | 0:142ee8b12fef | 98 | * @param i_dr_addr |
| nyatla | 0:142ee8b12fef | 99 | * 設定するIPアドレスを格納したアドレスです。 |
| nyatla | 0:142ee8b12fef | 100 | */ |
| nyatla | 0:142ee8b12fef | 101 | void NyLPC_cIPv4Config_setDefaultRoute(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_dr_addr); |
| nyatla | 0:142ee8b12fef | 102 | |
| nyatla | 0:142ee8b12fef | 103 | /** |
| nyatla | 0:142ee8b12fef | 104 | * この関数は、ローカルIPアドレスとネットマスクを設定します。 |
| nyatla | 0:142ee8b12fef | 105 | * @param i_inst |
| nyatla | 0:142ee8b12fef | 106 | * 操作するインスタンスです。 |
| nyatla | 0:142ee8b12fef | 107 | * @param i_ipaddr |
| nyatla | 0:142ee8b12fef | 108 | * 設定するIPアドレスを格納したアドレスです。 |
| nyatla | 0:142ee8b12fef | 109 | * @param i_netmask |
| nyatla | 0:142ee8b12fef | 110 | * 設定するネットマスクを格納したアドレスです。 |
| nyatla | 0:142ee8b12fef | 111 | */ |
| nyatla | 0:142ee8b12fef | 112 | void NyLPC_cIPv4Config_setIp(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_ipaddr,const struct NyLPC_TIPv4Addr* i_netmask); |
| nyatla | 0:142ee8b12fef | 113 | |
| nyatla | 0:142ee8b12fef | 114 | /** |
| nyatla | 0:142ee8b12fef | 115 | * この関数は、i_target_ipが、現在のIPアドレスに対するローカルアドレスであるかを返します。 |
| nyatla | 0:142ee8b12fef | 116 | * @param i_inst |
| nyatla | 0:142ee8b12fef | 117 | * 操作するインスタンスです。 |
| nyatla | 0:142ee8b12fef | 118 | * @param i_target_ip |
| nyatla | 0:142ee8b12fef | 119 | * 確認するIPアドレスです。 |
| nyatla | 0:142ee8b12fef | 120 | * @return |
| nyatla | 0:142ee8b12fef | 121 | * i_target_ipがローカルIPアドレスなら、TRUEを返します。 |
| nyatla | 0:142ee8b12fef | 122 | */ |
| nyatla | 0:142ee8b12fef | 123 | NyLPC_TBool NyLPC_cIPv4Config_isLocalIP(const NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_target_ip); |
| nyatla | 0:142ee8b12fef | 124 | |
| nyatla | 0:142ee8b12fef | 125 | #ifdef __cplusplus |
| nyatla | 0:142ee8b12fef | 126 | } |
| nyatla | 0:142ee8b12fef | 127 | #endif /* __cplusplus */ |
| nyatla | 0:142ee8b12fef | 128 | |
| nyatla | 0:142ee8b12fef | 129 | #endif |
MiMic Webservice library