Home | History | Annotate | Download | only in sys
History log of /src/sys/sys/cpuio.h
RevisionDateAuthorComments
 1.10  10-Jul-2022  riastradh cpuio.h: Use uint8_t, not bool.

In principle bool can only store two values, 0 and 1, but occupies
eight bits of storage (on all NetBSD platforms to my knowledge),
meaning there are 254 other values which might be trap
representations which would be undefined behaviour to use but which
userland can control the bits of.

To placate ubsan, just use uint8_t here instead of bool. No bump or
anything because the ABI is the same: one-byte field with one-byte
alignment.

Reported-by: syzbot+3bc3d6837da151448e87@syzkaller.appspotmail.com
 1.9  05-Jan-2013  dsl Add definitions so that the i386 cpuctl can issue IOC_CPU_UCODE_GET_VERSION
on amd64 kernels.
XXX This ioctl is horrid - writes into an unsized userspace buffer.
 1.8  29-Aug-2012  drochner branches: 1.8.2;
Extend the CPU microcode update framework to support Intel x86 CPUs.
Contrary to the AMD implementation, it doesn't use xcalls to distribute
the update to all CPUs but relies on cpuctl(8) to bind itself to the
right CPU -- to keep it simple and avoid possible problems with
hyperthreading.
Also, it doesn't parse the vendor supplied file to pick the right
part for the present CPU model but relies on userland to prepare
files with specific filenames. I'll commit a pkg for this in a minute
(pkgsrc/sysutils/intel-microcode).
The ioctl interface changed; compatibility is provided (should be
limited to COMPAT_NETBSD6 as soon as this is available).
 1.7  16-Jan-2012  cegger include limits.h for PATH_MAX. Reported by njoly@.
 1.6  13-Jan-2012  cegger Support CPU microcode loading via cpuctl(8).
Implemented and enabled via CPU_UCODE kernel config option
for x86 and Xen Dom0.
Tested on different AMD machines with different
CPU families.

ok wiz@ for the manpages
ok releng@
ok core@ via releng@
 1.5  11-Sep-2011  jdc branches: 1.5.2; 1.5.6;
Add a cs_hwid field to cpustate and use this to store the ci_cpuid (hardware
ID). Report this as the HwID in cpuctl.
OK jruoho@.
 1.4  19-Apr-2009  ad cpuctl:

- Add interrupt shielding (direct hardware interrupts away from the
specified CPUs). Not documented just yet but will be soon.

- Redo /dev/cpu time_t compat so no kernel changes are needed.

x86:

- Make intr_establish, intr_disestablish safe to use when !cold.

- Distribute hardware interrupts among the CPUs, instead of directing
everything to the boot CPU.

- Add MD code for interrupt sheilding. This works in most cases but there is
a bug where delivery is not accepted by an LAPIC after redistribution. It
also needs re-balancing to make things fair after interrupts are turned
back on for a CPU.
 1.3  19-Jan-2009  christos branches: 1.3.2;
provide compat_50
 1.2  28-Apr-2008  martin branches: 1.2.8;
Remove clause 3 and 4 from TNF licenses
 1.1  04-Aug-2007  ad branches: 1.1.2; 1.1.4; 1.1.6; 1.1.10; 1.1.30; 1.1.32; 1.1.34; 1.1.36;
Add cpuctl(8). For now this is not much more than a toy for debugging and
benchmarking that allows taking CPUs online/offline.
 1.1.36.2  04-Aug-2007  ad Add cpuctl(8). For now this is not much more than a toy for debugging and
benchmarking that allows taking CPUs online/offline.
 1.1.36.1  04-Aug-2007  ad file cpuio.h was added on branch matt-mips64 on 2007-08-04 11:03:04 +0000
 1.1.34.2  04-May-2009  yamt sync with head.
 1.1.34.1  16-May-2008  yamt sync with head.
 1.1.32.1  18-May-2008  yamt sync with head.
 1.1.30.1  02-Jun-2008  mjf Sync with HEAD.
 1.1.10.2  03-Sep-2007  yamt sync with head.
 1.1.10.1  04-Aug-2007  yamt file cpuio.h was added on branch yamt-lazymbuf on 2007-09-03 14:46:06 +0000
 1.1.6.2  20-Aug-2007  ad Sync with HEAD.
 1.1.6.1  04-Aug-2007  ad file cpuio.h was added on branch vmlocking on 2007-08-20 22:07:38 +0000
 1.1.4.2  15-Aug-2007  skrll Sync with HEAD.
 1.1.4.1  04-Aug-2007  skrll file cpuio.h was added on branch nick-csl-alignment on 2007-08-15 13:50:54 +0000
 1.1.2.2  04-Aug-2007  jmcneill Sync with HEAD.
 1.1.2.1  04-Aug-2007  jmcneill file cpuio.h was added on branch jmcneill-pm on 2007-08-04 12:33:17 +0000
 1.2.8.2  28-Apr-2009  skrll Sync with HEAD.
 1.2.8.1  03-Mar-2009  skrll Sync with HEAD.
 1.3.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.5.6.1  18-Feb-2012  mrg merge to -current.
 1.5.2.3  23-Jan-2013  yamt sync with head
 1.5.2.2  30-Oct-2012  yamt sync with head
 1.5.2.1  17-Apr-2012  yamt sync with head
 1.8.2.1  25-Feb-2013  tls resync with head

RSS XML Feed