diff options
Diffstat (limited to 'roms/skiboot/include/opal-msg.h')
-rw-r--r-- | roms/skiboot/include/opal-msg.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/roms/skiboot/include/opal-msg.h b/roms/skiboot/include/opal-msg.h new file mode 100644 index 000000000..2028c79d0 --- /dev/null +++ b/roms/skiboot/include/opal-msg.h @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later +/* Copyright 2013-2019 IBM Corp. */ + +#ifndef __OPALMSG_H +#define __OPALMSG_H + +#include <opal.h> + +/* + * It dictates the number of asynchronous tokens available at the kernel, + * ideally the value matches to the number of modules using async + * infrastructure, but not necessarily the same.. + */ +#define OPAL_MAX_ASYNC_COMP 16 + +/* Max size of struct opal_msg */ +#define OPAL_MSG_SIZE (64 * 1024) + +/* opal_msg fixed parameters size */ +#define OPAL_MSG_HDR_SIZE (offsetof(struct opal_msg, params)) +#define OPAL_MSG_FIXED_PARAMS_SIZE \ + (sizeof(struct opal_msg) - OPAL_MSG_HDR_SIZE) + +int _opal_queue_msg(enum opal_msg_type msg_type, void *data, + void (*consumed)(void *data, int status), + size_t params_size, const void *params); + +#define opal_queue_msg(msg_type, data, cb, ...) \ + _opal_queue_msg(msg_type, data, cb, \ + sizeof((__be64[]) {__VA_ARGS__}), \ + (__be64[]) {__VA_ARGS__}); + +void opal_init_msg(void); + +#endif /* __OPALMSG_H */ |