Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: host/lib/crossystem.c

Issue 6685075: Add TPM version checking (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/vboot_reference.git@master
Patch Set: Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « firmware/linktest/main.c ('k') | utility/crossystem_main.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2011 The Chromium OS Authors. All rights reserved. 1 /* Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be 2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file. 3 * found in the LICENSE file.
4 */ 4 */
5 5
6 #include <stdio.h> 6 #include <stdio.h>
7 #include <string.h> 7 #include <string.h>
8 #include <sys/types.h> 8 #include <sys/types.h>
9 #include <sys/stat.h> 9 #include <sys/stat.h>
10 #include <unistd.h> 10 #include <unistd.h>
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 94
95 /* Fields that GetVdatString() can get */ 95 /* Fields that GetVdatString() can get */
96 typedef enum VdatStringField { 96 typedef enum VdatStringField {
97 VDAT_STRING_TIMERS = 0, /* Timer values */ 97 VDAT_STRING_TIMERS = 0, /* Timer values */
98 VDAT_STRING_LOAD_FIRMWARE_DEBUG /* LoadFirmware() debug information */ 98 VDAT_STRING_LOAD_FIRMWARE_DEBUG /* LoadFirmware() debug information */
99 } VdatStringField; 99 } VdatStringField;
100 100
101 101
102 /* Fields that GetVdatInt() can get */ 102 /* Fields that GetVdatInt() can get */
103 typedef enum VdatIntField { 103 typedef enum VdatIntField {
104 VDAT_INT_FLAGS = 0 /* Flags */ 104 VDAT_INT_FLAGS = 0, /* Flags */
105 VDAT_INT_FW_VERSION_TPM, /* Current firmware version in TPM */
106 VDAT_INT_KERNEL_VERSION_TPM /* Current kernel version in TPM */
105 } VdatIntField; 107 } VdatIntField;
106 108
107 109
108 /* Copy up to dest_size-1 characters from src to dest, ensuring null 110 /* Copy up to dest_size-1 characters from src to dest, ensuring null
109 termination (which strncpy() doesn't do). Returns the destination 111 termination (which strncpy() doesn't do). Returns the destination
110 string. */ 112 string. */
111 char* StrCopy(char* dest, const char* src, int dest_size) { 113 char* StrCopy(char* dest, const char* src, int dest_size) {
112 strncpy(dest, src, dest_size); 114 strncpy(dest, src, dest_size);
113 dest[dest_size - 1] = '\0'; 115 dest[dest_size - 1] = '\0';
114 return dest; 116 return dest;
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 665
664 if (!ab) 666 if (!ab)
665 return -1; 667 return -1;
666 668
667 sh = (VbSharedDataHeader*)ab->buffer; 669 sh = (VbSharedDataHeader*)ab->buffer;
668 670
669 switch (field) { 671 switch (field) {
670 case VDAT_INT_FLAGS: 672 case VDAT_INT_FLAGS:
671 value = (int)sh->flags; 673 value = (int)sh->flags;
672 break; 674 break;
673 675 case VDAT_INT_FW_VERSION_TPM:
676 value = (int)sh->fw_version_tpm;
677 break;
678 case VDAT_INT_KERNEL_VERSION_TPM:
679 value = (int)sh->kernel_version_tpm;
680 break;
674 } 681 }
675 682
676 Free(ab); 683 Free(ab);
677 return value; 684 return value;
678 } 685 }
679 686
680 687
681 /* Read a system property integer. 688 /* Read a system property integer.
682 * 689 *
683 * Returns the property value, or -1 if error. */ 690 * Returns the property value, or -1 if error. */
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 } 747 }
741 /* Other parameters */ 748 /* Other parameters */
742 else if (!strcasecmp(name,"recovery_reason")) { 749 else if (!strcasecmp(name,"recovery_reason")) {
743 return VbGetRecoveryReason(); 750 return VbGetRecoveryReason();
744 } else if (!strcasecmp(name,"fmap_base")) { 751 } else if (!strcasecmp(name,"fmap_base")) {
745 value = ReadFileInt(ACPI_FMAP_PATH); 752 value = ReadFileInt(ACPI_FMAP_PATH);
746 } else if (!strcasecmp(name,"cros_debug")) { 753 } else if (!strcasecmp(name,"cros_debug")) {
747 value = VbGetCrosDebug(); 754 value = VbGetCrosDebug();
748 } else if (!strcasecmp(name,"vdat_flags")) { 755 } else if (!strcasecmp(name,"vdat_flags")) {
749 value = GetVdatInt(VDAT_INT_FLAGS); 756 value = GetVdatInt(VDAT_INT_FLAGS);
757 } else if (!strcasecmp(name,"tpm_fwver")) {
758 value = GetVdatInt(VDAT_INT_FW_VERSION_TPM);
759 } else if (!strcasecmp(name,"tpm_kernver")) {
760 value = GetVdatInt(VDAT_INT_KERNEL_VERSION_TPM);
750 } 761 }
751 762
752 return value; 763 return value;
753 } 764 }
754 765
755 /* Read a system property string into a destination buffer of the specified 766 /* Read a system property string into a destination buffer of the specified
756 * size. 767 * size.
757 * 768 *
758 * Returns the passed buffer, or NULL if error. */ 769 * Returns the passed buffer, or NULL if error. */
759 const char* VbGetSystemPropertyString(const char* name, char* dest, int size) { 770 const char* VbGetSystemPropertyString(const char* name, char* dest, int size) {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 852
842 853
843 /* Set a system property string. 854 /* Set a system property string.
844 * 855 *
845 * Returns 0 if success, -1 if error. */ 856 * Returns 0 if success, -1 if error. */
846 int VbSetSystemPropertyString(const char* name, const char* value) { 857 int VbSetSystemPropertyString(const char* name, const char* value) {
847 858
848 /* TODO: support setting */ 859 /* TODO: support setting */
849 return -1; 860 return -1;
850 } 861 }
OLDNEW
« no previous file with comments | « firmware/linktest/main.c ('k') | utility/crossystem_main.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698