OPAL Console calls
There are four OPAL calls relating to the OPAL console:
#define OPAL_CONSOLE_WRITE 1 #define OPAL_CONSOLE_READ 2 #define OPAL_CONSOLE_WRITE_BUFFER_SPACE 25 #define OPAL_CONSOLE_FLUSH 117
The OPAL console calls can support multiple consoles. Each console MUST be represented in the device tree.
A conforming implementation SHOULD have at least one console. It is valid for it to simply be an in-memory buffer and only support writing.
[TODO: details on device tree specs for console]
int64_t term_number int64_t *length, const uint8_t *buffer
OPAL_SUCCESS OPAL_PARAMETER - invalid term_number OPAL_CLOSED - console device closed OPAL_BUSY_EVENT - unable to write any of buffer
term_number is the terminal number as represented in the device tree.
length is a pointer to the length of buffer.
A conforming implementation SHOULD try to NOT do partial writes, although partial writes and not writing anything are valid.
int64_t term_number int64_t *length
OPAL_SUCCESS OPAL_PARAMETER - invalid term_number
Returns the available buffer length for OPAL_CONSOLE_WRITE in
This call can be used to help work out if there is sufficient buffer
space to write your full message to the console with OPAL_CONSOLE_WRITE.
int64_t term_number int64_t *length uint8_t *buffer
OPAL_SUCCESS OPAL_PARAMETER - invalid term_number OPAL_CLOSED
Use OPAL_POLL_EVENTS for how to determine
OPAL_SUCCESS OPAL_UNSUPPORTED - the console does not implement a flush call OPAL_PARAMETER - invalid term_number OPAL_PARTIAL - more to flush, call again OPAL_BUSY - nothing was flushed this call