linux/include/uapi/linux/idxd.h

/* SPDX-License-Identifier: LGPL-2.1 WITH Linux-syscall-note */
/* Copyright(c) 2019 Intel Corporation. All rights rsvd. */
#ifndef _USR_IDXD_H_
#define _USR_IDXD_H_

#ifdef __KERNEL__
#include <linux/types.h>
#else
#include <stdint.h>
#endif

/* Driver command error status */
enum idxd_scmd_stat {};

#define IDXD_SCMD_SOFTERR_MASK
#define IDXD_SCMD_SOFTERR_SHIFT

/* Descriptor flags */
#define IDXD_OP_FLAG_FENCE
#define IDXD_OP_FLAG_BOF
#define IDXD_OP_FLAG_CRAV
#define IDXD_OP_FLAG_RCR
#define IDXD_OP_FLAG_RCI
#define IDXD_OP_FLAG_CRSTS
#define IDXD_OP_FLAG_CR
#define IDXD_OP_FLAG_CC
#define IDXD_OP_FLAG_ADDR1_TCS
#define IDXD_OP_FLAG_ADDR2_TCS
#define IDXD_OP_FLAG_ADDR3_TCS
#define IDXD_OP_FLAG_CR_TCS
#define IDXD_OP_FLAG_STORD
#define IDXD_OP_FLAG_DRDBK
#define IDXD_OP_FLAG_DSTS

/* IAX */
#define IDXD_OP_FLAG_RD_SRC2_AECS
#define IDXD_OP_FLAG_RD_SRC2_2ND
#define IDXD_OP_FLAG_WR_SRC2_AECS_COMP
#define IDXD_OP_FLAG_WR_SRC2_AECS_OVFL
#define IDXD_OP_FLAG_SRC2_STS
#define IDXD_OP_FLAG_CRC_RFC3720

/* Opcode */
enum dsa_opcode {};

enum iax_opcode {};

/* Completion record status */
enum dsa_completion_status {};

enum iax_completion_status {};

#define DSA_COMP_STATUS_MASK
#define DSA_COMP_STATUS_WRITE
#define DSA_COMP_STATUS(status)

struct dsa_hw_desc {} __attribute__((packed));

struct iax_hw_desc {} __attribute__((packed));

struct dsa_raw_desc {} __attribute__((packed));

/*
 * The status field will be modified by hardware, therefore it should be
 * volatile and prevent the compiler from optimize the read.
 */
struct dsa_completion_record {} __attribute__((packed));

struct dsa_raw_completion_record {} __attribute__((packed));

struct iax_completion_record {} __attribute__((packed));

struct iax_raw_completion_record {} __attribute__((packed));

#endif