/* mbox message */ struct octep_ctrl_mbox_msg { /* mbox transaction header */ union octep_ctrl_mbox_msg_hdr hdr; /* number of sg buffer's */ int sg_num; /* message buffer's */ struct octep_ctrl_mbox_msg_buf sg_list[OCTEP_CTRL_MBOX_MSG_DESC_MAX];
};
/* Mbox queue */ struct octep_ctrl_mbox_q { /* size of queue buffer */
u32 sz; /* producer address in bar mem */
u8 __iomem *hw_prod; /* consumer address in bar mem */
u8 __iomem *hw_cons; /* q base address in bar mem */
u8 __iomem *hw_q;
};
struct octep_ctrl_mbox { /* control plane version */
u64 version; /* size of bar memory */
u32 barmem_sz; /* pointer to BAR memory */
u8 __iomem *barmem; /* host-to-fw queue */ struct octep_ctrl_mbox_q h2fq; /* fw-to-host queue */ struct octep_ctrl_mbox_q f2hq; /* lock for h2fq */ struct mutex h2fq_lock; /* lock for f2hq */ struct mutex f2hq_lock; /* Min control plane version supported by firmware */
u32 min_fw_version; /* Max control plane version supported by firmware */
u32 max_fw_version;
};
/* Initialize control mbox. * *@parammbox:non-nullpointertostructoctep_ctrl_mbox. * *returnvalue:0onsuccess,-errnoonfailure.
*/ int octep_ctrl_mbox_init(struct octep_ctrl_mbox *mbox);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.