1.. 2 ************************************************** 3 * * 4 * Automatically generated file, do not edit! * 5 * * 6 ************************************************** 7 8.. _amdgpu_synid7_msg: 9 10msg 11=========================== 12 13A 16-bit message code. The bits of this operand have the following meaning: 14 15 ============ =============================== =============== 16 Bits Description Value Range 17 ============ =============================== =============== 18 3:0 Message *type*. 0..15 19 6:4 Optional *operation*. 0..7 20 7:7 Unused. \- 21 9:8 Optional *stream*. 0..3 22 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 0..0xFFFF. 28* A *sendmsg* value described below. 29 30 ==================================== ==================================================== 31 Sendmsg Value Syntax Description 32 ==================================== ==================================================== 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 0..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 Id 52 ================= ========== ============================== ============ ========== 53 MSG_INTERRUPT 1 \- \- \- 54 MSG_GS 2 GS_OP_CUT 1 Optional 55 \ GS_OP_EMIT 2 Optional 56 \ GS_OP_EMIT_CUT 3 Optional 57 MSG_GS_DONE 3 GS_OP_NOP 0 \- 58 \ GS_OP_CUT 1 Optional 59 \ GS_OP_EMIT 2 Optional 60 \ GS_OP_EMIT_CUT 3 Optional 61 MSG_SYSMSG 15 SYSMSG_OP_ECC_ERR_INTERRUPT 1 \- 62 \ SYSMSG_OP_REG_RD 2 \- 63 \ SYSMSG_OP_HOST_TRAP_ACK 3 \- 64 \ SYSMSG_OP_TTRACE_PC 4 \- 65 ================= ========== ============================== ============ ========== 66 67*Sendmsg* arguments are validated depending on how *type* value is specified: 68 69* If message *type* is specified by name, arguments values must satisfy limitations detailed in the table above. 70* If message *type* is specified as a number, each argument must not exceed corresponding value range (see the first table). 71 72Examples: 73 74.. parsed-literal:: 75 76 // numeric message code 77 msg = 0x10 78 s_sendmsg 0x12 79 s_sendmsg msg + 2 80 81 // sendmsg with strict arguments validation 82 s_sendmsg sendmsg(MSG_INTERRUPT) 83 s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT) 84 s_sendmsg sendmsg(MSG_GS, 2) 85 s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_EMIT_CUT, 1) 86 s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_TTRACE_PC) 87 88 // sendmsg with validation of value range only 89 msg = 2 90 op = 3 91 stream = 1 92 s_sendmsg sendmsg(msg, op, stream) 93 s_sendmsg sendmsg(2, GS_OP_CUT) 94 95