1 #ifndef _task_user_ 2 #define _task_user_ 3 4 /* Module task */ 5 6 #include <string.h> 7 #include <mach/ndr.h> 8 #include <mach/boolean.h> 9 #include <mach/kern_return.h> 10 #include <mach/notify.h> 11 #include <mach/mach_types.h> 12 #include <mach/message.h> 13 #include <mach/mig_errors.h> 14 #include <mach/port.h> 15 16 #ifdef AUTOTEST 17 #ifndef FUNCTION_PTR_T 18 #define FUNCTION_PTR_T 19 typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t); 20 typedef struct { 21 char *name; 22 function_ptr_t function; 23 } function_table_entry; 24 typedef function_table_entry *function_table_t; 25 #endif /* FUNCTION_PTR_T */ 26 #endif /* AUTOTEST */ 27 28 #ifndef task_MSG_COUNT 29 #define task_MSG_COUNT 35 30 #endif /* task_MSG_COUNT */ 31 32 #include <mach/std_types.h> 33 #include <mach/mig.h> 34 #include <mach/mig.h> 35 #include <mach/mach_types.h> 36 37 #ifdef __BeforeMigUserHeader 38 __BeforeMigUserHeader 39 #endif /* __BeforeMigUserHeader */ 40 41 #include <sys/cdefs.h> 42 __BEGIN_DECLS 43 44 45 /* Routine task_create */ 46 #ifdef mig_external 47 mig_external 48 #else 49 extern 50 #endif /* mig_external */ 51 kern_return_t task_create 52 ( 53 task_t target_task, 54 ledger_array_t ledgers, 55 mach_msg_type_number_t ledgersCnt, 56 boolean_t inherit_memory, 57 task_t *child_task 58 ); 59 60 /* Routine task_terminate */ 61 #ifdef mig_external 62 mig_external 63 #else 64 extern 65 #endif /* mig_external */ 66 kern_return_t task_terminate 67 ( 68 task_t target_task 69 ); 70 71 /* Routine task_threads */ 72 #ifdef mig_external 73 mig_external 74 #else 75 extern 76 #endif /* mig_external */ 77 kern_return_t task_threads 78 ( 79 task_t target_task, 80 thread_act_array_t *act_list, 81 mach_msg_type_number_t *act_listCnt 82 ); 83 84 /* Routine mach_ports_register */ 85 #ifdef mig_external 86 mig_external 87 #else 88 extern 89 #endif /* mig_external */ 90 kern_return_t mach_ports_register 91 ( 92 task_t target_task, 93 mach_port_array_t init_port_set, 94 mach_msg_type_number_t init_port_setCnt 95 ); 96 97 /* Routine mach_ports_lookup */ 98 #ifdef mig_external 99 mig_external 100 #else 101 extern 102 #endif /* mig_external */ 103 kern_return_t mach_ports_lookup 104 ( 105 task_t target_task, 106 mach_port_array_t *init_port_set, 107 mach_msg_type_number_t *init_port_setCnt 108 ); 109 110 /* Routine task_info */ 111 #ifdef mig_external 112 mig_external 113 #else 114 extern 115 #endif /* mig_external */ 116 kern_return_t task_info 117 ( 118 task_name_t target_task, 119 task_flavor_t flavor, 120 task_info_t task_info_out, 121 mach_msg_type_number_t *task_info_outCnt 122 ); 123 124 /* Routine task_set_info */ 125 #ifdef mig_external 126 mig_external 127 #else 128 extern 129 #endif /* mig_external */ 130 kern_return_t task_set_info 131 ( 132 task_t target_task, 133 task_flavor_t flavor, 134 task_info_t task_info_in, 135 mach_msg_type_number_t task_info_inCnt 136 ); 137 138 /* Routine task_suspend */ 139 #ifdef mig_external 140 mig_external 141 #else 142 extern 143 #endif /* mig_external */ 144 kern_return_t task_suspend 145 ( 146 task_t target_task 147 ); 148 149 /* Routine task_resume */ 150 #ifdef mig_external 151 mig_external 152 #else 153 extern 154 #endif /* mig_external */ 155 kern_return_t task_resume 156 ( 157 task_t target_task 158 ); 159 160 /* Routine task_get_special_port */ 161 #ifdef mig_external 162 mig_external 163 #else 164 extern 165 #endif /* mig_external */ 166 kern_return_t task_get_special_port 167 ( 168 task_t task, 169 int which_port, 170 mach_port_t *special_port 171 ); 172 173 /* Routine task_set_special_port */ 174 #ifdef mig_external 175 mig_external 176 #else 177 extern 178 #endif /* mig_external */ 179 kern_return_t task_set_special_port 180 ( 181 task_t task, 182 int which_port, 183 mach_port_t special_port 184 ); 185 186 /* Routine thread_create */ 187 #ifdef mig_external 188 mig_external 189 #else 190 extern 191 #endif /* mig_external */ 192 kern_return_t thread_create 193 ( 194 task_t parent_task, 195 thread_act_t *child_act 196 ); 197 198 /* Routine thread_create_running */ 199 #ifdef mig_external 200 mig_external 201 #else 202 extern 203 #endif /* mig_external */ 204 kern_return_t thread_create_running 205 ( 206 task_t parent_task, 207 thread_state_flavor_t flavor, 208 thread_state_t new_state, 209 mach_msg_type_number_t new_stateCnt, 210 thread_act_t *child_act 211 ); 212 213 /* Routine task_set_exception_ports */ 214 #ifdef mig_external 215 mig_external 216 #else 217 extern 218 #endif /* mig_external */ 219 kern_return_t task_set_exception_ports 220 ( 221 task_t task, 222 exception_mask_t exception_mask, 223 mach_port_t new_port, 224 exception_behavior_t behavior, 225 thread_state_flavor_t new_flavor 226 ); 227 228 /* Routine task_get_exception_ports */ 229 #ifdef mig_external 230 mig_external 231 #else 232 extern 233 #endif /* mig_external */ 234 kern_return_t task_get_exception_ports 235 ( 236 task_t task, 237 exception_mask_t exception_mask, 238 exception_mask_array_t masks, 239 mach_msg_type_number_t *masksCnt, 240 exception_handler_array_t old_handlers, 241 exception_behavior_array_t old_behaviors, 242 exception_flavor_array_t old_flavors 243 ); 244 245 /* Routine task_swap_exception_ports */ 246 #ifdef mig_external 247 mig_external 248 #else 249 extern 250 #endif /* mig_external */ 251 kern_return_t task_swap_exception_ports 252 ( 253 task_t task, 254 exception_mask_t exception_mask, 255 mach_port_t new_port, 256 exception_behavior_t behavior, 257 thread_state_flavor_t new_flavor, 258 exception_mask_array_t masks, 259 mach_msg_type_number_t *masksCnt, 260 exception_handler_array_t old_handlerss, 261 exception_behavior_array_t old_behaviors, 262 exception_flavor_array_t old_flavors 263 ); 264 265 /* Routine lock_set_create */ 266 #ifdef mig_external 267 mig_external 268 #else 269 extern 270 #endif /* mig_external */ 271 kern_return_t lock_set_create 272 ( 273 task_t task, 274 lock_set_t *new_lock_set, 275 int n_ulocks, 276 int policy 277 ); 278 279 /* Routine lock_set_destroy */ 280 #ifdef mig_external 281 mig_external 282 #else 283 extern 284 #endif /* mig_external */ 285 kern_return_t lock_set_destroy 286 ( 287 task_t task, 288 lock_set_t lock_set 289 ); 290 291 /* Routine semaphore_create */ 292 #ifdef mig_external 293 mig_external 294 #else 295 extern 296 #endif /* mig_external */ 297 kern_return_t semaphore_create 298 ( 299 task_t task, 300 semaphore_t *semaphore, 301 int policy, 302 int value 303 ); 304 305 /* Routine semaphore_destroy */ 306 #ifdef mig_external 307 mig_external 308 #else 309 extern 310 #endif /* mig_external */ 311 kern_return_t semaphore_destroy 312 ( 313 task_t task, 314 semaphore_t semaphore 315 ); 316 317 /* Routine task_policy_set */ 318 #ifdef mig_external 319 mig_external 320 #else 321 extern 322 #endif /* mig_external */ 323 kern_return_t task_policy_set 324 ( 325 task_t task, 326 task_policy_flavor_t flavor, 327 task_policy_t policy_info, 328 mach_msg_type_number_t policy_infoCnt 329 ); 330 331 /* Routine task_policy_get */ 332 #ifdef mig_external 333 mig_external 334 #else 335 extern 336 #endif /* mig_external */ 337 kern_return_t task_policy_get 338 ( 339 task_t task, 340 task_policy_flavor_t flavor, 341 task_policy_t policy_info, 342 mach_msg_type_number_t *policy_infoCnt, 343 boolean_t *get_default 344 ); 345 346 /* Routine task_sample */ 347 #ifdef mig_external 348 mig_external 349 #else 350 extern 351 #endif /* mig_external */ 352 kern_return_t task_sample 353 ( 354 task_t task, 355 mach_port_t reply 356 ); 357 358 /* Routine task_policy */ 359 #ifdef mig_external 360 mig_external 361 #else 362 extern 363 #endif /* mig_external */ 364 kern_return_t task_policy 365 ( 366 task_t task, 367 policy_t policy, 368 policy_base_t base, 369 mach_msg_type_number_t baseCnt, 370 boolean_t set_limit, 371 boolean_t change 372 ); 373 374 /* Routine task_set_emulation */ 375 #ifdef mig_external 376 mig_external 377 #else 378 extern 379 #endif /* mig_external */ 380 kern_return_t task_set_emulation 381 ( 382 task_t target_port, 383 vm_address_t routine_entry_pt, 384 int routine_number 385 ); 386 387 /* Routine task_get_emulation_vector */ 388 #ifdef mig_external 389 mig_external 390 #else 391 extern 392 #endif /* mig_external */ 393 kern_return_t task_get_emulation_vector 394 ( 395 task_t task, 396 int *vector_start, 397 emulation_vector_t *emulation_vector, 398 mach_msg_type_number_t *emulation_vectorCnt 399 ); 400 401 /* Routine task_set_emulation_vector */ 402 #ifdef mig_external 403 mig_external 404 #else 405 extern 406 #endif /* mig_external */ 407 kern_return_t task_set_emulation_vector 408 ( 409 task_t task, 410 int vector_start, 411 emulation_vector_t emulation_vector, 412 mach_msg_type_number_t emulation_vectorCnt 413 ); 414 415 /* Routine task_set_ras_pc */ 416 #ifdef mig_external 417 mig_external 418 #else 419 extern 420 #endif /* mig_external */ 421 kern_return_t task_set_ras_pc 422 ( 423 task_t target_task, 424 vm_address_t basepc, 425 vm_address_t boundspc 426 ); 427 428 /* Routine task_assign */ 429 #ifdef mig_external 430 mig_external 431 #else 432 extern 433 #endif /* mig_external */ 434 kern_return_t task_assign 435 ( 436 task_t task, 437 processor_set_t new_set, 438 boolean_t assign_threads 439 ); 440 441 /* Routine task_assign_default */ 442 #ifdef mig_external 443 mig_external 444 #else 445 extern 446 #endif /* mig_external */ 447 kern_return_t task_assign_default 448 ( 449 task_t task, 450 boolean_t assign_threads 451 ); 452 453 /* Routine task_get_assignment */ 454 #ifdef mig_external 455 mig_external 456 #else 457 extern 458 #endif /* mig_external */ 459 kern_return_t task_get_assignment 460 ( 461 task_t task, 462 processor_set_name_t *assigned_set 463 ); 464 465 /* Routine task_set_policy */ 466 #ifdef mig_external 467 mig_external 468 #else 469 extern 470 #endif /* mig_external */ 471 kern_return_t task_set_policy 472 ( 473 task_t task, 474 processor_set_t pset, 475 policy_t policy, 476 policy_base_t base, 477 mach_msg_type_number_t baseCnt, 478 policy_limit_t limit, 479 mach_msg_type_number_t limitCnt, 480 boolean_t change 481 ); 482 483 /* Routine task_get_state */ 484 #ifdef mig_external 485 mig_external 486 #else 487 extern 488 #endif /* mig_external */ 489 kern_return_t task_get_state 490 ( 491 task_t task, 492 thread_state_flavor_t flavor, 493 thread_state_t old_state, 494 mach_msg_type_number_t *old_stateCnt 495 ); 496 497 /* Routine task_set_state */ 498 #ifdef mig_external 499 mig_external 500 #else 501 extern 502 #endif /* mig_external */ 503 kern_return_t task_set_state 504 ( 505 task_t task, 506 thread_state_flavor_t flavor, 507 thread_state_t new_state, 508 mach_msg_type_number_t new_stateCnt 509 ); 510 511 __END_DECLS 512 513 /********************** Caution **************************/ 514 /* The following data types should be used to calculate */ 515 /* maximum message sizes only. The actual message may be */ 516 /* smaller, and the position of the arguments within the */ 517 /* message layout may vary from what is presented here. */ 518 /* For example, if any of the arguments are variable- */ 519 /* sized, and less than the maximum is sent, the data */ 520 /* will be packed tight in the actual message to reduce */ 521 /* the presence of holes. */ 522 /********************** Caution **************************/ 523 524 /* typedefs for all requests */ 525 526 #ifndef __Request__task_subsystem__defined 527 #define __Request__task_subsystem__defined 528 529 #ifdef __MigPackStructs 530 #pragma pack(4) 531 #endif 532 typedef struct { 533 mach_msg_header_t Head; 534 /* start of the kernel processed data */ 535 mach_msg_body_t msgh_body; 536 mach_msg_ool_ports_descriptor_t ledgers; 537 /* end of the kernel processed data */ 538 NDR_record_t NDR; 539 mach_msg_type_number_t ledgersCnt; 540 boolean_t inherit_memory; 541 } __Request__task_create_t; 542 #ifdef __MigPackStructs 543 #pragma pack() 544 #endif 545 546 #ifdef __MigPackStructs 547 #pragma pack(4) 548 #endif 549 typedef struct { 550 mach_msg_header_t Head; 551 } __Request__task_terminate_t; 552 #ifdef __MigPackStructs 553 #pragma pack() 554 #endif 555 556 #ifdef __MigPackStructs 557 #pragma pack(4) 558 #endif 559 typedef struct { 560 mach_msg_header_t Head; 561 } __Request__task_threads_t; 562 #ifdef __MigPackStructs 563 #pragma pack() 564 #endif 565 566 #ifdef __MigPackStructs 567 #pragma pack(4) 568 #endif 569 typedef struct { 570 mach_msg_header_t Head; 571 /* start of the kernel processed data */ 572 mach_msg_body_t msgh_body; 573 mach_msg_ool_ports_descriptor_t init_port_set; 574 /* end of the kernel processed data */ 575 NDR_record_t NDR; 576 mach_msg_type_number_t init_port_setCnt; 577 } __Request__mach_ports_register_t; 578 #ifdef __MigPackStructs 579 #pragma pack() 580 #endif 581 582 #ifdef __MigPackStructs 583 #pragma pack(4) 584 #endif 585 typedef struct { 586 mach_msg_header_t Head; 587 } __Request__mach_ports_lookup_t; 588 #ifdef __MigPackStructs 589 #pragma pack() 590 #endif 591 592 #ifdef __MigPackStructs 593 #pragma pack(4) 594 #endif 595 typedef struct { 596 mach_msg_header_t Head; 597 NDR_record_t NDR; 598 task_flavor_t flavor; 599 mach_msg_type_number_t task_info_outCnt; 600 } __Request__task_info_t; 601 #ifdef __MigPackStructs 602 #pragma pack() 603 #endif 604 605 #ifdef __MigPackStructs 606 #pragma pack(4) 607 #endif 608 typedef struct { 609 mach_msg_header_t Head; 610 NDR_record_t NDR; 611 task_flavor_t flavor; 612 mach_msg_type_number_t task_info_inCnt; 613 integer_t task_info_in[10]; 614 } __Request__task_set_info_t; 615 #ifdef __MigPackStructs 616 #pragma pack() 617 #endif 618 619 #ifdef __MigPackStructs 620 #pragma pack(4) 621 #endif 622 typedef struct { 623 mach_msg_header_t Head; 624 } __Request__task_suspend_t; 625 #ifdef __MigPackStructs 626 #pragma pack() 627 #endif 628 629 #ifdef __MigPackStructs 630 #pragma pack(4) 631 #endif 632 typedef struct { 633 mach_msg_header_t Head; 634 } __Request__task_resume_t; 635 #ifdef __MigPackStructs 636 #pragma pack() 637 #endif 638 639 #ifdef __MigPackStructs 640 #pragma pack(4) 641 #endif 642 typedef struct { 643 mach_msg_header_t Head; 644 NDR_record_t NDR; 645 int which_port; 646 } __Request__task_get_special_port_t; 647 #ifdef __MigPackStructs 648 #pragma pack() 649 #endif 650 651 #ifdef __MigPackStructs 652 #pragma pack(4) 653 #endif 654 typedef struct { 655 mach_msg_header_t Head; 656 /* start of the kernel processed data */ 657 mach_msg_body_t msgh_body; 658 mach_msg_port_descriptor_t special_port; 659 /* end of the kernel processed data */ 660 NDR_record_t NDR; 661 int which_port; 662 } __Request__task_set_special_port_t; 663 #ifdef __MigPackStructs 664 #pragma pack() 665 #endif 666 667 #ifdef __MigPackStructs 668 #pragma pack(4) 669 #endif 670 typedef struct { 671 mach_msg_header_t Head; 672 } __Request__thread_create_t; 673 #ifdef __MigPackStructs 674 #pragma pack() 675 #endif 676 677 #ifdef __MigPackStructs 678 #pragma pack(4) 679 #endif 680 typedef struct { 681 mach_msg_header_t Head; 682 NDR_record_t NDR; 683 thread_state_flavor_t flavor; 684 mach_msg_type_number_t new_stateCnt; 685 natural_t new_state[144]; 686 } __Request__thread_create_running_t; 687 #ifdef __MigPackStructs 688 #pragma pack() 689 #endif 690 691 #ifdef __MigPackStructs 692 #pragma pack(4) 693 #endif 694 typedef struct { 695 mach_msg_header_t Head; 696 /* start of the kernel processed data */ 697 mach_msg_body_t msgh_body; 698 mach_msg_port_descriptor_t new_port; 699 /* end of the kernel processed data */ 700 NDR_record_t NDR; 701 exception_mask_t exception_mask; 702 exception_behavior_t behavior; 703 thread_state_flavor_t new_flavor; 704 } __Request__task_set_exception_ports_t; 705 #ifdef __MigPackStructs 706 #pragma pack() 707 #endif 708 709 #ifdef __MigPackStructs 710 #pragma pack(4) 711 #endif 712 typedef struct { 713 mach_msg_header_t Head; 714 NDR_record_t NDR; 715 exception_mask_t exception_mask; 716 } __Request__task_get_exception_ports_t; 717 #ifdef __MigPackStructs 718 #pragma pack() 719 #endif 720 721 #ifdef __MigPackStructs 722 #pragma pack(4) 723 #endif 724 typedef struct { 725 mach_msg_header_t Head; 726 /* start of the kernel processed data */ 727 mach_msg_body_t msgh_body; 728 mach_msg_port_descriptor_t new_port; 729 /* end of the kernel processed data */ 730 NDR_record_t NDR; 731 exception_mask_t exception_mask; 732 exception_behavior_t behavior; 733 thread_state_flavor_t new_flavor; 734 } __Request__task_swap_exception_ports_t; 735 #ifdef __MigPackStructs 736 #pragma pack() 737 #endif 738 739 #ifdef __MigPackStructs 740 #pragma pack(4) 741 #endif 742 typedef struct { 743 mach_msg_header_t Head; 744 NDR_record_t NDR; 745 int n_ulocks; 746 int policy; 747 } __Request__lock_set_create_t; 748 #ifdef __MigPackStructs 749 #pragma pack() 750 #endif 751 752 #ifdef __MigPackStructs 753 #pragma pack(4) 754 #endif 755 typedef struct { 756 mach_msg_header_t Head; 757 /* start of the kernel processed data */ 758 mach_msg_body_t msgh_body; 759 mach_msg_port_descriptor_t lock_set; 760 /* end of the kernel processed data */ 761 } __Request__lock_set_destroy_t; 762 #ifdef __MigPackStructs 763 #pragma pack() 764 #endif 765 766 #ifdef __MigPackStructs 767 #pragma pack(4) 768 #endif 769 typedef struct { 770 mach_msg_header_t Head; 771 NDR_record_t NDR; 772 int policy; 773 int value; 774 } __Request__semaphore_create_t; 775 #ifdef __MigPackStructs 776 #pragma pack() 777 #endif 778 779 #ifdef __MigPackStructs 780 #pragma pack(4) 781 #endif 782 typedef struct { 783 mach_msg_header_t Head; 784 /* start of the kernel processed data */ 785 mach_msg_body_t msgh_body; 786 mach_msg_port_descriptor_t semaphore; 787 /* end of the kernel processed data */ 788 } __Request__semaphore_destroy_t; 789 #ifdef __MigPackStructs 790 #pragma pack() 791 #endif 792 793 #ifdef __MigPackStructs 794 #pragma pack(4) 795 #endif 796 typedef struct { 797 mach_msg_header_t Head; 798 NDR_record_t NDR; 799 task_policy_flavor_t flavor; 800 mach_msg_type_number_t policy_infoCnt; 801 integer_t policy_info[16]; 802 } __Request__task_policy_set_t; 803 #ifdef __MigPackStructs 804 #pragma pack() 805 #endif 806 807 #ifdef __MigPackStructs 808 #pragma pack(4) 809 #endif 810 typedef struct { 811 mach_msg_header_t Head; 812 NDR_record_t NDR; 813 task_policy_flavor_t flavor; 814 mach_msg_type_number_t policy_infoCnt; 815 boolean_t get_default; 816 } __Request__task_policy_get_t; 817 #ifdef __MigPackStructs 818 #pragma pack() 819 #endif 820 821 #ifdef __MigPackStructs 822 #pragma pack(4) 823 #endif 824 typedef struct { 825 mach_msg_header_t Head; 826 /* start of the kernel processed data */ 827 mach_msg_body_t msgh_body; 828 mach_msg_port_descriptor_t reply; 829 /* end of the kernel processed data */ 830 } __Request__task_sample_t; 831 #ifdef __MigPackStructs 832 #pragma pack() 833 #endif 834 835 #ifdef __MigPackStructs 836 #pragma pack(4) 837 #endif 838 typedef struct { 839 mach_msg_header_t Head; 840 NDR_record_t NDR; 841 policy_t policy; 842 mach_msg_type_number_t baseCnt; 843 integer_t base[5]; 844 boolean_t set_limit; 845 boolean_t change; 846 } __Request__task_policy_t; 847 #ifdef __MigPackStructs 848 #pragma pack() 849 #endif 850 851 #ifdef __MigPackStructs 852 #pragma pack(4) 853 #endif 854 typedef struct { 855 mach_msg_header_t Head; 856 NDR_record_t NDR; 857 vm_address_t routine_entry_pt; 858 int routine_number; 859 } __Request__task_set_emulation_t; 860 #ifdef __MigPackStructs 861 #pragma pack() 862 #endif 863 864 #ifdef __MigPackStructs 865 #pragma pack(4) 866 #endif 867 typedef struct { 868 mach_msg_header_t Head; 869 } __Request__task_get_emulation_vector_t; 870 #ifdef __MigPackStructs 871 #pragma pack() 872 #endif 873 874 #ifdef __MigPackStructs 875 #pragma pack(4) 876 #endif 877 typedef struct { 878 mach_msg_header_t Head; 879 /* start of the kernel processed data */ 880 mach_msg_body_t msgh_body; 881 mach_msg_ool_descriptor_t emulation_vector; 882 /* end of the kernel processed data */ 883 NDR_record_t NDR; 884 int vector_start; 885 mach_msg_type_number_t emulation_vectorCnt; 886 } __Request__task_set_emulation_vector_t; 887 #ifdef __MigPackStructs 888 #pragma pack() 889 #endif 890 891 #ifdef __MigPackStructs 892 #pragma pack(4) 893 #endif 894 typedef struct { 895 mach_msg_header_t Head; 896 NDR_record_t NDR; 897 vm_address_t basepc; 898 vm_address_t boundspc; 899 } __Request__task_set_ras_pc_t; 900 #ifdef __MigPackStructs 901 #pragma pack() 902 #endif 903 904 #ifdef __MigPackStructs 905 #pragma pack(4) 906 #endif 907 typedef struct { 908 mach_msg_header_t Head; 909 /* start of the kernel processed data */ 910 mach_msg_body_t msgh_body; 911 mach_msg_port_descriptor_t new_set; 912 /* end of the kernel processed data */ 913 NDR_record_t NDR; 914 boolean_t assign_threads; 915 } __Request__task_assign_t; 916 #ifdef __MigPackStructs 917 #pragma pack() 918 #endif 919 920 #ifdef __MigPackStructs 921 #pragma pack(4) 922 #endif 923 typedef struct { 924 mach_msg_header_t Head; 925 NDR_record_t NDR; 926 boolean_t assign_threads; 927 } __Request__task_assign_default_t; 928 #ifdef __MigPackStructs 929 #pragma pack() 930 #endif 931 932 #ifdef __MigPackStructs 933 #pragma pack(4) 934 #endif 935 typedef struct { 936 mach_msg_header_t Head; 937 } __Request__task_get_assignment_t; 938 #ifdef __MigPackStructs 939 #pragma pack() 940 #endif 941 942 #ifdef __MigPackStructs 943 #pragma pack(4) 944 #endif 945 typedef struct { 946 mach_msg_header_t Head; 947 /* start of the kernel processed data */ 948 mach_msg_body_t msgh_body; 949 mach_msg_port_descriptor_t pset; 950 /* end of the kernel processed data */ 951 NDR_record_t NDR; 952 policy_t policy; 953 mach_msg_type_number_t baseCnt; 954 integer_t base[5]; 955 mach_msg_type_number_t limitCnt; 956 integer_t limit[1]; 957 boolean_t change; 958 } __Request__task_set_policy_t; 959 #ifdef __MigPackStructs 960 #pragma pack() 961 #endif 962 963 #ifdef __MigPackStructs 964 #pragma pack(4) 965 #endif 966 typedef struct { 967 mach_msg_header_t Head; 968 NDR_record_t NDR; 969 thread_state_flavor_t flavor; 970 mach_msg_type_number_t old_stateCnt; 971 } __Request__task_get_state_t; 972 #ifdef __MigPackStructs 973 #pragma pack() 974 #endif 975 976 #ifdef __MigPackStructs 977 #pragma pack(4) 978 #endif 979 typedef struct { 980 mach_msg_header_t Head; 981 NDR_record_t NDR; 982 thread_state_flavor_t flavor; 983 mach_msg_type_number_t new_stateCnt; 984 natural_t new_state[144]; 985 } __Request__task_set_state_t; 986 #ifdef __MigPackStructs 987 #pragma pack() 988 #endif 989 #endif /* !__Request__task_subsystem__defined */ 990 991 /* union of all requests */ 992 993 #ifndef __RequestUnion__task_subsystem__defined 994 #define __RequestUnion__task_subsystem__defined 995 union __RequestUnion__task_subsystem { 996 __Request__task_create_t Request_task_create; 997 __Request__task_terminate_t Request_task_terminate; 998 __Request__task_threads_t Request_task_threads; 999 __Request__mach_ports_register_t Request_mach_ports_register; 1000 __Request__mach_ports_lookup_t Request_mach_ports_lookup; 1001 __Request__task_info_t Request_task_info; 1002 __Request__task_set_info_t Request_task_set_info; 1003 __Request__task_suspend_t Request_task_suspend; 1004 __Request__task_resume_t Request_task_resume; 1005 __Request__task_get_special_port_t Request_task_get_special_port; 1006 __Request__task_set_special_port_t Request_task_set_special_port; 1007 __Request__thread_create_t Request_thread_create; 1008 __Request__thread_create_running_t Request_thread_create_running; 1009 __Request__task_set_exception_ports_t Request_task_set_exception_ports; 1010 __Request__task_get_exception_ports_t Request_task_get_exception_ports; 1011 __Request__task_swap_exception_ports_t Request_task_swap_exception_ports; 1012 __Request__lock_set_create_t Request_lock_set_create; 1013 __Request__lock_set_destroy_t Request_lock_set_destroy; 1014 __Request__semaphore_create_t Request_semaphore_create; 1015 __Request__semaphore_destroy_t Request_semaphore_destroy; 1016 __Request__task_policy_set_t Request_task_policy_set; 1017 __Request__task_policy_get_t Request_task_policy_get; 1018 __Request__task_sample_t Request_task_sample; 1019 __Request__task_policy_t Request_task_policy; 1020 __Request__task_set_emulation_t Request_task_set_emulation; 1021 __Request__task_get_emulation_vector_t Request_task_get_emulation_vector; 1022 __Request__task_set_emulation_vector_t Request_task_set_emulation_vector; 1023 __Request__task_set_ras_pc_t Request_task_set_ras_pc; 1024 __Request__task_assign_t Request_task_assign; 1025 __Request__task_assign_default_t Request_task_assign_default; 1026 __Request__task_get_assignment_t Request_task_get_assignment; 1027 __Request__task_set_policy_t Request_task_set_policy; 1028 __Request__task_get_state_t Request_task_get_state; 1029 __Request__task_set_state_t Request_task_set_state; 1030 }; 1031 #endif /* !__RequestUnion__task_subsystem__defined */ 1032 /* typedefs for all replies */ 1033 1034 #ifndef __Reply__task_subsystem__defined 1035 #define __Reply__task_subsystem__defined 1036 1037 #ifdef __MigPackStructs 1038 #pragma pack(4) 1039 #endif 1040 typedef struct { 1041 mach_msg_header_t Head; 1042 /* start of the kernel processed data */ 1043 mach_msg_body_t msgh_body; 1044 mach_msg_port_descriptor_t child_task; 1045 /* end of the kernel processed data */ 1046 } __Reply__task_create_t; 1047 #ifdef __MigPackStructs 1048 #pragma pack() 1049 #endif 1050 1051 #ifdef __MigPackStructs 1052 #pragma pack(4) 1053 #endif 1054 typedef struct { 1055 mach_msg_header_t Head; 1056 NDR_record_t NDR; 1057 kern_return_t RetCode; 1058 } __Reply__task_terminate_t; 1059 #ifdef __MigPackStructs 1060 #pragma pack() 1061 #endif 1062 1063 #ifdef __MigPackStructs 1064 #pragma pack(4) 1065 #endif 1066 typedef struct { 1067 mach_msg_header_t Head; 1068 /* start of the kernel processed data */ 1069 mach_msg_body_t msgh_body; 1070 mach_msg_ool_ports_descriptor_t act_list; 1071 /* end of the kernel processed data */ 1072 NDR_record_t NDR; 1073 mach_msg_type_number_t act_listCnt; 1074 } __Reply__task_threads_t; 1075 #ifdef __MigPackStructs 1076 #pragma pack() 1077 #endif 1078 1079 #ifdef __MigPackStructs 1080 #pragma pack(4) 1081 #endif 1082 typedef struct { 1083 mach_msg_header_t Head; 1084 NDR_record_t NDR; 1085 kern_return_t RetCode; 1086 } __Reply__mach_ports_register_t; 1087 #ifdef __MigPackStructs 1088 #pragma pack() 1089 #endif 1090 1091 #ifdef __MigPackStructs 1092 #pragma pack(4) 1093 #endif 1094 typedef struct { 1095 mach_msg_header_t Head; 1096 /* start of the kernel processed data */ 1097 mach_msg_body_t msgh_body; 1098 mach_msg_ool_ports_descriptor_t init_port_set; 1099 /* end of the kernel processed data */ 1100 NDR_record_t NDR; 1101 mach_msg_type_number_t init_port_setCnt; 1102 } __Reply__mach_ports_lookup_t; 1103 #ifdef __MigPackStructs 1104 #pragma pack() 1105 #endif 1106 1107 #ifdef __MigPackStructs 1108 #pragma pack(4) 1109 #endif 1110 typedef struct { 1111 mach_msg_header_t Head; 1112 NDR_record_t NDR; 1113 kern_return_t RetCode; 1114 mach_msg_type_number_t task_info_outCnt; 1115 integer_t task_info_out[10]; 1116 } __Reply__task_info_t; 1117 #ifdef __MigPackStructs 1118 #pragma pack() 1119 #endif 1120 1121 #ifdef __MigPackStructs 1122 #pragma pack(4) 1123 #endif 1124 typedef struct { 1125 mach_msg_header_t Head; 1126 NDR_record_t NDR; 1127 kern_return_t RetCode; 1128 } __Reply__task_set_info_t; 1129 #ifdef __MigPackStructs 1130 #pragma pack() 1131 #endif 1132 1133 #ifdef __MigPackStructs 1134 #pragma pack(4) 1135 #endif 1136 typedef struct { 1137 mach_msg_header_t Head; 1138 NDR_record_t NDR; 1139 kern_return_t RetCode; 1140 } __Reply__task_suspend_t; 1141 #ifdef __MigPackStructs 1142 #pragma pack() 1143 #endif 1144 1145 #ifdef __MigPackStructs 1146 #pragma pack(4) 1147 #endif 1148 typedef struct { 1149 mach_msg_header_t Head; 1150 NDR_record_t NDR; 1151 kern_return_t RetCode; 1152 } __Reply__task_resume_t; 1153 #ifdef __MigPackStructs 1154 #pragma pack() 1155 #endif 1156 1157 #ifdef __MigPackStructs 1158 #pragma pack(4) 1159 #endif 1160 typedef struct { 1161 mach_msg_header_t Head; 1162 /* start of the kernel processed data */ 1163 mach_msg_body_t msgh_body; 1164 mach_msg_port_descriptor_t special_port; 1165 /* end of the kernel processed data */ 1166 } __Reply__task_get_special_port_t; 1167 #ifdef __MigPackStructs 1168 #pragma pack() 1169 #endif 1170 1171 #ifdef __MigPackStructs 1172 #pragma pack(4) 1173 #endif 1174 typedef struct { 1175 mach_msg_header_t Head; 1176 NDR_record_t NDR; 1177 kern_return_t RetCode; 1178 } __Reply__task_set_special_port_t; 1179 #ifdef __MigPackStructs 1180 #pragma pack() 1181 #endif 1182 1183 #ifdef __MigPackStructs 1184 #pragma pack(4) 1185 #endif 1186 typedef struct { 1187 mach_msg_header_t Head; 1188 /* start of the kernel processed data */ 1189 mach_msg_body_t msgh_body; 1190 mach_msg_port_descriptor_t child_act; 1191 /* end of the kernel processed data */ 1192 } __Reply__thread_create_t; 1193 #ifdef __MigPackStructs 1194 #pragma pack() 1195 #endif 1196 1197 #ifdef __MigPackStructs 1198 #pragma pack(4) 1199 #endif 1200 typedef struct { 1201 mach_msg_header_t Head; 1202 /* start of the kernel processed data */ 1203 mach_msg_body_t msgh_body; 1204 mach_msg_port_descriptor_t child_act; 1205 /* end of the kernel processed data */ 1206 } __Reply__thread_create_running_t; 1207 #ifdef __MigPackStructs 1208 #pragma pack() 1209 #endif 1210 1211 #ifdef __MigPackStructs 1212 #pragma pack(4) 1213 #endif 1214 typedef struct { 1215 mach_msg_header_t Head; 1216 NDR_record_t NDR; 1217 kern_return_t RetCode; 1218 } __Reply__task_set_exception_ports_t; 1219 #ifdef __MigPackStructs 1220 #pragma pack() 1221 #endif 1222 1223 #ifdef __MigPackStructs 1224 #pragma pack(4) 1225 #endif 1226 typedef struct { 1227 mach_msg_header_t Head; 1228 /* start of the kernel processed data */ 1229 mach_msg_body_t msgh_body; 1230 mach_msg_port_descriptor_t old_handlers[32]; 1231 /* end of the kernel processed data */ 1232 NDR_record_t NDR; 1233 mach_msg_type_number_t masksCnt; 1234 exception_mask_t masks[32]; 1235 exception_behavior_t old_behaviors[32]; 1236 thread_state_flavor_t old_flavors[32]; 1237 } __Reply__task_get_exception_ports_t; 1238 #ifdef __MigPackStructs 1239 #pragma pack() 1240 #endif 1241 1242 #ifdef __MigPackStructs 1243 #pragma pack(4) 1244 #endif 1245 typedef struct { 1246 mach_msg_header_t Head; 1247 /* start of the kernel processed data */ 1248 mach_msg_body_t msgh_body; 1249 mach_msg_port_descriptor_t old_handlerss[32]; 1250 /* end of the kernel processed data */ 1251 NDR_record_t NDR; 1252 mach_msg_type_number_t masksCnt; 1253 exception_mask_t masks[32]; 1254 exception_behavior_t old_behaviors[32]; 1255 thread_state_flavor_t old_flavors[32]; 1256 } __Reply__task_swap_exception_ports_t; 1257 #ifdef __MigPackStructs 1258 #pragma pack() 1259 #endif 1260 1261 #ifdef __MigPackStructs 1262 #pragma pack(4) 1263 #endif 1264 typedef struct { 1265 mach_msg_header_t Head; 1266 /* start of the kernel processed data */ 1267 mach_msg_body_t msgh_body; 1268 mach_msg_port_descriptor_t new_lock_set; 1269 /* end of the kernel processed data */ 1270 } __Reply__lock_set_create_t; 1271 #ifdef __MigPackStructs 1272 #pragma pack() 1273 #endif 1274 1275 #ifdef __MigPackStructs 1276 #pragma pack(4) 1277 #endif 1278 typedef struct { 1279 mach_msg_header_t Head; 1280 NDR_record_t NDR; 1281 kern_return_t RetCode; 1282 } __Reply__lock_set_destroy_t; 1283 #ifdef __MigPackStructs 1284 #pragma pack() 1285 #endif 1286 1287 #ifdef __MigPackStructs 1288 #pragma pack(4) 1289 #endif 1290 typedef struct { 1291 mach_msg_header_t Head; 1292 /* start of the kernel processed data */ 1293 mach_msg_body_t msgh_body; 1294 mach_msg_port_descriptor_t semaphore; 1295 /* end of the kernel processed data */ 1296 } __Reply__semaphore_create_t; 1297 #ifdef __MigPackStructs 1298 #pragma pack() 1299 #endif 1300 1301 #ifdef __MigPackStructs 1302 #pragma pack(4) 1303 #endif 1304 typedef struct { 1305 mach_msg_header_t Head; 1306 NDR_record_t NDR; 1307 kern_return_t RetCode; 1308 } __Reply__semaphore_destroy_t; 1309 #ifdef __MigPackStructs 1310 #pragma pack() 1311 #endif 1312 1313 #ifdef __MigPackStructs 1314 #pragma pack(4) 1315 #endif 1316 typedef struct { 1317 mach_msg_header_t Head; 1318 NDR_record_t NDR; 1319 kern_return_t RetCode; 1320 } __Reply__task_policy_set_t; 1321 #ifdef __MigPackStructs 1322 #pragma pack() 1323 #endif 1324 1325 #ifdef __MigPackStructs 1326 #pragma pack(4) 1327 #endif 1328 typedef struct { 1329 mach_msg_header_t Head; 1330 NDR_record_t NDR; 1331 kern_return_t RetCode; 1332 mach_msg_type_number_t policy_infoCnt; 1333 integer_t policy_info[16]; 1334 boolean_t get_default; 1335 } __Reply__task_policy_get_t; 1336 #ifdef __MigPackStructs 1337 #pragma pack() 1338 #endif 1339 1340 #ifdef __MigPackStructs 1341 #pragma pack(4) 1342 #endif 1343 typedef struct { 1344 mach_msg_header_t Head; 1345 NDR_record_t NDR; 1346 kern_return_t RetCode; 1347 } __Reply__task_sample_t; 1348 #ifdef __MigPackStructs 1349 #pragma pack() 1350 #endif 1351 1352 #ifdef __MigPackStructs 1353 #pragma pack(4) 1354 #endif 1355 typedef struct { 1356 mach_msg_header_t Head; 1357 NDR_record_t NDR; 1358 kern_return_t RetCode; 1359 } __Reply__task_policy_t; 1360 #ifdef __MigPackStructs 1361 #pragma pack() 1362 #endif 1363 1364 #ifdef __MigPackStructs 1365 #pragma pack(4) 1366 #endif 1367 typedef struct { 1368 mach_msg_header_t Head; 1369 NDR_record_t NDR; 1370 kern_return_t RetCode; 1371 } __Reply__task_set_emulation_t; 1372 #ifdef __MigPackStructs 1373 #pragma pack() 1374 #endif 1375 1376 #ifdef __MigPackStructs 1377 #pragma pack(4) 1378 #endif 1379 typedef struct { 1380 mach_msg_header_t Head; 1381 /* start of the kernel processed data */ 1382 mach_msg_body_t msgh_body; 1383 mach_msg_ool_descriptor_t emulation_vector; 1384 /* end of the kernel processed data */ 1385 NDR_record_t NDR; 1386 int vector_start; 1387 mach_msg_type_number_t emulation_vectorCnt; 1388 } __Reply__task_get_emulation_vector_t; 1389 #ifdef __MigPackStructs 1390 #pragma pack() 1391 #endif 1392 1393 #ifdef __MigPackStructs 1394 #pragma pack(4) 1395 #endif 1396 typedef struct { 1397 mach_msg_header_t Head; 1398 NDR_record_t NDR; 1399 kern_return_t RetCode; 1400 } __Reply__task_set_emulation_vector_t; 1401 #ifdef __MigPackStructs 1402 #pragma pack() 1403 #endif 1404 1405 #ifdef __MigPackStructs 1406 #pragma pack(4) 1407 #endif 1408 typedef struct { 1409 mach_msg_header_t Head; 1410 NDR_record_t NDR; 1411 kern_return_t RetCode; 1412 } __Reply__task_set_ras_pc_t; 1413 #ifdef __MigPackStructs 1414 #pragma pack() 1415 #endif 1416 1417 #ifdef __MigPackStructs 1418 #pragma pack(4) 1419 #endif 1420 typedef struct { 1421 mach_msg_header_t Head; 1422 NDR_record_t NDR; 1423 kern_return_t RetCode; 1424 } __Reply__task_assign_t; 1425 #ifdef __MigPackStructs 1426 #pragma pack() 1427 #endif 1428 1429 #ifdef __MigPackStructs 1430 #pragma pack(4) 1431 #endif 1432 typedef struct { 1433 mach_msg_header_t Head; 1434 NDR_record_t NDR; 1435 kern_return_t RetCode; 1436 } __Reply__task_assign_default_t; 1437 #ifdef __MigPackStructs 1438 #pragma pack() 1439 #endif 1440 1441 #ifdef __MigPackStructs 1442 #pragma pack(4) 1443 #endif 1444 typedef struct { 1445 mach_msg_header_t Head; 1446 /* start of the kernel processed data */ 1447 mach_msg_body_t msgh_body; 1448 mach_msg_port_descriptor_t assigned_set; 1449 /* end of the kernel processed data */ 1450 } __Reply__task_get_assignment_t; 1451 #ifdef __MigPackStructs 1452 #pragma pack() 1453 #endif 1454 1455 #ifdef __MigPackStructs 1456 #pragma pack(4) 1457 #endif 1458 typedef struct { 1459 mach_msg_header_t Head; 1460 NDR_record_t NDR; 1461 kern_return_t RetCode; 1462 } __Reply__task_set_policy_t; 1463 #ifdef __MigPackStructs 1464 #pragma pack() 1465 #endif 1466 1467 #ifdef __MigPackStructs 1468 #pragma pack(4) 1469 #endif 1470 typedef struct { 1471 mach_msg_header_t Head; 1472 NDR_record_t NDR; 1473 kern_return_t RetCode; 1474 mach_msg_type_number_t old_stateCnt; 1475 natural_t old_state[144]; 1476 } __Reply__task_get_state_t; 1477 #ifdef __MigPackStructs 1478 #pragma pack() 1479 #endif 1480 1481 #ifdef __MigPackStructs 1482 #pragma pack(4) 1483 #endif 1484 typedef struct { 1485 mach_msg_header_t Head; 1486 NDR_record_t NDR; 1487 kern_return_t RetCode; 1488 } __Reply__task_set_state_t; 1489 #ifdef __MigPackStructs 1490 #pragma pack() 1491 #endif 1492 #endif /* !__Reply__task_subsystem__defined */ 1493 1494 /* union of all replies */ 1495 1496 #ifndef __ReplyUnion__task_subsystem__defined 1497 #define __ReplyUnion__task_subsystem__defined 1498 union __ReplyUnion__task_subsystem { 1499 __Reply__task_create_t Reply_task_create; 1500 __Reply__task_terminate_t Reply_task_terminate; 1501 __Reply__task_threads_t Reply_task_threads; 1502 __Reply__mach_ports_register_t Reply_mach_ports_register; 1503 __Reply__mach_ports_lookup_t Reply_mach_ports_lookup; 1504 __Reply__task_info_t Reply_task_info; 1505 __Reply__task_set_info_t Reply_task_set_info; 1506 __Reply__task_suspend_t Reply_task_suspend; 1507 __Reply__task_resume_t Reply_task_resume; 1508 __Reply__task_get_special_port_t Reply_task_get_special_port; 1509 __Reply__task_set_special_port_t Reply_task_set_special_port; 1510 __Reply__thread_create_t Reply_thread_create; 1511 __Reply__thread_create_running_t Reply_thread_create_running; 1512 __Reply__task_set_exception_ports_t Reply_task_set_exception_ports; 1513 __Reply__task_get_exception_ports_t Reply_task_get_exception_ports; 1514 __Reply__task_swap_exception_ports_t Reply_task_swap_exception_ports; 1515 __Reply__lock_set_create_t Reply_lock_set_create; 1516 __Reply__lock_set_destroy_t Reply_lock_set_destroy; 1517 __Reply__semaphore_create_t Reply_semaphore_create; 1518 __Reply__semaphore_destroy_t Reply_semaphore_destroy; 1519 __Reply__task_policy_set_t Reply_task_policy_set; 1520 __Reply__task_policy_get_t Reply_task_policy_get; 1521 __Reply__task_sample_t Reply_task_sample; 1522 __Reply__task_policy_t Reply_task_policy; 1523 __Reply__task_set_emulation_t Reply_task_set_emulation; 1524 __Reply__task_get_emulation_vector_t Reply_task_get_emulation_vector; 1525 __Reply__task_set_emulation_vector_t Reply_task_set_emulation_vector; 1526 __Reply__task_set_ras_pc_t Reply_task_set_ras_pc; 1527 __Reply__task_assign_t Reply_task_assign; 1528 __Reply__task_assign_default_t Reply_task_assign_default; 1529 __Reply__task_get_assignment_t Reply_task_get_assignment; 1530 __Reply__task_set_policy_t Reply_task_set_policy; 1531 __Reply__task_get_state_t Reply_task_get_state; 1532 __Reply__task_set_state_t Reply_task_set_state; 1533 }; 1534 #endif /* !__RequestUnion__task_subsystem__defined */ 1535 1536 #ifndef subsystem_to_name_map_task 1537 #define subsystem_to_name_map_task \ 1538 { "task_create", 3400 },\ 1539 { "task_terminate", 3401 },\ 1540 { "task_threads", 3402 },\ 1541 { "mach_ports_register", 3403 },\ 1542 { "mach_ports_lookup", 3404 },\ 1543 { "task_info", 3405 },\ 1544 { "task_set_info", 3406 },\ 1545 { "task_suspend", 3407 },\ 1546 { "task_resume", 3408 },\ 1547 { "task_get_special_port", 3409 },\ 1548 { "task_set_special_port", 3410 },\ 1549 { "thread_create", 3411 },\ 1550 { "thread_create_running", 3412 },\ 1551 { "task_set_exception_ports", 3413 },\ 1552 { "task_get_exception_ports", 3414 },\ 1553 { "task_swap_exception_ports", 3415 },\ 1554 { "lock_set_create", 3416 },\ 1555 { "lock_set_destroy", 3417 },\ 1556 { "semaphore_create", 3418 },\ 1557 { "semaphore_destroy", 3419 },\ 1558 { "task_policy_set", 3420 },\ 1559 { "task_policy_get", 3421 },\ 1560 { "task_sample", 3422 },\ 1561 { "task_policy", 3423 },\ 1562 { "task_set_emulation", 3424 },\ 1563 { "task_get_emulation_vector", 3425 },\ 1564 { "task_set_emulation_vector", 3426 },\ 1565 { "task_set_ras_pc", 3427 },\ 1566 { "task_assign", 3429 },\ 1567 { "task_assign_default", 3430 },\ 1568 { "task_get_assignment", 3431 },\ 1569 { "task_set_policy", 3432 },\ 1570 { "task_get_state", 3433 },\ 1571 { "task_set_state", 3434 } 1572 #endif 1573 1574 #ifdef __AfterMigUserHeader 1575 __AfterMigUserHeader 1576 #endif /* __AfterMigUserHeader */ 1577 1578 #endif /* _task_user_ */ 1579