Rev 3991 | Rev 4163 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3991 | Rev 4155 | ||
---|---|---|---|
Line 71... | Line 71... | ||
71 | #endif |
71 | #endif |
72 | 72 | ||
73 | #define NAME "Networking" |
73 | #define NAME "Networking" |
74 | 74 | ||
75 | #define LO_NAME "lo" |
75 | #define LO_NAME "lo" |
76 | #define LO_FILENAME "/sbin/lo" |
76 | #define LO_FILENAME "/srv/lo" |
77 | #define DP8390_ISA_NAME "dp8390_isa" |
77 | #define DP8390_NAME "dp8390" |
78 | #define DP8390_ISA_FILENAME "/sbin/dp8380_isa" |
78 | #define DP8390_FILENAME "/srv/dp8380" |
79 | #define ETHERNET_NAME "ethernet" |
79 | #define ETHERNET_NAME "ethernet" |
80 | #define ETHERNET_FILENAME "/sbin/ethernet" |
80 | #define ETHERNET_FILENAME "/srv/ethernet" |
81 | #define IP_NAME "ip" |
81 | #define IP_NAME "ip" |
82 | #define IP_FILENAME "/sbin/ip" |
82 | #define IP_FILENAME "/srv/ip" |
83 | 83 | ||
84 | #define IPC_GET_DEVICE( call ) ( device_id_t ) IPC_GET_ARG1( * call ) |
84 | #define IPC_GET_DEVICE( call ) ( device_id_t ) IPC_GET_ARG1( * call ) |
85 | #define IPC_GET_COUNT( call ) ( int ) IPC_GET_ARG2( * call ) |
85 | #define IPC_GET_COUNT( call ) ( int ) IPC_GET_ARG2( * call ) |
86 | 86 | ||
87 | typedef struct module_struct module_t; |
87 | typedef struct module_struct module_t; |
Line 155... | Line 155... | ||
155 | int networking_message( ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count ); |
155 | int networking_message( ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count ); |
156 | int net_message( ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count ); |
156 | int net_message( ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count ); |
157 | //int parse_line( measured_strings_ref configuration, char * line ); |
157 | //int parse_line( measured_strings_ref configuration, char * line ); |
158 | int add_configuration( measured_strings_ref configuration, const char * name, const char * value ); |
158 | int add_configuration( measured_strings_ref configuration, const char * name, const char * value ); |
159 | int read_configuration( void ); |
159 | int read_configuration( void ); |
160 | task_id_t spawn( const char * fname ); |
160 | task_id_t spawn( const char * const fname ); |
161 | int startup( void ); |
161 | int startup( void ); |
162 | device_id_t generate_new_device_id( void ); |
162 | device_id_t generate_new_device_id( void ); |
163 | 163 | ||
164 | static networking_globals_t networking_globals; |
164 | static networking_globals_t networking_globals; |
165 | 165 | ||
Line 256... | Line 256... | ||
256 | 256 | ||
257 | // run self tests |
257 | // run self tests |
258 | // ERROR_PROPAGATE( self_test()); |
258 | // ERROR_PROPAGATE( self_test()); |
259 | 259 | ||
260 | ERROR_PROPAGATE( add_module( NULL, & networking_globals.modules, LO_NAME, LO_FILENAME, SERVICE_LO, 0 )); |
260 | ERROR_PROPAGATE( add_module( NULL, & networking_globals.modules, LO_NAME, LO_FILENAME, SERVICE_LO, 0 )); |
261 | ERROR_PROPAGATE( add_module( NULL, & networking_globals.modules, DP8390_ISA_NAME, DP8390_ISA_FILENAME, SERVICE_DP8390_ISA, 0 )); |
261 | ERROR_PROPAGATE( add_module( NULL, & networking_globals.modules, DP8390_NAME, DP8390_FILENAME, SERVICE_DP8390, 0 )); |
262 | ERROR_PROPAGATE( add_module( NULL, & networking_globals.modules, ETHERNET_NAME, ETHERNET_FILENAME, SERVICE_ETHERNET, 0 )); |
262 | ERROR_PROPAGATE( add_module( NULL, & networking_globals.modules, ETHERNET_NAME, ETHERNET_FILENAME, SERVICE_ETHERNET, 0 )); |
263 | 263 | ||
264 | #ifdef NETWORKING_modular |
264 | #ifdef NETWORKING_modular |
265 | task_id = spawn( "/sbin/ip" ); |
265 | task_id = spawn( "/srv/ip" ); |
266 | if( ! task_id ) return EINVAL; |
266 | if( ! task_id ) return EINVAL; |
267 | ERROR_PROPAGATE( add_module( NULL, & networking_globals.modules, IP_NAME, IP_FILENAME, SERVICE_IP, task_id )); |
267 | ERROR_PROPAGATE( add_module( NULL, & networking_globals.modules, IP_NAME, IP_FILENAME, SERVICE_IP, task_id )); |
268 | // if( ! spawn( "/sbin/udp" )) return EINVAL; |
268 | // if( ! spawn( "/srv/udp" )) return EINVAL; |
269 | if( ! spawn( "/sbin/tcp" )) return EINVAL; |
269 | if( ! spawn( "/srv/tcp" )) return EINVAL; |
270 | // if( ! spawn( "/sbin/socket" )) return EINVAL; |
270 | // if( ! spawn( "/srv/socket" )) return EINVAL; |
271 | // not always necesssary |
271 | // not always necesssary |
272 | // if( ! spawn( "/sbin/arp" )) return EINVAL; |
272 | // if( ! spawn( "/srv/arp" )) return EINVAL; |
273 | // if( ! spawn( "/sbin/rarp" )) return EINVAL; |
273 | // if( ! spawn( "/srv/rarp" )) return EINVAL; |
274 | // if( ! spawn( "/sbin/icmp" )) return EINVAL; |
274 | // if( ! spawn( "/srv/icmp" )) return EINVAL; |
275 | 275 | ||
276 | #else |
276 | #else |
277 | #ifdef NETWORKING_module |
277 | #ifdef NETWORKING_module |
278 | ipcarg_t phonehash; |
278 | ipcarg_t phonehash; |
279 | 279 | ||
Line 601... | Line 601... | ||
601 | ERROR_PROPAGATE( async_req_1_0( netif->driver->phone, NET_NETIF_START, netif->id )); |
601 | ERROR_PROPAGATE( async_req_1_0( netif->driver->phone, NET_NETIF_START, netif->id )); |
602 | // printf( "\n LO OK" ); |
602 | // printf( "\n LO OK" ); |
603 | return EOK; |
603 | return EOK; |
604 | } |
604 | } |
605 | 605 | ||
606 | task_id_t spawn( const char * fname ){ |
606 | task_id_t spawn( const char * const fname ){ |
607 | const char * argv[ 2 ]; |
607 | char * const argv[ 2 ] = { fname, NULL }; |
608 | task_id_t res; |
608 | task_id_t res; |
609 | 609 | ||
610 | // printf( "Spawning %s\n", fname ); |
610 | // printf( "Spawning %s\n", fname ); |
611 | argv[ 0 ] = fname; |
611 | // argv[ 0 ] = fname; |
612 | argv[ 1 ] = NULL; |
612 | // argv[ 1 ] = NULL; |
613 | res = task_spawn( fname, argv ); |
613 | res = task_spawn( fname, argv ); |
614 | if( res != 0 ){ |
614 | if( res != 0 ){ |
615 | /* Success */ |
615 | /* Success */ |
616 | usleep( 50000 ); |
616 | usleep( 50000 ); |
617 | } |
617 | } |