Make cron supply valid RFC822 From: and To: headers

2012-11-13 Thread Alexander Hall
Since I switched to SMTPD I noticed a few cron emails being marked as
spam by spamassassin, largely caused by the From: and To: headers not
containing a domain part.

If I read RFC822 correctly, the domain part is not optional, and thus
we should append one, unless MAILTO already specifies one.

Historical reasons from the land of pre-smtp why I'm wrong?
Comments?
OK's?

/Alexander


(Indentation style sucks balls in there. I kept it up.)

Index: do_command.c
===
RCS file: /data/openbsd/cvs/src/usr.sbin/cron/do_command.c,v
retrieving revision 1.36
diff -u -p -r1.36 do_command.c
--- do_command.c22 Aug 2011 19:32:42 -  1.36
+++ do_command.c13 Nov 2012 09:48:53 -
@@ -412,8 +412,13 @@ child_process(entry *e, user *u) {
perror(mailcmd);
(void) _exit(EXIT_FAILURE);
}
-   fprintf(mail, From: root (Cron Daemon)\n);
-   fprintf(mail, To: %s\n, mailto);
+   fprintf(mail, From: root@%s (Cron Daemon)\n,
+   hostname);
+   if (strchr(mailto, '@') == NULL)
+   fprintf(mail, To: %s@%s\n, mailto,
+   hostname);
+   else
+   fprintf(mail, To: %s\n, mailto);
fprintf(mail, Subject: Cron %s@%s %s\n,
usernm, first_word(hostname, .),
e-cmd);



Re: agp(4): agpmmap fix

2012-11-13 Thread Mark Kettenis
 Date: Tue, 13 Nov 2012 11:55:07 +0100
 From: Martin Pieuchot mpieuc...@nolizard.org
 
 After loosing some hairs trying to figure out where I screw up in
 mmaping the AGP aperture, here's a trivial fix.
 
 Diff below corrects the first argument of the agpmmap() function that
 should be a dev_t and not a pointer to the driver's descriptor.

ok kettenis@ if you fix the spaces vs. tab issue.

 Index: agp.c
 ===
 RCS file: /cvs/src/sys/dev/pci/agp.c,v
 retrieving revision 1.34
 diff -u -p -r1.34 agp.c
 --- agp.c 26 Dec 2010 15:41:00 -  1.34
 +++ agp.c 12 Nov 2012 18:20:48 -
 @@ -60,7 +60,7 @@ int agp_generic_free_memory(struct agp_s
  void agp_attach(struct device *, struct device *, void *);
  int  agp_probe(struct device *, void *, void *);
  int  agpbusprint(void *, const char *);
 -paddr_t  agpmmap(void *, off_t, int);
 +paddr_t  agpmmap(dev_t, off_t, int);
  int  agpioctl(dev_t, u_long, caddr_t, int, struct proc *);
  int  agpopen(dev_t, int, int, struct proc *);
  int  agpclose(dev_t, int, int , struct proc *);
 @@ -206,9 +206,12 @@ struct cfdriver agp_cd = {
  };
  
  paddr_t
 -agpmmap(void *v, off_t off, int prot)
 +agpmmap(dev_t dev, off_t off, int prot)
  {
 - struct agp_softc* sc = (struct agp_softc *)v;
 + struct agp_softc *sc = agp_find_device(AGPUNIT(dev));
 +
 +if (sc == NULL || sc-sc_chipc == NULL)
 +return (-1);
  
   if (sc-sc_apaddr) {



agp(4): release unbinded memory

2012-11-13 Thread Martin Pieuchot
While experimenting with the agp(4) interface I found that if you
release the interface (AGPIOC_RELEASE) before closing its file
descriptor you'll end up with allocated but unbinded memory blocks.

This behavior is due to the fact that the agp_release_helper() function
doesn't free the memory associated to each block and this is incoherent
with what it says it does:

/*
 * Clear out the aperture and free any
 * outstanding memory blocks.
 */
 ...

So the diff below correct this by freeing all the memory block when
releasing the interface, this is what happens currently if you close
the file descriptor without releasing the interface.

However it doesn't change the behavior of the interface that looks
busted to me because we don't keep track of who allocated some memory
block and end up unbindind and freeing everything.

Ok?

Index: agp.c
===
RCS file: /cvs/src/sys/dev/pci/agp.c,v
retrieving revision 1.34
diff -u -p -r1.34 agp.c
--- agp.c   26 Dec 2010 15:41:00 -  1.34
+++ agp.c   12 Nov 2012 18:20:48 -
@@ -290,20 +310,13 @@ int
 agpclose(dev_t dev, int flags, int devtype, struct proc *p)
 {
struct agp_softc *sc = agp_find_device(AGPUNIT(dev));
-   struct agp_memory *mem;
 
/*
  * Clear the GATT and force release on last close
  */
-   if (sc-sc_state == AGP_ACQUIRE_USER) {
-   while ((mem = TAILQ_FIRST(sc-sc_memory)) != 0) {
-   if (mem-am_is_bound) {
-   agp_unbind_memory(sc, mem);
-   }
-   agp_free_memory(sc, mem);
-   }
+   if (sc-sc_state == AGP_ACQUIRE_USER)
 agp_release_helper(sc, AGP_ACQUIRE_USER);
-   }
+
 sc-sc_opened = 0;
 
return (0);
@@ -658,25 +671,26 @@ int
 agp_release_helper(void *dev, enum agp_acquire_state state)
 {
struct agp_softc *sc = (struct agp_softc *)dev;
-   struct agp_memory* mem;
+   struct agp_memory *mem, *tmp;
 
if (sc-sc_state == AGP_ACQUIRE_FREE)
return (0);
 
-   if (sc-sc_state != state) 
+   if (sc-sc_state != state)
return (EBUSY);
 
/*
 * Clear out the aperture and free any
 * outstanding memory blocks.
 */
-   TAILQ_FOREACH(mem, sc-sc_memory, am_link) {
+   TAILQ_FOREACH_SAFE(mem, sc-sc_memory, am_link, tmp) {
if (mem-am_is_bound) {
-   printf(agp_release_helper: mem %d is bound\n,
-   mem-am_id);
+   AGP_DPF(mem %d is bound\n, mem-am_id);
agp_unbind_memory(sc, mem);
}
+   agp_free_memory(sc, mem);
}
+
sc-sc_state = AGP_ACQUIRE_FREE;
return (0);
 }



Re: agp(4): release unbinded memory

2012-11-13 Thread Mark Kettenis
 Date: Tue, 13 Nov 2012 12:30:29 +0100
 From: Martin Pieuchot mpieuc...@nolizard.org
 
 While experimenting with the agp(4) interface I found that if you
 release the interface (AGPIOC_RELEASE) before closing its file
 descriptor you'll end up with allocated but unbinded memory blocks.

That behaviour is documented in agp(4).  So if we change it, we should
change the documentation as well.  That said, the documentation also
says that the AGPIOC_RELEASE ioctl doesn't unbind any allocated
memory.  And that doesn't seem to be true.

 This behavior is due to the fact that the agp_release_helper() function
 doesn't free the memory associated to each block and this is incoherent
 with what it says it does:
 
   /*
* Clear out the aperture and free any
* outstanding memory blocks.
*/
...
 
 So the diff below correct this by freeing all the memory block when
 releasing the interface, this is what happens currently if you close
 the file descriptor without releasing the interface.

I;m not sure this is right.  I think the idea here is that an
application could release control to hand things over to drm, and
later reacquire control.  The comment in
xenocara/xserver/hw/xfree86/os-support/bsd/bsd_agp.c:xf86ReleaseGART()
suggests that this behaviour is desired.



Re: Make cron supply valid RFC822 From: and To: headers

2012-11-13 Thread Alexander Hall

On 11/13/12 13:49, Christian Weisgerber wrote:

Alexander Hall alexan...@beard.se wrote:


Since I switched to SMTPD I noticed a few cron emails being marked as
spam by spamassassin, largely caused by the From: and To: headers not
containing a domain part.

If I read RFC822 correctly, the domain part is not optional, and thus
we should append one, unless MAILTO already specifies one.


This looks like a problem in smtpd.  Sendmail and compatible MTAs
have always fully qualified any incomplete addresses.


Ok, no matter how we parse the rfc's, since old sendmail and friends 
rewrites those headers, I guess it's already a de-facto standard, in 
practice forcing us to make smtpd do it too.


In the meantime, would the diff hurt anyone? Or is it just a lousy 
workaround?


/Alexander



Re: Make cron supply valid RFC822 From: and To: headers

2012-11-13 Thread Otto Moerbeek
On Tue, Nov 13, 2012 at 03:14:06PM +0100, Alexander Hall wrote:

 On 11/13/12 13:49, Christian Weisgerber wrote:
 Alexander Hall alexan...@beard.se wrote:
 
 Since I switched to SMTPD I noticed a few cron emails being marked as
 spam by spamassassin, largely caused by the From: and To: headers not
 containing a domain part.
 
 If I read RFC822 correctly, the domain part is not optional, and thus
 we should append one, unless MAILTO already specifies one.
 
 This looks like a problem in smtpd.  Sendmail and compatible MTAs
 have always fully qualified any incomplete addresses.
 
 Ok, no matter how we parse the rfc's, since old sendmail and friends
 rewrites those headers, I guess it's already a de-facto standard, in
 practice forcing us to make smtpd do it too.
 
 In the meantime, would the diff hurt anyone? Or is it just a lousy
 workaround?
 
 /Alexander

I believe sendmail has options to add a specific domain to unqualified
names.  I think you want the sendmail (like) mechanism here, not a
specific one for cron only. 

-Otto



Re: agp(4): release unbinded memory

2012-11-13 Thread Martin Pieuchot
On 13/11/12(Tue) 13:45, Mark Kettenis wrote:
  Date: Tue, 13 Nov 2012 12:30:29 +0100
  From: Martin Pieuchot mpieuc...@nolizard.org
  
  While experimenting with the agp(4) interface I found that if you
  release the interface (AGPIOC_RELEASE) before closing its file
  descriptor you'll end up with allocated but unbinded memory blocks.
 
 That behaviour is documented in agp(4).  So if we change it, we should
 change the documentation as well.  That said, the documentation also
 says that the AGPIOC_RELEASE ioctl doesn't unbind any allocated
 memory.  And that doesn't seem to be true.
 
  This behavior is due to the fact that the agp_release_helper() function
  doesn't free the memory associated to each block and this is incoherent
  with what it says it does:
  
  /*
   * Clear out the aperture and free any
   * outstanding memory blocks.
   */
   ...
  
  So the diff below correct this by freeing all the memory block when
  releasing the interface, this is what happens currently if you close
  the file descriptor without releasing the interface.
 
 I;m not sure this is right.  I think the idea here is that an
 application could release control to hand things over to drm, and
 later reacquire control.  The comment in
 xenocara/xserver/hw/xfree86/os-support/bsd/bsd_agp.c:xf86ReleaseGART()
 suggests that this behaviour is desired.

Fair enough, so here's a diff that removes the chunk of code unbinding
the memory block from the release routine. This makes the code match
what the manual says.

Ok?

Index: agp.c
===
RCS file: /cvs/src/sys/dev/pci/agp.c,v
retrieving revision 1.34
diff -u -p -r1.34 agp.c
--- agp.c   26 Dec 2010 15:41:00 -  1.34
+++ agp.c   13 Nov 2012 13:41:43 -
@@ -658,25 +678,13 @@ int
 agp_release_helper(void *dev, enum agp_acquire_state state)
 {
struct agp_softc *sc = (struct agp_softc *)dev;
-   struct agp_memory* mem;
 
if (sc-sc_state == AGP_ACQUIRE_FREE)
return (0);
 
-   if (sc-sc_state != state) 
+   if (sc-sc_state != state)
return (EBUSY);
 
-   /*
-* Clear out the aperture and free any
-* outstanding memory blocks.
-*/
-   TAILQ_FOREACH(mem, sc-sc_memory, am_link) {
-   if (mem-am_is_bound) {
-   printf(agp_release_helper: mem %d is bound\n,
-   mem-am_id);
-   agp_unbind_memory(sc, mem);
-   }
-   }
sc-sc_state = AGP_ACQUIRE_FREE;
return (0);
 }



Re: agp(4): release unbinded memory

2012-11-13 Thread Mark Kettenis
 Date: Tue, 13 Nov 2012 16:15:59 +0100
 From: Martin Pieuchot mpieuc...@nolizard.org
 
 On 13/11/12(Tue) 13:45, Mark Kettenis wrote:
   Date: Tue, 13 Nov 2012 12:30:29 +0100
   From: Martin Pieuchot mpieuc...@nolizard.org
   
   While experimenting with the agp(4) interface I found that if you
   release the interface (AGPIOC_RELEASE) before closing its file
   descriptor you'll end up with allocated but unbinded memory blocks.
  
  That behaviour is documented in agp(4).  So if we change it, we should
  change the documentation as well.  That said, the documentation also
  says that the AGPIOC_RELEASE ioctl doesn't unbind any allocated
  memory.  And that doesn't seem to be true.
  
   This behavior is due to the fact that the agp_release_helper() function
   doesn't free the memory associated to each block and this is incoherent
   with what it says it does:
   
 /*
  * Clear out the aperture and free any
  * outstanding memory blocks.
  */
  ...
   
   So the diff below correct this by freeing all the memory block when
   releasing the interface, this is what happens currently if you close
   the file descriptor without releasing the interface.
  
  I;m not sure this is right.  I think the idea here is that an
  application could release control to hand things over to drm, and
  later reacquire control.  The comment in
  xenocara/xserver/hw/xfree86/os-support/bsd/bsd_agp.c:xf86ReleaseGART()
  suggests that this behaviour is desired.
 
 Fair enough, so here's a diff that removes the chunk of code unbinding
 the memory block from the release routine. This makes the code match
 what the manual says.
 
 Ok?

Hmm, I think it currently pretty much a bug if a process calls
AGPIOC_RELEASE while it still has stuff bound to the aperture as we
don't restore the bindings when we resume.  So I think we should keep
the printf's and perhaps keep unbinding the memory as well.  I'm not
sure how much damage stale mappings can do during a suspend/resume
cycle.

It seems that the xf86-video-intel driver is the only userland code
that actually uses /dev/agp (through the xserver interfaces).  And
because of the FreeBSD hack I mentioned in my previous mail, I don't
think it actually ever invokes the AGPIOC_RELEASE ioctl after it
starts using the GART.  It's a great bloody mess :(.  But fortunately
that usage goes away as soon as we implement KMS.

 Index: agp.c
 ===
 RCS file: /cvs/src/sys/dev/pci/agp.c,v
 retrieving revision 1.34
 diff -u -p -r1.34 agp.c
 --- agp.c 26 Dec 2010 15:41:00 -  1.34
 +++ agp.c 13 Nov 2012 13:41:43 -
 @@ -658,25 +678,13 @@ int
  agp_release_helper(void *dev, enum agp_acquire_state state)
  {
   struct agp_softc *sc = (struct agp_softc *)dev;
 - struct agp_memory* mem;
  
   if (sc-sc_state == AGP_ACQUIRE_FREE)
   return (0);
  
 - if (sc-sc_state != state) 
 + if (sc-sc_state != state)
   return (EBUSY);
  
 - /*
 -  * Clear out the aperture and free any
 -  * outstanding memory blocks.
 -  */
 - TAILQ_FOREACH(mem, sc-sc_memory, am_link) {
 - if (mem-am_is_bound) {
 - printf(agp_release_helper: mem %d is bound\n,
 - mem-am_id);
 - agp_unbind_memory(sc, mem);
 - }
 - }
   sc-sc_state = AGP_ACQUIRE_FREE;
   return (0);
  }



usr.bin/mail: use F_OK instead of 0 in access()

2012-11-13 Thread Gleydson Soares
hi,

use F_OK macro instead of 0 in access() when cheching by file existence. make 
de code easier to read. no funcional change.

OK ?
Index: cmd2.c
===
RCS file: /cvs/src/usr.bin/mail/cmd2.c,v
retrieving revision 1.18
diff -u -p -r1.18 cmd2.c
--- cmd2.c  6 Apr 2011 11:36:26 -   1.18
+++ cmd2.c  13 Nov 2012 18:54:35 -
@@ -166,7 +166,7 @@ save1(char *str, int mark, char *cmd, st
return(1);
printf(\%s\ , file);
fflush(stdout);
-   if (access(file, 0) = 0)
+   if (access(file, F_OK) = 0)
disp = [Appended];
else
disp = [New file];



Re: Major dhclient(8) changes - no more dhclient-script

2012-11-13 Thread sven falempin
2012/11/9 Kenneth R Westerback kwesterb...@rogers.com

 Those of you following -current or running very recent snaps may have
 noticed a lot of changes to dhclient in the last couple of weeks.

 Aside from some major clean up, these changes revolve around the
 elimination of the dhclient-script as both detrimental to sanity
 and our ability to move forward to better network configuration
 automation.

 So far a couple of uses for dhclient-script have been reported and
 workarounds have to be developed for these scenarios.

 But now that most of the changes are committed we are very interested
 in making sure that scenarios that lead people to modify dhclient-script
 are identified sooner rather than later.

 So please test the new dhclient(8) in as many situations as possible
 and report both 'noraml' bugs/regressions and problems you have not
 been able to solve without dhclient-script. Thanks.

  Ken



Is it possible to ignore route pushed by the server ?


-- 
-
() ascii ribbon campaign - against html e-mail
/\



Re: add intel 6235 support to iwn(4)

2012-11-13 Thread James Turner
I was actually able to add support myself with the following diff.

-- 
James Turner
ja...@calminferno.net
Index: if_iwn.c
===
RCS file: /cvs/src/sys/dev/pci/if_iwn.c,v
retrieving revision 1.115
diff -u -p if_iwn.c
--- if_iwn.c11 Nov 2012 20:45:31 -  1.115
+++ if_iwn.c14 Nov 2012 02:00:52 -
@@ -639,7 +639,8 @@ iwn5000_attach(struct iwn_softc *sc, pci_product_id_t 
break;
case IWN_HW_REV_TYPE_6005:
sc-limits = iwn6000_sensitivity_limits;
-   if (pid == PCI_PRODUCT_INTEL_WL_6235_1) {
+   if (pid == PCI_PRODUCT_INTEL_WL_6235_1 ||
+   pid == PCI_PRODUCT_INTEL_WL_6030_2) {
sc-fwname = iwn-6030;
 
/* XXX: The 6235 generates a fatal firmware error when



Re: add intel 6235 support to iwn(4)

2012-11-13 Thread Paul de Weerd
This fixes iwn(4) for me too.  Where previously I would get iwn0:
fatal firmware error I now get a working setup with:

iwn0 at pci1 dev 0 function 0 Intel Centrino Advanced-N 6030 rev 0x34: msi, 
MIMO 2T2R, MoW, address 88:53:2e:d9:dd:9d

Full dmesg (including a boot with the previous kernel and the error I
got) included at the end of this mail.

Thanks Joshua and James, that fixes one of the remaining issues on my
laptop.  This e-mail sent via that iwn(4) ;)

Paul 'WEiRD' de Weerd

On Tue, Nov 13, 2012 at 09:02:24PM -0500, James Turner wrote:
| I was actually able to add support myself with the following diff.
| 
| -- 
| James Turner
| ja...@calminferno.net
| Index: if_iwn.c
| ===
| RCS file: /cvs/src/sys/dev/pci/if_iwn.c,v
| retrieving revision 1.115
| diff -u -p if_iwn.c
| --- if_iwn.c  11 Nov 2012 20:45:31 -  1.115
| +++ if_iwn.c  14 Nov 2012 02:00:52 -
| @@ -639,7 +639,8 @@ iwn5000_attach(struct iwn_softc *sc, pci_product_id_t 
|   break;
|   case IWN_HW_REV_TYPE_6005:
|   sc-limits = iwn6000_sensitivity_limits;
| - if (pid == PCI_PRODUCT_INTEL_WL_6235_1) {
| + if (pid == PCI_PRODUCT_INTEL_WL_6235_1 ||
| + pid == PCI_PRODUCT_INTEL_WL_6030_2) {
|   sc-fwname = iwn-6030;
|  
|   /* XXX: The 6235 generates a fatal firmware error when
| 

OpenBSD 5.2-current (GENERIC.MP) #0: Sun Nov 11 22:19:14 CET 2012
we...@banana.alm.weirdnet.nl:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 8501063680 (8107MB)
avail mem = 8252280832 (7869MB)
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.6 @ 0xe6020 (18 entries)
bios0: vendor INSYDE version R1010H5 date 07/28/2011
bios0: Sony Corporation VPCZ23C5E
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP TCPA ASF! HPET APIC MCFG SLIC WDAT SSDT BOOT SSDT ASPT 
SSDT SSDT SSDT SSDT
acpi0: wakeup devices EHC1(S3) EHC2(S3) HDEF(S0) WLAN(S0) RP01(S0) RMSC(S0) 
RP02(S0) NXUC(S3) RP03(S3) RLAN(S3) RP04(S3) RP07(S3) PEG0(S0) PEGP(S0)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz, 2794.10 MHz
cpu0: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,LONG,LAHF,PERF,ITSC
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: apic clock running at 99MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz, 2793.66 MHz
cpu1: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,LONG,LAHF,PERF,ITSC
cpu1: 256KB 64b/line 8-way L2 cache
cpu2 at mainbus0: apid 2 (application processor)
cpu2: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz, 2793.66 MHz
cpu2: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,LONG,LAHF,PERF,ITSC
cpu2: 256KB 64b/line 8-way L2 cache
cpu3 at mainbus0: apid 3 (application processor)
cpu3: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz, 2793.66 MHz
cpu3: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,LONG,LAHF,PERF,ITSC
cpu3: 256KB 64b/line 8-way L2 cache
ioapic0 at mainbus0: apid 0 pa 0xfec0, version 20, 24 pins
acpimcfg0 at acpi0 addr 0xe000, bus 0-255
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 2 (RP01)
acpiprt2 at acpi0: bus 3 (RP02)
acpiprt3 at acpi0: bus 4 (RP03)
acpiprt4 at acpi0: bus 5 (RP04)
acpiprt5 at acpi0: bus 8 (RP07)
acpiprt6 at acpi0: bus -1 (PEG0)
acpiec0 at acpi0
acpicpu0 at acpi0: C3, C1, PSS
acpicpu1 at acpi0: C3, C1, PSS
acpicpu2 at acpi0: C3, C1, PSS
acpicpu3 at acpi0: C3, C1, PSS
acpitz0 at acpi0: critical temperature is 98 degC
acpibat0 at acpi0: BAT1 type Lion oem Sony Corporation
acpibat1 at acpi0: BAT2 type Lion oem Sony Corporation
acpiac0 at acpi0: AC unit online
acpibtn0 at acpi0: LID0
acpibtn1 at acpi0: PWRB
acpidock0 at acpi0: DOCK not docked (0)
acpivideo0 at acpi0: DD01
acpivideo1 at acpi0: DD02
acpivideo2 at acpi0: DD03
acpivideo3 at acpi0: DD04
acpivideo4 at acpi0: DD05
acpivideo5 at acpi0: DD06
acpivideo6 at acpi0: DD07
acpivideo7 at acpi0: DD08
acpivideo8 at acpi0: GFX0
acpivout0 at acpivideo8: DD02
cpu0: Enhanced SpeedStep 2794 MHz: