Lines Matching +full:has +full:- +full:builtin +full:- +full:dma
1 .\" ----------------------------------------------------------------------------
2 .\" "THE BEER-WARE LICENSE" (Revision 42):
5 .\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
6 .\" ----------------------------------------------------------------------------
13 - or -
17 Poul-Henning Kamp <phk@FreeBSD.org>
22 they they left the file-system layer were logical sub disk implementation
27 able to co-exist with other operating systems on the same disk.
37 This paper contains the road-map for a stackable "BIO" system in
44 of struct buf, it is a most enlightening case of not exactly bit-rot
45 but more appropriately design-rot.
93 If we step forward to the BSD 4.4-Lite-2 release, struct buf has grown
136 the linked list the drivers can use has been renamed (b_actf,
137 b_actb) and a b_iodone pointer for callback notification has been added
140 aspect, link buffers to the VM system, provide hacks for file-systems
143 By the time we get to FreeBSD 3.0 more stuff has grown on struct buf:
198 This p_blkno is relevant, it has been added because the disklabel/slice
210 of code have emerged which need to do non-trivial translations of
217 routine (p. 16-2) writes \fIThe code in this procedure incorporates
274 Without doubt, the I/O request has to be tuned to fit the needs
279 One particular change which has been proposed is to drop the present
282 physical address DMA to transfer the data maintaining such a mapping
321 opposed to "hi-jacked" fields).
322 One field was found to have "dual-use": the b_flags field.
338 This has left sufficiently many now unused bits in b_flags that the b_xflags element
380 struct bio b_io; /* "Builtin" I/O request. */
411 which means that certain pieces of code can be left un-converted with the
413 The ccd and vinum modules have been left un-converted like this for now.
415 This is basically where FreeBSD-current stands today.
439 Retaining the aliasing for the b_* and bio_* name-spaces this way
443 into the drivers to full-fill the I/O request and this provides us
444 with a single isolated location for performing non-trivial translations.
446 As an example of this flexibility: It has been proposed to essentially
448 on-disk location of the data. b_blkno is a 32bit offset of B_DEVSIZE
450 of data. Using b_offset as a 64 bit byte-address would not only allow
452 possible to accommodate disks which use non-power-of-two sector-size,
453 Audio CD-ROMs for instance.
467 Another possible transition could be to not have a "built-in" struct bio
470 un-alias the fields and have DEV_STRATEGY() allocate a struct bio and populate
484 In traditional UNIX semantics a "disk" is a one-dimensional array of
486 …lemented with a sort of "don't ask-don't tell" policy where system administrator would specify a l…
492 \(bu What is the sector size. Sector-size these days may not be a power
500 devices where a wear-distribution software or hardware function uses
504 \(bu Is opening this device in a specific mode, (read-only or read-write)
505 allowed. The VM system and the file-systems generally assume that nobody
510 This is useful for staying compatible with badly designed on-disk formats
515 at any time. While some devices like CD-ROMs can lock the media in
521 Mirroring, RAID, striping, interleaving, disk-labels and sub-disks, all of
527 all hard to emulate so implementation-wise this is a non-issue.
546 DML: box dashed width 4i height .9i with .sw at SL0.sw + (-.2,-.2)
547 "Disk-mini-layer" with .n at DML.s + (0, .1)
628 The first thing we notice is that the disk mini-layer is gone, instead
643 A number of the geometry modules have registered as "auto-discovering"
681 on, but this is probably better implemented in a general "device-daemon"
682 in user-land.
685 accessed from user-land or kernel. The VM and file-systems generally
701 This time however, it finds that it has already opened the "downstream"
706 same case, the MBR finds no overlapping open slices and has already
709 If we now try to open the other slice for writing, the one which has the
718 of intent to eject, a call-up from the driver can try to get devices synchronised
720 a unplugged parallel zip drive, a floppy disk or a PC-card, we have no
724 the two mounted file-systems which in turn unmounts forcefully, invalidates
764 but the mirror module still has a valid mirror from disk da1, so it
766 file-systems mounted are not affected.
771 insert a mirroring module, since it has a 1:1 mapping from input
788 \(bu The disk-mini-layer has
790 majority of the disk-drivers, saving on average 100 lines of code per
812 The next step is to re-implement the monolithic disk-mini-layer so
815 the current and the new disk-mini-layer. The new implementation
824 BIO system: CCD can be re-implemented as a mirror module and a stripe
825 module. Vinum can be integrated either as one "macro-module" or
827 purposes can be added, sub-disk handling for Solaris, MacOS, etc