aboutsummaryrefslogtreecommitdiff
path: root/toys
AgeCommit message (Collapse)Author
2014-05-15Here's a quick cleanup of md5sum. Executive summary: smaller and faster.Daniel Verkamp
On my machine, for a 2.2 GB file of random bytes, the timings with warm cache are: toybox before: 11.4 seconds toybox after: 8.3 seconds GNU md5sum: 3.9 seconds openssl dgst -md5: 3.5 seconds This is clearly better than before (3x openssl), but still slow (2x openssl). I suspect there is more low-hanging fruit to be had by eliminating the memcpy in hash_update (maybe not too much - hash_update accounts for about 4% of total runtime versus 92% for md5_transform according to perf - but this would also help sha1sum). make bloatcheck on x86_64 gcc 4.8.2 -Os: name old new delta ----------------------------------------------------------------------- md5rot 0 64 64 md5_transform 365 223 -142 ----------------------------------------------------------------------- -78 total Rationale for the changes: Move definition of 'rol' up so it can be used in md5_transform. This is purely cosmetic; it expands to exactly the same code. Put rotation counts in a lookup table instead of calculating them on the fly. This is mostly a wash size-wise, +5 bytes total, but worthwhile for readability and speed. Instead of accessing the state array using a rotating index (the variable formerly known as 'a'), access the state with constant offsets and rotate the contents of the array instead. This is the big win - it eliminates all the crazy memory addressing math inside the loop.
2014-05-15Promote sysctl from pending to other, default y.Rob Landley
2014-05-15More sysctl cleanup: fix error message on nonexistent key, write path, and -p.Rob Landley
2014-05-13Cleanup pass on sysctl.Rob Landley
Not heavily tested yet but should be finished at the design level.
2014-05-12First cleanup pass on sysctl.Rob Landley
Remove unnecessary typecasting of things that are already char * to char *, and multiplying by sizeof(char *) which is 1. Rename do_process() do_flag_a() since that's the only caller. Move read_key_values() down past trim_spaces() and read_config_file() so it's next to its only two users. Replace some euphemisms for 0 with 0. replace_char() really sounds like something libc should already have one of, but I'm blanking on it if so. (It doesn't need a temporary variable when the argument variable is already a copy so changing it won't affect the caller.)
2014-05-12Add sysctl by Bilal Qureshi.Rob Landley
2014-05-12Add arp from Sandeep Sharma and Kyungwan Han.Rob Landley
2014-05-10sizeof("string") treats it as a char array _including_ the null terminator, ↵Rob Landley
so strncmp(dest, "string", sizeof("string")) is just strcpy.
2014-05-10Initial cleanup of last: mostly whitespace, move no record test to start of ↵Rob Landley
loop, don't bother to stat an empty file to report when an empty log was created (just report current time).
2014-05-06Switch human_readable() to just outputing decimal kilo/mega/gigabytes, make ↵Rob Landley
du use it, move it from lib/pending.c to lib.c.
2014-05-02Attached is the patch for lsattr and chattr implementation.Ashwini Sharma
This is the modified and better version from the last one I sent. It is having the both the mains (lsattr_main() and chattr_main() ) in single file. Also removed the dependency of additional file in lib, as common code is in the same .c file.
2014-04-29Teach cpio to set uid/gid and timestamp. (Timestamp has year 2100 problem.)Rob Landley
Note that directory timestamps are still sometimes wrong because creating things in a directory can update the timestamp. Also, cp -r has logic to ensure we can write to a directory that doesn't have write permission, cpio does not. This is fixable, but not what existing cpio does.
2014-04-25fold cleanup: whitespace and curly brackets.Rob Landley
2014-04-25Cosmetic tweak: spell out "Linux Standard Base" in menuconfig.Rob Landley
2014-04-25Fix od bug reported by Samuel Holland ("od -v -b" was appending default ↵Rob Landley
output type even though an output type was specified).
2014-04-23Add example directory, move hello.c into it, add skeleton.c to demonstrate ↵Rob Landley
more complciated stuff (multiple commands per file, etc), and have genconfig.sh sort backwards so posix is first and example last in menuconfig.
2014-04-23As long as uClibc's still around and requires you to jump through hoops to ↵Rob Landley
get iconv(), probe and build defconfig without it if it's not there.
2014-04-23usage: is lower case (the help generator looks for that, might as well be ↵Rob Landley
consistent).
2014-04-16This version of fold fixes major bugs (infinite loop, overflow) and adds an ↵0.4.8Samuel Holland
option for un/refolding text.
2014-04-16Revert lots of half-finished local debris I didn't mean to check in with ↵Rob Landley
Isaac's roadmap update. Mercurial's "import" command is still broken, committing local tree changes to files that weren't even touched by the patch because the hg developers inisist, when I point out how stupid it is, that they meant to do that. (hg record can do hunks, but import can't even track _files_.)
2014-04-16Probe for the existence of FIFREEZE and make fsfreeze depend on it.Rob Landley
2014-04-13A tool to reset the terminal.Ashwini Sharma
This implementation depends on the _stty_ 'sane' settings.
2014-04-13An issue in ifconfig while verifying the HW Address, which is assumed to be ↵Ashwini sharma
of the format __C2:79:38:95:CD:AB__ but can be of form __C2:79:38:95:D:A__. In this case the HW address is reported as bad.
2014-04-13An implementation of __printf__ is attached.Ashwini Sharma
2014-04-13iconv cleanup.Rob Landley
2014-04-13iconv is actually something I'm missing on my current musl based system.Felix Janda
Attached is a simple version using the libc's iconv.
2014-04-12getty: build fix, clean up messages, simplify codeIsaac Dunham
build fix: xmsprintf has been renamed shorten and lowercase the error messages use xexec() instead of execlp(); perror_exit(); remove redundant variable setting
2014-04-12roadmap: describe glibc commands.Isaac Dunham
Some glibc commands are irrelevant because they're for functionality that is excluded from musl (mtrace, rpc*, localedef, iconvconfig, nscd). getconf and catchsegv look like candidates for the development toolchain; locale and iconv were already triaged. getent is pretty lame, but it and the timezone stuff (tzselect zic zdump) are the only new possibly interesting commands.
2014-04-10Fix date setting, and fluff out help text a bit.Rob Landley
2014-04-09modprobe: cleanup, incorporate Ashwini's fix for alias loadingIsaac Dunham
Move <fnmatch.h> to toys.h, since it's POSIX. Avoid duplicating code in an if/else block. Terser error messages, spelling. Don't always print the state.
2014-04-09Bugfix: if $TERM and friends aren't set, putenv() got passed a NULL.Rob Landley
2014-04-09Modprobe from Madhur Verma and Kyungwan Han.Rob Landley
2014-04-09A getty implementation from Sandeep Sharma and Kyungwan Han.Rob Landley
2014-04-03openvt tries opening several devices to get an fd that points to the current ↵Isaac Dunham
console, without a need for read or write permissions. O_RDWR implies that both O_RDONLY and O_WRONLY would work, so skip it. Reindent.
2014-04-03Here is a basic implementation of fold[0]. It does not support multibyte ↵Samuel Holland
characters, though that would probably just require more switch cases.
2014-04-02Decided not to go with the sflate implementation of deflate/inflate. The ↵Rob Landley
decompression side's already reimplemented in compress, and I'm working on compression side.
2014-04-02In ifconfig.c, there is a glitch in function get_addrinfo() when computing ↵Ashwini Sharma
the prefix length.
2014-04-01New toy fsfreeze, from Isaac Dunham, plus minor cleanups.Rob Landley
2014-03-29Group headers by standard (POSIX or LSB) or function (internationalization, ↵Rob Landley
networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
2014-03-29find: clarify and expand the help for find -typeIsaac Dunham
2014-03-28Add help -a (to show all commands) and -h (to produce HTML output).Rob Landley
2014-03-27Fix cpio -it: don't close(fd) unless we opened it.Isaac Dunham
2014-03-26More cpio bugfixes from Isaac Dunham.Rob Landley
Fix FLAG_o to actually be 1 like the comment says, don't try to strlen(name) before reading it, pad TRAILER!!! entry correctly.
2014-03-25Promote cpio out of pending.Rob Landley
After some waffling I put it in "posix", even though it was last specified in susv2 (where it was the obsolete 6 byte header entries predating susv4). LSB specifies it, including the 8 byte header fields, but for the actual command it just references SUSv2. (LSB isn't so much a standard as Red Hat's "notes to self".)
2014-03-25Several cpio bugfixes spotted by Isaac Dunham.Rob Landley
2014-03-24Most of the remaining cpio cleanup.Rob Landley
2014-03-16Clarify an unclear comment pointed out by Steve Long.Rob Landley
2014-03-15Next round of cpio cleanup.Rob Landley
2014-03-13Cleanup cpio: use getline() instead of fgets(), have getline() allocate its ↵Rob Landley
own memory (instead of using toybuf), use perror_msg() instead of lower level verror_msg() (which is really an internal function needed to implement perror_msg()), don't set execute bits on created archive.
2014-03-13Cleanup cpio: fiddle with help text, make option parsing require/exclude ↵Rob Landley
-iot combinations, move loopfiles_stdin() down after write_cpio_member() so we can hardwire it instead of using a function pointer that only ever has one value.