PERFORCE change 96814 for review
Kip Macy
kmacy at FreeBSD.org
Mon May 8 05:13:41 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=96814
Change 96814 by kmacy at kmacy_storage:sun4v_rwbuf on 2006/05/08 05:13:01
make sendsig more consistent with sparc64
Affected files ...
.. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#22 edit
Differences ...
==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#22 (text+ko) ====
@@ -228,8 +228,6 @@
#ifdef notyet
cpu_identify(rdpr(ver), tick_freq, PCPU_GET(cpuid));
-#else
- printf("\tUltraSparc T1\n");
#endif
}
@@ -336,6 +334,9 @@
cninit();
tick_init(clock);
+ printf("cpu0: UltraSparc T1 Processor (%d.%02d MHz CPU)\n",
+ (clock + 4999) / 1000000, ((clock + 4999) / 10000) % 100);
+
/*
* Panic is there is no metadata. Most likely the kernel was booted
* directly, instead of through loader(8).
@@ -521,12 +522,24 @@
/* Build the argument list for the signal handler. */
tf->tf_out[0] = sig;
- tf->tf_out[1] = (register_t)&sfp->sf_si;
tf->tf_out[2] = (register_t)&sfp->sf_uc;
tf->tf_out[4] = (register_t)catcher;
+
/* Fill siginfo structure. */
sf.sf_si = ksi->ksi_info;
sf.sf_si.si_addr = (void *)tf->tf_tpc;
+ if (SIGISMEMBER(psp->ps_siginfo, sig)) {
+ /* Signal handler installed with SA_SIGINFO. */
+ tf->tf_out[1] = (register_t)&sfp->sf_si;
+
+ /* Fill in POSIX parts. */
+ sf.sf_si = ksi->ksi_info;
+ sf.sf_si.si_signo = sig; /* maybe a translated signal */
+ } else {
+ /* Old FreeBSD-style arguments. */
+ tf->tf_out[1] = ksi->ksi_code;
+ tf->tf_out[3] = (register_t)ksi->ksi_addr;
+ }
/* Copy the sigframe out to the user's stack. */
if (rwindow_save(td) != 0 || copyout(&sf, sfp, sizeof(*sfp)) != 0 ||
More information about the p4-projects
mailing list