diff options
Diffstat (limited to 'xpp/card_global.h')
-rw-r--r-- | xpp/card_global.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/xpp/card_global.h b/xpp/card_global.h index 5fc1ea6..1dffb2e 100644 --- a/xpp/card_global.h +++ b/xpp/card_global.h @@ -24,6 +24,23 @@ #include "xdefs.h" +enum global_opcodes { + XPROTO_NAME(GLOBAL, DESC_REQ) = 0x04, + XPROTO_NAME(GLOBAL, DEV_DESC) = 0x05, + XPROTO_NAME(GLOBAL, REGISTER_REQUEST) = 0x0F, + XPROTO_NAME(GLOBAL, REGISTER_REPLY) = 0x10, +/**/ + XPROTO_NAME(GLOBAL, PCM_WRITE) = 0x11, + XPROTO_NAME(GLOBAL, PCM_READ) = 0x12, +/**/ + XPROTO_NAME(GLOBAL, SYNC_SOURCE) = 0x19, + XPROTO_NAME(GLOBAL, SYNC_REPLY) = 0x1A, +/**/ + XPROTO_NAME(GLOBAL, ERROR_CODE) = 0x22, + XPROTO_NAME(GLOBAL, RESET_SYNC_COUNTERS) = 0x23, + XPROTO_NAME(GLOBAL, NULL_REPLY) = 0xFE, +}; + DEF_RPACKET_DATA(GLOBAL, NULL_REPLY); DEF_RPACKET_DATA(GLOBAL, DESC_REQ); DEF_RPACKET_DATA(GLOBAL, DEV_DESC, @@ -51,6 +68,9 @@ DEF_RPACKET_DATA(GLOBAL, SYNC_REPLY, byte sync_mode; byte drift; ); +DEF_RPACKET_DATA(GLOBAL, REGISTER_REPLY, + reg_cmd_t regcmd; + ); DEF_RPACKET_DATA(GLOBAL, RESET_SYNC_COUNTERS, byte mask; ); @@ -71,8 +91,9 @@ enum sync_mode { /* 0x04 */ DECLARE_CMD(GLOBAL, DESC_REQ, int xpd_num); /* 0x19 */ DECLARE_CMD(GLOBAL, SYNC_SOURCE, enum sync_mode mode, int drift); /* 0x23 */ DECLARE_CMD(GLOBAL, RESET_SYNC_COUNTERS); -/* 0x11 */ DECLARE_CMD(GLOBAL, PCM_WRITE, xpp_line_t lines, volatile byte *buf); +int xpp_register_request(xbus_t *xbus, xpd_t *xpd, + byte chipsel, bool writing, bool do_subreg, byte regnum, byte subreg, byte data_low, byte data_high); extern xproto_table_t PROTO_TABLE(GLOBAL); int run_initialize_registers(xpd_t *xpd); |