* Describes how to interpret the dynamic log stream and partially * reconstruct the original log message. */
| 394 | * reconstruct the original log message. |
| 395 | */ |
| 396 | struct PrintFragment { |
| 397 | // The type of the argument to pull from the dynamic buffer to the |
| 398 | // partial format string (formatFragment) |
| 399 | uint8_t argType:5; |
| 400 | |
| 401 | // Indicates that the fragment requires a dynamic width/precision |
| 402 | // argument in addition to one required by the format specifier. |
| 403 | bool hasDynamicWidth:1; |
| 404 | bool hasDynamicPrecision:1; |
| 405 | |
| 406 | //TODO(syang0) is this necessary? The format framgnet is null-terminated |
| 407 | // Length of the format fragment |
| 408 | uint16_t fragmentLength; |
| 409 | |
| 410 | // A fragment of the original LOG statement that contains at most |
| 411 | // one format specifier. |
| 412 | char formatFragment[]; |
| 413 | } __attribute__((packed)); |
| 414 | |
| 415 | |
| 416 | /** |
nothing calls this directly
no outgoing calls
no test coverage detected