315 memcpy (&from_ptrace, from,
sizeof (from_ptrace));
316 memset (to, 0,
sizeof (*to));
324 to->cpt_si_timerid = from_ptrace.cpt_si_timerid;
325 to->cpt_si_overrun = from_ptrace.cpt_si_overrun;
326 to->cpt_si_ptr = from_ptrace.cpt_si_ptr;
328 else if (to->
si_code == SI_USER)
330 to->cpt_si_pid = from_ptrace.cpt_si_pid;
331 to->cpt_si_uid = from_ptrace.cpt_si_uid;
339 to->cpt_si_addr = from_ptrace.cpt_si_addr;
340 to->cpt_si_lower = from_ptrace.cpt_si_lower;
341 to->cpt_si_upper = from_ptrace.cpt_si_upper;
346 to->cpt_si_pid = from_ptrace.cpt_si_pid;
347 to->cpt_si_uid = from_ptrace.cpt_si_uid;
348 to->cpt_si_ptr = from_ptrace.cpt_si_ptr;
355 to->cpt_si_pid = from_ptrace.cpt_si_pid;
356 to->cpt_si_uid = from_ptrace.cpt_si_uid;
357 to->cpt_si_status = from_ptrace.cpt_si_status;
358 to->cpt_si_utime = from_ptrace.cpt_si_utime;
359 to->cpt_si_stime = from_ptrace.cpt_si_stime;
365 to->cpt_si_addr = from_ptrace.cpt_si_addr;
368 to->cpt_si_band = from_ptrace.cpt_si_band;
369 to->cpt_si_fd = from_ptrace.cpt_si_fd;
372 to->cpt_si_pid = from_ptrace.cpt_si_pid;
373 to->cpt_si_uid = from_ptrace.cpt_si_uid;
374 to->cpt_si_ptr = from_ptrace.cpt_si_ptr;
387 memset (&to_ptrace, 0,
sizeof (to_ptrace));
393 if (to_ptrace.
si_code == SI_TIMER)
395 to_ptrace.cpt_si_timerid = from->cpt_si_timerid;
396 to_ptrace.cpt_si_overrun = from->cpt_si_overrun;
397 to_ptrace.cpt_si_ptr = from->cpt_si_ptr;
399 else if (to_ptrace.
si_code == SI_USER)
401 to_ptrace.cpt_si_pid = from->cpt_si_pid;
402 to_ptrace.cpt_si_uid = from->cpt_si_uid;
406 to_ptrace.cpt_si_pid = from->cpt_si_pid;
407 to_ptrace.cpt_si_uid = from->cpt_si_uid;
408 to_ptrace.cpt_si_ptr = from->cpt_si_ptr;
415 to_ptrace.cpt_si_pid = from->cpt_si_pid;
416 to_ptrace.cpt_si_uid = from->cpt_si_uid;
417 to_ptrace.cpt_si_status = from->cpt_si_status;
418 to_ptrace.cpt_si_utime = from->cpt_si_utime;
419 to_ptrace.cpt_si_stime = from->cpt_si_stime;
425 to_ptrace.cpt_si_addr = from->cpt_si_addr;
426 to_ptrace.cpt_si_addr_lsb = from->cpt_si_addr_lsb;
429 to_ptrace.cpt_si_band = from->cpt_si_band;
430 to_ptrace.cpt_si_fd = from->cpt_si_fd;
433 to_ptrace.cpt_si_pid = from->cpt_si_pid;
434 to_ptrace.cpt_si_uid = from->cpt_si_uid;
435 to_ptrace.cpt_si_ptr = from->cpt_si_ptr;
439 memcpy (to, &to_ptrace,
sizeof (to_ptrace));
446 const siginfo_t *from)
450 memcpy (&from_ptrace, from,
sizeof (from_ptrace));
451 memset (to, 0,
sizeof (*to));
453 to->si_signo = from_ptrace.
si_signo;
454 to->si_errno = from_ptrace.
si_errno;
455 to->si_code = from_ptrace.
si_code;
457 if (to->si_code == SI_TIMER)
459 to->cpt_si_timerid = from_ptrace.cpt_si_timerid;
460 to->cpt_si_overrun = from_ptrace.cpt_si_overrun;
461 to->cpt_si_ptr = from_ptrace.cpt_si_ptr;
463 else if (to->si_code == SI_USER)
465 to->cpt_si_pid = from_ptrace.cpt_si_pid;
466 to->cpt_si_uid = from_ptrace.cpt_si_uid;
468 else if (to->si_code < 0)
470 to->cpt_si_pid = from_ptrace.cpt_si_pid;
471 to->cpt_si_uid = from_ptrace.cpt_si_uid;
472 to->cpt_si_ptr = from_ptrace.cpt_si_ptr;
476 switch (to->si_signo)
479 to->cpt_si_pid = from_ptrace.cpt_si_pid;
480 to->cpt_si_uid = from_ptrace.cpt_si_uid;
481 to->cpt_si_status = from_ptrace.cpt_si_status;
482 memcpy (&to->cpt_si_utime, &from_ptrace.cpt_si_utime,
483 sizeof (to->cpt_si_utime));
484 memcpy (&to->cpt_si_stime, &from_ptrace.cpt_si_stime,
485 sizeof (to->cpt_si_stime));
491 to->cpt_si_addr = from_ptrace.cpt_si_addr;
494 to->cpt_si_band = from_ptrace.cpt_si_band;
495 to->cpt_si_fd = from_ptrace.cpt_si_fd;
498 to->cpt_si_pid = from_ptrace.cpt_si_pid;
499 to->cpt_si_uid = from_ptrace.cpt_si_uid;
500 to->cpt_si_ptr = from_ptrace.cpt_si_ptr;
512 const compat_x32_siginfo_t *from)
516 memset (&to_ptrace, 0,
sizeof (to_ptrace));
517 to_ptrace.
si_signo = from->si_signo;
518 to_ptrace.
si_errno = from->si_errno;
519 to_ptrace.
si_code = from->si_code;
521 if (to_ptrace.
si_code == SI_TIMER)
523 to_ptrace.cpt_si_timerid = from->cpt_si_timerid;
524 to_ptrace.cpt_si_overrun = from->cpt_si_overrun;
525 to_ptrace.cpt_si_ptr = from->cpt_si_ptr;
527 else if (to_ptrace.
si_code == SI_USER)
529 to_ptrace.cpt_si_pid = from->cpt_si_pid;
530 to_ptrace.cpt_si_uid = from->cpt_si_uid;
534 to_ptrace.cpt_si_pid = from->cpt_si_pid;
535 to_ptrace.cpt_si_uid = from->cpt_si_uid;
536 to_ptrace.cpt_si_ptr = from->cpt_si_ptr;
543 to_ptrace.cpt_si_pid = from->cpt_si_pid;
544 to_ptrace.cpt_si_uid = from->cpt_si_uid;
545 to_ptrace.cpt_si_status = from->cpt_si_status;
546 memcpy (&to_ptrace.cpt_si_utime, &from->cpt_si_utime,
547 sizeof (to_ptrace.cpt_si_utime));
548 memcpy (&to_ptrace.cpt_si_stime, &from->cpt_si_stime,
549 sizeof (to_ptrace.cpt_si_stime));
555 to_ptrace.cpt_si_addr = from->cpt_si_addr;
558 to_ptrace.cpt_si_band = from->cpt_si_band;
559 to_ptrace.cpt_si_fd = from->cpt_si_fd;
562 to_ptrace.cpt_si_pid = from->cpt_si_pid;
563 to_ptrace.cpt_si_uid = from->cpt_si_uid;
564 to_ptrace.cpt_si_ptr = from->cpt_si_ptr;
568 memcpy (to, &to_ptrace,
sizeof (to_ptrace));