view toys/other/swapon.c @ 1634:5fac2769a159 draft

Redo option parsing infrastructure so #define FORCE_FLAGS can unzero flag macros for a disabled command (needed when multiple commands share infrastructure with a common set of flags). This means the flag space is no longer packed, but leaves gaps where the zeroes go. (Actual flag bit positions are the same for all configs.) Since the option parsing needs to know where the holes are, the OPTSTR values are now generated as part of flags.h with ascii 1 values for the disabled values. (So generated/oldflags.h went away.) This also means that the option string argument for OLDTOY() went away, it now uses the same arguments as the NEWTOY() it references.
author Rob Landley <rob@landley.net>
date Wed, 31 Dec 2014 21:30:59 -0600
parents 786841fdb1e0
children 57f2a26fa92c
line wrap: on
line source

/* swapon.c - Enable region for swapping
 *
 * Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>

USE_SWAPON(NEWTOY(swapon, "<1>1p#<0>32767", TOYFLAG_BIN|TOYFLAG_NEEDROOT))

config SWAPON
  bool "swapon"
  default y
  help
    usage: swapon [-p priority] filename

    Enable swapping on a given device/file.
*/

#define FOR_swapon
#include "toys.h"

GLOBALS(
  long priority;
)

void swapon_main(void)
{
  int flags = 0;

  if (toys.optflags)
    flags = SWAP_FLAG_PREFER | (TT.priority << SWAP_FLAG_PRIO_SHIFT);

  if (swapon(*toys.optargs, flags))
    perror_exit("Couldn't swapon '%s'", *toys.optargs);
}