commit bbd10e0d3036a40260f41eae445488baf7bf27a1
Author:     Roberto E. Vargas Caballero <k...@shike2.com>
AuthorDate: Wed Mar 13 13:47:59 2024 +0100
Commit:     Roberto E. Vargas Caballero <k...@shike2.com>
CommitDate: Wed Mar 13 13:47:59 2024 +0100

    Move more things around

diff --git a/ubase/ctrlaltdel.8 b/linux/ctrlaltdel.8
similarity index 100%
rename from ubase/ctrlaltdel.8
rename to linux/ctrlaltdel.8
diff --git a/ubase/ctrlaltdel.c b/linux/ctrlaltdel.c
similarity index 100%
rename from ubase/ctrlaltdel.c
rename to linux/ctrlaltdel.c
diff --git a/ubase/insmod.8 b/linux/insmod.8
similarity index 100%
rename from ubase/insmod.8
rename to linux/insmod.8
diff --git a/ubase/insmod.c b/linux/insmod.c
similarity index 100%
rename from ubase/insmod.c
rename to linux/insmod.c
diff --git a/ubase/df.1 b/posix/df.1
similarity index 100%
rename from ubase/df.1
rename to posix/df.1
diff --git a/ubase/df.c b/posix/df.c
similarity index 100%
rename from ubase/df.c
rename to posix/df.c
diff --git a/ubase/id.1 b/posix/id.1
similarity index 100%
rename from ubase/id.1
rename to posix/id.1
diff --git a/ubase/id.c b/posix/id.c
similarity index 100%
rename from ubase/id.c
rename to posix/id.c
diff --git a/ubase/ps.1 b/posix/ps.1
similarity index 100%
rename from ubase/ps.1
rename to posix/ps.1
diff --git a/ubase/ps.c b/posix/ps.c
similarity index 100%
rename from ubase/ps.c
rename to posix/ps.c
diff --git a/ubase/who.1 b/posix/who.1
similarity index 100%
rename from ubase/who.1
rename to posix/who.1
diff --git a/ubase/who.c b/posix/who.c
similarity index 100%
rename from ubase/who.c
rename to posix/who.c
diff --git a/ubase/dd.1 b/ubase/dd.1
deleted file mode 100644
index 477e99f..0000000
--- a/ubase/dd.1
+++ /dev/null
@@ -1,66 +0,0 @@
-.Dd February 2, 2015
-.Dt DD 1
-.Os ubase
-.Sh NAME
-.Nm dd
-.Nd convert and copy a file
-.Sh SYNOPSIS
-.Nm
-.Op Ar operand...
-.Sh DESCRIPTION
-.Nm
-copies the standard input to the standard output. By default input data is
-read and written in 64kB blocks. When finished,
-.Nm
-displays the number of records read and written as well as the total number
-of bytes copied.
-.Nm
-syncs the filesystem once it is done copying. If you want to disable that use
-the
-.Ar nosync
-option.
-.Sh OPTIONS
-.Bl -tag -width Ds
-.It Ar bs Ns Op Ar =N
-If
-.Ar bs
-is not specified, the default blocksize is 64kB. If
-.Ar bs
-is specified
-without setting it to a specific value then an optimal value between the
-source and target filesystem will be selected. If this process fails it will
-fallback to the system's pagesize. Adjust
-.Ar N
-to set the block size of the transfers in bytes.
-.It Ar count=N
-Copy only
-.Ar N
-input blocks.
-.It Ar direct
-Use direct I/O for data.
-.It Ar if=file
-Read input from
-.Ar file
-instead of the standard input.
-.It Ar nosync
-Do not sync the filesystem once we are done copying.
-.It Ar quiet
-Enable quiet output.
-.It Ar of=file
-Write output to
-.Ar file
-instead of the standard output. If an initial portion of the output
-.Ar file
-is skipped using the seek operand, the output file is truncated at that
-point.
-.It Ar seek=N
-Seek
-.Ar N
-blocks from the beginning of the output before copying.
-.It Ar skip=N
-Skip
-.Ar N
-blocks from the beginning of the input before copying.
-.It Ar conv=notrunc
-Do not truncate the output file.
-.El
diff --git a/ubase/dd.c b/ubase/dd.c
deleted file mode 100644
index 2dce98e..0000000
--- a/ubase/dd.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/* (C) 2011-2012 Sebastian Krahmer all rights reserved.
- *
- * Optimized dd, to speed up backups etc.
- *
- * Permission has been granted to release this code under MIT/X.
- * The original code is at https://github.com/stealth/odd.  This
- * version of the code has been modified by s...@2f30.org.
- */
-#include <sys/ioctl.h>
-#include <sys/mount.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/vfs.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-
-#include "util.h"
-
-struct dd_config {
-       const char *in, *out;
-       uint64_t skip, seek, count, b_in, b_out, rec_in, rec_out;
-       off_t fsize;
-       blksize_t bs;
-       char quiet, nosync, notrunc, direct;
-       time_t t_start, t_end;
-};
-
-static int sigint = 0;
-
-static void
-sig_int(int unused_1, siginfo_t *unused_2, void *unused_3)
-{
-       (void) unused_1;
-       (void) unused_2;
-       (void) unused_3;
-       sigint = 1;
-}
-
-static int
-prepare_copy(struct dd_config *ddc, int *ifd, int *ofd)
-{
-       struct stat st;
-       int fli = O_RDONLY|O_LARGEFILE|O_NOCTTY, flo = 
O_WRONLY|O_LARGEFILE|O_CREAT|O_NOATIME|O_NOCTTY;
-       long pagesize;
-
-       if (ddc->direct) {
-               fli |= O_DIRECT;
-               flo |= O_DIRECT;
-       }
-
-       if (!ddc->in) *ifd = 0;
-       else if ((*ifd = open(ddc->in, fli)) < 0)
-               return -1;
-
-       if (fstat(*ifd, &st) < 0)
-               return -1;
-
-       ddc->fsize = st.st_size;
-
-       /* If "bsize" is not given, use optimum of both FS' */
-       if (!ddc->bs) {
-               struct statfs fst;
-               memset(&fst, 0, sizeof(fst));
-               pagesize = sysconf(_SC_PAGESIZE);
-               if (pagesize <= 0)
-                       pagesize = 0x1000;
-               if (statfs(ddc->out, &fst) < 0 || fst.f_bsize == 0)
-                       fst.f_bsize = pagesize;
-               if ((unsigned long)fst.f_bsize > (unsigned long)st.st_blksize)
-                       ddc->bs = fst.f_bsize;
-               else
-                       ddc->bs = st.st_blksize;
-               if (ddc->bs == 0)
-                       ddc->bs = pagesize;
-       }
-
-       /* check if device or regular file */
-       if (!S_ISREG(st.st_mode)) {
-               if (S_ISBLK(st.st_mode)) {
-                       if (ioctl(*ifd, BLKGETSIZE64, &ddc->fsize) < 0) {
-                               close(*ifd);
-                               return -1;
-                       }
-               } else {
-                       ddc->fsize = (off_t)-1;
-               }
-       }
-
-       /* skip and seek are in block items */
-       ddc->skip *= ddc->bs;
-       ddc->seek *= ddc->bs;
-
-       /* skip more bytes than are inside source file? */
-       if (ddc->fsize != (off_t)-1 && ddc->skip >= (uint64_t)ddc->fsize) {
-               errno = EINVAL;
-               close(*ifd);
-               return -1;
-       }
-
-       if (!ddc->seek && !ddc->notrunc)
-               flo |= O_TRUNC;
-
-       if (!ddc->out) *ofd = 1;
-       else if ((*ofd = open(ddc->out, flo, st.st_mode)) < 0) {
-               close(*ifd);
-               return -1;
-       }
-
-       if (ddc->seek && !ddc->notrunc) {
-               if (fstat(*ofd, &st) < 0)
-                       return -1;
-               if (!S_ISREG(st.st_mode))
-                       ;
-               else if (ftruncate(*ofd, ddc->seek) < 0)
-                       return -1;
-       }
-
-       if (lseek(*ifd, ddc->skip, SEEK_CUR) < 0) {
-               char buffer[ddc->bs];
-               for (uint64_t i = 0; i < ddc->skip; i += ddc->bs) {
-                       if (read(*ifd, &buffer, ddc->bs) < 0) {
-                               errno = EINVAL;
-                               close(*ifd);
-                               return -1;
-                       }
-               }
-       }
-       lseek(*ofd, ddc->seek, SEEK_CUR);
-       posix_fadvise(*ifd, ddc->skip, 0, POSIX_FADV_SEQUENTIAL);
-       posix_fadvise(*ofd, 0, 0, POSIX_FADV_DONTNEED);
-
-       /* count is in block items too */
-       ddc->count *= ddc->bs;
-
-       /* If no count is given, its the filesize minus skip offset */
-       if (ddc->count == (uint64_t) -1)
-               ddc->count = ddc->fsize - ddc->skip;
-
-       return 0;
-}
-
-static int
-copy_splice(struct dd_config *ddc)
-{
-       int ifd, ofd, p[2] = {-1, -1};
-       ssize_t r = 0;
-       size_t n = 0;
-
-       if (prepare_copy(ddc, &ifd, &ofd) < 0)
-               return -1;
-       if (pipe(p) < 0) {
-               close(ifd); close(ofd);
-               close(p[0]); close(p[1]);
-               return -1;
-       }
-#ifdef F_SETPIPE_SZ
-       for (n = 29; n >= 20; --n) {
-               if (fcntl(p[0], F_SETPIPE_SZ, 1<<n) != -1)
-                       break;
-       }
-       errno = 0;
-#endif
-       n = ddc->bs;
-       for (;ddc->b_out != ddc->count && !sigint;) {
-               if (r < 0)
-                       break;
-               if (n > ddc->count - ddc->b_out)
-                       n = ddc->count - ddc->b_out;
-               r = splice(ifd, NULL, p[1], NULL, n, SPLICE_F_MORE);
-               if (r <= 0)
-                       break;
-               ++ddc->rec_in;
-               r = splice(p[0], NULL, ofd, NULL, r, SPLICE_F_MORE);
-               if (r <= 0)
-                       break;
-               ddc->b_out += r;
-               ++ddc->rec_out;
-       }
-
-       if (sigint)
-               fprintf(stderr, "SIGINT! Aborting ...\n");
-
-       close(ifd);
-       close(ofd);
-       close(p[0]);
-       close(p[1]);
-       if (r < 0)
-               return -1;
-       return 0;
-}
-
-static int
-copy(struct dd_config *ddc)
-{
-       int r = 0;
-
-       ddc->t_start = time(NULL);
-
-       r = copy_splice(ddc);
-       ddc->t_end = time(NULL);
-
-       /* avoid div by zero */
-       if (ddc->t_start == ddc->t_end)
-               ++ddc->t_end;
-       return r;
-}
-
-static void
-print_stat(const struct dd_config *ddc)
-{
-       if (ddc->quiet)
-               return;
-
-       fprintf(stderr, "%"PRIu64" records in\n", ddc->rec_in);
-       fprintf(stderr, "%"PRIu64" records out\n", ddc->rec_out);
-       fprintf(stderr, "%"PRIu64" bytes (%"PRIu64" MB) copied", ddc->b_out,
-               ddc->b_out/(1<<20));
-       fprintf(stderr, ", %lu s, %f MB/s\n",
-               (unsigned long)ddc->t_end - ddc->t_start,
-               ((double)(ddc->b_out/(1<<20)))/(ddc->t_end - ddc->t_start));
-}
-
-static void
-usage(void)
-{
-       eprintf("usage: %s [-h] [if=infile] [of=outfile] [bs[=N]] [seek=N] "
-               "[skip=N] [count=N] [direct] [quiet] [nosync]"
-               "[conv=notrunc]\n", argv0);
-}
-
-int
-main(int argc, char *argv[])
-{
-       int i = 0;
-       char buf[1024];
-       struct dd_config config;
-       struct sigaction sa;
-
-       argv0 = argv[0];
-       memset(&config, 0, sizeof(config));
-       config.bs = 1<<16;
-       config.in = NULL;
-       config.out = NULL;
-       config.count = (uint64_t) -1;
-
-       /* emulate 'dd' argument parsing */
-       for (i = 1; i < argc; ++i) {
-               memset(buf, 0, sizeof(buf));
-               if (strncmp(argv[i], "if=", 3) == 0)
-                       config.in = argv[i]+3;
-               else if (strncmp(argv[i], "of=", 3) == 0)
-                       config.out = argv[i]+3;
-               else if (sscanf(argv[i], "skip=%1023s", buf) == 1)
-                       config.skip = estrtoul(buf, 0);
-               else if (sscanf(argv[i], "seek=%1023s", buf) == 1)
-                       config.seek = estrtoul(buf, 0);
-               else if (sscanf(argv[i], "count=%1023s", buf) == 1)
-                       config.count = estrtoul(buf, 0);
-               else if (strcmp(argv[i], "direct") == 0)
-                       config.direct = 1;
-               else if (sscanf(argv[i], "bs=%1023s", buf) == 1)
-                       config.bs = estrtoul(buf, 0);
-               else if (strcmp(argv[i], "bs") == 0)
-                       config.bs = 0;
-               else if (strcmp(argv[i], "quiet") == 0)
-                       config.quiet = 1;
-               else if (strcmp(argv[i], "nosync") == 0)
-                       config.nosync = 1;
-               else if (strcmp(argv[i], "conv=notrunc") == 0)
-                       config.notrunc = 1;
-               else if (strcmp(argv[i], "-h") == 0)
-                       usage();
-       }
-
-       signal(SIGPIPE, SIG_IGN);
-
-       sa.sa_flags = SA_SIGINFO;
-       sigemptyset(&sa.sa_mask);
-       sa.sa_sigaction = sig_int;
-
-       if (sigaction(SIGINT, &sa, NULL) == -1)
-               weprintf("sigaction");
-
-       if (copy(&config) < 0)
-               weprintf("copy:");
-       print_stat(&config);
-
-       if (config.nosync == 0)
-               sync();
-       return errno;
-}
diff --git a/ubase/dmesg.1 b/unix/dmesg.1
similarity index 100%
rename from ubase/dmesg.1
rename to unix/dmesg.1
diff --git a/ubase/dmesg.c b/unix/dmesg.c
similarity index 100%
rename from ubase/dmesg.c
rename to unix/dmesg.c
diff --git a/ubase/getty.8 b/unix/getty.8
similarity index 100%
rename from ubase/getty.8
rename to unix/getty.8
diff --git a/ubase/getty.c b/unix/getty.c
similarity index 100%
rename from ubase/getty.c
rename to unix/getty.c
diff --git a/ubase/last.c b/unix/last.c
similarity index 100%
rename from ubase/last.c
rename to unix/last.c
diff --git a/ubase/lastlog.8 b/unix/lastlog.8
similarity index 100%
rename from ubase/lastlog.8
rename to unix/lastlog.8
diff --git a/ubase/lastlog.c b/unix/lastlog.c
similarity index 100%
rename from ubase/lastlog.c
rename to unix/lastlog.c
diff --git a/ubase/login.1 b/unix/login.1
similarity index 100%
rename from ubase/login.1
rename to unix/login.1
diff --git a/ubase/login.c b/unix/login.c
similarity index 100%
rename from ubase/login.c
rename to unix/login.c
diff --git a/ubase/mknod.1 b/unix/mknod.1
similarity index 100%
rename from ubase/mknod.1
rename to unix/mknod.1
diff --git a/ubase/mknod.c b/unix/mknod.c
similarity index 100%
rename from ubase/mknod.c
rename to unix/mknod.c
diff --git a/ubase/mount.8 b/unix/mount.8
similarity index 100%
rename from ubase/mount.8
rename to unix/mount.8
diff --git a/ubase/mount.c b/unix/mount.c
similarity index 100%
rename from ubase/mount.c
rename to unix/mount.c
diff --git a/ubase/passwd.1 b/unix/passwd.1
similarity index 100%
rename from ubase/passwd.1
rename to unix/passwd.1
diff --git a/ubase/passwd.c b/unix/passwd.c
similarity index 100%
rename from ubase/passwd.c
rename to unix/passwd.c
diff --git a/ubase/passwd.h b/unix/passwd.h
similarity index 100%
rename from ubase/passwd.h
rename to unix/passwd.h
diff --git a/ubase/stat.1 b/unix/stat.1
similarity index 100%
rename from ubase/stat.1
rename to unix/stat.1
diff --git a/ubase/stat.c b/unix/stat.c
similarity index 100%
rename from ubase/stat.c
rename to unix/stat.c
diff --git a/ubase/su.1 b/unix/su.1
similarity index 100%
rename from ubase/su.1
rename to unix/su.1
diff --git a/ubase/su.c b/unix/su.c
similarity index 100%
rename from ubase/su.c
rename to unix/su.c
diff --git a/ubase/umount.8 b/unix/umount.8
similarity index 100%
rename from ubase/umount.8
rename to unix/umount.8
diff --git a/ubase/umount.c b/unix/umount.c
similarity index 100%
rename from ubase/umount.c
rename to unix/umount.c

Reply via email to