forked from rubenslte/android_kernel_samsung_msm8226
lib: vsprintf: Add %pa format specifier for phys_addr_t types
Add the %pa format specifier for printing a phys_addr_t type and its derivative types (such as resource_size_t), since the physical address size on some platforms can vary based on build options, regardless of the native integer type. Change-Id: I2ba0003d689a9a2bd13f1a1e2d897b6eacc5d224 Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
This commit is contained in:
@@ -857,6 +857,7 @@ int kptr_restrict __read_mostly;
|
||||
* correctness of the format string and va_list arguments.
|
||||
* - 'K' For a kernel pointer that should be hidden from unprivileged users
|
||||
* - 'NF' For a netdev_features_t
|
||||
* - 'a' For a phys_addr_t type and its derivative types (passed by reference)
|
||||
*
|
||||
* Note: The difference between 'S' and 'F' is that on ia64 and ppc64
|
||||
* function pointers are really function descriptors, which contain a
|
||||
@@ -941,6 +942,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
|
||||
return netdev_feature_string(buf, end, ptr, spec);
|
||||
}
|
||||
break;
|
||||
case 'a':
|
||||
spec.flags |= SPECIAL | SMALL | ZEROPAD;
|
||||
spec.field_width = sizeof(phys_addr_t) * 2 + 2;
|
||||
spec.base = 16;
|
||||
return number(buf, end,
|
||||
(unsigned long long) *((phys_addr_t *)ptr), spec);
|
||||
}
|
||||
spec.flags |= SMALL;
|
||||
if (spec.field_width == -1) {
|
||||
|
||||
Reference in New Issue
Block a user