author | Melynda Hunter <melynda.hunter@oracle.com> |
Wed, 26 Sep 2012 16:12:30 -0700 | |
branch | s11-sru |
changeset 2355 | 27c96268ac37 |
parent 399 | d877cc559d95 |
child 622 | fd8f0e501744 |
permissions | -rw-r--r-- |
399
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
1 |
--- src/tddl/tddl.c.old 2010-04-12 22:24:21.000000000 -0700 |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
2 |
+++ src/tddl/tddl.c 2011-07-12 13:14:57.362305220 -0700 |
259
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
3 |
@@ -18,13 +18,17 @@ |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
4 |
|
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
5 |
#include "trousers/tss.h" |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
6 |
#include "trousers_types.h" |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
7 |
+#ifndef SOLARIS |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
8 |
#include "linux/tpm.h" |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
9 |
+#endif |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
10 |
#include "tcslog.h" |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
11 |
#include "tddl.h" |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
12 |
|
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
13 |
struct tpm_device_node tpm_device_nodes[] = { |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
14 |
+#ifndef SOLARIS |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
15 |
{"/dev/tpm0", TDDL_UNDEF, TDDL_UNDEF}, |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
16 |
{"/udev/tpm0", TDDL_UNDEF, TDDL_UNDEF}, |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
17 |
+#endif |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
18 |
{"/dev/tpm", TDDL_UNDEF, TDDL_UNDEF}, |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
19 |
{NULL, 0, 0} |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
20 |
}; |
399
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
21 |
@@ -63,7 +67,7 @@ |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
22 |
|
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
23 |
|
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
24 |
fd = socket(AF_INET, SOCK_STREAM, 0); |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
25 |
- if (fd > 0) { |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
26 |
+ if (fd >= 0) { |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
27 |
struct hostent *host = gethostbyname(tcp_device_hostname); |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
28 |
if (host != NULL) { |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
29 |
struct sockaddr_in addr; |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
30 |
@@ -105,12 +109,16 @@ |
259
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
31 |
/* tpm_device_paths is filled out in tddl.h */ |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
32 |
for (i = 0; tpm_device_nodes[i].path != NULL; i++) { |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
33 |
errno = 0; |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
34 |
- if ((fd = open(tpm_device_nodes[i].path, O_RDWR)) >= 0) |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
35 |
+ if ((fd = open(tpm_device_nodes[i].path, O_RDWR)) >= 0) { |
399
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
36 |
break; |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
37 |
+ } else { |
259
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
38 |
+ fprintf(stderr, "Error opening %s: %s\n", |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
39 |
+ tpm_device_nodes[i].path, strerror(errno)); |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
40 |
+ } |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
41 |
} |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
42 |
} |
399
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
43 |
- |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
44 |
- if (fd > 0) { |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
45 |
+ |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
46 |
+ if (fd >= 0) { |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
47 |
opened_device = &(tpm_device_nodes[i]); |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
48 |
tpm_device_nodes[i].fd = fd; |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
49 |
} |
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
50 |
@@ -181,11 +189,13 @@ |
259
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
51 |
/* fall through */ |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
52 |
case TDDL_TRANSMIT_IOCTL: |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
53 |
errno = 0; |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
54 |
+#ifndef SOLARIS |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
55 |
if ((sizeResult = ioctl(opened_device->fd, TPMIOC_TRANSMIT, txBuffer)) != -1) { |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
56 |
opened_device->transmit = TDDL_TRANSMIT_IOCTL; |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
57 |
break; |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
58 |
} |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
59 |
LogWarn("ioctl: (%d) %s", errno, strerror(errno)); |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
60 |
+#endif |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
61 |
LogInfo("Falling back to Read/Write device support."); |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
62 |
/* fall through */ |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
63 |
case TDDL_TRANSMIT_RW: |
399
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
64 |
@@ -255,6 +265,7 @@ |
259
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
65 |
|
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
66 |
TSS_RESULT Tddli_Cancel(void) |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
67 |
{ |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
68 |
+#ifndef SOLARIS |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
69 |
int rc; |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
70 |
|
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
71 |
if (opened_device->transmit == TDDL_TRANSMIT_IOCTL) { |
399
d877cc559d95
7056071 enable tcsd failed in Solaris 11
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
259
diff
changeset
|
72 |
@@ -270,4 +281,7 @@ |
259
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
73 |
} else { |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
74 |
return TDDLERR(TSS_E_NOTIMPL); |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
75 |
} |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
76 |
+#else |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
77 |
+ return TDDLERR(TSS_E_NOTIMPL); |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
78 |
+#endif /* SOLARIS */ |
520697a05dde
7045320 Move trousers from SFW to Userland
Wyllys Ingersoll <Wyllys.Ingersoll@Oracle.COM>
parents:
diff
changeset
|
79 |
} |