* GNU General Public License for more details.
*/
+#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <syslog.h>
if (m) {
char *target = m->target;
- char _target[] = "/mnt/mmcblk123";
+ char _target[32];
int err = 0;
if (!target) {
if (config_load(NULL))
return -1;
- cache_load(0);
+ cache_load(1);
list_for_each_entry(pr, &devices, list)
mount_device(pr, 0);
static int main_swapon(int argc, char **argv)
{
if (argc != 2) {
- fprintf(stderr, "Usage: swapoff [-a] [DEVICE]\n\nStop swapping on DEVICE\n\n\t-a Stop swapping on all swap devices\n");
+ fprintf(stderr, "Usage: swapon <-s> <-a> [DEVICE]\n\n\tStart swapping on [DEVICE]\n -a\tStart swapping on all swap devices\n -s\tShow summary\n");
return -1;
}
- if (!strcmp(argv[1], "-a")) {
+ if (!strcmp(argv[1], "-s")) {
+ FILE *fp = fopen("/proc/swaps", "r");
+ char *lineptr = NULL;
+ size_t s;
+
+ if (!fp) {
+ fprintf(stderr, "failed to open /proc/swaps\n");
+ return -1;
+ }
+ while (getline(&lineptr, &s, fp) > 0)
+ printf(lineptr);
+ if (lineptr)
+ free(lineptr);
+ fclose(fp);
+ } else if (!strcmp(argv[1], "-a")) {
struct blkid_struct_probe *pr;
cache_load(0);
struct stat s;
int err;
- if (stat(argv[1], &s) || !S_ISBLK(s.st_mode)) {
- fprintf(stderr, "%s is not a block device\n", argv[1]);
+ if (stat(argv[1], &s) || (!S_ISBLK(s.st_mode) && !S_ISREG(s.st_mode))) {
+ fprintf(stderr, "%s is not a block device or file\n", argv[1]);
return -1;
}
err = swapon(argv[1], 0);
static int main_swapoff(int argc, char **argv)
{
if (argc != 2) {
- fprintf(stderr, "Usage: swapoff [-a] [DEVICE]\n\nStop swapping on DEVICE\n\n\t-a Stop swapping on all swap devices\n");
+ fprintf(stderr, "Usage: swapoff [-a] [DEVICE]\n\n\tStop swapping on DEVICE\n -a\tStop swapping on all swap devices\n");
return -1;
}
struct stat s;
int err;
- if (stat(argv[1], &s) || !S_ISBLK(s.st_mode)) {
- fprintf(stderr, "%s is not a block device\n", argv[1]);
+ if (stat(argv[1], &s) || (!S_ISBLK(s.st_mode) && !S_ISREG(s.st_mode))) {
+ fprintf(stderr, "%s is not a block device or file\n", argv[1]);
return -1;
}
err = swapoff(argv[1]);