Commit Graph

134 Commits

Author SHA1 Message Date
mlelstv ab1ad50d80 Don't use the signal handler to terminate when nothing is to do (count=0, files=0).
The signal handler tries to raise the signal again, so that a parent can retrieve
the signal from the exit code. Calling the terminate handler with signal code 0
doesn't raise a signal and dd continues with exit(127) making this case an error.
2024-01-26 07:10:04 +00:00
christos f49d542542 update header too. 2022-01-14 23:56:35 +00:00
christos 62a484e15a The "ibm" and "oldibm" tables are identical, because POSIX just
standardised the table from V7. Nobody, including the original authors,
seems to have noticed this.  Merge them and update the documentation.
Also fix the odd, inconsistent, spelling of "pre-4.3BSD-Reno").
(From nabijaczleweli)
2022-01-14 23:55:16 +00:00
rillig ac96e5dd30 dd: fix lint warnings about effectively discarding 'const'
args.c(153): warning: call to 'bsearch' effectively discards 'const'
    from argument [346]
args.c(383): dito
args.c(475): dito

No functional change.
2021-10-09 21:31:36 +00:00
rillig 4cea8ecbb7 dd: clean up function summary
No functional change. Ideally the binary would have stayed the same, but
GCC 10.3.0 inserts a nop and reorders the code.
2021-10-09 20:44:55 +00:00
rillig 2dcff222a4 dd: fix lint error about 'return expr' from void function
No change to the resulting binary. The 'return' statements are necessary
for GCC to generate the exact same object code, even though they can be
removed without affecting the functionality, as seen before the 'else'.
2021-10-09 20:29:23 +00:00
christos 45fcea9556 PR/56443: RVP: dd conv=swab doesn't always work 2021-10-08 14:44:48 +00:00
rillig 4cb8752908 bin: remove unnecessary lint comment CONSTCOND
Since 2021-01-31, lint no longer warns about 'do ... while (0)'.

No functional change.
2021-09-10 22:11:03 +00:00
nia 50a9421fb2 dd.1: add an example of writing a NetBSD image 2021-05-18 07:17:09 +00:00
mrg 924b11844c copy libc's swab.c into dd as dd_swab(), and remove the restrict.
our implementation was fine, but the restrict marker is problematic
as gcc 8 is now more strict about checking for restrict issues.

this is the only actual consumer of swab(3) in our tree, though,
besides the test for it.  oh well.
2019-10-04 08:57:37 +00:00
kamil 597efdbfe5 Drop -D_INCOMPLETE_XOPEN_C063 from dd(1) 2019-09-15 23:58:31 +00:00
mlelstv a7b9d4bbeb When buffers are at least page sized, explicitely request page alignment. 2019-03-23 09:33:16 +00:00
wiz 539951b361 Fix typos; use American spelling consistently. Remove an unnecessary macro. 2019-01-30 10:28:50 +00:00
mrg d9150b46de adjust the open flags available for dd to match actual reality
of what matters.  remove "search" for now, since O_SEARCH has
no backend.  document them all.
2019-01-30 01:40:02 +00:00
wiz 39b251a71c Use Ex. 2017-07-04 06:46:51 +00:00
wiz 01869ca4d2 Remove workaround for ancient HTML generation code. 2017-07-03 21:28:48 +00:00
sevan 51fe790c4c Drop main() prototype. 2016-09-05 01:00:07 +00:00
sevan b61c439d62 bump date 2016-08-18 22:43:49 +00:00
sevan 6e78a5b106 dd first appeared in V5, not V1
Heads up by Ingo Schwarze
http://www.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s1/dd.c
2016-08-18 22:42:28 +00:00
sevan c616fdebbe Document the version dd first appeared.
Bump date.
2016-08-11 01:23:03 +00:00
sevan 787b668508 Pp not required before Bd, picked up by mandoc lint 2016-08-11 01:20:51 +00:00
sevan ddd300cc05 The macro to cross-reference is Xr, not Xt.
Fix typo error picked up by mandoc lint.
2016-08-11 01:14:01 +00:00
wiz bb4a52d96c New sentence, new line. Fix typos. Bump date for previous. 2015-03-18 13:30:13 +00:00
manu ea3c6ee530 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
2015-03-18 13:23:49 +00:00
christos 37a296c0b9 PR/48057: psi: skip and msgfmt cannot be used together. Looks like a pasto;
fixed.
2013-07-17 12:55:48 +00:00
christos aa24bb3ca4 let the standard rules deal with librumpclient 2012-08-08 14:09:14 +00:00
wiz 5ac3b50142 - sync `SYNOPSIS' with dd.c's `usage' line;
- correct spelling (prepositions).

From Bug Hunting.
2012-06-20 17:54:16 +00:00
matt 3ee36a48b5 Fix a very old bug. When allocating the buffer and doing just a bs= transfer,
hen we only need a single buffer equal to that blocksize in length.
2012-02-21 01:49:01 +00:00
jym 331bd1b067 As suggested by Enami, rework the msgfmt logic a bit:
- error out when an unknown specifier is used. Do this in f_msgfmt(),
before dd(1) starts operation.
- allow buffer_write() to flush the internal buffer even when NULL is
passed as parameter.

Some whitespace fixes too.
2011-11-07 22:24:23 +00:00
jym 234ccf064a Add a new command to dd(1): msgfmt. The command modifies the
output of the information summary returned by dd(1). This can be used
to specify messages in a more usable (or parseable) format like
human-readable values.

My intent is to re-use this for building image files and quick I/O
benchmarking.

Reviewed by tsutsui@ on tech-userlevel. See also
http://mail-index.netbsd.org/tech-userlevel/2010/12/03/msg004179.html

Some examples:

 $ dd if=/dev/zero of=/dev/null bs=1m count=1 msgfmt=human
1+0 records in
1+0 records out
1048576 bytes (1,0 MB) transferred in 0.001 secs (1048576000 bytes/sec - 1,0 GB/sec)

 $ dd if=/dev/zero of=/dev/null count=1 msgfmt='
 > <speed>%E</speed>
 > <time>%s</time>
 > <bytes>%b</bytes>
 > '
<speed>500 KB/sec</speed>
<time>0.001</time>
<bytes>512</bytes>
2011-11-06 21:22:23 +00:00
joerg 6b5273200c Use __dead for the small build too 2011-09-16 16:06:23 +00:00
joerg 5bb1ddccc2 Use __dead 2011-08-29 14:51:17 +00:00
pooka 37c4e1235f 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!)
2011-02-04 19:42:12 +00:00
jym d4045078ec No need to cast with bsearch(), it returns a void *. Use __arraycount(). 2011-01-13 23:45:13 +00:00
riz d766fd33f5 Fix speling ("deferred," not "defered") as reported in #netbsd-code on
freenode IRC.  While I'm here, clean up the wording later in the comment.
2010-12-23 21:55:40 +00:00
enami a46391d703 Add iseek and oseek option as aliases for skip and seek respectively.
These options exist in dd of solaris or svr3.  From FreeBSD.
2010-12-22 09:42:53 +00:00
enami db65e26847 Copy argument before modifying it so that ps shows entire argument.
From OpenBSD via FreeBSD.
2010-12-22 09:39:06 +00:00
pooka e5d7b7bef0 remove some leftover development garbage 2010-12-14 19:04:05 +00:00
pooka 49242e416d Make compile on non-NetBSD. 2010-12-14 19:03:21 +00:00
enami 8701b1fd0e Wrap long line. 2010-12-09 10:24:56 +00:00
pooka 39a175ce63 Fix most inopportune typo. from gson & jmmv. 2010-12-06 15:23:29 +00:00
jym 44e64860fc Hmm, for 'rof', I believe that C_ROF|C_OF is invalid rather than
C_ROF|C_ROF.

Hi pooka :)
2010-12-05 23:35:59 +00:00
pooka 7192ed629b extra crunchgen hoops 2010-11-22 21:59:09 +00:00
pooka 6b03da8b7e 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).
2010-11-22 21:04:27 +00:00
joerg 0739fbbbf2 Don't workaround macro argument limit in ancient troff. 2009-03-11 12:43:58 +00:00
lukem 9050ab5cfa fix -Wsign-compare issues 2009-02-14 07:12:29 +00:00
lukem 2fe2731d3f Remove the \n and tabs from the __COPYRIGHT() strings. 2008-07-20 00:52:39 +00:00
christos 9655f5c24c PR/38755: murray armfield: /bin posix programs missing setprogname and/or
setlocale
2008-05-26 14:21:08 +00:00
lukem db822d2217 Convert to using raise_default_signal(3). 2007-10-05 07:22:23 +00:00
lukem 4cac80e3e4 In the SIGINT handler, explicitly display a summary and then raise the
default SIGINT handler to exit, rather than exit(0) and relying upon the
atexit() to display the summary.
Per SUS6.
2007-07-03 05:25:25 +00:00