kern_procctl.c (b94088633898fdee8948787525d080b24aa57154) | kern_procctl.c (1302eea7bba029a3b4e71f2d9cebae9337f4b054) |
---|---|
1/*- 2 * Copyright (c) 2014 John Baldwin 3 * Copyright (c) 2014, 2016 The FreeBSD Foundation 4 * 5 * Portions of this software were developed by Konstantin Belousov 6 * under sponsorship from the FreeBSD Foundation. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 453 unchanged lines hidden (view full) --- 462 if (error != 0) 463 return (error); 464 data = &x.rk; 465 break; 466 case PROC_TRACE_STATUS: 467 case PROC_TRAPCAP_STATUS: 468 data = &flags; 469 break; | 1/*- 2 * Copyright (c) 2014 John Baldwin 3 * Copyright (c) 2014, 2016 The FreeBSD Foundation 4 * 5 * Portions of this software were developed by Konstantin Belousov 6 * under sponsorship from the FreeBSD Foundation. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 453 unchanged lines hidden (view full) --- 462 if (error != 0) 463 return (error); 464 data = &x.rk; 465 break; 466 case PROC_TRACE_STATUS: 467 case PROC_TRAPCAP_STATUS: 468 data = &flags; 469 break; |
470 case PROC_PDEATHSIG_SET: | 470 case PROC_PDEATHSIG_CTL: |
471 error = copyin(uap->data, &signum, sizeof(signum)); 472 if (error != 0) 473 return (error); 474 data = &signum; 475 break; | 471 error = copyin(uap->data, &signum, sizeof(signum)); 472 if (error != 0) 473 return (error); 474 data = &signum; 475 break; |
476 case PROC_PDEATHSIG_GET: | 476 case PROC_PDEATHSIG_STATUS: |
477 data = &signum; 478 break; 479 default: 480 return (EINVAL); 481 } 482 error = kern_procctl(td, uap->idtype, uap->id, uap->com, data); 483 switch (uap->com) { 484 case PROC_REAP_STATUS: --- 5 unchanged lines hidden (view full) --- 490 if (error == 0) 491 error = error1; 492 break; 493 case PROC_TRACE_STATUS: 494 case PROC_TRAPCAP_STATUS: 495 if (error == 0) 496 error = copyout(&flags, uap->data, sizeof(flags)); 497 break; | 477 data = &signum; 478 break; 479 default: 480 return (EINVAL); 481 } 482 error = kern_procctl(td, uap->idtype, uap->id, uap->com, data); 483 switch (uap->com) { 484 case PROC_REAP_STATUS: --- 5 unchanged lines hidden (view full) --- 490 if (error == 0) 491 error = error1; 492 break; 493 case PROC_TRACE_STATUS: 494 case PROC_TRAPCAP_STATUS: 495 if (error == 0) 496 error = copyout(&flags, uap->data, sizeof(flags)); 497 break; |
498 case PROC_PDEATHSIG_GET: | 498 case PROC_PDEATHSIG_STATUS: |
499 if (error == 0) 500 error = copyout(&signum, uap->data, sizeof(signum)); 501 break; 502 } 503 return (error); 504} 505 506static int --- 39 unchanged lines hidden (view full) --- 546 switch (com) { 547 case PROC_REAP_ACQUIRE: 548 case PROC_REAP_RELEASE: 549 case PROC_REAP_STATUS: 550 case PROC_REAP_GETPIDS: 551 case PROC_REAP_KILL: 552 case PROC_TRACE_STATUS: 553 case PROC_TRAPCAP_STATUS: | 499 if (error == 0) 500 error = copyout(&signum, uap->data, sizeof(signum)); 501 break; 502 } 503 return (error); 504} 505 506static int --- 39 unchanged lines hidden (view full) --- 546 switch (com) { 547 case PROC_REAP_ACQUIRE: 548 case PROC_REAP_RELEASE: 549 case PROC_REAP_STATUS: 550 case PROC_REAP_GETPIDS: 551 case PROC_REAP_KILL: 552 case PROC_TRACE_STATUS: 553 case PROC_TRAPCAP_STATUS: |
554 case PROC_PDEATHSIG_SET: 555 case PROC_PDEATHSIG_GET: | 554 case PROC_PDEATHSIG_CTL: 555 case PROC_PDEATHSIG_STATUS: |
556 if (idtype != P_PID) 557 return (EINVAL); 558 } 559 560 switch (com) { | 556 if (idtype != P_PID) 557 return (EINVAL); 558 } 559 560 switch (com) { |
561 case PROC_PDEATHSIG_SET: | 561 case PROC_PDEATHSIG_CTL: |
562 signum = *(int *)data; 563 p = td->td_proc; 564 if ((id != 0 && id != p->p_pid) || 565 (signum != 0 && !_SIG_VALID(signum))) 566 return (EINVAL); 567 PROC_LOCK(p); 568 p->p_pdeathsig = signum; 569 PROC_UNLOCK(p); 570 return (0); | 562 signum = *(int *)data; 563 p = td->td_proc; 564 if ((id != 0 && id != p->p_pid) || 565 (signum != 0 && !_SIG_VALID(signum))) 566 return (EINVAL); 567 PROC_LOCK(p); 568 p->p_pdeathsig = signum; 569 PROC_UNLOCK(p); 570 return (0); |
571 case PROC_PDEATHSIG_GET: | 571 case PROC_PDEATHSIG_STATUS: |
572 p = td->td_proc; 573 if (id != 0 && id != p->p_pid) 574 return (EINVAL); 575 PROC_LOCK(p); 576 *(int *)data = p->p_pdeathsig; 577 PROC_UNLOCK(p); 578 return (0); 579 } --- 83 unchanged lines hidden --- | 572 p = td->td_proc; 573 if (id != 0 && id != p->p_pid) 574 return (EINVAL); 575 PROC_LOCK(p); 576 *(int *)data = p->p_pdeathsig; 577 PROC_UNLOCK(p); 578 return (0); 579 } --- 83 unchanged lines hidden --- |