| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |