brintos

brintos / linux-shallow public Read only

0
0
Text · 885 B · bacd111 Raw
29 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/* Copyright(c) 2024 Intel Corporation. */3#ifndef __CXL_MBOX_H__4#define __CXL_MBOX_H__5#include <linux/rcuwait.h>6 7struct cxl_mbox_cmd;8 9/**10 * struct cxl_mailbox - context for CXL mailbox operations11 * @host: device that hosts the mailbox12 * @payload_size: Size of space for payload13 *                (CXL 3.1 8.2.8.4.3 Mailbox Capabilities Register)14 * @mbox_mutex: mutex protects device mailbox and firmware15 * @mbox_wait: rcuwait for mailbox16 * @mbox_send: @dev specific transport for transmitting mailbox commands17 */18struct cxl_mailbox {19	struct device *host;20	size_t payload_size;21	struct mutex mbox_mutex; /* lock to protect mailbox context */22	struct rcuwait mbox_wait;23	int (*mbox_send)(struct cxl_mailbox *cxl_mbox, struct cxl_mbox_cmd *cmd);24};25 26int cxl_mailbox_init(struct cxl_mailbox *cxl_mbox, struct device *host);27 28#endif29