Home | History | Annotate | Download | only in dd
History log of /src/bin/dd/dd.h
RevisionDateAuthorComments
 1.16  18-Mar-2015  manu branches: 1.16.16;
Add iflag and oflag operands to dd(1)

Like GNU dd(1) similar operands, iflag and oflag allow specifying the
O_* flags given to open(2) for the input and the output file. The values
are comma-sepratated, lower-case, O_ prefix-stripped constants documented
in open(2).

Since iflag and oflag override default values, specifying oflag means
O_CREATE is not set by default and must be specified explicitely.

Some values do not make sense (e.g.: iflag=directory) but are still used
and will raise a warning. For oflag, values rdonly, rdwr and wronly are
filtered out with a warning (dd(1) attempts open(2) with O_RDWR and
then O_WRONLY on failure).

Specifying oflag=trunc along with (seek, oseek or conv=notrunc) is
contradictory and will raise an error.

iflag and oflag are disabled if building with -DMALLPROG
 1.15  04-Feb-2011  pooka branches: 1.15.24;
Remove the rif/rof options and add rump.dd. This makes usage
consistent with other rump clients. Copying between kernels is
done using the host pipe, e.g.:

dd if=foo rof=bar skip=1 seek=1 => dd if=foo skip=1 | rump.dd of=bar seek=1

Also, the pipe idiom extends to copying between different rump
kernels, e.g.:

env RUMP_SERVER=unix://srv1 rump.dd if=thefile \
| env RUMP_SERVER=unix://srv2 rump.dd of=thefile

Pipe approach suggested by yamt (thanks!)
 1.14  06-Dec-2010  pooka branches: 1.14.2;
Fix most inopportune typo. from gson & jmmv.
 1.13  22-Nov-2010  pooka Add two new operands: "rif" and "rof". They operate exactly like
"if" and "of" with the exception that the communicate with a rump
kernel instead of the host kernel.

For example, to write stdout to /tmp/file.txt in a rump kernel namespace:
dd rof=/tmp/file.txt

copy /file1 to /file2 inside a rump kernel:
dd rif=/file1 rof=/file2

copy a snippet from /dev/rmd0d on the rump kernel to the host fs:
dd rif=/dev/rmd0d of=save seek=1000 count=3

Eat that, usermode OS.

(I'll document the operands one I have some manpage to refer to
for rump client use).
 1.12  17-Jan-2004  dbj add support for conv=sparse
inspired by freebsd, although this patch attempts
to avoid some potential bugs in their implementation.
 1.11  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22249, verified by myself.
 1.10  10-Jan-2002  lukem Convert some variables that were signed ints before my update to 64 bit sizes
from uint64_t to int64_t. Fixes [bin/15187]
 1.9  26-Nov-2001  lukem Replace {u_,}longlong_t usage with {u,}int64_t, as the former has
"issues" and really shouldn't be used outside of the Sun XDR stuff.
Thanks again to Chuck Silvers for reminding me.
 1.8  25-Nov-2001  lukem - Use u_longlong_t instead of u_quad_t, u_long, or int for various buffer sizes
- Add strsuftoull(), which parses a number into a u_longlong_t, with
multiplication support, and support for 'g' (GB) and 't' (TB) suffices.
If an error occurs, print to stderr and exit.
Based on get_blk() from args.c and strsufto*() (in other programs)
- Add strsuftoullx(), which acts as per strsuftoull() but returns the
error in the supplied buffer instead (if the returned buffer != "", an
error occurred)
- Replace get_bsz() use with strsuftoull()
- Remove (now) unnecessary argument validation
- Remove unused {f,p,s,t}_stats fields in struct IO
 1.7  25-Nov-2001  lukem - ANSI KNF
- WARNS=2 (mainly converting some "char *" -> "const char *")
 1.6  28-Apr-2001  ross In the words of Our Fearless Leader, I am "utterly sick" of dd(1)
lying to me about transfer rates. Do some fixed point frobbing to get
stuff like: 2486864 bytes transferred in 0.272 secs (9142882 bytes/sec)
 1.5  04-Feb-1998  enami Use u_quad_t instead of u_long to define struct STAT.bytes, which
is used to count bytes transfered, so that it won't overflow even if
transfer is more than 4Gbytes.
 1.4  21-Mar-1995  cgd convert to new RCS id conventions.
 1.3  22-Sep-1994  mycroft Merge 4.4-Lite version.
 1.2  01-Aug-1993  mycroft Add RCS identifiers.
 1.1  04-May-1993  glass branches: 1.1.1;
added dd(1) from ftp.uu.net:bsd-sources; torching GNU dd
 1.1.1.1  22-Sep-1994  mycroft Import original 4.4-Lite version.
 1.14.2.1  08-Feb-2011  bouyer Sync with HEAD
 1.15.24.1  26-Mar-2015  martin Pull up following revision(s) (requested by manu in ticket #640):
bin/dd/extern.h: revision 1.23
bin/dd/dd.1: revision 1.26
bin/dd/dd.1: revision 1.27
bin/dd/dd.h: revision 1.16
bin/dd/dd.c: revision 1.50
bin/dd/Makefile: revision 1.18
bin/dd/args.c: revision 1.39
Add iflag and oflag operands to dd(1)

Like GNU dd(1) similar operands, iflag and oflag allow specifying the
O_* flags given to open(2) for the input and the output file. The values
are comma-sepratated, lower-case, O_ prefix-stripped constants documented
in open(2).

Since iflag and oflag override default values, specifying oflag means
O_CREATE is not set by default and must be specified explicitely.
Some values do not make sense (e.g.: iflag=directory) but are still used
and will raise a warning. For oflag, values rdonly, rdwr and wronly are
filtered out with a warning (dd(1) attempts open(2) with O_RDWR and
then O_WRONLY on failure).

Specifying oflag=trunc along with (seek, oseek or conv=notrunc) is
contradictory and will raise an error.

iflag and oflag are disabled if building with -DMALLPROG

New sentence, new line. Fix typos. Bump date for previous.
 1.16.16.2  21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.16.16.1  21-Apr-2020  martin Sync with HEAD

RSS XML Feed