Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | /* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (c) 2015 Google, Inc * * (C) Copyright 2000-2002 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. */ #ifndef __DISPLAY_OPTIONS_H #define __DISPLAY_OPTIONS_H #include <linux/types.h> #if CONFIG_IS_ENABLED(LIB_FORMAT_SIZE) /** * format_size() - Format a size with a suffix * * Format sizes as "xxx KiB", "xxx.y KiB", "xxx MiB", "xxx.y MiB", * xxx GiB, xxx.y GiB, etc as needed * * @buf: Buffer to write to (must be at least 12 bytes) * @size: Size to format * Return: @buf */ char *format_size(char *buf, uint64_t size); #endif /** * print_size() - Print a size with a suffix * * Print sizes as "xxx KiB", "xxx.y KiB", "xxx MiB", "xxx.y MiB", * xxx GiB, xxx.y GiB, etc as needed; allow for optional trailing string * (like "\n") * * @size: Size to print * @suffix String to print after the size */ void print_size(uint64_t size, const char *suffix); /** * print_freq() - Print a frequency with a suffix * * Print frequencies as "x.xx GHz", "xxx kHz", etc as needed; allow for * optional trailing string (like "\n") * * @freq: Frequency to print in Hz * @suffix String to print after the frequency */ void print_freq(uint64_t freq, const char *suffix); /** * print_buffer() - Print data buffer in hex and ascii form * * Data reads are buffered so that each memory address is only read once. * This is useful when displaying the contents of volatile registers. * * @addr: Starting address to display at start of line * @data: pointer to data buffer * @width: data value width. May be 1, 2, or 4. * @count: number of values to display * @linelen: Number of values to print per line; specify 0 for default length */ int print_buffer(ulong addr, const void *data, uint width, uint count, uint linelen); /* * Maximum length of an output line is when width == 1 * 9 for address, * a space, two hex digits and an ASCII character for each byte * 2 spaces between the hex and ASCII * \0 terminator */ #define HEXDUMP_MAX_BUF_LENGTH(bytes) (9 + (bytes) * 4 + 3) /** * hexdump_line() - Print out a single line of a hex dump * * @addr: Starting address to display at start of line * @data: pointer to data buffer * @width: data value width. May be 1, 2, or 4. * @count: number of values to display * @linelen: Number of values to print per line; specify 0 for default length * @out: Output buffer to hold the dump * @size: Size of output buffer in bytes * Return: number of bytes processed, if OK, -ENOSPC if buffer too small * */ int hexdump_line(ulong addr, const void *data, uint width, uint count, uint linelen, char *out, int size); /** * display_options() - display the version string / build tag * * This displays the U-Boot version string. If a build tag is available this * is displayed also. */ int display_options(void); /* Suggested length of the buffer to pass to display_options_get_banner() */ #define DISPLAY_OPTIONS_BANNER_LENGTH 200 /** * display_options_get_banner() - Get the U-Boot banner as a string * * This returns the U-Boot banner string * * @newlines: true to include two newlines at the start * @buf: place to put string * @size: Size of buf (string is truncated to fit) * Return: buf */ char *display_options_get_banner(bool newlines, char *buf, int size); /* This function is used for testing only */ char *display_options_get_banner_priv(bool newlines, const char *build_tag, char *buf, int size); /* Print a numeric value (for use in arch_print_bdinfo()) */ void lprint_num_l(const char *name, ulong value); void lprint_num_ll(const char *name, unsigned long long value); void lprint_num_32(const char *name, u32 value); /* Print a string value (for use in arch_print_bdinfo()) */ void lprint_str(const char *name, const char *str); /* Print a clock speed in MHz */ void lprint_mhz(const char *name, unsigned long hz); /** * lprint_size - print size variables in bdinfo format * @name: string to print before the size * @size: size to print * * Helper function for displaying size variables as properly formatted bdinfo * entries. The size is printed as "xxx Bytes", "xxx KiB", "xxx MiB", * "xxx GiB", etc. as needed; * * For use in arch_print_bdinfo(). */ void lprint_size(const char *name, uint64_t size); #endif |