^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*** ltpc.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ***/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define LT_GETRESULT 0x00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define LT_WRITEMEM 0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define LT_READMEM 0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define LT_GETFLAGS 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define LT_SETFLAGS 0x05
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define LT_INIT 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #define LT_SENDLAP 0x13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define LT_RCVLAP 0x14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) /* the flag that we care about */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define LT_FLAG_ALLLAP 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct lt_getresult {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) unsigned char command;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) unsigned char mailbox;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) struct lt_mem {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) unsigned char command;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) unsigned char mailbox;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) unsigned short addr; /* host order */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) unsigned short length; /* host order */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) struct lt_setflags {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) unsigned char command;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) unsigned char mailbox;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) unsigned char flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) struct lt_getflags {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) unsigned char command;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) unsigned char mailbox;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) struct lt_init {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) unsigned char command;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) unsigned char mailbox;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) unsigned char hint;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) struct lt_sendlap {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) unsigned char command;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) unsigned char mailbox;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) unsigned char dnode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) unsigned char laptype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) unsigned short length; /* host order */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) struct lt_rcvlap {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) unsigned char command;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) unsigned char dnode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) unsigned char snode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) unsigned char laptype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) unsigned short length; /* host order */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) union lt_command {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) struct lt_getresult getresult;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) struct lt_mem mem;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) struct lt_setflags setflags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) struct lt_getflags getflags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) struct lt_init init;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) struct lt_sendlap sendlap;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) struct lt_rcvlap rcvlap;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) typedef union lt_command lt_command;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)