freebsd-dev/sys/sys
Søren Schmidt 8ca4df3299 This is the much rumoured ATA mkIII update that I've been working on.
o       ATA is now fully newbus'd and split into modules.
        This means that on a modern system you just load "atapci and ata"
        to get the base support, and then one or more of the device
        subdrivers "atadisk atapicd atapifd atapist ataraid".
        All can be loaded/unloaded anytime, but for obvious reasons you
        dont want to unload atadisk when you have mounted filesystems.

o       The device identify part of the probe has been rewritten to fix
        the problems with odd devices the old had, and to try to remove
        so of the long delays some HW could provoke. Also probing is done
	without the need for interrupts, making earlier probing possible.

o       SATA devices can be hot inserted/removed and devices will be created/
        removed in /dev accordingly.
	NOTE: only supported on controllers that has this feature:
	Promise and Silicon Image for now.
	On other controllers the usual atacontrol detach/attach dance is
	still needed.

o	Support for "atomic" composite ATA requests used for RAID.

o       ATA RAID support has been rewritten and and now supports these
        metadata formats:
                 "Adaptec HostRAID"
                 "Highpoint V2 RocketRAID"
                 "Highpoint V3 RocketRAID"
                 "Intel MatrixRAID"
                 "Integrated Technology Express"
                 "LSILogic V2 MegaRAID"
                 "LSILogic V3 MegaRAID"
                 "Promise FastTrak"
                 "Silicon Image Medley"
		 "FreeBSD PseudoRAID"

o       Update the ioctl API to match new RAID levels etc.

o       Update atacontrol to know about the new RAID levels etc
        NOTE: you need to recompile atacontrol with the new sys/ata.h,
        make world will take care of that.
	NOTE2: that rebuild is done differently from the old system as
	the rebuild is now done piggybacked on read requests to the
	array, so atacontrol simply starts a background "dd" to rebuild
	the array.

o       The reinit code has been worked over to be much more robust.

o       The timeout code has been overhauled for races.

o	Support of new chipsets.

o       Lots of fixes for bugs found while doing the modulerization and
        reviewing the old code.

Missing or changed features from current ATA:

o       atapi-cd no longer has support for ATAPI changers. Todays its
        much cheaper and alot faster to copy those CD images to disk
        and serve them from there. Besides they dont seem to be made
        anymore, maybe for that exact reason.

o       ATA RAID can only read metadata from all the above metadata formats,
	not write all of them (Promise and Highpoint V2 so far). This means
	that arrays can be picked up from the BIOS, but they cannot be
	created from FreeBSD. There is more to it than just the missing
	write metadata support, those formats are not unique to a given
	controller like Promise and Highpoint formats, instead they exist
	for several types, and even worse, some controllers can have
	different formats and its impossible to tell which one.
	The outcome is that we cannot reliably create the metadata of those
	formats and be sure the controller BIOS will understand it.
	However write support is needed to update/fail/rebuild the arrays
	properly so it sits fairly high on the TODO list.

o       So far atapicam is not supported with these changes. When/if this
	will change is up to the maintainer of atapi-cam so go there for
	questions.

HW donated by:  Webveveriet AS
HW donated by:  Frode Nordahl
HW donated by:  Yahoo!
HW donated by:  Sentex
Patience by:	Vife and my boys (and even the cats)
2005-03-30 12:03:40 +00:00
..
_iovec.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_label.h Improve consistency of include file guards in src/sys/sys by terminating 2004-05-10 18:38:07 +00:00
_lock.h Include <sys/_lock.h>'s prerequisite <sys/queue.h> before including the 2004-06-19 14:58:35 +00:00
_mutex.h
_null.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_semaphore.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_sigset.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_task.h Add taskqueue_drain. This waits for the specified task to finish, if 2004-10-05 04:16:01 +00:00
_timespec.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_timeval.h
_types.h - Declare mknod in stat.h (in addition to unistd.h), as per XSI. 2005-03-22 01:19:18 +00:00
aac_ioctl.h
acct.h Second half of the dev_t cleanup. 2004-06-17 17:16:53 +00:00
acl.h Improve consistency of include file guards in src/sys/sys by terminating 2004-05-10 18:38:07 +00:00
agpio.h
aio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
alq.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
assym.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
ata.h This is the much rumoured ATA mkIII update that I've been working on. 2005-03-30 12:03:40 +00:00
bio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
bitstring.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
blist.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
buf.h make cluster_callback() static 2005-02-10 12:17:48 +00:00
bufobj.h Try to unbreak the vnode locking around vop_reclaim() (based mostly on 2005-02-19 11:44:57 +00:00
bus_dma.h fix arm wrt to busdma... 2005-03-15 14:57:30 +00:00
bus.h Use STAILQ in preference to SLIST for the resources. Insert new resources 2005-03-18 05:19:50 +00:00
callout.h Add a mechanism for associating a mutex with a callout when the 2005-02-07 02:47:33 +00:00
cdefs.h The macros __GNUCLIKE_ATTRIBUTE_PRINTF and 2005-03-07 15:40:25 +00:00
cdio.h Boot away another stackgap (one of the lest ones in linuxlator/i386) by 2005-01-30 08:12:37 +00:00
cdrio.h
chio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
clist.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
clock.h
condvar.h Name the pri argument to cv_broadcastpri() to match the existing style of 2004-05-05 21:57:44 +00:00
conf.h Remove the global cdev hash and use the cdevsw list instead. 2005-03-29 09:56:21 +00:00
cons.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
consio.h
copyright.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
cpu.h Add a new field to struct cf_setting for special values. These are driver- 2005-02-19 06:13:26 +00:00
ctype.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
dataacq.h
device_port.h Remove code for pre-4.0 versions of FreeBSD. It is there in prior 2005-01-19 01:31:33 +00:00
devicestat.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
digiio.h
dir.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
dirent.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
disk.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
disklabel.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
diskmbr.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
diskpc98.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
dkstat.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
domain.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
dvdio.h
elf32.h
elf64.h
elf_common.h Fix typo (in comment): s/IA-46/IA-64/ 2004-05-05 02:38:54 +00:00
elf_generic.h
endian.h
errno.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
eui64.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
event.h remove unimplemented part of the interface.. 2005-03-25 16:23:48 +00:00
eventhandler.h Use 'const char *' for a few prototypes. 2004-12-06 10:53:40 +00:00
eventvar.h Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
exec.h Make ps_nargvstr and ps_nenvstr unsigned. This fixes an input 2005-03-23 08:27:59 +00:00
extattr.h
fbio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
fcntl.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
fdcio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
file.h Make some file/filedesc related functions static 2005-02-10 12:27:58 +00:00
filedesc.h Make some file/filedesc related functions static 2005-02-10 12:27:58 +00:00
filio.h Add ioctl to ask DEVFS about the name of device. 2005-03-08 21:32:19 +00:00
fnv_hash.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
gmon.h Add prototypes for the userland gmon support functions, which normally 2004-06-14 18:39:28 +00:00
gpt.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
iconv.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
imgact_aout.h Adjust the system endian and a.out headers to be more MI and cross-building 2004-06-22 17:05:39 +00:00
imgact_elf.h Add __elfN(dump_thread). This function is called from __elfN(coredump) 2004-08-11 02:35:06 +00:00
imgact.h Welcome to the 21st century: increase MAXSHELLCMDLEN from 128 bytes to 2005-02-25 11:49:42 +00:00
inflate.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
interrupt.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ioccom.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
ioctl_compat.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ioctl.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
ipc.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
jail.h Make prison structure visible from userland if _WANT_PRISON is defined 2005-03-20 10:33:27 +00:00
joystick.h Comment typo. 2005-01-07 19:31:43 +00:00
kbio.h
kdb.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
kenv.h
kernel.h Define SI_SUB_AUDIT, the system boot event to initialize the audit 2005-02-02 14:41:03 +00:00
kerneldump.h
kobj.h
kse.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
kthread.h
ktr.h Addendum to netchild's C compiler abstraction mega-patch which somehow 2005-03-04 21:26:07 +00:00
ktrace.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
libkern.h Add strspn() to libkern. 2005-02-10 20:39:39 +00:00
limits.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
linedisc.h Fix line discipline switching issues: If opening a new ldisc fails, 2004-06-26 08:44:04 +00:00
link_aout.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
link_elf.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
linker_set.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
linker.h Add a new module information type MODINFOMD_SHDR that will be used 2004-08-27 01:10:16 +00:00
lock.h
lockf.h - Make lf_print static and move its prototype into kern_lockf.c 2005-01-25 10:15:26 +00:00
lockmgr.h - Fix the lockmgr flags so that external flags and internal flags are 2005-03-28 11:31:20 +00:00
mac_policy.h Define new MAC framework and policy entry points for System V IPC 2004-11-17 13:10:16 +00:00
mac.h Define new MAC framework and policy entry points for System V IPC 2004-11-17 13:10:16 +00:00
malloc.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mbpool.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mbuf.h add m_copyup function.. This can be used to help make our ip stack less 2005-03-17 19:34:57 +00:00
mchain.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
md4.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
md5.h MD5Pad() should never have been exposed. 2005-02-10 12:20:42 +00:00
mdioctl.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
memrange.h Fix module builds for i386 and amd64. 2004-08-04 18:30:31 +00:00
mman.h Remove mlockall() and munlockall() from the list of unimplemented 2004-04-27 13:13:20 +00:00
module.h Give kldunload a -f(orce) argument. 2004-07-13 19:36:59 +00:00
mount.h - Add a 'flags' parameter to VFS_ROOT(). This is intended to allow 2005-03-24 07:29:23 +00:00
mouse.h Don't export the 'dt' field as that would break the exisiting ABI. 2004-12-13 01:23:49 +00:00
msg.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
msgbuf.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mtio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mutex.h Add macro NET_CALLOUT_MPSAFE, which should be used when initializing 2005-03-01 11:54:46 +00:00
namei.h - Add a lock flag to the component name so that namei() may request a 2005-03-29 10:04:25 +00:00
nlist_aout.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
param.h Stop building gtar. Bump __FreeBSD_version to reflect this change. 2005-03-21 05:30:58 +00:00
pciio.h
pcpu.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pioctl.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pipe.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
poll.h
posix4.h
power.h
priority.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
proc.h When the softupdates worklist gets too long, threads that attempt to 2005-03-25 17:30:31 +00:00
procfs.h type prgregset_t really should be an array. this is odd, however, other 2004-07-15 03:52:17 +00:00
protosw.h Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
ptio.h
ptrace.h Add pl_flags to ptrace_lwpinfo, two flags PL_FLAG_SA and PL_FLAG_BOUND 2004-08-08 22:26:11 +00:00
queue.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
random.h Add a note ahea of the esource enum that if new entropy source 2004-10-12 14:55:59 +00:00
reboot.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
regression.h Improve consistency of include file guards in src/sys/sys by terminating 2004-05-10 18:38:07 +00:00
resource.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
resourcevar.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
rman.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
rtprio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
runq.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
sbuf.h Have sbuf_bcat() and sbuf_bcpy() take a const void * instead of a 2004-07-09 11:35:30 +00:00
sched.h Rework the interface between priority propagation (lending) and the 2004-12-30 20:52:44 +00:00
select.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
selinfo.h Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
sem.h In the kernel-only portionss of System V IPC objects (messages, 2004-11-17 13:12:06 +00:00
sema.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
semaphore.h
serial.h Make the relationship between modem control bits and their delta cousins 2004-06-25 10:56:43 +00:00
sf_buf.h Introduce two new options, "CPU private" and "no wait", to sf_buf_alloc(). 2004-11-08 00:43:46 +00:00
shm.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
sigio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
signal.h Make this look less dubious :-) 2004-06-11 11:43:46 +00:00
signalvar.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
sleepqueue.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
smp.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
snoop.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
socket.h Make MSG_NOSIGNAL available to native programs. 2005-03-09 00:17:33 +00:00
socketvar.h Move the logic implementing retrieval of the SO_ACCEPTFILTER socket option 2005-03-12 12:57:18 +00:00
sockio.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
soundcard.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
stat.h - Declare mknod in stat.h (in addition to unistd.h), as per XSI. 2005-03-22 01:19:18 +00:00
statvfs.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
stddef.h
stdint.h
sun_disklabel.h Support VTOC volume names. This can be useful to distinguish multiple 2005-03-30 09:33:10 +00:00
sx.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
syscall.h regen 2005-03-01 17:44:34 +00:00
syscall.mk regen 2005-03-01 17:44:34 +00:00
syscallsubr.h regen 2005-03-01 17:44:34 +00:00
sysctl.h Move implementation of hw.bus.rman sysctl to subr_rman.c so that 2005-03-24 18:13:11 +00:00
sysent.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
syslimits.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
syslog.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
sysproto.h regen 2005-03-01 17:44:34 +00:00
systm.h Privatize major(). 2005-03-29 08:13:17 +00:00
taskqueue.h Add taskqueue_drain. This waits for the specified task to finish, if 2004-10-05 04:16:01 +00:00
termios.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
thr.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
tiio.h
time.h move kern_nanosleep to sys/syscallsubr.h 2005-01-19 18:09:50 +00:00
timeb.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
timepps.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
timers.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
times.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
timespec.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
timetc.h
timex.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
tree.h Add FreeBSD tag 2005-01-07 02:28:28 +00:00
tty.h Add new function ttyinitmode() which sets our systemwide default 2004-10-18 21:51:27 +00:00
ttychars.h Put the pre FreeBSD-2.x tty compat code under BURN_BRIDGES. 2004-06-21 22:57:16 +00:00
ttycom.h Retire the TIOC_REMOTE ioctl. 2004-06-25 21:54:49 +00:00
ttydefaults.h Restore TTYDEF_LFLAG to set echo bits. 2004-11-03 19:16:55 +00:00
ttydev.h Put the pre FreeBSD-2.x tty compat code under BURN_BRIDGES. 2004-06-21 22:57:16 +00:00
turnstile.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
types.h - Declare mknod in stat.h (in addition to unistd.h), as per XSI. 2005-03-22 01:19:18 +00:00
ucontext.h
ucred.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
uio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
umtx.h Allocate umtx_q from heap instead of stack, this avoids 2005-03-05 09:15:03 +00:00
un.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
unistd.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
unpcb.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
user.h Add ki_jid field to the kinfo_proc structure and store jail ID there. 2005-03-20 10:35:23 +00:00
utsname.h Remove advertising clause from University of California Regent's license, 2004-04-07 04:19:52 +00:00
uuid.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vmmeter.h Remove remnants of PGINPROF. 2004-06-08 10:37:30 +00:00
vnode.h Eliminate v_id and v_ddid. This changes struct vnode, so all 2005-03-30 03:02:16 +00:00
wait.h - Move the function prototypes for kern_setrlimit() and kern_wait() to 2005-01-05 22:19:44 +00:00
watchdog.h Add a generic watchdog facility which through a single device entry 2004-02-28 20:06:59 +00:00
xrpuio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00