#define LOWPROBE_TOPOLOGY (1 << 1)
#define LOWPROBE_SUPERBLOCKS (1 << 2)
+#define BLKID_EXIT_NOTFOUND 2 /* token or device not found */
+#define BLKID_EXIT_OTHER 4 /* bad usage or other error */
+#define BLKID_EXIT_AMBIVAL 8 /* ambivalent low-level probing detected */
+
#include <blkid.h>
#include "ismounted.h"
-#define STRTOXX_EXIT_CODE 4 /* strtoxx_or_err() */
+#define STRTOXX_EXIT_CODE BLKID_EXIT_OTHER /* strtoxx_or_err() */
#include "strutils.h"
#include "closestream.h"
#include "ttyutils.h"
fd = open(devname, O_RDONLY);
if (fd < 0) {
fprintf(stderr, "error: %s: %m\n", devname);
- return 2;
+ return BLKID_EXIT_NOTFOUND;
}
if (blkid_probe_set_device(pr, fd, offset, size))
goto done;
close(fd);
if (rc == -2)
- return 8; /* ambivalent probing result */
+ return BLKID_EXIT_AMBIVAL; /* ambivalent probing result */
if (!nvals)
- return 2; /* nothing detected */
+ return BLKID_EXIT_NOTFOUND; /* nothing detected */
return 0; /* success */
}
*flag = 0;
fprintf(stderr, "unknown kerword in -u <list> argument: '%s'\n",
word ? word : list);
- exit(4);
+ exit(BLKID_EXIT_OTHER);
}
/* converts comma separated list to types[] */
err:
*flag = 0;
free(res);
- exit(4);
+ exit(BLKID_EXIT_OTHER);
}
static void free_types_list(char *list[])
int fltr_flag = BLKID_FLTR_ONLYIN;
unsigned int numdev = 0, numtag = 0;
int version = 0;
- int err = 4;
+ int err = BLKID_EXIT_OTHER;
unsigned int i;
int output_format = 0;
int lookup = 0, gc = 0, lowprobe = 0, eval = 0;
case 'n':
if (fltr_usage) {
fprintf(stderr, "error: -u and -n options are mutually exclusive\n");
- exit(4);
+ exit(BLKID_EXIT_OTHER);
}
fltr_type = list_to_types(optarg, &fltr_flag);
break;
case 'u':
if (fltr_type) {
fprintf(stderr, "error: -u and -n options are mutually exclusive\n");
- exit(4);
+ exit(BLKID_EXIT_OTHER);
}
fltr_usage = list_to_usage(optarg, &fltr_flag);
break;
fprintf(stderr, "Invalid output format %s. "
"Choose from value,\n\t"
"device, list, udev or full\n", optarg);
- exit(4);
+ exit(BLKID_EXIT_OTHER);
}
break;
case 'O':
err = 0;
goto exit;
}
- err = 2;
+ err = BLKID_EXIT_NOTFOUND;
if (eval == 0 && (output_format & OUTPUT_PRETTY_LIST)) {
if (lowprobe) {
fprintf(stderr, "The low-level probing mode does not "
"support 'list' output format\n");
- exit(4);
+ exit(BLKID_EXIT_OTHER);
}
pretty_print_dev(NULL);
}
if (!numdev) {
fprintf(stderr, "The low-level probing mode "
"requires a device\n");
- exit(4);
+ exit(BLKID_EXIT_OTHER);
}
/* automatically enable 'export' format for I/O Limits */
if (!search_type) {
fprintf(stderr, "The lookup option requires a "
"search type specified using -t\n");
- exit(4);
+ exit(BLKID_EXIT_OTHER);
}
/* Load any additional devices not in the cache */
for (i = 0; i < numdev; i++)