components/trousers/patches/tddl.c.patch
changeset 259 520697a05dde
child 399 d877cc559d95
equal deleted inserted replaced
258:2bbb3ea903a8 259:520697a05dde
       
     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  }