,,

Fork of Application by Daniel Sygut

Committer:
Zaitsev
Date:
Thu Feb 15 14:29:23 2018 +0000
Revision:
15:2a20c3d2616e
Parent:
10:41552d038a69
j

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Zaitsev 10:41552d038a69 1 /* mbed Microcontroller Library
Zaitsev 10:41552d038a69 2 * Copyright (c) 2006-2013 ARM Limited
Zaitsev 10:41552d038a69 3 *
Zaitsev 10:41552d038a69 4 * Licensed under the Apache License, Version 2.0 (the "License");
Zaitsev 10:41552d038a69 5 * you may not use this file except in compliance with the License.
Zaitsev 10:41552d038a69 6 * You may obtain a copy of the License at
Zaitsev 10:41552d038a69 7 *
Zaitsev 10:41552d038a69 8 * http://www.apache.org/licenses/LICENSE-2.0
Zaitsev 10:41552d038a69 9 *
Zaitsev 10:41552d038a69 10 * Unless required by applicable law or agreed to in writing, software
Zaitsev 10:41552d038a69 11 * distributed under the License is distributed on an "AS IS" BASIS,
Zaitsev 10:41552d038a69 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Zaitsev 10:41552d038a69 13 * See the License for the specific language governing permissions and
Zaitsev 10:41552d038a69 14 * limitations under the License.
Zaitsev 10:41552d038a69 15 */
Zaitsev 10:41552d038a69 16 #include "drivers/Ethernet.h"
Zaitsev 10:41552d038a69 17
Zaitsev 10:41552d038a69 18 #if DEVICE_ETHERNET
Zaitsev 10:41552d038a69 19
Zaitsev 10:41552d038a69 20 #include "hal/ethernet_api.h"
Zaitsev 10:41552d038a69 21
Zaitsev 10:41552d038a69 22 namespace mbed {
Zaitsev 10:41552d038a69 23
Zaitsev 10:41552d038a69 24 Ethernet::Ethernet() {
Zaitsev 10:41552d038a69 25 ethernet_init();
Zaitsev 10:41552d038a69 26 }
Zaitsev 10:41552d038a69 27
Zaitsev 10:41552d038a69 28 Ethernet::~Ethernet() {
Zaitsev 10:41552d038a69 29 ethernet_free();
Zaitsev 10:41552d038a69 30 }
Zaitsev 10:41552d038a69 31
Zaitsev 10:41552d038a69 32 int Ethernet::write(const char *data, int size) {
Zaitsev 10:41552d038a69 33 return ethernet_write(data, size);
Zaitsev 10:41552d038a69 34 }
Zaitsev 10:41552d038a69 35
Zaitsev 10:41552d038a69 36 int Ethernet::send() {
Zaitsev 10:41552d038a69 37 return ethernet_send();
Zaitsev 10:41552d038a69 38 }
Zaitsev 10:41552d038a69 39
Zaitsev 10:41552d038a69 40 int Ethernet::receive() {
Zaitsev 10:41552d038a69 41 return ethernet_receive();
Zaitsev 10:41552d038a69 42 }
Zaitsev 10:41552d038a69 43
Zaitsev 10:41552d038a69 44 int Ethernet::read(char *data, int size) {
Zaitsev 10:41552d038a69 45 return ethernet_read(data, size);
Zaitsev 10:41552d038a69 46 }
Zaitsev 10:41552d038a69 47
Zaitsev 10:41552d038a69 48 void Ethernet::address(char *mac) {
Zaitsev 10:41552d038a69 49 return ethernet_address(mac);
Zaitsev 10:41552d038a69 50 }
Zaitsev 10:41552d038a69 51
Zaitsev 10:41552d038a69 52 int Ethernet::link() {
Zaitsev 10:41552d038a69 53 return ethernet_link();
Zaitsev 10:41552d038a69 54 }
Zaitsev 10:41552d038a69 55
Zaitsev 10:41552d038a69 56 void Ethernet::set_link(Mode mode) {
Zaitsev 10:41552d038a69 57 int speed = -1;
Zaitsev 10:41552d038a69 58 int duplex = 0;
Zaitsev 10:41552d038a69 59
Zaitsev 10:41552d038a69 60 switch(mode) {
Zaitsev 10:41552d038a69 61 case AutoNegotiate : speed = -1; duplex = 0; break;
Zaitsev 10:41552d038a69 62 case HalfDuplex10 : speed = 0; duplex = 0; break;
Zaitsev 10:41552d038a69 63 case FullDuplex10 : speed = 0; duplex = 1; break;
Zaitsev 10:41552d038a69 64 case HalfDuplex100 : speed = 1; duplex = 0; break;
Zaitsev 10:41552d038a69 65 case FullDuplex100 : speed = 1; duplex = 1; break;
Zaitsev 10:41552d038a69 66 }
Zaitsev 10:41552d038a69 67
Zaitsev 10:41552d038a69 68 ethernet_set_link(speed, duplex);
Zaitsev 10:41552d038a69 69 }
Zaitsev 10:41552d038a69 70
Zaitsev 10:41552d038a69 71 } // namespace mbed
Zaitsev 10:41552d038a69 72
Zaitsev 10:41552d038a69 73 #endif