|
1 *** src/tddl/tddl.c.old Fri Dec 5 08:13:11 2008 |
|
2 --- src/tddl/tddl.c Fri Dec 5 08:16:20 2008 |
|
3 @@ -18,13 +18,17 @@ |
|
4 |
|
5 #include "trousers/tss.h" |
|
6 #include "trousers_types.h" |
|
7 +#ifndef SOLARIS |
|
8 #include "linux/tpm.h" |
|
9 +#endif |
|
10 #include "tcslog.h" |
|
11 #include "tddl.h" |
|
12 |
|
13 struct tpm_device_node tpm_device_nodes[] = { |
|
14 +#ifndef SOLARIS |
|
15 {"/dev/tpm0", TDDL_UNDEF, TDDL_UNDEF}, |
|
16 {"/udev/tpm0", TDDL_UNDEF, TDDL_UNDEF}, |
|
17 +#endif |
|
18 {"/dev/tpm", TDDL_UNDEF, TDDL_UNDEF}, |
|
19 {NULL, 0, 0} |
|
20 }; |
|
21 @@ -105,8 +109,11 @@ |
|
22 /* tpm_device_paths is filled out in tddl.h */ |
|
23 for (i = 0; tpm_device_nodes[i].path != NULL; i++) { |
|
24 errno = 0; |
|
25 - if ((fd = open(tpm_device_nodes[i].path, O_RDWR)) >= 0) |
|
26 + if ((fd = open(tpm_device_nodes[i].path, O_RDWR)) >= 0) { |
|
27 + fprintf(stderr, "Error opening %s: %s\n", |
|
28 + tpm_device_nodes[i].path, strerror(errno)); |
|
29 break; |
|
30 + } |
|
31 } |
|
32 } |
|
33 |
|
34 @@ -181,11 +188,13 @@ |
|
35 /* fall through */ |
|
36 case TDDL_TRANSMIT_IOCTL: |
|
37 errno = 0; |
|
38 +#ifndef SOLARIS |
|
39 if ((sizeResult = ioctl(opened_device->fd, TPMIOC_TRANSMIT, txBuffer)) != -1) { |
|
40 opened_device->transmit = TDDL_TRANSMIT_IOCTL; |
|
41 break; |
|
42 } |
|
43 LogWarn("ioctl: (%d) %s", errno, strerror(errno)); |
|
44 +#endif |
|
45 LogInfo("Falling back to Read/Write device support."); |
|
46 /* fall through */ |
|
47 case TDDL_TRANSMIT_RW: |
|
48 @@ -255,6 +264,7 @@ |
|
49 |
|
50 TSS_RESULT Tddli_Cancel(void) |
|
51 { |
|
52 +#ifndef SOLARIS |
|
53 int rc; |
|
54 |
|
55 if (opened_device->transmit == TDDL_TRANSMIT_IOCTL) { |
|
56 @@ -270,4 +280,7 @@ |
|
57 } else { |
|
58 return TDDLERR(TSS_E_NOTIMPL); |
|
59 } |
|
60 +#else |
|
61 + return TDDLERR(TSS_E_NOTIMPL); |
|
62 +#endif /* SOLARIS */ |
|
63 } |