Changeset 188 for trunk/kernel/kern/rpc.c
- Timestamp:
- Jul 12, 2017, 8:12:41 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/kern/rpc.c
r101 r188 537 537 uint32_t fs_type, // in 538 538 uint32_t inode_type, // in 539 void * extend, // in 539 540 uint32_t attr, // in 540 541 uint32_t rights, // in … … 560 561 rpc.args[1] = (uint64_t)fs_type; 561 562 rpc.args[2] = (uint64_t)inode_type; 562 rpc.args[3] = (uint64_t)attr; 563 rpc.args[4] = (uint64_t)rights; 564 rpc.args[5] = (uint64_t)uid; 565 rpc.args[6] = (uint64_t)gid; 563 rpc.args[3] = (uint64_t)(intptr_t)extend; 564 rpc.args[4] = (uint64_t)attr; 565 rpc.args[5] = (uint64_t)rights; 566 rpc.args[6] = (uint64_t)uid; 567 rpc.args[7] = (uint64_t)gid; 566 568 567 569 // register RPC request in remote RPC fifo (blocking function) … … 569 571 570 572 // get output values from RPC descriptor 571 *inode_xp = (xptr_t)rpc.args[ 7];572 *error = (error_t)rpc.args[ 8];573 *inode_xp = (xptr_t)rpc.args[8]; 574 *error = (error_t)rpc.args[9]; 573 575 } 574 576 … … 579 581 uint32_t fs_type; 580 582 uint32_t inode_type; 583 void * extend; 581 584 uint32_t attr; 582 585 uint32_t rights; … … 591 594 592 595 // get input arguments from client rpc descriptor 593 dentry_xp = (xptr_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[0] ) ); 594 fs_type = (uint32_t)hal_remote_lwd( XPTR( client_cxy , &desc->args[1] ) ); 595 inode_type = (uint32_t)hal_remote_lwd( XPTR( client_cxy , &desc->args[2] ) ); 596 attr = (uint32_t)hal_remote_lwd( XPTR( client_cxy , &desc->args[3] ) ); 597 rights = (uint32_t)hal_remote_lwd( XPTR( client_cxy , &desc->args[4] ) ); 598 uid = (uid_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[5] ) ); 599 gid = (gid_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[6] ) ); 596 dentry_xp = (xptr_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[0] ) ); 597 fs_type = (uint32_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[1] ) ); 598 inode_type = (uint32_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[2] ) ); 599 extend = (void *)(intptr_t)hal_remote_lwd( XPTR( client_cxy , &desc->args[3] ) ); 600 attr = (uint32_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[4] ) ); 601 rights = (uint32_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[5] ) ); 602 uid = (uid_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[6] ) ); 603 gid = (gid_t) hal_remote_lwd( XPTR( client_cxy , &desc->args[7] ) ); 600 604 601 605 // call local kernel function … … 603 607 fs_type, 604 608 inode_type, 609 extend, 605 610 attr, 606 611 rights, … … 610 615 611 616 // set output arguments 612 hal_remote_swd( XPTR( client_cxy , &desc->args[ 7] ) , (uint64_t)inode_xp );613 hal_remote_swd( XPTR( client_cxy , &desc->args[ 8] ) , (uint64_t)error );617 hal_remote_swd( XPTR( client_cxy , &desc->args[8] ) , (uint64_t)inode_xp ); 618 hal_remote_swd( XPTR( client_cxy , &desc->args[9] ) , (uint64_t)error ); 614 619 } 615 620 … … 1290 1295 if( cores == 0 ) // no core in kernel mode in server 1291 1296 { 1292 dev_ icu_send_ipi( server_cxy , client_lid );1297 dev_pic_send_ipi( server_cxy , client_lid ); 1293 1298 1294 1299 rpc_dmsg("\n[INFO] %s : core %d in cluster %x send IPI to core %d in cluster %x\n", … … 1454 1459 1455 1460 // update core descriptor counter 1456 core->rpc_threads++;1461 hal_atomic_add( &core->rpc_threads , 1 ); 1457 1462 } 1458 1463 … … 1549 1554 1550 1555 // update core descriptor counter 1551 this->core->rpc_threads--;1556 hal_atomic_add( &this->core->rpc_threads , -1 ); 1552 1557 1553 1558 // suicide
Note: See TracChangeset
for help on using the changeset viewer.