.. _OPAL_WRITE_OPPANEL_ASYNC: OPAL_WRITE_OPPANEL_ASYNC ======================== .. code-block:: c #define OPAL_WRITE_OPPANEL_ASYNC 95 typedef struct oppanel_line { __be64 line; __be64 line_len; } oppanel_line_t; int64_t opal_write_oppanel_async(uint64_t async_token, oppanel_line_t *lines, uint64_t num_lines); Writes to a (possibly physical) Operator Panel. An Operator Panel contains a small LCD screen (or similar) displaying a small amount of ASCII text. It can be used to report on boot progress, failure, or witty messages from a systems administrator. A typical panel, as present on IBM FSP based machines, is two lines of 16 characters each. See :ref:`device-tree/ibm,opal/oppanel` for how the panel is described in the device tree. Not all systems have an operator panel. Pass in an array of oppanel_line_t structs defining the ASCII characters to display on each line of the oppanel. If there are two lines on the physical panel, and you only want to write to the first line, you only need to pass in one line. If you only want to write to the second line, you need to pass in both lines, and set the line_len of the first line to zero. Returns ------- :ref:`OPAL_SUCCESS` Success! Typically this is async operation, so immediate success is unlikely. :ref:`OPAL_ASYNC_COMPLETION` Request submitted asynchronously. :ref:`OPAL_PARAMETER` Invalid `lines` or `num_lines` :ref:`OPAL_NO_MEM` Not enough free memory in OPAL to complete the request. :ref:`OPAL_INTERNAL_ERROR` Other internal error.