aboutsummaryrefslogtreecommitdiff
path: root/sys/pc98/include
Commit message (Collapse)AuthorAgeFilesLines
* Remove pc98 support completely.Yoshihiro Takahashi2017-01-2887-1486/+0
| | | | | | | | | I thank all developers and contributors for pc98. Relnotes: yes Notes: svn path=/head/; revision=312910
* Fix building on i386 and arm. But 'public domain' headers on the filesWarner Losh2016-10-131-26/+1
| | | | | | | | | | | with no creative content. Include "lost" changes from git: o Use /dev/efi instead of /dev/efidev o Remove redundant NULL checks. Submitted by: kib@, dim@, zbb@, emaste@ Notes: svn path=/head/; revision=307189
* Include stubs even on the platforms we don't support so libsysdecodeWarner Losh2016-10-111-0/+39
| | | | | | | continues to build. Notes: svn path=/head/; revision=307074
* Add asynchronous command support to the pass(4) driver, and the newKenneth D. Merry2015-12-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | camdd(8) utility. CCBs may be queued to the driver via the new CAMIOQUEUE ioctl, and completed CCBs may be retrieved via the CAMIOGET ioctl. User processes can use poll(2) or kevent(2) to get notification when I/O has completed. While the existing CAMIOCOMMAND blocking ioctl interface only supports user virtual data pointers in a CCB (generally only one per CCB), the new CAMIOQUEUE ioctl supports user virtual and physical address pointers, as well as user virtual and physical scatter/gather lists. This allows user applications to have more flexibility in their data handling operations. Kernel memory for data transferred via the queued interface is allocated from the zone allocator in MAXPHYS sized chunks, and user data is copied in and out. This is likely faster than the vmapbuf()/vunmapbuf() method used by the CAMIOCOMMAND ioctl in configurations with many processors (there are more TLB shootdowns caused by the mapping/unmapping operation) but may not be as fast as running with unmapped I/O. The new memory handling model for user requests also allows applications to send CCBs with request sizes that are larger than MAXPHYS. The pass(4) driver now limits queued requests to the I/O size listed by the SIM driver in the maxio field in the Path Inquiry (XPT_PATH_INQ) CCB. There are some things things would be good to add: 1. Come up with a way to do unmapped I/O on multiple buffers. Currently the unmapped I/O interface operates on a struct bio, which includes only one address and length. It would be nice to be able to send an unmapped scatter/gather list down to busdma. This would allow eliminating the copy we currently do for data. 2. Add an ioctl to list currently outstanding CCBs in the various queues. 3. Add an ioctl to cancel a request, or use the XPT_ABORT CCB to do that. 4. Test physical address support. Virtual pointers and scatter gather lists have been tested, but I have not yet tested physical addresses or scatter/gather lists. 5. Investigate multiple queue support. At the moment there is one queue of commands per pass(4) device. If multiple processes open the device, they will submit I/O into the same queue and get events for the same completions. This is probably the right model for most applications, but it is something that could be changed later on. Also, add a new utility, camdd(8) that uses the asynchronous pass(4) driver interface. This utility is intended to be a basic data transfer/copy utility, a simple benchmark utility, and an example of how to use the asynchronous pass(4) interface. It can copy data to and from pass(4) devices using any target queue depth, starting offset and blocksize for the input and ouptut devices. It currently only supports SCSI devices, but could be easily extended to support ATA devices. It can also copy data to and from regular files, block devices, tape devices, pipes, stdin, and stdout. It does not support queueing multiple commands to any of those targets, since it uses the standard read(2)/write(2)/writev(2)/readv(2) system calls. The I/O is done by two threads, one for the reader and one for the writer. The reader thread sends completed read requests to the writer thread in strictly sequential order, even if they complete out of order. That could be modified later on for random I/O patterns or slightly out of order I/O. camdd(8) uses kqueue(2)/kevent(2) to get I/O completion events from the pass(4) driver and also to send request notifications internally. For pass(4) devcies, camdd(8) uses a single buffer (CAM_DATA_VADDR) per CAM CCB on the reading side, and a scatter/gather list (CAM_DATA_SG) on the writing side. In addition to testing both interfaces, this makes any potential reblocking of I/O easier. No data is copied between the reader and the writer, but rather the reader's buffers are split into multiple I/O requests or combined into a single I/O request depending on the input and output blocksize. For the file I/O path, camdd(8) also uses a single buffer (read(2), write(2), pread(2) or pwrite(2)) on reads, and a scatter/gather list (readv(2), writev(2), preadv(2), pwritev(2)) on writes. Things that would be nice to do for camdd(8) eventually: 1. Add support for I/O pattern generation. Patterns like all zeros, all ones, LBA-based patterns, random patterns, etc. Right Now you can always use /dev/zero, /dev/random, etc. 2. Add support for a "sink" mode, so we do only reads with no writes. Right now, you can use /dev/null. 3. Add support for automatic queue depth probing, so that we can figure out the right queue depth on the input and output side for maximum throughput. At the moment it defaults to 6. 4. Add support for SATA device passthrough I/O. 5. Add support for random LBAs and/or lengths on the input and output sides. 6. Track average per-I/O latency and busy time. The busy time and latency could also feed in to the automatic queue depth determination. sys/cam/scsi/scsi_pass.h: Define two new ioctls, CAMIOQUEUE and CAMIOGET, that queue and fetch asynchronous CAM CCBs respectively. Although these ioctls do not have a declared argument, they both take a union ccb pointer. If we declare a size here, the ioctl code in sys/kern/sys_generic.c will malloc and free a buffer for either the CCB or the CCB pointer (depending on how it is declared). Since we have to keep a copy of the CCB (which is fairly large) anyway, having the ioctl malloc and free a CCB for each call is wasteful. sys/cam/scsi/scsi_pass.c: Add asynchronous CCB support. Add two new ioctls, CAMIOQUEUE and CAMIOGET. CAMIOQUEUE adds a CCB to the incoming queue. The CCB is executed immediately (and moved to the active queue) if it is an immediate CCB, but otherwise it will be executed in passstart() when a CCB is available from the transport layer. When CCBs are completed (because they are immediate or passdone() if they are queued), they are put on the done queue. If we get the final close on the device before all pending I/O is complete, all active I/O is moved to the abandoned queue and we increment the peripheral reference count so that the peripheral driver instance doesn't go away before all pending I/O is done. The new passcreatezone() function is called on the first call to the CAMIOQUEUE ioctl on a given device to allocate the UMA zones for I/O requests and S/G list buffers. This may be good to move off to a taskqueue at some point. The new passmemsetup() function allocates memory and scatter/gather lists to hold the user's data, and copies in any data that needs to be written. For virtual pointers (CAM_DATA_VADDR), the kernel buffer is malloced from the new pass(4) driver malloc bucket. For virtual scatter/gather lists (CAM_DATA_SG), buffers are allocated from a new per-pass(9) UMA zone in MAXPHYS-sized chunks. Physical pointers are passed in unchanged. We have support for up to 16 scatter/gather segments (for the user and kernel S/G lists) in the default struct pass_io_req, so requests with longer S/G lists require an extra kernel malloc. The new passcopysglist() function copies a user scatter/gather list to a kernel scatter/gather list. The number of elements in each list may be different, but (obviously) the amount of data stored has to be identical. The new passmemdone() function copies data out for the CAM_DATA_VADDR and CAM_DATA_SG cases. The new passiocleanup() function restores data pointers in user CCBs and frees memory. Add new functions to support kqueue(2)/kevent(2): passreadfilt() tells kevent whether or not the done queue is empty. passkqfilter() adds a knote to our list. passreadfiltdetach() removes a knote from our list. Add a new function, passpoll(), for poll(2)/select(2) to use. Add devstat(9) support for the queued CCB path. sys/cam/ata/ata_da.c: Add support for the BIO_VLIST bio type. sys/cam/cam_ccb.h: Add a new enumeration for the xflags field in the CCB header. (This doesn't change the CCB header, just adds an enumeration to use.) sys/cam/cam_xpt.c: Add a new function, xpt_setup_ccb_flags(), that allows specifying CCB flags. sys/cam/cam_xpt.h: Add a prototype for xpt_setup_ccb_flags(). sys/cam/scsi/scsi_da.c: Add support for BIO_VLIST. sys/dev/md/md.c: Add BIO_VLIST support to md(4). sys/geom/geom_disk.c: Add BIO_VLIST support to the GEOM disk class. Re-factor the I/O size limiting code in g_disk_start() a bit. sys/kern/subr_bus_dma.c: Change _bus_dmamap_load_vlist() to take a starting offset and length. Add a new function, _bus_dmamap_load_pages(), that will load a list of physical pages starting at an offset. Update _bus_dmamap_load_bio() to allow loading BIO_VLIST bios. Allow unmapped I/O to start at an offset. sys/kern/subr_uio.c: Add two new functions, physcopyin_vlist() and physcopyout_vlist(). sys/pc98/include/bus.h: Guard kernel-only parts of the pc98 machine/bus.h header with #ifdef _KERNEL. This allows userland programs to include <machine/bus.h> to get the definition of bus_addr_t and bus_size_t. sys/sys/bio.h: Add a new bio flag, BIO_VLIST. sys/sys/uio.h: Add prototypes for physcopyin_vlist() and physcopyout_vlist(). share/man/man4/pass.4: Document the CAMIOQUEUE and CAMIOGET ioctls. usr.sbin/Makefile: Add camdd. usr.sbin/camdd/Makefile: Add a makefile for camdd(8). usr.sbin/camdd/camdd.8: Man page for camdd(8). usr.sbin/camdd/camdd.c: The new camdd(8) utility. Sponsored by: Spectra Logic MFC after: 1 week Notes: svn path=/head/; revision=291716
* Add missing ofw_machdep.h. Make x86 ofw_machdep.h work pc98 too.Warner Losh2015-08-281-0/+6
| | | | | | | | This allows the owc module to compile on pc98 and seems preferable to adding another special case in the build system. Notes: svn path=/head/; revision=287260
* Remove unused i386 header privatespace.h. For the native kernel, itsKonstantin Belousov2015-08-071-6/+0
| | | | | | | | | | | | use was removed in r173592 (Nov 2007), yet Xen PV bits continued referencing the privatespace structure, and were removed in r282274 (Apr 2015). Discussed with: jhb Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=286401
* Factor out duplicated code from dumpsys() on each architecture into genericMark Johnston2015-01-071-0/+6
| | | | | | | | | | | | | | | | | code in sys/kern/kern_dump.c. Most dumpsys() implementations are nearly identical and simply redefine a number of constants and helper subroutines; a generic implementation will make it easier to implement features around kernel core dumps. This change does not alter any minidump code and should have no functional impact. PR: 193873 Differential Revision: https://reviews.freebsd.org/D904 Submitted by: Conrad Meyer <conrad.meyer@isilon.com> Reviewed by: jhibbits (earlier version) Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=276772
* Move <machine/apicvar.h> to <x86/apicvar.h>.John Baldwin2014-01-231-6/+0
| | | | Notes: svn path=/head/; revision=261087
* Merge from projects/counters: counter(9).Gleb Smirnoff2013-04-081-0/+6
| | | | | | | | | | | | | | | | Introduce counter(9) API, that implements fast and raceless counters, provided (but not limited to) for gathering of statistical data. See http://lists.freebsd.org/pipermail/freebsd-arch/2013-April/014204.html for more details. In collaboration with: kib Reviewed by: luigi Tested by: ae, ray Sponsored by: Nginx, Inc. Notes: svn path=/head/; revision=249268
* Use ANSI prototype to fix build with clang.Yoshihiro Takahashi2012-11-101-77/+43
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=242866
* Add an unified macro to deny ability from the compiler to reorderAttilio Rao2012-10-091-1/+1
| | | | | | | | | | | | | instruction loads/stores at its will. The macro __compiler_membar() is currently supported for both gcc and clang, but kernel compilation will fail otherwise. Reviewed by: bde, kib Discussed with: dim, theraven MFC after: 2 weeks Notes: svn path=/head/; revision=241374
* Implement mechanism to export some kernel timekeeping data toKonstantin Belousov2012-06-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | usermode, using shared page. The structures and functions have vdso prefix, to indicate the intended location of the code in some future. The versioned per-algorithm data is exported in the format of struct vdso_timehands, which mostly repeats the content of in-kernel struct timehands. Usermode reading of the structure can be lockless. Compatibility export for 32bit processes on 64bit host is also provided. Kernel also provides usermode with indication about currently used timecounter, so that libc can fall back to syscall if configured timecounter is unknown to usermode code. The shared data updates are initiated both from the tc_windup(), where a fast task is queued to do the update, and from sysctl handlers which change timecounter. A manual override switch kern.timecounter.fast_gettime allows to turn off the mechanism. Only x86 architectures export the real algorithm data, and there, only for tsc timecounter. HPET counters page could be exported as well, but I prefer to not further glue the kernel and libc ABI there until proper vdso-based solution is developed. Minimal stubs neccessary for non-x86 architectures to still compile are provided. Discussed with: bde Reviewed by: jhb Tested by: flo MFC after: 1 month Notes: svn path=/head/; revision=237433
* Move the legacy(4) driver to x86.John Baldwin2012-03-301-6/+0
| | | | Notes: svn path=/head/; revision=233707
* Copy amd64 sysarch.h to x86 and merge with i386 sysarch.h. ReplaceTijl Coosemans2012-03-191-1/+1
| | | | | | | amd64/i386/pc98 sysarch.h with stubs. Notes: svn path=/head/; revision=233209
* Copy i386 specialreg.h to x86 and merge with amd64 specialreg.h. ReplaceTijl Coosemans2012-03-191-1/+1
| | | | | | | amd64/i386/pc98 specialreg.h with stubs. Notes: svn path=/head/; revision=233207
* Copy i386 psl.h to x86 and replace amd64/i386/pc98 psl.h with stubs.Tijl Coosemans2012-03-191-1/+1
| | | | Notes: svn path=/head/; revision=233204
* Copy i386 reg.h to x86 and merge with amd64 reg.h. Replace i386/amd64/pc98Tijl Coosemans2012-03-181-1/+1
| | | | | | | | | | | | | | | | | | | | reg.h with stubs. The tREGISTER macros are only made visible on i386. These macros are deprecated and should not be available on amd64. The i386 and amd64 versions of struct reg have been renamed to struct __reg32 and struct __reg64. During compilation either __reg32 or __reg64 is defined as reg depending on the machine architecture. On amd64 the i386 struct is also available as struct reg32 which is used in COMPAT_FREEBSD32 code. Most of compat/ia32/ia32_reg.h is now IA64 only. Reviewed by: kib (previous version) Notes: svn path=/head/; revision=233124
* Copy amd64 ptrace.h to x86 and merge with i386 ptrace.h. ReplaceTijl Coosemans2012-03-041-1/+1
| | | | | | | | | | | | | amd64/i386/pc98 ptrace.h with stubs. For amd64 PT_GETXSTATE and PT_SETXSTATE have been redefined to match the i386 values. The old values are still supported but should no longer be used. Reviewed by: kib Notes: svn path=/head/; revision=232520
* Copy amd64 trap.h to x86 and replace amd64/i386/pc98 trap.h with stubs.Tijl Coosemans2012-03-041-1/+1
| | | | Notes: svn path=/head/; revision=232492
* Copy amd64 float.h to x86 and merge with i386 float.h. ReplaceTijl Coosemans2012-03-041-1/+1
| | | | | | | amd64/i386/pc98 float.h with stubs. Notes: svn path=/head/; revision=232491
* Copy amd64 stdarg.h to x86 and replace amd64/i386/pc98 stdarg.h with stubs.Tijl Coosemans2012-02-281-1/+1
| | | | Notes: svn path=/head/; revision=232276
* Copy amd64 setjmp.h to x86 and replace amd64/i386/pc98 setjmp.h with stubs.Tijl Coosemans2012-02-281-1/+1
| | | | Notes: svn path=/head/; revision=232275
* Copy amd64 endian.h to x86 and merge with i386 endian.h. ReplaceTijl Coosemans2012-02-281-1/+1
| | | | | | | | | | | | | amd64/i386/pc98 endian.h with stubs. In __bswap64_const(x) the conflict between 0xffUL and 0xffULL has been resolved by reimplementing the macro in terms of __bswap32(x). As a side effect __bswap64_var(x) is now implemented using two bswap instructions on i386 and should be much faster. __bswap32_const(x) has been reimplemented in terms of __bswap16(x) for consistency. Notes: svn path=/head/; revision=232266
* Copy amd64 _stdint.h to x86 and merge with i386 _stdint.h. ReplaceTijl Coosemans2012-02-281-1/+1
| | | | | | | amd64/i386/pc98 _stdint.h with stubs. Notes: svn path=/head/; revision=232264
* Copy amd64 _limits.h to x86 and merge with i386 _limits.h. ReplaceTijl Coosemans2012-02-281-1/+1
| | | | | | | amd64/i386/pc98 _limits.h with stubs. Notes: svn path=/head/; revision=232262
* Copy amd64 _types.h to x86 and merge with i386 _types.h. Replace existingTijl Coosemans2012-02-281-1/+1
| | | | | | | amd64/i386/pc98 _types.h with stubs. Notes: svn path=/head/; revision=232261
* Move the scsi_da_bios_params() prototype from pc98_machdep.h to md_var.hMarius Strobl2011-11-271-3/+3
| | | | | | | | where the prototype for pc98_ata_disk_firmware_geom_adjust() also lives in order to avoid an #ifdef'ed include in cam(4). Notes: svn path=/head/; revision=228027
* Copy powerpc/include/_inttypes.h to x86 and replace i386/amd64/pc98Tijl Coosemans2011-01-081-1/+1
| | | | | | | | | headers with stubs. Approved by: kib (mentor) Notes: svn path=/head/; revision=217157
* Merge amd64 and i386 bus.h and move the resulting header to x86. ReplaceTijl Coosemans2010-12-201-2/+2
| | | | | | | | | | | | the original amd64 and i386 headers with stubs. Rename (AMD64|I386)_BUS_SPACE_* to X86_BUS_SPACE_* everywhere. Reviewed by: imp (previous version), jhb Approved by: kib (mentor) Notes: svn path=/head/; revision=216592
* Revert r216134. This checkin broke platforms where bus_space are macros:Rebecca Cran2010-12-031-9/+7
| | | | | | | | they need to be a single statement, and do { } while (0) doesn't work in this situation so revert until a solution can be devised. Notes: svn path=/head/; revision=216143
* Disallow passing in a count of zero bytes to the bus_space(9) functions.Rebecca Cran2010-12-021-7/+9
| | | | | | | | | | | | Passing a count of zero on i386 and amd64 for [I386|AMD64]_BUS_SPACE_MEM causes a crash/hang since the 'loop' instruction decrements the counter before checking if it's zero. PR: kern/80980 Discussed with: jhb Notes: svn path=/head/; revision=216134
* Include x86/_align.h directly instead of including the i386 header.Tijl Coosemans2010-11-261-26/+3
| | | | | | | Approved by: kib (mentor) Notes: svn path=/head/; revision=215863
* Move identical copies of apm_bios.h to sys/x86/include, replace them withJung-uk Kim2010-11-111-1/+1
| | | | | | | | | stubs, and adjust PC98 stub accordingly. Reviewed by: imp, nyan Notes: svn path=/head/; revision=215140
* - Remove <machine/mutex.h>. Most of the headers were empty, and theJohn Baldwin2010-11-091-6/+0
| | | | | | | | | | | | | | | contents of the ones that were not empty were stale and unused. - Now that <machine/mutex.h> no longer exists, there is no need to allow it to override various helper macros in <sys/mutex.h>. - Rename various helper macros for low-level operations on mutexes to live in the _mtx_* or __mtx_* namespaces. While here, change the names to more closely match the real API functions they are backing. - Drop support for including <sys/mutex.h> in assembly source files. Suggested by: bde (1, 2) Notes: svn path=/head/; revision=215054
* Move the mptable.h under x86/include/.Attilio Rao2010-11-091-6/+0
| | | | | | | | Sponsored by: Sandvine Incorporated MFC after: 14 days Notes: svn path=/head/; revision=215051
* Move <machine/apicreg.h> to <x86/apicreg.h>.John Baldwin2010-11-011-6/+0
| | | | Notes: svn path=/head/; revision=214631
* Move the <machine/mca.h> header to <x86/mca.h>.John Baldwin2010-11-011-6/+0
| | | | Notes: svn path=/head/; revision=214630
* Rename BUS_SPACE_IO and BUS_SPACE_MEM defines to BUS_SPACE_TAG_IO andYoshihiro Takahashi2010-10-311-2/+2
| | | | | | | BUS_SPACE_TAG_MEM respectively to avoid conflict with nexus.c. Notes: svn path=/head/; revision=214584
* Remove the support for int13 FPU exception reporting on i386. It isKonstantin Belousov2010-06-231-45/+2
| | | | | | | | | | | | believed that all 486-class CPUs FreeBSD is capable to run on, either have no FPU and cannot use external coprocessor, or have FPU on the package and can use #MF. Reviewed by: bde Tested by: pho (previous version) Notes: svn path=/head/; revision=209461
* Change ad_firmware_geom_adjust() to operate on a struct disk * only andMarius Strobl2010-05-201-6/+4
| | | | | | | | | | | | hook it up to ada(4) also. While at it, rename *ad_firmware_geom_adjust() to *ata_disk_firmware_geom_adjust() etc now that these are no longer limited to ad(4). Reviewed by: mav MFC after: 3 days Notes: svn path=/head/; revision=208349
* MFi386: Remove old file.Yoshihiro Takahashi2009-09-091-6/+0
| | | | Notes: svn path=/head/; revision=197026
* Get rid of the _NO_NAMESPACE_POLLUTION kludge by creating anPoul-Henning Kamp2009-09-081-0/+29
| | | | | | | | architecture specific include file containing the _ALIGN* stuff which <sys/socket.h> needs. Notes: svn path=/head/; revision=196994
* Add stub vm.h for pc98.Yoshihiro Takahashi2009-06-271-0/+6
| | | | | | | Approved by: re (kensmith) Notes: svn path=/head/; revision=195089
* MFi386: revision 192050Yoshihiro Takahashi2009-05-141-0/+6
| | | | | | | Implement simple machine check support. Notes: svn path=/head/; revision=192106
* - Add the i386_memio_map_load() function to load I/O address table.Yoshihiro Takahashi2008-09-071-0/+22
| | | | | | | | - Add the bus_space_compare macro for bus_space consistency. - Switch using the bus_space_map_load() in isa_load_resourcev(). Notes: svn path=/head/; revision=182836
* Add i386_memio_compare() to compare two resources.Yoshihiro Takahashi2008-07-051-0/+9
| | | | | | | It's used by uart(4) in the future. Notes: svn path=/head/; revision=180303
* Remove obselete PECOFF image activator support.Wojciech A. Koszek2008-06-141-6/+0
| | | | | | | | | | | PRs assigned at the time of removal: kern/80742 Discussed on: freebsd-current (silence), IRC Tested by: make universe Approved by: cognet (mentor) Notes: svn path=/head/; revision=179785
* Remove my copyright. This file includes simply i386's one now.Yoshihiro Takahashi2008-04-191-29/+2
| | | | Notes: svn path=/head/; revision=178310
* The "free-lance" timer in the i8254 is only used for the speakerPoul-Henning Kamp2008-03-262-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | these days, so de-generalize the acquire_timer/release_timer api to just deal with speakers. The new (optional) MD functions are: timer_spkr_acquire() timer_spkr_release() and timer_spkr_setfreq() the last of which configures the timer to generate a tone of a given frequency, in Hz instead of 1/1193182th of seconds. Drop entirely timer2 on pc98, it is not used anywhere at all. Move sysbeep() to kern/tty_cons.c and use the timer_spkr*() if they exist, and do nothing otherwise. Remove prototypes and empty acquire-/release-timer() and sysbeep() functions from the non-beeping archs. This eliminate the need for the speaker driver to know about i8254frequency at all. In theory this makes the speaker driver MI, contingent on the timer_spkr_*() functions existing but the driver does not know this yet and still attaches to the ISA bus. Syscons is more tricky, in one function, sc_tone(), it knows the hz and things are just fine. In the other function, sc_bell() it seems to get the period from the KDMKTONE ioctl in terms if 1/1193182th second, so we hardcode the 1193182 and leave it at that. It's probably not important. Change a few other sysbeep() uses which obviously knew that the argument was in terms of i8254 frequency, and leave alone those that look like people thought sysbeep() took frequency in hertz. This eliminates the knowledge of i8254_freq from all but the actual clock.c code and the prof_machdep.c on amd64 and i386, where I think it would be smart to ask for help from the timecounters anyway [TBD]. Notes: svn path=/head/; revision=177642
* Add stub for pc98.Yoshihiro Takahashi2008-03-141-0/+6
| | | | Notes: svn path=/head/; revision=177163