|
| 1 | +.. |
| 2 | + ************************************************** |
| 3 | + * * |
| 4 | + * Automatically generated file, do not edit! * |
| 5 | + * * |
| 6 | + ************************************************** |
| 7 | +
|
| 8 | +.. _amdgpu_synid_gfx90a_msg: |
| 9 | + |
| 10 | +msg |
| 11 | +=== |
| 12 | + |
| 13 | +A 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 | + |
| 25 | +This 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 | + |
| 43 | +Stream *id* is an integer in the range 0..3. |
| 44 | + |
| 45 | +Numeric values may be specified as positive :ref:`integer numbers<amdgpu_synid_integer_number>` |
| 46 | +or :ref:`absolute expressions<amdgpu_synid_absolute_expression>`. |
| 47 | + |
| 48 | +Each 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_GS_ALLOC_REQ 9 \- \- \- |
| 62 | + MSG_GET_DOORBELL 10 \- \- \- |
| 63 | + MSG_SYSMSG 15 SYSMSG_OP_ECC_ERR_INTERRUPT 1 \- |
| 64 | + \ SYSMSG_OP_REG_RD 2 \- |
| 65 | + \ SYSMSG_OP_HOST_TRAP_ACK 3 \- |
| 66 | + \ SYSMSG_OP_TTRACE_PC 4 \- |
| 67 | + ================= ========== ============================== ============ ========== |
| 68 | + |
| 69 | +*Sendmsg* arguments are validated depending on how *type* value is specified: |
| 70 | + |
| 71 | +* If message *type* is specified by name, arguments values must satisfy limitations detailed in the table above. |
| 72 | +* If message *type* is specified as a number, each argument must not exceed corresponding value range (see the first table). |
| 73 | + |
| 74 | +Examples: |
| 75 | + |
| 76 | +.. parsed-literal:: |
| 77 | +
|
| 78 | + // numeric message code |
| 79 | + msg = 0x10 |
| 80 | + s_sendmsg 0x12 |
| 81 | + s_sendmsg msg + 2 |
| 82 | +
|
| 83 | + // sendmsg with strict arguments validation |
| 84 | + s_sendmsg sendmsg(MSG_INTERRUPT) |
| 85 | + s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT) |
| 86 | + s_sendmsg sendmsg(MSG_GS, 2) |
| 87 | + s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_EMIT_CUT, 1) |
| 88 | + s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_TTRACE_PC) |
| 89 | + s_sendmsg sendmsg(MSG_GET_DOORBELL) |
| 90 | +
|
| 91 | + // sendmsg with validation of value range only |
| 92 | + msg = 2 |
| 93 | + op = 3 |
| 94 | + stream = 1 |
| 95 | + s_sendmsg sendmsg(msg, op, stream) |
| 96 | + s_sendmsg sendmsg(2, GS_OP_CUT) |
0 commit comments