[OpenBIOS] r354 - cpu/x86

svn at openbios.org svn at openbios.org
Fri May 4 09:29:47 CEST 2007


Author: wmb
Date: 2007-05-04 09:29:47 +0200 (Fri, 04 May 2007)
New Revision: 354

Modified:
   cpu/x86/ioports.fth
Log:
Added MSR support to Linux-hosted I/O port access wordset.











Modified: cpu/x86/ioports.fth
===================================================================
--- cpu/x86/ioports.fth	2007-05-04 07:28:03 UTC (rev 353)
+++ cpu/x86/ioports.fth	2007-05-04 07:29:47 UTC (rev 354)
@@ -64,6 +64,34 @@
    dup -1 =  abort" mmap failed"
 ;
 : munmap  ( virt len -- )  mem-fd  d# 384  syscall  2drop  ;
+
+-1 value msr-fd
+: ?open-msr  ( -- )
+   msr-fd 0<  if
+      2 " /dev/cpu/0/msr" $cstr 8 syscall 2drop  retval  to msr-fd
+   then
+   msr-fd 0< abort" Can't open /dev/cpu/0/msr"
+;
+8 buffer: msr-data
+: msr-seek  ( msr# -- )  ?open-msr  msr-fd _fseek  ;
+
+: msr@  ( msr# -- d )
+   msr-seek
+   msr-data 8 msr-fd _fread  8 <>  abort" Can't read MSR"
+   msr-data d@
+;
+: msr!  ( d msr# -- )
+  msr-seek
+  msr-data d!
+  msr-data 8 msr-fd _fwrite  8 <>  abort" Can't write MSR"
+;
+: .msr  ( msr# -- )
+   msr@         ( d )
+   push-hex     ( d )
+   <# [char] . hold  # # # # # # # # [char] . hold # # # # # # # # #> type  ( )
+   pop-base
+;
+
 \ LICENSE_BEGIN
 \ Copyright (c) 2006 FirmWorks
 \ 




More information about the OpenBIOS mailing list