Print this page
XXXX pass in cpu_pause_func via pause_cpus


  53 /*
  54  * S3 stuff
  55  */
  56 
  57 int acpi_rtc_wake = 0x0;                /* wake in N seconds */
  58 
  59 #if 0   /* debug */
  60 static uint8_t  branchbuf[64 * 1024];   /* for the HDT branch trace stuff */
  61 #endif  /* debug */
  62 
  63 extern int boothowto;
  64 
  65 #define BOOTCPU 0       /* cpu 0 is always the boot cpu */
  66 
  67 extern void             kernel_wc_code(void);
  68 extern tod_ops_t        *tod_ops;
  69 extern int flushes_require_xcalls;
  70 extern int tsc_gethrtime_enable;
  71 
  72 extern cpuset_t cpu_ready_set;
  73 extern void *(*cpu_pause_func)(void *);
  74 
  75 
  76 
  77 /*
  78  * This is what we've all been waiting for!
  79  */
  80 int
  81 acpi_enter_sleepstate(s3a_t *s3ap)
  82 {
  83         ACPI_PHYSICAL_ADDRESS   wakephys = s3ap->s3a_wakephys;
  84         caddr_t                 wakevirt = rm_platter_va;
  85         /*LINTED*/
  86         wakecode_t              *wp = (wakecode_t *)wakevirt;
  87         uint_t                  Sx = s3ap->s3a_state;
  88 
  89         PT(PT_SWV);
  90         /* Set waking vector */
  91         if (AcpiSetFirmwareWakingVector(wakephys) != AE_OK) {
  92                 PT(PT_SWV_FAIL);
  93                 PMD(PMD_SX, ("Can't SetFirmwareWakingVector(%lx)\n",
  94                     (long)wakephys))




  53 /*
  54  * S3 stuff
  55  */
  56 
  57 int acpi_rtc_wake = 0x0;                /* wake in N seconds */
  58 
  59 #if 0   /* debug */
  60 static uint8_t  branchbuf[64 * 1024];   /* for the HDT branch trace stuff */
  61 #endif  /* debug */
  62 
  63 extern int boothowto;
  64 
  65 #define BOOTCPU 0       /* cpu 0 is always the boot cpu */
  66 
  67 extern void             kernel_wc_code(void);
  68 extern tod_ops_t        *tod_ops;
  69 extern int flushes_require_xcalls;
  70 extern int tsc_gethrtime_enable;
  71 
  72 extern cpuset_t cpu_ready_set;


  73 
  74 
  75 /*
  76  * This is what we've all been waiting for!
  77  */
  78 int
  79 acpi_enter_sleepstate(s3a_t *s3ap)
  80 {
  81         ACPI_PHYSICAL_ADDRESS   wakephys = s3ap->s3a_wakephys;
  82         caddr_t                 wakevirt = rm_platter_va;
  83         /*LINTED*/
  84         wakecode_t              *wp = (wakecode_t *)wakevirt;
  85         uint_t                  Sx = s3ap->s3a_state;
  86 
  87         PT(PT_SWV);
  88         /* Set waking vector */
  89         if (AcpiSetFirmwareWakingVector(wakephys) != AE_OK) {
  90                 PT(PT_SWV_FAIL);
  91                 PMD(PMD_SX, ("Can't SetFirmwareWakingVector(%lx)\n",
  92                     (long)wakephys))