49 lines
1.6 KiB
ReStructuredText
49 lines
1.6 KiB
ReStructuredText
.. _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.
|