Changeset 9ce7eb5 in mainline
- Timestamp:
- 2010-11-07T19:49:00Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3090715
- Parents:
- 3da12d74 (diff), 16ac756 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- uspace
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/netstart/Makefile
r3da12d74 r9ce7eb5 29 29 30 30 USPACE_PREFIX = ../.. 31 LIBS = $(LIBNET_PREFIX)/libnet.a32 EXTRA_CFLAGS = -I$(LIBNET_PREFIX)/include31 LIBS = 32 EXTRA_CFLAGS = 33 33 34 34 BINARY = netstart -
uspace/lib/c/generic/net/modules.c
r3da12d74 r9ce7eb5 41 41 #include <async.h> 42 42 #include <malloc.h> 43 #include <err .h>43 #include <errno.h> 44 44 #include <sys/time.h> 45 45 … … 137 137 ipcarg_t arg3, async_client_conn_t client_receiver, suseconds_t timeout) 138 138 { 139 ERROR_DECLARE;139 int rc; 140 140 141 141 /* Connect to the needed service */ … … 144 144 /* Request the bidirectional connection */ 145 145 ipcarg_t phonehash; 146 if (ERROR_OCCURRED(ipc_connect_to_me(phone, arg1, arg2, arg3, 147 &phonehash))) { 146 147 rc = ipc_connect_to_me(phone, arg1, arg2, arg3, &phonehash); 148 if (rc != EOK) { 148 149 ipc_hangup(phone); 149 return ERROR_CODE;150 return rc; 150 151 } 151 152 async_new_connection(phonehash, 0, NULL, client_receiver); … … 212 213 int data_receive(void **data, size_t *length) 213 214 { 214 ERROR_DECLARE;215 216 215 ipc_callid_t callid; 216 int rc; 217 217 218 218 if (!data || !length) … … 229 229 230 230 // fetch the data 231 if (ERROR_OCCURRED(async_data_write_finalize(callid, *data, *length))) { 231 rc = async_data_write_finalize(callid, *data, *length); 232 if (rc != EOK) { 232 233 free(data); 233 return ERROR_CODE;234 return rc; 234 235 } 235 236 -
uspace/lib/c/generic/net/packet.c
r3da12d74 r9ce7eb5 41 41 #include <unistd.h> 42 42 #include <errno.h> 43 #include <err.h>44 43 45 44 #include <sys/mman.h> … … 91 90 int pm_init(void) 92 91 { 93 ERROR_DECLARE;92 int rc; 94 93 95 94 fibril_rwlock_initialize(&pm_globals.lock); 95 96 96 fibril_rwlock_write_lock(&pm_globals.lock); 97 ERROR_PROPAGATE(gpm_initialize(&pm_globals.packet_map));97 rc = gpm_initialize(&pm_globals.packet_map); 98 98 fibril_rwlock_write_unlock(&pm_globals.lock); 99 return EOK; 99 100 return rc; 100 101 } 101 102 … … 139 140 int pm_add(packet_t packet) 140 141 { 141 ERROR_DECLARE;142 143 142 packet_map_ref map; 143 int rc; 144 144 145 145 if (!packet_is_valid(packet)) … … 160 160 } 161 161 bzero(map, sizeof(packet_map_t)); 162 if ((ERROR_CODE =163 gpm_add(&pm_globals.packet_map, map))< 0) {162 rc = gpm_add(&pm_globals.packet_map, map); 163 if (rc < 0) { 164 164 fibril_rwlock_write_unlock(&pm_globals.lock); 165 165 free(map); 166 return ERROR_CODE;166 return rc; 167 167 } 168 168 } while (PACKET_MAP_PAGE(packet->packet_id) >= -
uspace/lib/c/generic/net/socket_client.c
r3da12d74 r9ce7eb5 43 43 #include <stdlib.h> 44 44 #include <errno.h> 45 #include <err.h>46 45 47 46 #include <ipc/services.h> … … 212 211 static void socket_connection(ipc_callid_t iid, ipc_call_t * icall) 213 212 { 214 ERROR_DECLARE;215 216 213 ipc_callid_t callid; 217 214 ipc_call_t call; 218 215 socket_ref socket; 216 int rc; 219 217 220 218 loop: … … 231 229 SOCKET_GET_SOCKET_ID(call)); 232 230 if (!socket) { 233 ERROR_CODE= ENOTSOCK;231 rc = ENOTSOCK; 234 232 fibril_rwlock_read_unlock(&socket_globals.lock); 235 233 break; … … 240 238 fibril_mutex_lock(&socket->receive_lock); 241 239 // push the number of received packet fragments 242 if (!ERROR_OCCURRED(dyn_fifo_push(&socket->received,240 rc = dyn_fifo_push(&socket->received, 243 241 SOCKET_GET_DATA_FRAGMENTS(call), 244 SOCKET_MAX_RECEIVED_SIZE))) { 242 SOCKET_MAX_RECEIVED_SIZE); 243 if (rc == EOK) { 245 244 // signal the received packet 246 245 fibril_condvar_signal(&socket->receive_signal); … … 252 251 // push the new socket identifier 253 252 fibril_mutex_lock(&socket->accept_lock); 254 if (!ERROR_OCCURRED(dyn_fifo_push(&socket->accepted, 255 1, SOCKET_MAX_ACCEPTED_SIZE))) { 253 rc = dyn_fifo_push(&socket->accepted, 1, 254 SOCKET_MAX_ACCEPTED_SIZE); 255 if (rc != EOK) { 256 256 // signal the accepted socket 257 257 fibril_condvar_signal(&socket->accept_signal); … … 261 261 262 262 default: 263 ERROR_CODE= ENOTSUP;263 rc = ENOTSUP; 264 264 } 265 265 … … 280 280 281 281 default: 282 ERROR_CODE= ENOTSUP;283 } 284 285 ipc_answer_0(callid, (ipcarg_t) ERROR_CODE);282 rc = ENOTSUP; 283 } 284 285 ipc_answer_0(callid, (ipcarg_t) rc); 286 286 goto loop; 287 287 } … … 405 405 int socket(int domain, int type, int protocol) 406 406 { 407 ERROR_DECLARE;408 409 407 socket_ref socket; 410 408 int phone; … … 413 411 ipcarg_t fragment_size; 414 412 ipcarg_t header_size; 413 int rc; 415 414 416 415 // find the appropriate service … … 479 478 } 480 479 481 if (ERROR_OCCURRED((int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, 482 service, NULL, &fragment_size, &header_size))) { 480 rc = (int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, service, NULL, 481 &fragment_size, &header_size); 482 if (rc != EOK) { 483 483 fibril_rwlock_write_unlock(&socket_globals.lock); 484 484 free(socket); 485 return ERROR_CODE;485 return rc; 486 486 } 487 487 … … 492 492 socket_initialize(socket, socket_id, phone, service); 493 493 // store the new socket 494 ERROR_CODE= sockets_add(socket_get_sockets(), socket_id, socket);494 rc = sockets_add(socket_get_sockets(), socket_id, socket); 495 495 496 496 fibril_rwlock_write_unlock(&socket_globals.lock); 497 if ( ERROR_CODE< 0) {497 if (rc < 0) { 498 498 dyn_fifo_destroy(&socket->received); 499 499 dyn_fifo_destroy(&socket->accepted); … … 501 501 async_msg_3(phone, NET_SOCKET_CLOSE, (ipcarg_t) socket_id, 0, 502 502 service); 503 return ERROR_CODE;503 return rc; 504 504 } 505 505 … … 770 770 int closesocket(int socket_id) 771 771 { 772 ERROR_DECLARE;773 774 772 socket_ref socket; 773 int rc; 775 774 776 775 fibril_rwlock_write_lock(&socket_globals.lock); … … 787 786 788 787 // request close 789 ERROR_PROPAGATE((int) async_req_3_0(socket->phone, NET_SOCKET_CLOSE, 790 (ipcarg_t) socket->socket_id, 0, socket->service)); 788 rc = (int) async_req_3_0(socket->phone, NET_SOCKET_CLOSE, 789 (ipcarg_t) socket->socket_id, 0, socket->service); 790 if (rc != EOK) { 791 fibril_rwlock_write_unlock(&socket_globals.lock); 792 return rc; 793 } 791 794 // free the socket structure 792 795 socket_destroy(socket); -
uspace/srv/net/net/net.c
r3da12d74 r9ce7eb5 42 42 #include <ddi.h> 43 43 #include <errno.h> 44 #include <err.h>45 44 #include <malloc.h> 46 45 #include <stdio.h> … … 92 91 const char *value) 93 92 { 94 ERROR_DECLARE;93 int rc; 95 94 96 95 measured_string_ref setting = … … 100 99 101 100 /* Add the configuration setting */ 102 if (ERROR_OCCURRED(measured_strings_add(configuration, name, 0, setting))) { 101 rc = measured_strings_add(configuration, name, 0, setting); 102 if (rc != EOK) { 103 103 free(setting); 104 return ERROR_CODE;104 return rc; 105 105 } 106 106 … … 110 110 /** Generate new system-unique device identifier. 111 111 * 112 * @returns The system-unique devic identifier. 113 * 112 * @returns The system-unique devic identifier. 114 113 */ 115 114 static device_id_t generate_new_device_id(void) … … 120 119 static int parse_line(measured_strings_ref configuration, char *line) 121 120 { 122 ERROR_DECLARE;121 int rc; 123 122 124 123 /* From the beginning */ … … 170 169 171 170 /* Add the configuration setting */ 172 if (ERROR_OCCURRED(measured_strings_add(configuration, name, 0, setting))) { 171 rc = measured_strings_add(configuration, name, 0, setting); 172 if (rc != EOK) { 173 173 free(setting); 174 return ERROR_CODE;174 return rc; 175 175 } 176 176 … … 181 181 measured_strings_ref configuration) 182 182 { 183 ERROR_DECLARE;184 185 183 printf("%s: Reading configuration file %s/%s\n", NAME, directory, filename); 186 184 … … 206 204 if (index >= BUFFER_SIZE) { 207 205 line[BUFFER_SIZE - 1] = '\0'; 208 fprintf(stderr, "%s: Configuration line %u too long: %s\n",209 NAME, line_number, line);206 fprintf(stderr, "%s: Configuration line %u too " 207 "long: %s\n", NAME, line_number, line); 210 208 211 209 /* No space left in the line buffer */ 212 210 return EOVERFLOW; 213 } else {214 /* Append the character */215 line[index] = (char) read;216 index++;217 211 } 212 /* Append the character */ 213 line[index] = (char) read; 214 index++; 218 215 } else { 219 216 /* On error or new line */ 220 217 line[index] = '\0'; 221 218 line_number++; 222 if (ERROR_OCCURRED(parse_line(configuration, line))) 223 fprintf(stderr, "%s: Configuration error on line %u: %s\n", 224 NAME, line_number, line); 219 if (parse_line(configuration, line) != EOK) { 220 fprintf(stderr, "%s: Configuration error on " 221 "line %u: %s\n", NAME, line_number, line); 222 } 225 223 226 224 index = 0; … … 270 268 static int net_initialize(async_client_conn_t client_connection) 271 269 { 272 ERROR_DECLARE;270 int rc; 273 271 274 272 netifs_initialize(&net_globals.netifs); … … 278 276 279 277 // TODO: dynamic configuration 280 ERROR_PROPAGATE(read_configuration()); 281 282 ERROR_PROPAGATE(add_module(NULL, &net_globals.modules, 283 LO_NAME, LO_FILENAME, SERVICE_LO, 0, connect_to_service)); 284 ERROR_PROPAGATE(add_module(NULL, &net_globals.modules, 285 DP8390_NAME, DP8390_FILENAME, SERVICE_DP8390, 0, connect_to_service)); 286 ERROR_PROPAGATE(add_module(NULL, &net_globals.modules, 287 ETHERNET_NAME, ETHERNET_FILENAME, SERVICE_ETHERNET, 0, 288 connect_to_service)); 289 ERROR_PROPAGATE(add_module(NULL, &net_globals.modules, 290 NILDUMMY_NAME, NILDUMMY_FILENAME, SERVICE_NILDUMMY, 0, 291 connect_to_service)); 278 rc = read_configuration(); 279 if (rc != EOK) 280 return rc; 281 282 rc = add_module(NULL, &net_globals.modules, LO_NAME, LO_FILENAME, 283 SERVICE_LO, 0, connect_to_service); 284 if (rc != EOK) 285 return rc; 286 rc = add_module(NULL, &net_globals.modules, DP8390_NAME, 287 DP8390_FILENAME, SERVICE_DP8390, 0, connect_to_service); 288 if (rc != EOK) 289 return rc; 290 rc = add_module(NULL, &net_globals.modules, ETHERNET_NAME, 291 ETHERNET_FILENAME, SERVICE_ETHERNET, 0, connect_to_service); 292 if (rc != EOK) 293 return rc; 294 rc = add_module(NULL, &net_globals.modules, NILDUMMY_NAME, 295 NILDUMMY_FILENAME, SERVICE_NILDUMMY, 0, connect_to_service); 296 if (rc != EOK) 297 return rc; 292 298 293 299 /* Build specific initialization */ … … 314 320 static int net_module_start(async_client_conn_t client_connection) 315 321 { 316 ERROR_DECLARE; 322 ipcarg_t phonehash; 323 int rc; 317 324 318 325 async_set_client_connection(client_connection); 319 ERROR_PROPAGATE(pm_init()); 320 321 ipcarg_t phonehash; 322 323 if (ERROR_OCCURRED(net_initialize(client_connection)) || 324 ERROR_OCCURRED(REGISTER_ME(SERVICE_NETWORKING, &phonehash))) { 325 pm_destroy(); 326 return ERROR_CODE; 327 } 326 rc = pm_init(); 327 if (rc != EOK) 328 return rc; 329 330 331 rc = net_initialize(client_connection); 332 if (rc != EOK) 333 goto out; 334 335 rc = REGISTER_ME(SERVICE_NETWORKING, &phonehash); 336 if (rc != EOK) 337 goto out; 328 338 329 339 async_manager(); 330 340 341 out: 331 342 pm_destroy(); 332 return EOK;343 return rc; 333 344 } 334 345 … … 415 426 static int start_device(netif_t *netif) 416 427 { 417 ERROR_DECLARE;428 int rc; 418 429 419 430 /* Mandatory netif */ … … 456 467 int io = setting ? strtol(setting->value, NULL, 16) : 0; 457 468 458 ERROR_PROPAGATE(netif_probe_req_remote(netif->driver->phone, netif->id, irq, io)); 469 rc = netif_probe_req_remote(netif->driver->phone, netif->id, irq, io); 470 if (rc != EOK) 471 return rc; 459 472 460 473 /* Network interface layer startup */ … … 468 481 int mtu = setting ? strtol(setting->value, NULL, 10) : 0; 469 482 470 ERROR_PROPAGATE(nil_device_req(netif->nil->phone, netif->id, mtu, 471 netif->driver->service)); 483 rc = nil_device_req(netif->nil->phone, netif->id, mtu, 484 netif->driver->service); 485 if (rc != EOK) 486 return rc; 472 487 473 488 internet_service = netif->nil->service; … … 478 493 switch (netif->il->service) { 479 494 case SERVICE_IP: 480 ERROR_PROPAGATE(ip_device_req(netif->il->phone, netif->id, 481 internet_service)); 495 rc = ip_device_req(netif->il->phone, netif->id, 496 internet_service); 497 if (rc != EOK) 498 return rc; 482 499 break; 483 500 default: … … 485 502 } 486 503 487 ERROR_PROPAGATE(netif_start_req_remote(netif->driver->phone, netif->id)); 488 return EOK; 504 return netif_start_req_remote(netif->driver->phone, netif->id); 489 505 } 490 506 … … 504 520 static int startup(void) 505 521 { 506 ERROR_DECLARE;507 508 522 const char *conf_files[] = { 509 523 "lo", … … 511 525 }; 512 526 size_t count = sizeof(conf_files) / sizeof(char *); 527 int rc; 513 528 514 529 size_t i; … … 522 537 return EXDEV; 523 538 524 ERROR_PROPAGATE(measured_strings_initialize(&netif->configuration)); 539 rc = measured_strings_initialize(&netif->configuration); 540 if (rc != EOK) 541 return rc; 525 542 526 543 /* Read configuration files */ 527 if (ERROR_OCCURRED(read_netif_configuration(conf_files[i], netif))) { 544 rc = read_netif_configuration(conf_files[i], netif); 545 if (rc != EOK) { 528 546 measured_strings_destroy(&netif->configuration); 529 547 free(netif); 530 return ERROR_CODE;548 return rc; 531 549 } 532 550 … … 554 572 * and needed modules. 555 573 */ 556 if ((ERROR_OCCURRED(char_map_add(&net_globals.netif_names, 557 netif->name, 0, index))) || (ERROR_OCCURRED(start_device(netif)))) { 574 rc = char_map_add(&net_globals.netif_names, netif->name, 0, 575 index); 576 if (rc != EOK) { 558 577 measured_strings_destroy(&netif->configuration); 559 578 netifs_exclude_index(&net_globals.netifs, index); 560 return ERROR_CODE; 579 return rc; 580 } 581 582 rc = start_device(netif); 583 if (rc != EOK) { 584 measured_strings_destroy(&netif->configuration); 585 netifs_exclude_index(&net_globals.netifs, index); 586 return rc; 561 587 } 562 588 … … 594 620 int *answer_count) 595 621 { 596 ERROR_DECLARE;597 598 622 measured_string_ref strings; 599 623 char *data; 624 int rc; 600 625 601 626 *answer_count = 0; … … 604 629 return EOK; 605 630 case NET_NET_GET_DEVICE_CONF: 606 ERROR_PROPAGATE(measured_strings_receive(&strings, &data, 607 IPC_GET_COUNT(call))); 631 rc = measured_strings_receive(&strings, &data, 632 IPC_GET_COUNT(call)); 633 if (rc != EOK) 634 return rc; 608 635 net_get_device_conf_req(0, IPC_GET_DEVICE(call), &strings, 609 636 IPC_GET_COUNT(call), NULL); … … 612 639 free(data); 613 640 614 ERROR_CODE= measured_strings_reply(strings, IPC_GET_COUNT(call));641 rc = measured_strings_reply(strings, IPC_GET_COUNT(call)); 615 642 free(strings); 616 return ERROR_CODE;643 return rc; 617 644 case NET_NET_GET_CONF: 618 ERROR_PROPAGATE(measured_strings_receive(&strings, &data, 619 IPC_GET_COUNT(call))); 645 rc = measured_strings_receive(&strings, &data, 646 IPC_GET_COUNT(call)); 647 if (rc != EOK) 648 return rc; 620 649 net_get_conf_req(0, &strings, IPC_GET_COUNT(call), NULL); 621 650 … … 623 652 free(data); 624 653 625 ERROR_CODE= measured_strings_reply(strings, IPC_GET_COUNT(call));654 rc = measured_strings_reply(strings, IPC_GET_COUNT(call)); 626 655 free(strings); 627 return ERROR_CODE;656 return rc; 628 657 case NET_NET_STARTUP: 629 658 return startup(); 630 659 } 660 631 661 return ENOTSUP; 632 662 } … … 670 700 int main(int argc, char *argv[]) 671 701 { 672 ERROR_DECLARE; 673 674 if (ERROR_OCCURRED(net_module_start(net_client_connection))) { 675 fprintf(stderr, "%s: net_module_start error %i\n", NAME, ERROR_CODE); 676 return ERROR_CODE; 702 int rc; 703 704 rc = net_module_start(net_client_connection); 705 if (rc != EOK) { 706 fprintf(stderr, "%s: net_module_start error %i\n", NAME, rc); 707 return rc; 677 708 } 678 709 -
uspace/srv/net/net/net_standalone.c
r3da12d74 r9ce7eb5 42 42 #include <ipc/ipc.h> 43 43 #include <ipc/net.h> 44 #include <errno.h> 44 45 45 46 #include <ip_interface.h> … … 60 61 int net_initialize_build(async_client_conn_t client_connection) 61 62 { 62 ERROR_DECLARE;63 int rc; 63 64 64 65 task_id_t task_id = spawn("/srv/ip"); … … 66 67 return EINVAL; 67 68 68 ERROR_PROPAGATE(add_module(NULL, &net_globals.modules, IP_NAME, 69 IP_FILENAME, SERVICE_IP, task_id, ip_connect_module)); 69 rc = add_module(NULL, &net_globals.modules, IP_NAME, 70 IP_FILENAME, SERVICE_IP, task_id, ip_connect_module); 71 if (rc != EOK) 72 return rc; 70 73 71 74 if (!spawn("/srv/icmp"))
Note:
See TracChangeset
for help on using the changeset viewer.