Module Name:    src
Committed By:   jruoho
Date:           Tue Oct 25 05:03:57 UTC 2011

Modified Files:
        src/distrib/sets/lists/comp: mi
        src/share/man/man9/man9.x86: Makefile
Added Files:
        src/share/man/man9/man9.x86: rdmsr.9

Log Message:
Briefly document the basic RDMSR/WRMSR functions.


To generate a diff of this commit:
cvs rdiff -u -r1.1696 -r1.1697 src/distrib/sets/lists/comp/mi
cvs rdiff -u -r1.3 -r1.4 src/share/man/man9/man9.x86/Makefile
cvs rdiff -u -r0 -r1.1 src/share/man/man9/man9.x86/rdmsr.9

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/comp/mi
diff -u src/distrib/sets/lists/comp/mi:1.1696 src/distrib/sets/lists/comp/mi:1.1697
--- src/distrib/sets/lists/comp/mi:1.1696	Mon Oct 24 07:33:26 2011
+++ src/distrib/sets/lists/comp/mi	Tue Oct 25 05:03:55 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: mi,v 1.1696 2011/10/24 07:33:26 yamt Exp $
+#	$NetBSD: mi,v 1.1697 2011/10/25 05:03:55 jruoho Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -10857,11 +10857,14 @@
 ./usr/share/man/cat9/x86/nmi.0			comp-sys-catman		.cat
 ./usr/share/man/cat9/x86/nmi_disestablish.0	comp-sys-catman		.cat
 ./usr/share/man/cat9/x86/nmi_establish.0	comp-sys-catman		.cat
+./usr/share/man/cat9/x86/rdmsr.0		comp-sys-catman		.cat
+./usr/share/man/cat9/x86/rdmsr_safe.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/x86/tsc.0			comp-sys-catman		.cat
 ./usr/share/man/cat9/x86/tsc_sync_ap.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/x86/tsc_sync_bp.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/x86/tsc_sync_drift.0	comp-sys-catman		.cat
 ./usr/share/man/cat9/x86/tsc_tc_init.0		comp-sys-catman		.cat
+./usr/share/man/cat9/x86/wrmsr.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/x86/x86_msr_xcall.0	comp-sys-catman		.cat
 ./usr/share/man/cat9/xc_broadcast.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/xc_unicast.0		comp-sys-catman		.cat
@@ -16902,11 +16905,14 @@
 ./usr/share/man/html9/x86/nmi.html		comp-sys-htmlman	html
 ./usr/share/man/html9/x86/nmi_disestablish.html	comp-sys-htmlman	html
 ./usr/share/man/html9/x86/nmi_establish.html	comp-sys-htmlman	html
+./usr/share/man/html9/x86/rdmsr.html		comp-sys-htmlman	html
+./usr/share/man/html9/x86/rdmsr_safe.html	comp-sys-htmlman	html
 ./usr/share/man/html9/x86/tsc.html		comp-sys-htmlman	html
 ./usr/share/man/html9/x86/tsc_sync_ap.html	comp-sys-htmlman	html
 ./usr/share/man/html9/x86/tsc_sync_bp.html	comp-sys-htmlman	html
 ./usr/share/man/html9/x86/tsc_sync_drift.html	comp-sys-htmlman	html
 ./usr/share/man/html9/x86/tsc_tc_init.html	comp-sys-htmlman	html
+./usr/share/man/html9/x86/wrmsr.html		comp-sys-htmlman	html
 ./usr/share/man/html9/x86/x86_msr_xcall.html	comp-sys-htmlman	html
 ./usr/share/man/html9/xc_broadcast.html		comp-sys-htmlman	html
 ./usr/share/man/html9/xc_unicast.html		comp-sys-htmlman	html
@@ -23204,11 +23210,14 @@
 ./usr/share/man/man9/x86/nmi.9			comp-sys-man		.man
 ./usr/share/man/man9/x86/nmi_disestablish.9	comp-sys-man		.man
 ./usr/share/man/man9/x86/nmi_establish.9	comp-sys-man		.man
+./usr/share/man/man9/x86/rdmsr.9		comp-sys-man		.man
+./usr/share/man/man9/x86/rdmsr_safe.9		comp-sys-man		.man
 ./usr/share/man/man9/x86/tsc.9			comp-sys-man		.man
 ./usr/share/man/man9/x86/tsc_sync_ap.9		comp-sys-man		.man
 ./usr/share/man/man9/x86/tsc_sync_bp.9		comp-sys-man		.man
 ./usr/share/man/man9/x86/tsc_sync_drift.9	comp-sys-man		.man
 ./usr/share/man/man9/x86/tsc_tc_init.9		comp-sys-man		.man
+./usr/share/man/man9/x86/wrmsr.9		comp-sys-man		.man
 ./usr/share/man/man9/x86/x86_msr_xcall.9	comp-sys-man		.man
 ./usr/share/man/man9/xc_broadcast.9		comp-sys-man		.man
 ./usr/share/man/man9/xc_unicast.9		comp-sys-man		.man

Index: src/share/man/man9/man9.x86/Makefile
diff -u src/share/man/man9/man9.x86/Makefile:1.3 src/share/man/man9/man9.x86/Makefile:1.4
--- src/share/man/man9/man9.x86/Makefile:1.3	Fri Mar 11 19:50:33 2011
+++ src/share/man/man9/man9.x86/Makefile	Tue Oct 25 05:03:57 2011
@@ -1,12 +1,15 @@
-#	$NetBSD: Makefile,v 1.3 2011/03/11 19:50:33 jruoho Exp $
+#	$NetBSD: Makefile,v 1.4 2011/10/25 05:03:57 jruoho Exp $
 
-MAN=	nmi.9 tsc.9 x86_msr_xcall.9
+MAN=	nmi.9 rdmsr.9 tsc.9 x86_msr_xcall.9
 
 MANSUBDIR=/x86
 
 MLINKS+=nmi.9 nmi_establish.9 \
 	nmi.9 nmi_disestablish.9
 
+MLINKS+=rdmsr.9 rdmsr_safe.9 \
+	rdmsr.9 wrmsr.9
+
 MLINKS+=tsc.9 tsc_tc_init.9 \
 	tsc.9 tsc_sync_ap.9 \
 	tsc.9 tsc_sync_bp.9 \

Added files:

Index: src/share/man/man9/man9.x86/rdmsr.9
diff -u /dev/null src/share/man/man9/man9.x86/rdmsr.9:1.1
--- /dev/null	Tue Oct 25 05:03:57 2011
+++ src/share/man/man9/man9.x86/rdmsr.9	Tue Oct 25 05:03:57 2011
@@ -0,0 +1,112 @@
+.\" $NetBSD: rdmsr.9,v 1.1 2011/10/25 05:03:57 jruoho Exp $
+.\"
+.\" Copyright (c) 2011 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Jukka Ruohonen.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd October 25, 2011
+.Dt RDMSR 9 x86
+.Os
+.Sh NAME
+.Nm rdmsr ,
+.Nm rdmsr_safe ,
+.Nm wrmsr
+.Nd functions for x86 model-specific registers
+.Sh SYNOPSIS
+.In x86/cpufunc.h
+.Ft uint64_t
+.Fn rdmsr "u_int msr"
+.\" .Ft uint64_t
+.\" .Fn rdmsr_locked "u_int msr"
+.Ft int
+.Fn rdmsr_safe "u_int msr" "uint64_t *valp"
+.Ft void
+.Fn wrmsr "u_int msr" "uint64_t val"
+.\" .Ft void
+.\" .Fn wrmsr_locked "u_int msr" "u_int" "uint64_t val"
+.Sh DESCRIPTION
+The
+.Dv RDMSR
+instruction reads from a x86 model-specific register
+.Pq Dv MSR .
+Conversely, the
+.Dv WRMSR
+instruction is used to write to a
+.Dv MSR .
+In
+.Nx
+the
+.Fn rdmsr ,
+.Fn rdmsr_safe ,
+and
+.Fn wrmsr
+functions are used to access
+.Dv MSRs .
+.Sh FUNCTIONS
+.Bl -tag -width abcd
+.It Fn rdmsr "msr"
+Returns the value read from
+.Fa msr .
+.\" .It Fn rdmsr_locked "msr"
+.It Fn rdmsr_safe "msr" "valp"
+The
+.Fn rdmsr_safe
+function is a safer variant of
+.Fn rdmsr .
+Upon successful completion,
+the function returns zero and the value read from the register
+.Fa msr
+is returned in
+.Fa valp .
+If a fault occurs while accessing
+.Fa msr ,
+.Fn rdmsr_safe
+returns
+.Dv EFAULT .
+.It Fn wrmsr "msr" "val"
+The
+.Fn wrmsr
+function writes
+.Fa val
+to the register
+.Fa msr .
+.\" .It Fn wrmsr_locked "msr" "xxx" "val"
+.El
+.Pp
+Note that even though
+.Fn rdmsr_safe
+provides support for reading
+.Dv MSRs
+in a safe manner, it is still a good practice
+to always verify that the given model-specific register
+is present by using the
+.Dv CPUID
+instruction, available in
+.Nx
+via
+.Fn x86_cpuid .
+.Sh SEE ALSO
+.Xr x86_msr_xcall 9

Reply via email to