brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · d759586 Raw
101 lines · plain
1..2    **************************************************3    *                                                *4    *   Automatically generated file, do not edit!   *5    *                                                *6    **************************************************7 8.. _amdgpu_synid_gfx1030_msg:9 10msg11===12 13A 16-bit message code. The bits of this operand have the following meaning:14 15    ============ =============================== ===============16    Bits         Description                     Value Range17    ============ =============================== ===============18    3:0          Message *type*.                 0..1519    6:4          Optional *operation*.           0..720    7:7          Unused.                         \-21    9:8          Optional *stream*.              0..322    15:10        Unused.                         \-23    ============ =============================== ===============24 25This operand may be specified as one of the following:26 27* An :ref:`integer_number<amdgpu_synid_integer_number>` or an :ref:`absolute_expression<amdgpu_synid_absolute_expression>`. The value must be in the range from 0 to 0xFFFF.28* A *sendmsg* value which is described below.29 30    ==================================== ====================================================31    Sendmsg Value Syntax                 Description32    ==================================== ====================================================33    sendmsg(<*type*>)                    A message identified by its *type*.34    sendmsg(<*type*>,<*op*>)             A message identified by its *type* and *operation*.35    sendmsg(<*type*>,<*op*>,<*stream*>)  A message identified by its *type* and *operation*36                                         with a stream *id*.37    ==================================== ====================================================38 39*Type* may be specified using message *name* or message *id*.40 41*Op* may be specified using operation *name* or operation *id*.42 43Stream *id* is an integer in the range from 0 to 3.44 45Numeric values may be specified as positive :ref:`integer numbers<amdgpu_synid_integer_number>`46or :ref:`absolute expressions<amdgpu_synid_absolute_expression>`.47 48Each message type supports specific operations:49 50    ====================== ========== ============================== ============ ==========51    Message name           Message Id Supported Operations           Operation Id Stream Id52    ====================== ========== ============================== ============ ==========53    MSG_INTERRUPT          1          \-                             \-           \-54    MSG_GS                 2          GS_OP_CUT                      1            Optional55    \                                 GS_OP_EMIT                     2            Optional56    \                                 GS_OP_EMIT_CUT                 3            Optional57    MSG_GS_DONE            3          GS_OP_NOP                      0            \-58    \                                 GS_OP_CUT                      1            Optional59    \                                 GS_OP_EMIT                     2            Optional60    \                                 GS_OP_EMIT_CUT                 3            Optional61    MSG_SAVEWAVE           4          \-                             \-           \-62    MSG_STALL_WAVE_GEN     5          \-                             \-           \-63    MSG_HALT_WAVES         6          \-                             \-           \-64    MSG_ORDERED_PS_DONE    7          \-                             \-           \-65    MSG_GS_ALLOC_REQ       9          \-                             \-           \-66    MSG_GET_DOORBELL       10         \-                             \-           \-67    MSG_GET_DDID           11         \-                             \-           \-68    MSG_SYSMSG             15         SYSMSG_OP_ECC_ERR_INTERRUPT    1            \-69    \                                 SYSMSG_OP_REG_RD               2            \-70    \                                 SYSMSG_OP_TTRACE_PC            4            \-71    ====================== ========== ============================== ============ ==========72 73*Sendmsg* arguments are validated depending on how *type* value is specified:74 75* If message *type* is specified by name, arguments values must satisfy limitations detailed in the table above.76* If message *type* is specified as a number, each argument must not exceed the corresponding value range (see the first table).77 78Examples:79 80.. parsed-literal::81 82    // numeric message code83    msg = 0x1084    s_sendmsg 0x1285    s_sendmsg msg + 286 87    // sendmsg with strict arguments validation88    s_sendmsg sendmsg(MSG_INTERRUPT)89    s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT)90    s_sendmsg sendmsg(MSG_GS, 2)91    s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_EMIT_CUT, 1)92    s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_TTRACE_PC)93    s_sendmsg sendmsg(MSG_GET_DOORBELL)94 95    // sendmsg with validation of value range only96    msg = 297    op = 398    stream = 199    s_sendmsg sendmsg(msg, op, stream)100    s_sendmsg sendmsg(2, GS_OP_CUT)101