Subversion Repositories HelenOS

Rev

Rev 4698 | Rev 4743 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4698 Rev 4703
Line 63... Line 63...
63
 */
63
 */
64
extern netif_globals_t netif_globals;
64
extern netif_globals_t netif_globals;
65
 
65
 
66
DEVICE_MAP_IMPLEMENT( device_map, device_t )
66
DEVICE_MAP_IMPLEMENT( device_map, device_t )
67
 
67
 
-
 
68
/** @name Message processing functions
-
 
69
 */
-
 
70
/*@{*/
-
 
71
 
68
/** Registers the device notification receiver, the network interface layer module.
72
/** Registers the device notification receiver, the network interface layer module.
69
 *  @param device_id The device identifier. Input parameter.
73
 *  @param device_id The device identifier. Input parameter.
70
 *  @param phone The network interface layer module phone. Input parameter.
74
 *  @param phone The network interface layer module phone. Input parameter.
71
 *  @returns EOK on success.
75
 *  @returns EOK on success.
72
 *  @returns ENOENT if there is no such device.
76
 *  @returns ENOENT if there is no such device.
73
 *  @returns ELIMIT if there is another module registered.
77
 *  @returns ELIMIT if there is another module registered.
74
 */
78
 */
75
int register_message( device_id_t device_id, int phone );
79
int register_message( device_id_t device_id, int phone );
76
 
80
 
-
 
81
/*@}*/
-
 
82
 
77
int netif_probe_req( int netif_phone, device_id_t device_id, int irq, int io ){
83
int netif_probe_req( int netif_phone, device_id_t device_id, int irq, int io ){
78
    int result;
84
    int result;
79
 
85
 
80
    fibril_rwlock_write_lock( & netif_globals.lock );
86
    fibril_rwlock_write_lock( & netif_globals.lock );
81
    result = netif_probe_message( device_id, irq, io );
87
    result = netif_probe_message( device_id, irq, io );
Line 138... Line 144...
138
        fibril_rwlock_write_unlock( & netif_globals.lock );
144
        fibril_rwlock_write_unlock( & netif_globals.lock );
139
    }
145
    }
140
    return result;
146
    return result;
141
}
147
}
142
 
148
 
-
 
149
int netif_stats_req( int netif_phone, device_id_t device_id, device_stats_ref stats ){
-
 
150
    int res;
-
 
151
 
-
 
152
    fibril_rwlock_read_lock( & netif_globals.lock );
-
 
153
    res = netif_get_device_stats( device_id, stats );
-
 
154
    fibril_rwlock_read_unlock( & netif_globals.lock );
-
 
155
    return res;
-
 
156
}
-
 
157
 
143
int netif_get_addr( int netif_phone, device_id_t device_id, measured_string_ref * address, char ** data ){
158
int netif_get_addr( int netif_phone, device_id_t device_id, measured_string_ref * address, char ** data ){
144
    ERROR_DECLARE;
159
    ERROR_DECLARE;
145
 
160
 
146
    measured_string_t   translation;
161
    measured_string_t   translation;
147
 
162
 
Line 195... Line 210...
195
//  printf( "message %d - %d\n", IPC_GET_METHOD( * call ), NET_NETIF_FIRST );
210
//  printf( "message %d - %d\n", IPC_GET_METHOD( * call ), NET_NETIF_FIRST );
196
    * answer_count = 0;
211
    * answer_count = 0;
197
    switch( IPC_GET_METHOD( * call )){
212
    switch( IPC_GET_METHOD( * call )){
198
        case IPC_M_PHONE_HUNGUP:
213
        case IPC_M_PHONE_HUNGUP:
199
            return EOK;
214
            return EOK;
200
        case NET_NETIF_PROBE_AUTO:
-
 
201
            fibril_rwlock_write_lock( & netif_globals.lock );
-
 
202
            ERROR_CODE = netif_probe_auto_message();
-
 
203
            fibril_rwlock_write_unlock( & netif_globals.lock );
-
 
204
            return ERROR_CODE;
-
 
205
        case NET_NETIF_PROBE:
215
        case NET_NETIF_PROBE:
206
            return netif_probe_req( 0, IPC_GET_DEVICE( call ), NETIF_GET_IRQ( call ), NETIF_GET_IO( call ));
216
            return netif_probe_req( 0, IPC_GET_DEVICE( call ), NETIF_GET_IRQ( call ), NETIF_GET_IO( call ));
207
        case IPC_M_CONNECT_TO_ME:
217
        case IPC_M_CONNECT_TO_ME:
208
            fibril_rwlock_write_lock( & netif_globals.lock );
218
            fibril_rwlock_write_lock( & netif_globals.lock );
209
            ERROR_CODE = register_message( IPC_GET_DEVICE( call ), IPC_GET_PHONE( call ));
219
            ERROR_CODE = register_message( IPC_GET_DEVICE( call ), IPC_GET_PHONE( call ));