00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00037 #include <netif_remote.h>
00038 #include <packet_client.h>
00039 #include <generic.h>
00040
00041 #include <ipc/services.h>
00042 #include <ipc/netif.h>
00043
00044 #include <net/modules.h>
00045 #include <adt/measured_strings.h>
00046 #include <net/packet.h>
00047 #include <net/device.h>
00048
00063 int netif_get_addr_req(int netif_phone, device_id_t device_id,
00064 measured_string_t **address, uint8_t **data)
00065 {
00066 return generic_get_addr_req(netif_phone, NET_NETIF_GET_ADDR, device_id,
00067 address, data);
00068 }
00069
00082 int netif_probe_req(int netif_phone, device_id_t device_id, int irq, void *io)
00083 {
00084 return async_req_3_0(netif_phone, NET_NETIF_PROBE, device_id, irq,
00085 (sysarg_t) io);
00086 }
00087
00100 int netif_send_msg(int netif_phone, device_id_t device_id, packet_t *packet,
00101 services_t sender)
00102 {
00103 return generic_send_msg_remote(netif_phone, NET_NETIF_SEND, device_id,
00104 packet_get_id(packet), sender, 0);
00105 }
00106
00119 int netif_start_req(int netif_phone, device_id_t device_id)
00120 {
00121 return async_req_1_0(netif_phone, NET_NETIF_START, device_id);
00122 }
00123
00136 int netif_stop_req(int netif_phone, device_id_t device_id)
00137 {
00138 return async_req_1_0(netif_phone, NET_NETIF_STOP, device_id);
00139 }
00140
00150 int netif_stats_req(int netif_phone, device_id_t device_id,
00151 device_stats_t *stats)
00152 {
00153 if (!stats)
00154 return EBADMEM;
00155
00156 aid_t message_id = async_send_1(netif_phone, NET_NETIF_STATS,
00157 (sysarg_t) device_id, NULL);
00158 async_data_read_start(netif_phone, stats, sizeof(*stats));
00159
00160 sysarg_t result;
00161 async_wait_for(message_id, &result);
00162
00163 return (int) result;
00164 }
00165
00182 int netif_bind_service(services_t service, device_id_t device_id,
00183 services_t me, async_client_conn_t receiver)
00184 {
00185 return bind_service(service, device_id, me, 0, receiver);
00186 }
00187