}
#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 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);
- } else
- printf("%s_%s\n", model, serial);
+ printf("ID_BUS=ata\n");
+ } else {
+ if (serial[0] != '\0')
+ printf("%s_%s\n", model, serial);
+ else
+ printf("%s\n", model);
+ }
close:
close(fd);