diff options
| author | Tony Luck <tony.luck@intel.com> | 2005-07-13 15:15:43 -0400 | 
|---|---|---|
| committer | Tony Luck <tony.luck@intel.com> | 2005-07-13 15:15:43 -0400 | 
| commit | 99ad25a313bda566a346b46a6015afa65bc0a02b (patch) | |
| tree | b9443fed1ab74f320c4ee0791864ee96d7c069df /drivers/acpi/tables/tbutils.c | |
| parent | f62c4a96f74d6c6dd56d1742697e94a5c2085e87 (diff) | |
| parent | 9a556e89081b0c1c2f83cee915363b15a68a6f2d (diff) | |
Auto merge with /home/aegl/GIT/linus
Diffstat (limited to 'drivers/acpi/tables/tbutils.c')
| -rw-r--r-- | drivers/acpi/tables/tbutils.c | 97 | 
1 files changed, 56 insertions, 41 deletions
diff --git a/drivers/acpi/tables/tbutils.c b/drivers/acpi/tables/tbutils.c index fede5804c783..e69d01d443d2 100644 --- a/drivers/acpi/tables/tbutils.c +++ b/drivers/acpi/tables/tbutils.c  | |||
| @@ -49,48 +49,14 @@ | |||
| 49 | #define _COMPONENT ACPI_TABLES | 49 | #define _COMPONENT ACPI_TABLES | 
| 50 | ACPI_MODULE_NAME ("tbutils") | 50 | ACPI_MODULE_NAME ("tbutils") | 
| 51 | 51 | ||
| 52 | /* Local prototypes */ | ||
| 52 | 53 | ||
| 53 | /******************************************************************************* | 54 | #ifdef ACPI_OBSOLETE_FUNCTIONS | 
| 54 | * | ||
| 55 | * FUNCTION: acpi_tb_handle_to_object | ||
| 56 | * | ||
| 57 | * PARAMETERS: table_id - Id for which the function is searching | ||
| 58 | * table_desc - Pointer to return the matching table | ||
| 59 | * descriptor. | ||
| 60 | * | ||
| 61 | * RETURN: Search the tables to find one with a matching table_id and | ||
| 62 | * return a pointer to that table descriptor. | ||
| 63 | * | ||
| 64 | ******************************************************************************/ | ||
| 65 | #ifdef ACPI_FUTURE_USAGE | ||
| 66 | acpi_status | 55 | acpi_status | 
| 67 | acpi_tb_handle_to_object ( | 56 | acpi_tb_handle_to_object ( | 
| 68 | u16 table_id, | 57 | u16 table_id, | 
| 69 | struct acpi_table_desc **return_table_desc) | 58 | struct acpi_table_desc **table_desc); | 
| 70 | { | 59 | #endif | 
| 71 | u32 i; | ||
| 72 | struct acpi_table_desc *table_desc; | ||
| 73 | |||
| 74 | |||
| 75 | ACPI_FUNCTION_NAME ("tb_handle_to_object"); | ||
| 76 | |||
| 77 | |||
| 78 | for (i = 0; i < ACPI_TABLE_MAX; i++) { | ||
| 79 | table_desc = acpi_gbl_table_lists[i].next; | ||
| 80 | while (table_desc) { | ||
| 81 | if (table_desc->table_id == table_id) { | ||
| 82 | *return_table_desc = table_desc; | ||
| 83 | return (AE_OK); | ||
| 84 | } | ||
| 85 | |||
| 86 | table_desc = table_desc->next; | ||
| 87 | } | ||
| 88 | } | ||
| 89 | |||
| 90 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "table_id=%X does not exist\n", table_id)); | ||
| 91 | return (AE_BAD_PARAMETER); | ||
| 92 | } | ||
| 93 | #endif /* ACPI_FUTURE_USAGE */ | ||
| 94 | 60 | ||
| 95 | 61 | ||
| 96 | /******************************************************************************* | 62 | /******************************************************************************* | 
| @@ -128,6 +94,7 @@ acpi_tb_validate_table_header ( | |||
| 128 | if (!acpi_os_readable (table_header, sizeof (struct acpi_table_header))) { | 94 | if (!acpi_os_readable (table_header, sizeof (struct acpi_table_header))) { | 
| 129 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 95 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 
| 130 | "Cannot read table header at %p\n", table_header)); | 96 | "Cannot read table header at %p\n", table_header)); | 
| 97 | |||
| 131 | return (AE_BAD_ADDRESS); | 98 | return (AE_BAD_ADDRESS); | 
| 132 | } | 99 | } | 
| 133 | 100 | ||
| @@ -141,6 +108,7 @@ acpi_tb_validate_table_header ( | |||
| 141 | 108 | ||
| 142 | ACPI_REPORT_WARNING (("Invalid table signature found: [%4.4s]\n", | 109 | ACPI_REPORT_WARNING (("Invalid table signature found: [%4.4s]\n", | 
| 143 | (char *) &signature)); | 110 | (char *) &signature)); | 
| 111 | |||
| 144 | ACPI_DUMP_BUFFER (table_header, sizeof (struct acpi_table_header)); | 112 | ACPI_DUMP_BUFFER (table_header, sizeof (struct acpi_table_header)); | 
| 145 | return (AE_BAD_SIGNATURE); | 113 | return (AE_BAD_SIGNATURE); | 
| 146 | } | 114 | } | 
| @@ -154,6 +122,7 @@ acpi_tb_validate_table_header ( | |||
| 154 | 122 | ||
| 155 | ACPI_REPORT_WARNING (("Invalid table header length (0x%X) found\n", | 123 | ACPI_REPORT_WARNING (("Invalid table header length (0x%X) found\n", | 
| 156 | (u32) table_header->length)); | 124 | (u32) table_header->length)); | 
| 125 | |||
| 157 | ACPI_DUMP_BUFFER (table_header, sizeof (struct acpi_table_header)); | 126 | ACPI_DUMP_BUFFER (table_header, sizeof (struct acpi_table_header)); | 
| 158 | return (AE_BAD_HEADER); | 127 | return (AE_BAD_HEADER); | 
| 159 | } | 128 | } | 
| @@ -193,8 +162,10 @@ acpi_tb_verify_table_checksum ( | |||
| 193 | /* Return the appropriate exception */ | 162 | /* Return the appropriate exception */ | 
| 194 | 163 | ||
| 195 | if (checksum) { | 164 | if (checksum) { | 
| 196 | ACPI_REPORT_WARNING (("Invalid checksum in table [%4.4s] (%02X, sum %02X is not zero)\n", | 165 | ACPI_REPORT_WARNING (( | 
| 197 | table_header->signature, (u32) table_header->checksum, (u32) checksum)); | 166 | "Invalid checksum in table [%4.4s] (%02X, sum %02X is not zero)\n", | 
| 167 | table_header->signature, (u32) table_header->checksum, | ||
| 168 | (u32) checksum)); | ||
| 198 | 169 | ||
| 199 | status = AE_BAD_CHECKSUM; | 170 | status = AE_BAD_CHECKSUM; | 
| 200 | } | 171 | } | 
| @@ -209,7 +180,7 @@ acpi_tb_verify_table_checksum ( | |||
| 209 | * PARAMETERS: Buffer - Buffer to checksum | 180 | * PARAMETERS: Buffer - Buffer to checksum | 
| 210 | * Length - Size of the buffer | 181 | * Length - Size of the buffer | 
| 211 | * | 182 | * | 
| 212 | * RETURNS 8 bit checksum of buffer | 183 | * RETURN: 8 bit checksum of buffer | 
| 213 | * | 184 | * | 
| 214 | * DESCRIPTION: Computes an 8 bit checksum of the buffer(length) and returns it. | 185 | * DESCRIPTION: Computes an 8 bit checksum of the buffer(length) and returns it. | 
| 215 | * | 186 | * | 
| @@ -238,3 +209,47 @@ acpi_tb_checksum ( | |||
| 238 | } | 209 | } | 
| 239 | 210 | ||
| 240 | 211 | ||
| 212 | #ifdef ACPI_OBSOLETE_FUNCTIONS | ||
| 213 | /******************************************************************************* | ||
| 214 | * | ||
| 215 | * FUNCTION: acpi_tb_handle_to_object | ||
| 216 | * | ||
| 217 | * PARAMETERS: table_id - Id for which the function is searching | ||
| 218 | * table_desc - Pointer to return the matching table | ||
| 219 | * descriptor. | ||
| 220 | * | ||
| 221 | * RETURN: Search the tables to find one with a matching table_id and | ||
| 222 | * return a pointer to that table descriptor. | ||
| 223 | * | ||
| 224 | ******************************************************************************/ | ||
| 225 | |||
| 226 | acpi_status | ||
| 227 | acpi_tb_handle_to_object ( | ||
| 228 | u16 table_id, | ||
| 229 | struct acpi_table_desc **return_table_desc) | ||
| 230 | { | ||
| 231 | u32 i; | ||
| 232 | struct acpi_table_desc *table_desc; | ||
| 233 | |||
| 234 | |||
| 235 | ACPI_FUNCTION_NAME ("tb_handle_to_object"); | ||
| 236 | |||
| 237 | |||
| 238 | for (i = 0; i < ACPI_TABLE_MAX; i++) { | ||
| 239 | table_desc = acpi_gbl_table_lists[i].next; | ||
| 240 | while (table_desc) { | ||
| 241 | if (table_desc->table_id == table_id) { | ||
| 242 | *return_table_desc = table_desc; | ||
| 243 | return (AE_OK); | ||
| 244 | } | ||
| 245 | |||
| 246 | table_desc = table_desc->next; | ||
| 247 | } | ||
| 248 | } | ||
| 249 | |||
| 250 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "table_id=%X does not exist\n", table_id)); | ||
| 251 | return (AE_BAD_PARAMETER); | ||
| 252 | } | ||
| 253 | #endif | ||
| 254 | |||
| 255 | |||
