| .. _OPAL_GET_MSG: |
| |
| OPAL_GET_MSG |
| ============ |
| |
| .. code-block:: c |
| |
| #define OPAL_GET_MSG 85 |
| |
| int64_t opal_get_msg(uint64_t *buffer, uint64_t size); |
| |
| :ref:`OPAL_GET_MSG` will get the next pending OPAL Message (see :ref:`opal-messages`). |
| |
| The maximum size of an opal message is specified in the device tree passed |
| to the host OS: :: |
| |
| ibm,opal { |
| opal-msg-size = <0x48>; |
| } |
| |
| It is ALWAYS at least 72 bytes. In the future, OPAL may have messages larger |
| than 72 bytes. Naturally, a HOST OS will only be able to interpret these |
| if it correctly uses opal-msg-size. Any OPAL message > 72 bytes, a host OS |
| may safely ignore. |
| |
| A host OS *SHOULD* always supply a buffer to OPAL_GET_MSG of either 72 |
| bytes or opal-msg-size. It MUST NOT supply a buffer of < 72 bytes. |
| |
| |
| Return values |
| ------------- |
| |
| :ref:`OPAL_RESOURCE` |
| no available message. |
| :ref:`OPAL_PARAMETER` |
| buffer is NULL or size is < 72 bytes. |
| If buffer size < 72 bytes, the message will NOT be discarded by OPAL. |
| :ref:`OPAL_PARTIAL` |
| If pending opal message is greater than supplied buffer. |
| In this case the message is *DISCARDED* by OPAL. |
| This is to keep compatibility with host Operating Systems |
| with a hard coded opal-msg-size of 72 bytes. |
| **NOT CURRENTLY IMPLEMENTED**. Specified so that host OS can |
| prepare for the possible future with either a sensible |
| error message or by gracefully ignoring such OPAL messages. |
| :ref:`OPAL_SUCCESS` |
| message successfully copied to buffer. |