Changeset 421 for trunk/kernel/syscalls/syscalls.h
- Timestamp:
- Jan 29, 2018, 5:40:34 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/syscalls/syscalls.h
r409 r421 78 78 * [3] This blocking function suspend execution of the calling thread until completion 79 79 * of another target thread identified by the <trdid> argument. 80 * The target thread must be joinable (running in ATTACHED mode), and must be different 81 * from the calling thread. 80 82 * If the <exit_value> argument is not NULL, the value passed to pthread_exit() by the 81 83 * target thread is stored in the location referenced by exit_value. … … 426 428 * remote access to traverse the list of process copies stored in the owner cluster, 427 429 * and the RPC_SIGNAL_RISE to signal the remote threads. 430 * This function does nothing for (sig_id == 0). This can be used to check process pid. 431 * TODO : This first implementation supports only SIGKILL / SIGSTOP / SIGCONT values. 428 432 ****************************************************************************************** 429 433 * @ pid : target process identifier. … … 491 495 492 496 /****************************************************************************************** 493 * [39] This non-standard function is used to activate / desactivate the trace for a thread 497 * [39] This blocking function wait a change of a child process state. A change can be: 498 * - a termination of child following a child exit. 499 * - a termination of child following a SIGKILL signal. 500 * - a blocking of child following a SIGSTOP signal. 501 * It returns the PID of the involved child process, after storing in the memory slot 502 * pointed by the <status> argument relevant information on the child state change. 503 * The following macros can be used to extract information from status: 504 * - WIFEXITED(status) : is true if the child process terminated with an exit(). 505 * - WIFSIGNALED(status) : is true if the child process terminated by a signal. 506 * - WIFSTOPPED(status) : is true if the child process is stopped by a signal. 507 * - WEXITSTATUS(status) : returns the low-order 8 bits of the exit() argument. 508 * A status of 0 indicates a normal termination. 509 * If a parent process terminates without waiting for all child processes to terminate, 510 * the remaining child processes are attached to the init process. 511 ****************************************************************************************** 512 * @ status : pointer on the child PID status. 513 * @ return child PID if success / return -1 if failure. 514 *****************************************************************************************/ 515 int sys_wait( uint32_t * status ); 516 517 /****************************************************************************************** 518 * [40] This function returns the hardware platform parameters. 519 ****************************************************************************************** 520 * @ x_size : [out] number of clusters in a row. 521 * @ y_size : [out] number of clusters in a column. 522 * @ y_width : [out] number of bits in Y field for CXY. 523 * @ ncores : [out] number of cores per cluster. 524 * @ return 0 if success / return -1 if illegal arguments 525 *****************************************************************************************/ 526 int sys_get_config( uint32_t * x_size, 527 uint32_t * y_size, 528 uint32_t * y_width, 529 uint32_t * ncores ); 530 531 /****************************************************************************************** 532 * [41] This function returns the calling core cluster and local index. 533 ****************************************************************************************** 534 * @ cxy : [out] cluster identifier (fixed format) 535 * @ lid : [out] core local index in cluster. 536 * @ return 0 if success / return -1 if illegal arguments 537 *****************************************************************************************/ 538 int sys_get_core( uint32_t * cxy, 539 uint32_t * lid ); 540 541 /****************************************************************************************** 542 * [42] This function returns in a 64 bits user buffer the calling core cycles count. 543 * It uses both the hardware register and the core descriptor cycles count to take 544 * into account a possible harware register overflow in 32 bits architectures. 545 ****************************************************************************************** 546 * cycle : [out] address of buffer in user space. 547 * @ return 0 if success / return -1 if illegal arguments 548 *****************************************************************************************/ 549 int sys_get_cycle( uint64_t * cycle ); 550 551 /****************************************************************************************** 552 * [43] This debug function displays on the kernel terminal TXT0 an user defined string, 553 * or the current state of a kernel structure, identified by the <type> argument. 554 * The <arg0> and <arg1> arguments depends on the structure type. It can be: 555 * - VMM : VSL and GPT for a process identified by <pid>. 556 * - SCHED : all threads allocated to a scheduler identified by <cxy> & <lid>. 557 * - PROCESS : all processes registered in a cluster identified by <cxy>. 558 * - VFS : all files registered in the VFS cache. 559 * - CHDEV : all registered channel devices. 560 ****************************************************************************************** 561 * type : [in] STRING / VMM / SCHED / PROCESS / VSEG / VFS 562 * arg0 : [in] type dependant argument. 563 * arg1 : [in] type dependant argument. 564 * @ return 0 if success / return -1 if illegal arguments 565 *****************************************************************************************/ 566 int sys_display( reg_t type, 567 reg_t arg0, 568 reg_t arg1 ); 569 570 /****************************************************************************************** 571 * [45] This function block the calling thread on the THREAD_BLOCKED_GLOBAL condition, 572 * and deschedule. 573 ****************************************************************************************** 574 * @ return 0 if success / returns -1 if failure. 575 *****************************************************************************************/ 576 int sys_thread_sleep(); 577 578 /****************************************************************************************** 579 * [46] This function unblock the thread identified by its <trdid> from the 580 * THREAD_BLOCKED_GLOBAL condition. 581 ****************************************************************************************** 582 * @ trdid : target thread identifier. 583 * @ return 0 if success / return -1 if failure. 584 *****************************************************************************************/ 585 int sys_thread_wakeup(); 586 587 /****************************************************************************************** 588 * [47] This non-standard function is used to activate / desactivate the trace for a thread 494 589 * identified by the <trdid> and <pid> arguments. 495 590 * It can be called by any other thread in the same process. … … 505 600 506 601 /****************************************************************************************** 507 * [40] This function returns the hardware platform parameters. 508 ****************************************************************************************** 509 * @ x_size : [out] number of clusters in a row. 510 * @ y_size : [out] number of clusters in a column. 511 * @ ncores : [out] number of cores per cluster. 512 * @ return 0 if success / return -1 if illegal arguments 513 *****************************************************************************************/ 514 int sys_get_config( uint32_t * x_size, 515 uint32_t * y_size, 516 uint32_t * ncores ); 517 518 /****************************************************************************************** 519 * [41] This function returns the calling core cluster and local index. 520 ****************************************************************************************** 521 * @ cxy : [out] cluster identifier (fixed format) 522 * @ lid : [out] core local index in cluster. 523 * @ return 0 if success / return -1 if illegal arguments 524 *****************************************************************************************/ 525 int sys_get_core( uint32_t * cxy, 526 uint32_t * lid ); 527 528 /****************************************************************************************** 529 * [42] This function returns in a 64 bits user buffer the calling core cycles count. 530 * It uses both the hardware register and the core descriptor cycles count to take 531 * into account a possible harware register overflow in 32 bits architectures. 532 ****************************************************************************************** 533 * cycle : [out] address of buffer in user space. 534 * @ return 0 if success / return -1 if illegal arguments 535 *****************************************************************************************/ 536 int sys_get_cycle( uint64_t * cycle ); 537 538 /****************************************************************************************** 539 * [43] This debug function displays on the kernel terminal the current state of a 540 * scheduler identified by the <cxy> and <lid> arguments. 541 ****************************************************************************************** 542 * cxy : [in] target cluster identifier. 543 * lid : [in] target core local index. 544 * @ return 0 if success / return -1 if illegal arguments 545 *****************************************************************************************/ 546 int sys_get_sched( uint32_t cxy, 547 uint32_t lid ); 548 549 /****************************************************************************************** 550 * [44] This debug function requires the kernel to display on the kernel terminal a message 551 * containing the thread / process / core identifiers, and the cause of panic, 552 * as defined by the <string> argument. 553 ****************************************************************************************** 554 * string : [in] message to be displayed. 555 * @ return always 0. 556 *****************************************************************************************/ 557 int sys_panic( char * string ); 558 559 /****************************************************************************************** 560 * [45] This function block the calling thread on the THREAD_BLOCKED_GLOBAL condition, 561 * and deschedule. 562 ****************************************************************************************** 563 * @ return 0 if success / returns -1 if failure. 564 *****************************************************************************************/ 565 int sys_thread_sleep(); 566 567 /****************************************************************************************** 568 * [46] This function unblock the thread identified by its <trdid> from the 569 * THREAD_BLOCKED_GLOBAL condition. 570 ****************************************************************************************** 571 * @ trdid : target thread identifier. 572 * @ return 0 if success / return -1 if failure. 573 *****************************************************************************************/ 574 int sys_thread_wakeup(); 602 * [48] This function gives the process identified by the <pid> argument 603 * the exclusive ownership of its TXT_TX terminal (put it in foreground). 604 ****************************************************************************************** 605 * @ pid : process identifier. 606 * @ return 0 if success / return -1 if failure. 607 *****************************************************************************************/ 608 int sys_fg( pid_t pid ); 575 609 576 610
Note: See TracChangeset
for help on using the changeset viewer.