}
#endif
-static void set_str(char *to, const unsigned char *from, int count)
+static void set_str(char *to, const char *from, size_t count)
{
- int i, j;
- int len;
+ size_t i, j, len;
/* strip trailing whitespace */
len = strnlen(from, count);
- while (isspace(from[len-1]))
+ while (len && isspace(from[len-1]))
len--;
/* strip leading whitespace */
int fd;
int rc = 0;
+ logging_init("ata_id");
+
for (i = 1 ; i < argc; i++) {
char *arg = argv[i];
goto exit;
}
- fd = open(node, O_RDONLY);
- if (fd < 0)
- if (errno == ENOMEDIUM)
- fd = open(node, O_RDONLY|O_NONBLOCK);
+ fd = open(node, O_RDONLY|O_NONBLOCK);
if (fd < 0) {
err("unable to open '%s'", node);
rc = 1;
goto close;
}
- set_str(model, id.model, 40);
- set_str(serial, id.serial_no, 20);
- set_str(revision, id.fw_rev, 8);
+ set_str(model, (char *) id.model, 40);
+ set_str(serial, (char *) id.serial_no, 20);
+ set_str(revision, (char *) id.fw_rev, 8);
if (export) {
if ((id.config >> 8) & 0x80) {
printf("ID_MODEL=%s\n", model);
printf("ID_SERIAL=%s\n", serial);
printf("ID_REVISION=%s\n", revision);
+ printf("ID_BUS=ata\n");
} else {
if (serial[0] != '\0')
printf("%s_%s\n", model, serial);