215{
216 ACPI_SIZE AmlSizeNeeded = 0;
219
220
222
223
224
225
228 {
229
230
232 {
234 }
235
236
237
239 {
241 }
242
243
244
246
247
248
249
250
252 {
254
255
256
257 if (
Resource->Data.Irq.DescriptorLength == 2)
258 {
259 TotalSize--;
260 }
261 break;
262
263
265
266
267
268 if (
Resource->Data.Irq.DescriptorLength == 0)
269 {
270 TotalSize--;
271 }
272 break;
273
274
276
277
278
279
280
281
282 if (
Resource->Data.Vendor.ByteLength > 7)
283 {
284
285
287 }
288
289
290
292 (TotalSize +
Resource->Data.Vendor.ByteLength);
293 break;
294
295
297
298
299
300
301 *SizeNeeded = AmlSizeNeeded + TotalSize;
302
303
304
306
307
309
310
311
312
315 &
Resource->Data.Address16.ResourceSource));
316 break;
317
318
320
321
322
323
326 &
Resource->Data.Address32.ResourceSource));
327 break;
328
329
331
332
333
334
337 &
Resource->Data.Address64.ResourceSource));
338 break;
339
340
342
343
344
345
346
348 ((
Resource->Data.ExtendedIrq.InterruptCount - 1) * 4) +
349
350
351
353 &
Resource->Data.ExtendedIrq.ResourceSource));
354 break;
355
356
358
360 (
Resource->Data.Gpio.PinTableLength * 2) +
361 Resource->Data.Gpio.ResourceSource.StringLength +
363
364 break;
365
367
369 (
Resource->Data.PinFunction.PinTableLength * 2) +
370 Resource->Data.PinFunction.ResourceSource.StringLength +
371 Resource->Data.PinFunction.VendorLength);
372
373 break;
374
375
377
379 Resource->Data.CommonSerialBus.Type];
380
382 Resource->Data.I2cSerialBus.ResourceSource.StringLength +
383 Resource->Data.I2cSerialBus.VendorLength);
384
385 break;
386
388
390 (
Resource->Data.PinConfig.PinTableLength * 2) +
391 Resource->Data.PinConfig.ResourceSource.StringLength +
392 Resource->Data.PinConfig.VendorLength);
393
394 break;
395
397
399 (
Resource->Data.PinGroup.PinTableLength * 2) +
400 Resource->Data.PinGroup.ResourceLabel.StringLength +
401 Resource->Data.PinGroup.VendorLength);
402
403 break;
404
406
408 Resource->Data.PinGroupFunction.ResourceSource.StringLength +
409 Resource->Data.PinGroupFunction.ResourceSourceLabel.StringLength +
410 Resource->Data.PinGroupFunction.VendorLength);
411
412 break;
413
415
417 Resource->Data.PinGroupConfig.ResourceSource.StringLength +
418 Resource->Data.PinGroupConfig.ResourceSourceLabel.StringLength +
419 Resource->Data.PinGroupConfig.VendorLength);
420
421 break;
422
423 default:
424
425 break;
426 }
427
428
429
430 AmlSizeNeeded += TotalSize;
431
432
433
435 }
436
437
438
440}
#define AE_AML_INVALID_RESOURCE_TYPE
#define AE_AML_BAD_RESOURCE_LENGTH
#define AE_AML_NO_RESOURCE_END_TAG
#define return_ACPI_STATUS(s)
#define ACPI_FUNCTION_TRACE(a)
const UINT8 AcpiGbl_AmlResourceSizes[]
const UINT8 AcpiGbl_AmlResourceSerialBusSizes[]
#define ACPI_RESOURCE_TYPE_PIN_FUNCTION
#define ACPI_RESOURCE_TYPE_SERIAL_BUS
#define ACPI_RESOURCE_TYPE_GPIO
#define ACPI_RESOURCE_TYPE_EXTENDED_IRQ
#define ACPI_RESOURCE_TYPE_PIN_CONFIG
#define ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG
#define ACPI_RESOURCE_TYPE_IRQ
#define ACPI_RESOURCE_TYPE_END_TAG
#define ACPI_RESOURCE_TYPE_START_DEPENDENT
#define ACPI_RESOURCE_TYPE_MAX
#define ACPI_RESOURCE_TYPE_VENDOR
#define ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION
#define ACPI_RESOURCE_TYPE_ADDRESS64
#define ACPI_RESOURCE_TYPE_PIN_GROUP
#define ACPI_RESOURCE_TYPE_ADDRESS32
#define ACPI_RESOURCE_TYPE_ADDRESS16
#define ACPI_ADD_PTR(t, a, b)
struct aml_resource_large_header AML_RESOURCE_LARGE_HEADER
_Acquires_exclusive_lock_ Resource _Acquires_shared_lock_ Resource _Inout_ PERESOURCE Resource
static ACPI_RS_LENGTH AcpiRsStructOptionLength(ACPI_RESOURCE_SOURCE *ResourceSource)