chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of git+ssh://master.kernel.org/pub/scm/linux/hotplug/udev
[elogind.git]
/
extras
/
ata_id
/
ata_id.c
diff --git
a/extras/ata_id/ata_id.c
b/extras/ata_id/ata_id.c
index d407b0fad91525c3fcea27612b78ee0b456f0f81..d976467817d1ce7bf274c264101b64067a12df80 100644
(file)
--- a/
extras/ata_id/ata_id.c
+++ b/
extras/ata_id/ata_id.c
@@
-35,7
+35,8
@@
#include <linux/types.h>
#include <linux/hdreg.h>
#include <linux/types.h>
#include <linux/hdreg.h>
-#include "../../udev/udev.h"
+#include "libudev.h"
+#include "libudev-private.h"
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
@@
-49,6
+50,7
@@
int main(int argc, char *argv[])
struct udev *udev;
struct hd_driveid id;
char model[41];
struct udev *udev;
struct hd_driveid id;
char model[41];
+ char model_enc[256];
char serial[21];
char revision[9];
const char *node = NULL;
char serial[21];
char revision[9];
const char *node = NULL;
@@
-65,7
+67,7
@@
int main(int argc, char *argv[])
if (udev == NULL)
goto exit;
if (udev == NULL)
goto exit;
-
loggin
g_init("ata_id");
+
udev_lo
g_init("ata_id");
udev_set_log_fn(udev, log_fn);
while (1) {
udev_set_log_fn(udev, log_fn);
while (1) {
@@
-81,7
+83,7
@@
int main(int argc, char *argv[])
break;
case 'h':
printf("Usage: ata_id [--export] [--help] <device>\n"
break;
case 'h':
printf("Usage: ata_id [--export] [--help] <device>\n"
- " --export print values as environ
em
t keys\n"
+ " --export print values as environ
men
t keys\n"
" --help print this help text\n\n");
default:
rc = 1;
" --help print this help text\n\n");
default:
rc = 1;
@@
-114,9
+116,15
@@
int main(int argc, char *argv[])
goto close;
}
goto close;
}
+ memcpy (model, id.model, 40);
+ model[40] = '\0';
+ udev_util_encode_string(model, model_enc, sizeof(model_enc));
udev_util_replace_whitespace((char *) id.model, model, 40);
udev_util_replace_whitespace((char *) id.model, model, 40);
+ udev_util_replace_chars(model, NULL);
udev_util_replace_whitespace((char *) id.serial_no, serial, 20);
udev_util_replace_whitespace((char *) id.serial_no, serial, 20);
+ udev_util_replace_chars(serial, NULL);
udev_util_replace_whitespace((char *) id.fw_rev, revision, 8);
udev_util_replace_whitespace((char *) id.fw_rev, revision, 8);
+ udev_util_replace_chars(revision, NULL);
if (export) {
if ((id.config >> 8) & 0x80) {
if (export) {
if ((id.config >> 8) & 0x80) {
@@
-142,6
+150,7
@@
int main(int argc, char *argv[])
printf("ID_TYPE=disk\n");
}
printf("ID_MODEL=%s\n", model);
printf("ID_TYPE=disk\n");
}
printf("ID_MODEL=%s\n", model);
+ printf("ID_MODEL_ENC=%s\n", model_enc);
printf("ID_SERIAL=%s\n", serial);
printf("ID_REVISION=%s\n", revision);
printf("ID_BUS=ata\n");
printf("ID_SERIAL=%s\n", serial);
printf("ID_REVISION=%s\n", revision);
printf("ID_BUS=ata\n");
@@
-156,6
+165,6
@@
close:
close(fd);
exit:
udev_unref(udev);
close(fd);
exit:
udev_unref(udev);
-
loggin
g_close();
+
udev_lo
g_close();
return rc;
}
return rc;
}