#include <unistd.h>
#include <fcntl.h>
#include <ctype.h>
-#include <assert.h>
#include <string.h>
#include <errno.h>
#include <getopt.h>
#include "libudev.h"
#include "libudev-private.h"
+#include "log.h"
#define COMMAND_TIMEOUT_MSEC (30 * 1000)
unsigned int c1;
unsigned int c2;
- assert(identify != NULL);
- assert(dest != NULL);
- assert((dest_len & 1) == 0);
-
while (dest_len > 0) {
c1 = identify[offset_words * 2 + 1];
c2 = identify[offset_words * 2];
int n;
int is_packet_device;
- assert(out_identify != NULL);
-
/* init results */
- ret = -1;
memset(out_identify, '\0', 512);
is_packet_device = 0;
if (udev == NULL)
goto exit;
- udev_log_init("ata_id");
+ log_open();
udev_set_log_fn(udev, log_fn);
while (1) {
node = argv[optind];
if (node == NULL) {
- err(udev, "no node specified\n");
+ log_error("no node specified\n");
rc = 1;
goto exit;
}
fd = open(node, O_RDONLY|O_NONBLOCK);
if (fd < 0) {
- err(udev, "unable to open '%s'\n", node);
+ log_error("unable to open '%s'\n", node);
rc = 1;
goto exit;
}
* fix up only the fields from the IDENTIFY data that we are going to
* use and copy it into the hd_driveid struct for convenience
*/
- disk_identify_fixup_string (identify, 10, 20); /* serial */
- disk_identify_fixup_string (identify, 23, 6); /* fwrev */
- disk_identify_fixup_string (identify, 27, 40); /* model */
- disk_identify_fixup_uint16 (identify, 0); /* configuration */
- disk_identify_fixup_uint16 (identify, 75); /* queue depth */
- disk_identify_fixup_uint16 (identify, 75); /* SATA capabilities */
- disk_identify_fixup_uint16 (identify, 82); /* command set supported */
- disk_identify_fixup_uint16 (identify, 83); /* command set supported */
- disk_identify_fixup_uint16 (identify, 84); /* command set supported */
- disk_identify_fixup_uint16 (identify, 85); /* command set supported */
- disk_identify_fixup_uint16 (identify, 86); /* command set supported */
- disk_identify_fixup_uint16 (identify, 87); /* command set supported */
- disk_identify_fixup_uint16 (identify, 89); /* time required for SECURITY ERASE UNIT */
- disk_identify_fixup_uint16 (identify, 90); /* time required for enhanced SECURITY ERASE UNIT */
- disk_identify_fixup_uint16 (identify, 91); /* current APM values */
- disk_identify_fixup_uint16 (identify, 94); /* current AAM value */
- disk_identify_fixup_uint16 (identify, 128); /* device lock function */
- disk_identify_fixup_uint16 (identify, 217); /* nominal media rotation rate */
+ disk_identify_fixup_string(identify, 10, 20); /* serial */
+ disk_identify_fixup_string(identify, 23, 6); /* fwrev */
+ disk_identify_fixup_string(identify, 27, 40); /* model */
+ disk_identify_fixup_uint16(identify, 0); /* configuration */
+ disk_identify_fixup_uint16(identify, 75); /* queue depth */
+ disk_identify_fixup_uint16(identify, 75); /* SATA capabilities */
+ disk_identify_fixup_uint16(identify, 82); /* command set supported */
+ disk_identify_fixup_uint16(identify, 83); /* command set supported */
+ disk_identify_fixup_uint16(identify, 84); /* command set supported */
+ disk_identify_fixup_uint16(identify, 85); /* command set supported */
+ disk_identify_fixup_uint16(identify, 86); /* command set supported */
+ disk_identify_fixup_uint16(identify, 87); /* command set supported */
+ disk_identify_fixup_uint16(identify, 89); /* time required for SECURITY ERASE UNIT */
+ disk_identify_fixup_uint16(identify, 90); /* time required for enhanced SECURITY ERASE UNIT */
+ disk_identify_fixup_uint16(identify, 91); /* current APM values */
+ disk_identify_fixup_uint16(identify, 94); /* current AAM value */
+ disk_identify_fixup_uint16(identify, 128); /* device lock function */
+ disk_identify_fixup_uint16(identify, 217); /* nominal media rotation rate */
memcpy(&id, identify, sizeof id);
} else {
/* If this fails, then try HDIO_GET_IDENTITY */
if (ioctl(fd, HDIO_GET_IDENTITY, &id) != 0) {
- info(udev, "HDIO_GET_IDENTITY failed for '%s': %m\n", node);
+ log_info("HDIO_GET_IDENTITY failed for '%s': %m\n", node);
rc = 2;
goto close;
}
close(fd);
exit:
udev_unref(udev);
- udev_log_close();
+ log_close();
return rc;
}