hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/* SPDX-License-Identifier: GPL-2.0-or-later WITH Linux-syscall-note */
/*
 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
 */
 
/*
 * Oracle DAX driver API definitions
 */
 
#ifndef _ORADAX_H
#define    _ORADAX_H
 
#include <linux/types.h>
 
#define    CCB_KILL 0
#define    CCB_INFO 1
#define    CCB_DEQUEUE 2
 
struct dax_command {
   __u16 command;        /* CCB_KILL/INFO/DEQUEUE */
   __u16 ca_offset;    /* offset into mmapped completion area */
};
 
struct ccb_kill_result {
   __u16 action;        /* action taken to kill ccb */
};
 
struct ccb_info_result {
   __u16 state;        /* state of enqueued ccb */
   __u16 inst_num;        /* dax instance number of enqueued ccb */
   __u16 q_num;        /* queue number of enqueued ccb */
   __u16 q_pos;        /* ccb position in queue */
};
 
struct ccb_exec_result {
   __u64    status_data;    /* additional status data (e.g. bad VA) */
   __u32    status;        /* one of DAX_SUBMIT_* */
};
 
union ccb_result {
   struct ccb_exec_result exec;
   struct ccb_info_result info;
   struct ccb_kill_result kill;
};
 
#define    DAX_MMAP_LEN        (16 * 1024)
#define    DAX_MAX_CCBS        15
#define    DAX_CCB_BUF_MAXLEN    (DAX_MAX_CCBS * 64)
#define    DAX_NAME        "oradax"
 
/* CCB_EXEC status */
#define    DAX_SUBMIT_OK            0
#define    DAX_SUBMIT_ERR_RETRY        1
#define    DAX_SUBMIT_ERR_WOULDBLOCK    2
#define    DAX_SUBMIT_ERR_BUSY        3
#define    DAX_SUBMIT_ERR_THR_INIT        4
#define    DAX_SUBMIT_ERR_ARG_INVAL    5
#define    DAX_SUBMIT_ERR_CCB_INVAL    6
#define    DAX_SUBMIT_ERR_NO_CA_AVAIL    7
#define    DAX_SUBMIT_ERR_CCB_ARR_MMU_MISS    8
#define    DAX_SUBMIT_ERR_NOMAP        9
#define    DAX_SUBMIT_ERR_NOACCESS        10
#define    DAX_SUBMIT_ERR_TOOMANY        11
#define    DAX_SUBMIT_ERR_UNAVAIL        12
#define    DAX_SUBMIT_ERR_INTERNAL        13
 
/* CCB_INFO states - must match HV_CCB_STATE_* definitions */
#define    DAX_CCB_COMPLETED    0
#define    DAX_CCB_ENQUEUED    1
#define    DAX_CCB_INPROGRESS    2
#define    DAX_CCB_NOTFOUND    3
 
/* CCB_KILL actions - must match HV_CCB_KILL_* definitions */
#define    DAX_KILL_COMPLETED    0
#define    DAX_KILL_DEQUEUED    1
#define    DAX_KILL_KILLED        2
#define    DAX_KILL_NOTFOUND    3
 
#endif /* _ORADAX_H */