From 2df1fe9ca32bb227b9158c67f5c00b54c20b10fd Mon Sep 17 00:00:00 2001 From: randyf Date: Sat, 20 Oct 2007 16:00:42 -0700 Subject: PSARC/2005/469 X86 Energy Star compliance PSARC/2006/632 PSMI extension for state save and restore 6330209 nge needs to support DDI_SUSPEND/DDI_RESUME 6381827 Suspend to RAM on x86 6393154 audio810 needs to support DDI_SUSPEND/DDI_RESUME 6397047 fd, fdc needs to support Suspend/Resume 6401974 cannot enter S3 with ohci PME enable set on Tyan 2865 with Sun or Tyan 2.01 BIOS 6422613 memscrubber doesn't re-acquire lock before CALLB_CPR_EXIT 6455736 ata/dadk/cmdk should support DDI_SUSPEND/DDI_RESUME 6511370 CPR on SPARC regression 6586018 TODOP Macros in i86pc/sys/machclock.h not in sun4u/sun4v equivilent (Sparc only) 6610124 It takes more than 3 minutes after printing "pci_pre_resume nv_sata:0" 6617143 powerd/pmconfig emits a different default message for an existing on or off action. --HG-- rename : usr/src/cmd/power/power.conf => usr/src/cmd/power/power.conf.sparc --- usr/src/uts/common/syscall/uadmin.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'usr/src/uts/common/syscall/uadmin.c') diff --git a/usr/src/uts/common/syscall/uadmin.c b/usr/src/uts/common/syscall/uadmin.c index df00b4e9d0..a5f92268f2 100644 --- a/usr/src/uts/common/syscall/uadmin.c +++ b/usr/src/uts/common/syscall/uadmin.c @@ -309,12 +309,15 @@ kadmin(int cmd, int fcn, void *mdep, cred_t *credp) case A_FREEZE: { - /* XXX: declare in some header file */ - extern int cpr(int); + /* + * This is the entrypoint for all suspend/resume actions. + */ + extern int cpr(int, void *); if (modload("misc", "cpr") == -1) return (ENOTSUP); - error = cpr(fcn); + /* Let the CPR module decide what to do with mdep */ + error = cpr(fcn, mdep); break; } @@ -387,7 +390,8 @@ uadmin(int cmd, int fcn, uintptr_t mdep) * a boot string. We pull that in as bootargs, if applicable. */ if (mdep != NULL && - (cmd == A_SHUTDOWN || cmd == A_REBOOT || cmd == A_DUMP)) { + (cmd == A_SHUTDOWN || cmd == A_REBOOT || cmd == A_DUMP || + cmd == A_FREEZE)) { bootargs = kmem_zalloc(BOOTARGS_MAX, KM_SLEEP); if ((error = copyinstr((const char *)mdep, bootargs, BOOTARGS_MAX, &nbytes)) != 0) { -- cgit v1.2.3