* [PATCH 00/15] Introduce HabanaLabs network drivers
@ 2024-06-13 8:21 Omer Shpigelman
2024-06-13 8:21 ` [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver Omer Shpigelman
` (16 more replies)
0 siblings, 17 replies; 107+ messages in thread
From: Omer Shpigelman @ 2024-06-13 8:21 UTC (permalink / raw)
To: linux-kernel, linux-rdma, netdev, dri-devel
Cc: ogabbay, oshpigelman, zyehudai
This patch set implements the HabanaLabs network drivers for Gaudi2 ASIC
which is designed for scaling of AI neural networks training.
The patch set includes the common code which is shared by all Gaudi ASICs
and the Gaudi2 ASIC specific code. Newer ASICs code will be followed.
All of these network drivers are modeled as an auxiliary devices to the
parent driver.
The newly added drivers are Core Network (CN), Ethernet and InfiniBand.
All of these drivers are based on the existing habanalabs driver which
serves as the compute driver and the entire platform.
The habanalabs driver probes the network drivers which configure the
relevant NIC HW of the device. In addition, it continuously communicates
with the CN driver for providing some services which are not NIC specific
e.g. PCI, MMU, FW communication etc.
See the drivers scheme at:
Documentation/networking/device_drivers/ethernet/intel/hbl.rst
The CN driver is both a parent and a son driver. It serves as the common
layer of many shared operations that are required by both EN and IB
drivers.
The Gaudi2 NIC HW is composed of 48 physical lanes, 56Gbps each. Each pair
of lanes represent a 100Gbps logical port.
The NIC HW was designed specifically for scaling AI training.
Hence it basically functions as a regular NIC device but it is tuned for
its dedicated purpose. As a result, the NIC HW supports Ethernet traffic
and RDMA over modified ROCEv2 protocol.
For example, with respect to the IB driver, the HW supports a single
context and a single PD. The reason for this is that the operational use
case of AI training for Gaudi2 consists of a single user
application/process.
Another example related to the IB driver is the lack of MR since a single
application/process can share the entire MMU with the compute device.
Moreover, the memory allocation of user data buffers which are used for
RDMA communication is done via the habanalabs compute driver uAPI.
With respect to the Ethernet driver, since the Ethernet flow is used
mainly for control, the HW is not performance tuned e.g. it assumes a
contiguous memory for the Rx buffers. Thus the EN driver needs to copy the
Rx packets from the Rx buffer into the skb memory.
The first 8 patches implement the CN driver.
The next 2 patches implement the EN driver.
The next 2 patches implement the IB driver.
The last 3 patches modify the compute driver to support the CN driver.
The patches are rebased on v6.10-rc3 tag:
https://github.com/torvalds/linux/releases/tag/v6.10-rc3
The patches are also available at:
https://github.com/HabanaAI/drivers.gpu.linux-nic.kernel/tree/hbl_next
The user-mode of the driver is being reviewed at:
https://github.com/linux-rdma/rdma-core/pull/1472
Any feedback, comment or question is welcome.
Thanks,
Omer
Omer Shpigelman (15):
net: hbl_cn: add habanalabs Core Network driver
net: hbl_cn: memory manager component
net: hbl_cn: physical layer support
net: hbl_cn: QP state machine
net: hbl_cn: memory trace events
net: hbl_cn: debugfs support
net: hbl_cn: gaudi2: ASIC register header files
net: hbl_cn: gaudi2: ASIC specific support
net: hbl_en: add habanalabs Ethernet driver
net: hbl_en: gaudi2: ASIC specific support
RDMA/hbl: add habanalabs RDMA driver
RDMA/hbl: direct verbs support
accel/habanalabs: network scaling support
accel/habanalabs/gaudi2: CN registers header files
accel/habanalabs/gaudi2: network scaling support
.../ABI/testing/debugfs-driver-habanalabs_cn | 195 +
.../device_drivers/ethernet/index.rst | 1 +
.../device_drivers/ethernet/intel/hbl.rst | 82 +
MAINTAINERS | 33 +
drivers/accel/habanalabs/Kconfig | 1 +
drivers/accel/habanalabs/Makefile | 3 +
drivers/accel/habanalabs/cn/Makefile | 2 +
drivers/accel/habanalabs/cn/cn.c | 815 +
drivers/accel/habanalabs/cn/cn.h | 133 +
.../habanalabs/common/command_submission.c | 2 +-
drivers/accel/habanalabs/common/device.c | 23 +
drivers/accel/habanalabs/common/firmware_if.c | 20 +
drivers/accel/habanalabs/common/habanalabs.h | 43 +-
.../accel/habanalabs/common/habanalabs_drv.c | 37 +-
.../habanalabs/common/habanalabs_ioctl.c | 2 +
drivers/accel/habanalabs/common/memory.c | 123 +
drivers/accel/habanalabs/gaudi/gaudi.c | 14 +-
drivers/accel/habanalabs/gaudi2/Makefile | 2 +-
drivers/accel/habanalabs/gaudi2/gaudi2.c | 440 +-
drivers/accel/habanalabs/gaudi2/gaudi2P.h | 41 +-
drivers/accel/habanalabs/gaudi2/gaudi2_cn.c | 424 +
drivers/accel/habanalabs/gaudi2/gaudi2_cn.h | 42 +
.../habanalabs/gaudi2/gaudi2_coresight.c | 145 +-
.../accel/habanalabs/gaudi2/gaudi2_security.c | 16 +-
drivers/accel/habanalabs/goya/goya.c | 6 +
.../include/gaudi2/asic_reg/gaudi2_regs.h | 10 +-
.../include/gaudi2/asic_reg/nic0_phy_regs.h | 59 +
.../nic0_qm0_axuser_nonsecured_regs.h | 61 +
.../include/gaudi2/asic_reg/nic0_qpc1_regs.h | 905 +
.../include/gaudi2/asic_reg/nic0_rxe0_regs.h | 725 +
.../include/gaudi2/asic_reg/nic0_rxe1_regs.h | 725 +
.../include/gaudi2/asic_reg/nic0_txe0_regs.h | 529 +
.../include/gaudi2/asic_reg/nic0_txs0_regs.h | 289 +
.../include/hw_ip/nic/nic_general.h | 15 +
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/hw/Makefile | 1 +
drivers/infiniband/hw/hbl/Kconfig | 18 +
drivers/infiniband/hw/hbl/Makefile | 12 +
drivers/infiniband/hw/hbl/hbl.h | 326 +
drivers/infiniband/hw/hbl/hbl_encap.c | 216 +
drivers/infiniband/hw/hbl/hbl_main.c | 493 +
drivers/infiniband/hw/hbl/hbl_query_port.c | 96 +
drivers/infiniband/hw/hbl/hbl_set_port_ex.c | 96 +
drivers/infiniband/hw/hbl/hbl_usr_fifo.c | 252 +
drivers/infiniband/hw/hbl/hbl_verbs.c | 2686 +
drivers/net/ethernet/intel/Kconfig | 38 +
drivers/net/ethernet/intel/Makefile | 2 +
drivers/net/ethernet/intel/hbl_cn/Makefile | 14 +
.../net/ethernet/intel/hbl_cn/common/Makefile | 3 +
.../net/ethernet/intel/hbl_cn/common/hbl_cn.c | 5984 ++
.../net/ethernet/intel/hbl_cn/common/hbl_cn.h | 1666 +
.../intel/hbl_cn/common/hbl_cn_debugfs.c | 1457 +
.../ethernet/intel/hbl_cn/common/hbl_cn_drv.c | 240 +
.../intel/hbl_cn/common/hbl_cn_memory.c | 368 +
.../ethernet/intel/hbl_cn/common/hbl_cn_phy.c | 234 +
.../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 491 +
.../net/ethernet/intel/hbl_cn/gaudi2/Makefile | 3 +
.../asic_reg/arc_farm_kdma_ctx_axuser_masks.h | 135 +
.../asic_reg/dcore0_sync_mngr_objs_regs.h | 43543 +++++++++++++++
.../asic_reg/gaudi2_blocks_linux_driver.h | 45068 ++++++++++++++++
.../hbl_cn/gaudi2/asic_reg/gaudi2_regs.h | 77 +
.../asic_reg/nic0_mac_ch0_mac_128_masks.h | 339 +
.../asic_reg/nic0_mac_ch0_mac_128_regs.h | 101 +
.../asic_reg/nic0_mac_ch0_mac_pcs_masks.h | 713 +
.../asic_reg/nic0_mac_ch0_mac_pcs_regs.h | 271 +
.../asic_reg/nic0_mac_ch1_mac_pcs_regs.h | 271 +
.../asic_reg/nic0_mac_ch2_mac_pcs_regs.h | 271 +
.../asic_reg/nic0_mac_ch3_mac_pcs_regs.h | 271 +
.../nic0_mac_glob_stat_control_reg_masks.h | 67 +
.../nic0_mac_glob_stat_control_reg_regs.h | 37 +
.../asic_reg/nic0_mac_glob_stat_rx0_regs.h | 93 +
.../asic_reg/nic0_mac_glob_stat_rx2_regs.h | 93 +
.../asic_reg/nic0_mac_glob_stat_tx0_regs.h | 75 +
.../asic_reg/nic0_mac_glob_stat_tx2_regs.h | 75 +
.../gaudi2/asic_reg/nic0_mac_rs_fec_regs.h | 157 +
.../hbl_cn/gaudi2/asic_reg/nic0_phy_masks.h | 77 +
.../hbl_cn/gaudi2/asic_reg/nic0_phy_regs.h | 59 +
.../nic0_qm0_axuser_nonsecured_regs.h | 61 +
.../asic_reg/nic0_qpc0_axuser_cong_que_regs.h | 61 +
.../asic_reg/nic0_qpc0_axuser_db_fifo_regs.h | 61 +
.../asic_reg/nic0_qpc0_axuser_err_fifo_regs.h | 61 +
.../nic0_qpc0_axuser_ev_que_lbw_intr_regs.h | 61 +
.../asic_reg/nic0_qpc0_axuser_qpc_req_regs.h | 61 +
.../asic_reg/nic0_qpc0_axuser_qpc_resp_regs.h | 61 +
.../asic_reg/nic0_qpc0_axuser_rxwqe_regs.h | 61 +
.../nic0_qpc0_axuser_txwqe_lbw_qman_bp_regs.h | 61 +
.../nic0_qpc0_dbfifo0_ci_upd_addr_regs.h | 27 +
.../nic0_qpc0_dbfifosecur_ci_upd_addr_regs.h | 27 +
.../hbl_cn/gaudi2/asic_reg/nic0_qpc0_masks.h | 963 +
.../hbl_cn/gaudi2/asic_reg/nic0_qpc0_regs.h | 905 +
.../hbl_cn/gaudi2/asic_reg/nic0_qpc1_regs.h | 905 +
.../gaudi2/asic_reg/nic0_rxb_core_masks.h | 459 +
.../gaudi2/asic_reg/nic0_rxb_core_regs.h | 665 +
.../nic0_rxe0_axuser_axuser_cq0_regs.h | 61 +
.../nic0_rxe0_axuser_axuser_cq1_regs.h | 61 +
.../hbl_cn/gaudi2/asic_reg/nic0_rxe0_masks.h | 705 +
.../hbl_cn/gaudi2/asic_reg/nic0_rxe0_regs.h | 725 +
.../asic_reg/nic0_rxe0_wqe_aruser_regs.h | 61 +
.../hbl_cn/gaudi2/asic_reg/nic0_rxe1_regs.h | 725 +
.../gaudi2/asic_reg/nic0_serdes0_masks.h | 7163 +++
.../gaudi2/asic_reg/nic0_serdes0_regs.h | 1679 +
.../gaudi2/asic_reg/nic0_serdes1_regs.h | 1679 +
.../asic_reg/nic0_tmr_axuser_tmr_fifo_regs.h | 61 +
.../nic0_tmr_axuser_tmr_free_list_regs.h | 61 +
.../asic_reg/nic0_tmr_axuser_tmr_fsm_regs.h | 61 +
.../hbl_cn/gaudi2/asic_reg/nic0_tmr_masks.h | 361 +
.../hbl_cn/gaudi2/asic_reg/nic0_tmr_regs.h | 183 +
.../hbl_cn/gaudi2/asic_reg/nic0_txb_regs.h | 167 +
.../hbl_cn/gaudi2/asic_reg/nic0_txe0_masks.h | 759 +
.../hbl_cn/gaudi2/asic_reg/nic0_txe0_regs.h | 529 +
.../hbl_cn/gaudi2/asic_reg/nic0_txs0_masks.h | 555 +
.../hbl_cn/gaudi2/asic_reg/nic0_txs0_regs.h | 289 +
.../nic0_umr0_0_completion_queue_ci_1_regs.h | 27 +
.../nic0_umr0_0_unsecure_doorbell0_regs.h | 31 +
.../nic0_umr0_0_unsecure_doorbell1_regs.h | 31 +
.../gaudi2/asic_reg/prt0_mac_core_masks.h | 137 +
.../gaudi2/asic_reg/prt0_mac_core_regs.h | 67 +
.../ethernet/intel/hbl_cn/gaudi2/gaudi2_cn.c | 5689 ++
.../ethernet/intel/hbl_cn/gaudi2/gaudi2_cn.h | 427 +
.../intel/hbl_cn/gaudi2/gaudi2_cn_debugfs.c | 319 +
.../intel/hbl_cn/gaudi2/gaudi2_cn_eq.c | 732 +
.../intel/hbl_cn/gaudi2/gaudi2_cn_phy.c | 2743 +
drivers/net/ethernet/intel/hbl_en/Makefile | 12 +
.../net/ethernet/intel/hbl_en/common/Makefile | 3 +
.../net/ethernet/intel/hbl_en/common/hbl_en.c | 1170 +
.../net/ethernet/intel/hbl_en/common/hbl_en.h | 208 +
.../intel/hbl_en/common/hbl_en_dcbnl.c | 101 +
.../ethernet/intel/hbl_en/common/hbl_en_drv.c | 211 +
.../intel/hbl_en/common/hbl_en_ethtool.c | 452 +
.../net/ethernet/intel/hbl_en/gaudi2/Makefile | 2 +
.../ethernet/intel/hbl_en/gaudi2/gaudi2_en.c | 728 +
.../ethernet/intel/hbl_en/gaudi2/gaudi2_en.h | 53 +
.../intel/hbl_en/gaudi2/gaudi2_en_dcbnl.c | 32 +
include/linux/habanalabs/cpucp_if.h | 125 +-
include/linux/habanalabs/hl_boot_if.h | 9 +-
include/linux/net/intel/cn.h | 474 +
include/linux/net/intel/cn_aux.h | 298 +
include/linux/net/intel/cni.h | 636 +
include/linux/net/intel/gaudi2.h | 432 +
include/linux/net/intel/gaudi2_aux.h | 94 +
include/trace/events/habanalabs_cn.h | 116 +
include/uapi/drm/habanalabs_accel.h | 10 +-
include/uapi/rdma/hbl-abi.h | 204 +
include/uapi/rdma/hbl_user_ioctl_cmds.h | 66 +
include/uapi/rdma/hbl_user_ioctl_verbs.h | 106 +
include/uapi/rdma/ib_user_ioctl_verbs.h | 1 +
146 files changed, 148514 insertions(+), 70 deletions(-)
create mode 100644 Documentation/ABI/testing/debugfs-driver-habanalabs_cn
create mode 100644 Documentation/networking/device_drivers/ethernet/intel/hbl.rst
create mode 100644 drivers/accel/habanalabs/cn/Makefile
create mode 100644 drivers/accel/habanalabs/cn/cn.c
create mode 100644 drivers/accel/habanalabs/cn/cn.h
create mode 100644 drivers/accel/habanalabs/gaudi2/gaudi2_cn.c
create mode 100644 drivers/accel/habanalabs/gaudi2/gaudi2_cn.h
create mode 100644 drivers/accel/habanalabs/include/gaudi2/asic_reg/nic0_phy_regs.h
create mode 100644 drivers/accel/habanalabs/include/gaudi2/asic_reg/nic0_qm0_axuser_nonsecured_regs.h
create mode 100644 drivers/accel/habanalabs/include/gaudi2/asic_reg/nic0_qpc1_regs.h
create mode 100644 drivers/accel/habanalabs/include/gaudi2/asic_reg/nic0_rxe0_regs.h
create mode 100644 drivers/accel/habanalabs/include/gaudi2/asic_reg/nic0_rxe1_regs.h
create mode 100644 drivers/accel/habanalabs/include/gaudi2/asic_reg/nic0_txe0_regs.h
create mode 100644 drivers/accel/habanalabs/include/gaudi2/asic_reg/nic0_txs0_regs.h
create mode 100644 drivers/accel/habanalabs/include/hw_ip/nic/nic_general.h
create mode 100644 drivers/infiniband/hw/hbl/Kconfig
create mode 100644 drivers/infiniband/hw/hbl/Makefile
create mode 100644 drivers/infiniband/hw/hbl/hbl.h
create mode 100644 drivers/infiniband/hw/hbl/hbl_encap.c
create mode 100644 drivers/infiniband/hw/hbl/hbl_main.c
create mode 100644 drivers/infiniband/hw/hbl/hbl_query_port.c
create mode 100644 drivers/infiniband/hw/hbl/hbl_set_port_ex.c
create mode 100644 drivers/infiniband/hw/hbl/hbl_usr_fifo.c
create mode 100644 drivers/infiniband/hw/hbl/hbl_verbs.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/Makefile
create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/Makefile
create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_debugfs.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/Makefile
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/gaudi2_blocks_linux_driver.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/gaudi2_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch0_mac_128_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch0_mac_128_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch0_mac_pcs_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch0_mac_pcs_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch1_mac_pcs_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch2_mac_pcs_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch3_mac_pcs_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_control_reg_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_control_reg_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_rx0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_rx2_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_tx0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_tx2_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_rs_fec_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_phy_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_phy_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qm0_axuser_nonsecured_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_cong_que_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_db_fifo_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_err_fifo_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_ev_que_lbw_intr_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_qpc_req_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_qpc_resp_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_rxwqe_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_txwqe_lbw_qman_bp_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_dbfifo0_ci_upd_addr_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_dbfifosecur_ci_upd_addr_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc1_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxb_core_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxb_core_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_axuser_axuser_cq0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_axuser_axuser_cq1_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_wqe_aruser_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe1_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_serdes0_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_serdes0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_serdes1_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_axuser_tmr_fifo_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_axuser_tmr_free_list_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_axuser_tmr_fsm_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txb_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txe0_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txe0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txs0_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txs0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_umr0_0_completion_queue_ci_1_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_umr0_0_unsecure_doorbell0_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_umr0_0_unsecure_doorbell1_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/prt0_mac_core_masks.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/prt0_mac_core_regs.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/gaudi2_cn.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/gaudi2_cn.h
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/gaudi2_cn_debugfs.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/gaudi2_cn_eq.c
create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/gaudi2_cn_phy.c
create mode 100644 drivers/net/ethernet/intel/hbl_en/Makefile
create mode 100644 drivers/net/ethernet/intel/hbl_en/common/Makefile
create mode 100644 drivers/net/ethernet/intel/hbl_en/common/hbl_en.c
create mode 100644 drivers/net/ethernet/intel/hbl_en/common/hbl_en.h
create mode 100644 drivers/net/ethernet/intel/hbl_en/common/hbl_en_dcbnl.c
create mode 100644 drivers/net/ethernet/intel/hbl_en/common/hbl_en_drv.c
create mode 100644 drivers/net/ethernet/intel/hbl_en/common/hbl_en_ethtool.c
create mode 100644 drivers/net/ethernet/intel/hbl_en/gaudi2/Makefile
create mode 100644 drivers/net/ethernet/intel/hbl_en/gaudi2/gaudi2_en.c
create mode 100644 drivers/net/ethernet/intel/hbl_en/gaudi2/gaudi2_en.h
create mode 100644 drivers/net/ethernet/intel/hbl_en/gaudi2/gaudi2_en_dcbnl.c
create mode 100644 include/linux/net/intel/cn.h
create mode 100644 include/linux/net/intel/cn_aux.h
create mode 100644 include/linux/net/intel/cni.h
create mode 100644 include/linux/net/intel/gaudi2.h
create mode 100644 include/linux/net/intel/gaudi2_aux.h
create mode 100644 include/trace/events/habanalabs_cn.h
create mode 100644 include/uapi/rdma/hbl-abi.h
create mode 100644 include/uapi/rdma/hbl_user_ioctl_cmds.h
create mode 100644 include/uapi/rdma/hbl_user_ioctl_verbs.h
--
2.34.1
^ permalink raw reply [flat|nested] 107+ messages in thread* [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-13 8:21 [PATCH 00/15] Introduce HabanaLabs network drivers Omer Shpigelman @ 2024-06-13 8:21 ` Omer Shpigelman 2024-06-13 13:01 ` Przemek Kitszel ` (2 more replies) 2024-06-13 8:21 ` [PATCH 02/15] net: hbl_cn: memory manager component Omer Shpigelman ` (15 subsequent siblings) 16 siblings, 3 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-13 8:21 UTC (permalink / raw) To: linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, oshpigelman, zyehudai Add the hbl_cn driver which will serve both Ethernet and InfiniBand drivers. hbl_cn is the layer which is used by the satellite drivers for many shared operations that are needed by both EN and IB subsystems like QPs, CQs etc. The CN driver is initialized via auxiliary bus by the habanalabs driver. Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> Co-developed-by: David Meriin <dmeriin@habana.ai> Signed-off-by: David Meriin <dmeriin@habana.ai> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> --- .../device_drivers/ethernet/index.rst | 1 + .../device_drivers/ethernet/intel/hbl.rst | 82 + MAINTAINERS | 11 + drivers/net/ethernet/intel/Kconfig | 20 + drivers/net/ethernet/intel/Makefile | 1 + drivers/net/ethernet/intel/hbl_cn/Makefile | 9 + .../net/ethernet/intel/hbl_cn/common/Makefile | 3 + .../net/ethernet/intel/hbl_cn/common/hbl_cn.c | 5954 +++++++++++++++++ .../net/ethernet/intel/hbl_cn/common/hbl_cn.h | 1627 +++++ .../ethernet/intel/hbl_cn/common/hbl_cn_drv.c | 220 + .../intel/hbl_cn/common/hbl_cn_memory.c | 40 + .../ethernet/intel/hbl_cn/common/hbl_cn_phy.c | 33 + .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 13 + include/linux/habanalabs/cpucp_if.h | 125 +- include/linux/habanalabs/hl_boot_if.h | 9 +- include/linux/net/intel/cn.h | 474 ++ include/linux/net/intel/cn_aux.h | 298 + include/linux/net/intel/cni.h | 636 ++ 18 files changed, 9545 insertions(+), 11 deletions(-) create mode 100644 Documentation/networking/device_drivers/ethernet/intel/hbl.rst create mode 100644 drivers/net/ethernet/intel/hbl_cn/Makefile create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/Makefile create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c create mode 100644 include/linux/net/intel/cn.h create mode 100644 include/linux/net/intel/cn_aux.h create mode 100644 include/linux/net/intel/cni.h diff --git a/Documentation/networking/device_drivers/ethernet/index.rst b/Documentation/networking/device_drivers/ethernet/index.rst index 6932d8c043c2..2fe975aae7b1 100644 --- a/Documentation/networking/device_drivers/ethernet/index.rst +++ b/Documentation/networking/device_drivers/ethernet/index.rst @@ -40,6 +40,7 @@ Contents: intel/i40e intel/iavf intel/ice + intel/hbl marvell/octeontx2 marvell/octeon_ep marvell/octeon_ep_vf diff --git a/Documentation/networking/device_drivers/ethernet/intel/hbl.rst b/Documentation/networking/device_drivers/ethernet/intel/hbl.rst new file mode 100644 index 000000000000..ebf436d0da7c --- /dev/null +++ b/Documentation/networking/device_drivers/ethernet/intel/hbl.rst @@ -0,0 +1,82 @@ +.. SPDX-License-Identifier: GPL-2.0 +====================================================================== +Linux kernel drivers for HabanaLabs (an Intel company) Network +====================================================================== + +Copyright 2020-2024 HabanaLabs, Ltd. +Copyright(c) 2023-2024 Intel Corporation. + +Contents +======== + +- Overview +- Identifying Your Adapter +- Important Notes +- Support +- Trademarks + +Overview +======== + +These drivers enables the infrastructure for network functionality which is part +of the GAUDI ASIC family of AI Accelerators. + +The network interfaces are mainly used for scaling the training of AI neural +networks through ROCEv2 protocol. + +Driver's information can be obtained using lspci. + +For questions related to hardware requirements, refer to the documentation +supplied with your HabanaLabs adapter. All hardware requirements listed apply to +use with Linux. + +The included network drivers are Core Network, Ethernet and InfiniBand which are +all based on the habanalabs driver which serves as the compute driver and the +general platform. +This is the drivers scheme: + ++------------+ | +-----+ | +-------+ +| INFINIBAND | | | NET | | | ACCEL | ++------------+ | +-----+ | +-------+ + | | + +----+ | +----+ +----+ | +------------+ + | IB | | | EN <---| CN | | | HABANALABS | + +-^--+ | +----+ +---^+ | +------------+ + | | | | + +-----------------------+ +--------------+ + +The parent driver is at the arrow base and the son is at the arrow head. +The CN driver is both a parent and a son driver. + +Identifying Your Adapter +======================== +For information on how to identify your adapter, and for the latest Intel +network drivers, refer to the Intel Support website: +https://www.intel.com/support + +Important Notes +=============== + +hbl_cn main goal is to provide core functionalities that are shared between the +Ethernet (hbl_en) and the InfiniBand (hbl) drivers. +It contains all core logic that is needed to operate the satellite drivers while +keeping them as minimal as possible. Only pure Ethernet/InfiniBand code should +reside in the satellite drivers. +This code structure ensures a single and common infrastructure layer for both +functionalities which makes it easier to modify and maintain. + +Support +======= +For general information, go to the Intel support website at: +https://www.intel.com/support/ + +If an issue is identified with the released source code on a supported kernel +with a supported adapter, email the specific information related to the issue +to intel-wired-lan@lists.osuosl.org. + +Trademarks +========== +Intel is a trademark or registered trademark of Intel Corporation or its +subsidiaries in the United States and/or other countries. + +* Other names and brands may be claimed as the property of others. diff --git a/MAINTAINERS b/MAINTAINERS index 8754ac2c259d..e948e33e990d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9604,6 +9604,17 @@ F: include/linux/habanalabs/ F: include/trace/events/habanalabs.h F: include/uapi/drm/habanalabs_accel.h +HABANALABS CORE NETWORK DRIVER +M: Omer Shpigelman <oshpigelman@habana.ai> +L: netdev@vger.kernel.org +L: linux-rdma@vger.kernel.org +S: Supported +W: https://www.habana.ai +F: Documentation/networking/device_drivers/ethernet/intel/hbl.rst +F: drivers/net/ethernet/intel/hbl_cn/ +F: include/linux/habanalabs/ +F: include/linux/net/intel/cn* + HACKRF MEDIA DRIVER L: linux-media@vger.kernel.org S: Orphan diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig index e0287fbd501d..0d1b8a2bae99 100644 --- a/drivers/net/ethernet/intel/Kconfig +++ b/drivers/net/ethernet/intel/Kconfig @@ -397,4 +397,24 @@ config IDPF To compile this driver as a module, choose M here. The module will be called idpf. +config HABANA_CN + tristate "HabanaLabs (an Intel Company) Core Network driver" + depends on X86_64 + depends on PCI + select AUXILIARY_BUS + default n + help + This driver enables the infrastructure for network functionality that + is part of the GAUDI ASIC family of AI Accelerators. + For more information on how to identify your adapter, go to the + Adapter & Driver ID Guide that can be located at: + + <http://support.intel.com> + + More specific information on configuring the driver is in + <file:Documentation/networking/device_drivers/ethernet/intel/hbl.rst>. + + To compile this driver as a module, choose M here. The module + will be called habanalabs_cn. + endif # NET_VENDOR_INTEL diff --git a/drivers/net/ethernet/intel/Makefile b/drivers/net/ethernet/intel/Makefile index 04c844ef4964..10049a28e336 100644 --- a/drivers/net/ethernet/intel/Makefile +++ b/drivers/net/ethernet/intel/Makefile @@ -19,3 +19,4 @@ obj-$(CONFIG_IAVF) += iavf/ obj-$(CONFIG_FM10K) += fm10k/ obj-$(CONFIG_ICE) += ice/ obj-$(CONFIG_IDPF) += idpf/ +obj-$(CONFIG_HABANA_CN) += hbl_cn/ diff --git a/drivers/net/ethernet/intel/hbl_cn/Makefile b/drivers/net/ethernet/intel/hbl_cn/Makefile new file mode 100644 index 000000000000..84ee2a6d7c3b --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/Makefile @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Makefile for HabanaLabs (an Intel Company) core network driver +# + +obj-$(CONFIG_HABANA_CN) := habanalabs_cn.o + +include $(src)/common/Makefile +habanalabs_cn-y += $(HBL_CN_COMMON_FILES) diff --git a/drivers/net/ethernet/intel/hbl_cn/common/Makefile b/drivers/net/ethernet/intel/hbl_cn/common/Makefile new file mode 100644 index 000000000000..c8cf092db786 --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/common/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only +HBL_CN_COMMON_FILES := common/hbl_cn_drv.o common/hbl_cn.o \ + common/hbl_cn_phy.o common/hbl_cn_qp.o common/hbl_cn_memory.o diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c new file mode 100644 index 000000000000..946b11bfa61b --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c @@ -0,0 +1,5954 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#include "hbl_cn.h" + +#include <linux/file.h> +#include <linux/module.h> +#include <linux/overflow.h> +#include <linux/pci.h> +#include <linux/slab.h> + +#define NIC_MIN_WQS_PER_PORT 2 + +#define NIC_SEQ_RESETS_TIMEOUT_MS 15000 /* 15 seconds */ +#define NIC_MAX_SEQ_RESETS 3 + +#define HBL_CN_IPV4_PROTOCOL_UDP 17 + +/* SOB mask is not expected to change across ASIC. Hence common defines. */ +#define NIC_SOB_INC_MASK 0x80000000 +#define NIC_SOB_VAL_MASK 0x7fff + +#define NIC_DUMP_QP_SZ SZ_4K + +#define HBL_AUX2NIC(aux_dev) \ + ({ \ + struct hbl_aux_dev *__aux_dev = (aux_dev); \ + ((__aux_dev)->type == HBL_AUX_DEV_ETH) ? \ + container_of(__aux_dev, struct hbl_cn_device, en_aux_dev) : \ + container_of(__aux_dev, struct hbl_cn_device, ib_aux_dev); \ + }) + +#define RAND_STAT_CNT(cnt) \ + do { \ + u32 __cnt = get_random_u32(); \ + (cnt) = __cnt; \ + dev_info(hdev->dev, "port %d, %s: %u\n", port, #cnt, __cnt); \ + } while (0) + +struct hbl_cn_stat hbl_cn_mac_fec_stats[] = { + {"correctable_errors", 0x2, 0x3}, + {"uncorrectable_errors", 0x4, 0x5} +}; + +struct hbl_cn_stat hbl_cn_mac_stats_rx[] = { + {"Octets", 0x0}, + {"OctetsReceivedOK", 0x4}, + {"aAlignmentErrors", 0x8}, + {"aPAUSEMACCtrlFramesReceived", 0xC}, + {"aFrameTooLongErrors", 0x10}, + {"aInRangeLengthErrors", 0x14}, + {"aFramesReceivedOK", 0x18}, + {"aFrameCheckSequenceErrors", 0x1C}, + {"VLANReceivedOK", 0x20}, + {"ifInErrors", 0x24}, + {"ifInUcastPkts", 0x28}, + {"ifInMulticastPkts", 0x2C}, + {"ifInBroadcastPkts", 0x30}, + {"DropEvents", 0x34}, + {"Pkts", 0x38}, + {"UndersizePkts", 0x3C}, + {"Pkts64Octets", 0x40}, + {"Pkts65to127Octets", 0x44}, + {"Pkts128to255Octets", 0x48}, + {"Pkts256to511Octets", 0x4C}, + {"Pkts512to1023Octets", 0x50}, + {"Pkts1024to1518Octets", 0x54}, + {"Pkts1519toMaxOctets", 0x58}, + {"OversizePkts", 0x5C}, + {"Jabbers", 0x60}, + {"Fragments", 0x64}, + {"aCBFCPAUSERx0", 0x68}, + {"aCBFCPAUSERx1", 0x6C}, + {"aCBFCPAUSERx2", 0x70}, + {"aCBFCPAUSERx3", 0x74}, + {"aCBFCPAUSERx4", 0x78}, + {"aCBFCPAUSERx5", 0x7C}, + {"aCBFCPAUSERx6", 0x80}, + {"aCBFCPAUSERx7", 0x84}, + {"aMACControlFramesReceived", 0x88} +}; + +struct hbl_cn_stat hbl_cn_mac_stats_tx[] = { + {"Octets", 0x0}, + {"OctetsTransmittedOK", 0x4}, + {"aPAUSEMACCtrlFramesTransmitted", 0x8}, + {"aFramesTransmittedOK", 0xC}, + {"VLANTransmittedOK", 0x10}, + {"ifOutErrors", 0x14}, + {"ifOutUcastPkts", 0x18}, + {"ifOutMulticastPkts", 0x1C}, + {"ifOutBroadcastPkts", 0x20}, + {"Pkts64Octets", 0x24}, + {"Pkts65to127Octets", 0x28}, + {"Pkts128to255Octets", 0x2C}, + {"Pkts256to511Octets", 0x30}, + {"Pkts512to1023Octets", 0x34}, + {"Pkts1024to1518Octets", 0x38}, + {"Pkts1519toMaxOctets", 0x3C}, + {"aCBFCPAUSETx0", 0x40}, + {"aCBFCPAUSETx1", 0x44}, + {"aCBFCPAUSETx2", 0x48}, + {"aCBFCPAUSETx3", 0x4C}, + {"aCBFCPAUSETx4", 0x50}, + {"aCBFCPAUSETx5", 0x54}, + {"aCBFCPAUSETx6", 0x58}, + {"aCBFCPAUSETx7", 0x5C}, + {"aMACControlFramesTx", 0x60}, + {"Pkts", 0x64} +}; + +static const char pcs_counters_str[][ETH_GSTRING_LEN] = { + {"pcs_local_faults"}, + {"pcs_remote_faults"}, + {"pcs_remote_fault_reconfig"}, + {"pcs_link_restores"}, + {"pcs_link_toggles"}, +}; + +static size_t pcs_counters_str_len = ARRAY_SIZE(pcs_counters_str); +size_t hbl_cn_mac_fec_stats_len = ARRAY_SIZE(hbl_cn_mac_fec_stats); +size_t hbl_cn_mac_stats_rx_len = ARRAY_SIZE(hbl_cn_mac_stats_rx); +size_t hbl_cn_mac_stats_tx_len = ARRAY_SIZE(hbl_cn_mac_stats_tx); + +static void qps_stop(struct hbl_cn_device *hdev); +static void qp_destroy_work(struct work_struct *work); +static int __user_wq_arr_unset(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type); +static void user_cq_destroy(struct kref *kref); +static void set_app_params_clear(struct hbl_cn_device *hdev); +static int hbl_cn_ib_cmd_ctrl(struct hbl_aux_dev *aux_dev, void *cn_ib_ctx, u32 op, void *input, + void *output); +static int hbl_cn_ib_query_mem_handle(struct hbl_aux_dev *ib_aux_dev, u64 mem_handle, + struct hbl_ib_mem_info *info); + +static void hbl_cn_reset_stats_counters_port(struct hbl_cn_device *hdev, u32 port); +static void hbl_cn_late_init(struct hbl_cn_device *hdev); +static void hbl_cn_late_fini(struct hbl_cn_device *hdev); +static int hbl_cn_sw_init(struct hbl_cn_device *hdev); +static void hbl_cn_sw_fini(struct hbl_cn_device *hdev); +static void hbl_cn_spmu_init(struct hbl_cn_port *cn_port, bool full); +static int hbl_cn_cmd_port_check(struct hbl_cn_device *hdev, u32 port, u32 flags); +static void hbl_cn_qps_stop(struct hbl_cn_port *cn_port); + +static int hbl_cn_request_irqs(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + return asic_funcs->request_irqs(hdev); +} + +static void hbl_cn_free_irqs(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + asic_funcs->free_irqs(hdev); +} + +static void hbl_cn_synchronize_irqs(struct hbl_aux_dev *cn_aux_dev) +{ + struct hbl_cn_device *hdev = cn_aux_dev->priv; + struct hbl_cn_asic_funcs *asic_funcs; + + asic_funcs = hdev->asic_funcs; + + asic_funcs->synchronize_irqs(hdev); +} + +void hbl_cn_get_frac_info(u64 numerator, u64 denominator, u64 *integer, u64 *exp) +{ + u64 high_digit_n, high_digit_d, integer_tmp, exp_tmp; + u8 num_digits_n, num_digits_d; + int i; + + num_digits_d = hbl_cn_get_num_of_digits(denominator); + high_digit_d = denominator; + for (i = 0; i < num_digits_d - 1; i++) + high_digit_d /= 10; + + integer_tmp = 0; + exp_tmp = 0; + + if (numerator) { + num_digits_n = hbl_cn_get_num_of_digits(numerator); + high_digit_n = numerator; + for (i = 0; i < num_digits_n - 1; i++) + high_digit_n /= 10; + + exp_tmp = num_digits_d - num_digits_n; + + if (high_digit_n < high_digit_d) { + high_digit_n *= 10; + exp_tmp++; + } + + integer_tmp = div_u64(high_digit_n, high_digit_d); + } + + *integer = integer_tmp; + *exp = exp_tmp; +} + +int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 out_data[], u32 *num_out_data) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_stat *ignore; + int rc; + + port_funcs = hdev->asic_funcs->port_funcs; + + port_funcs->spmu_get_stats_info(cn_port, &ignore, num_out_data); + + /* this function can be called from ethtool, get_statistics ioctl and FW status thread */ + mutex_lock(&cn_port->cnt_lock); + rc = port_funcs->spmu_sample(cn_port, *num_out_data, out_data); + mutex_unlock(&cn_port->cnt_lock); + + return rc; +} + +static u32 hbl_cn_get_port_toggle_cnt(struct hbl_cn_port *cn_port) +{ + /* We should not count the first toggle, as it marks that port was brought up for + * the first time. In case port connection wasn't established, the counter should be 0. + */ + return cn_port->port_toggle_cnt ? cn_port->port_toggle_cnt - 1 : 0; +} + +static int __hbl_cn_get_cnts_num(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + + return pcs_counters_str_len + + hdev->asic_funcs->port_funcs->get_cnts_num(cn_port); +} + +static void __hbl_cn_get_cnts_names(struct hbl_cn_port *cn_port, u8 *data, bool ext) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + int i, len; + + len = ext ? HBL_IB_CNT_NAME_LEN : ETH_GSTRING_LEN; + + for (i = 0; i < pcs_counters_str_len; i++) + memcpy(data + i * len, pcs_counters_str[i], ETH_GSTRING_LEN); + data += i * len; + + hdev->asic_funcs->port_funcs->get_cnts_names(cn_port, data, ext); +} + +static void __hbl_cn_get_cnts_values(struct hbl_cn_port *cn_port, u64 *data) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + + data[0] = cn_port->pcs_local_fault_cnt; + data[1] = cn_port->pcs_remote_fault_cnt; + data[2] = cn_port->pcs_remote_fault_reconfig_cnt; + data[3] = cn_port->pcs_link_restore_cnt; + data[4] = hbl_cn_get_port_toggle_cnt(cn_port); + + data += pcs_counters_str_len; + + hdev->asic_funcs->port_funcs->get_cnts_values(cn_port, data); +} + +static int __hbl_cn_port_hw_init(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + + if (cn_port->disabled) { + dev_err(hdev->dev, "Port %u is disabled\n", cn_port->port); + return -EPERM; + } + + hbl_cn_reset_stats_counters_port(hdev, cn_port->port); + + return hdev->asic_funcs->port_funcs->port_hw_init(cn_port); +} + +static void __hbl_cn_port_hw_fini(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + + asic_funcs = hdev->asic_funcs; + + /* in hard reset the QPs were stopped by hbl_cn_stop called from halt engines */ + if (hdev->operational) + hbl_cn_qps_stop(cn_port); + + asic_funcs->port_funcs->port_hw_fini(cn_port); +} + +bool hbl_cn_comp_device_operational(struct hbl_cn_device *hdev) +{ + struct hbl_aux_dev *aux_dev = hdev->cn_aux_dev; + struct hbl_cn_aux_ops *aux_ops; + + aux_ops = aux_dev->aux_ops; + + return aux_ops->device_operational(aux_dev); +} + +void hbl_cn_spmu_get_stats_info(struct hbl_cn_port *cn_port, struct hbl_cn_stat **stats, + u32 *n_stats) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + + hdev->asic_funcs->port_funcs->spmu_get_stats_info(cn_port, stats, n_stats); +} + +int hbl_cn_reserve_dva_block(struct hbl_cn_ctx *ctx, u64 size, u64 *dva) +{ + struct hbl_cn_device *hdev = ctx->hdev; + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + return aux_ops->vm_reserve_dva_block(aux_dev, ctx->driver_vm_info.vm_handle, size, dva); +} + +void hbl_cn_unreserve_dva_block(struct hbl_cn_ctx *ctx, u64 dva, u64 size) +{ + struct hbl_cn_device *hdev = ctx->hdev; + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + aux_ops->vm_unreserve_dva_block(aux_dev, ctx->driver_vm_info.vm_handle, dva, size); +} + +int hbl_cn_get_hw_block_handle(struct hbl_cn_device *hdev, u64 address, u64 *handle) +{ + return hdev->asic_funcs->get_hw_block_handle(hdev, address, handle); +} + +static int hbl_cn_get_hw_block_addr(struct hbl_cn_device *hdev, u64 handle, u64 *addr, u64 *size) +{ + return hdev->asic_funcs->get_hw_block_addr(hdev, handle, addr, size); +} + +int hbl_cn_send_cpucp_packet(struct hbl_cn_device *hdev, u32 port, enum cpucp_packet_id pkt_id, + int val) +{ + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + return hdev->asic_funcs->port_funcs->send_cpucp_packet(cn_port, pkt_id, val); +} + +static bool hbl_cn_device_operational(struct hbl_aux_dev *aux_dev) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + + return hdev->operational; +} + +static void hbl_cn_hw_access_lock(struct hbl_aux_dev *aux_dev) + __acquires(&hdev->hw_access_lock) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + + mutex_lock(&hdev->hw_access_lock); +} + +static void hbl_cn_hw_access_unlock(struct hbl_aux_dev *aux_dev) + __releases(&hdev->hw_access_lock) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + + mutex_unlock(&hdev->hw_access_lock); +} + +static bool hbl_cn_is_eth_lpbk(struct hbl_aux_dev *aux_dev) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + + return hdev->eth_loopback; +} + +static int hbl_cn_port_hw_init(struct hbl_aux_dev *aux_dev, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + return __hbl_cn_port_hw_init(cn_port); +} + +static void hbl_cn_port_hw_fini(struct hbl_aux_dev *aux_dev, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + __hbl_cn_port_hw_fini(cn_port); +} + +static int hbl_cn_phy_port_init(struct hbl_aux_dev *aux_dev, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + return hdev->asic_funcs->port_funcs->phy_port_init(cn_port); +} + +static void hbl_cn_phy_port_fini(struct hbl_aux_dev *aux_dev, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + hdev->asic_funcs->port_funcs->phy_port_fini(cn_port); +} + +static int hbl_cn_set_pfc(struct hbl_aux_dev *aux_dev, u32 port, bool enable) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + cn_port->pfc_enable = enable; + + return hdev->asic_funcs->port_funcs->set_pfc(cn_port); +} + +static int hbl_cn_get_cnts_num(struct hbl_aux_dev *aux_dev, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + return __hbl_cn_get_cnts_num(cn_port); +} + +static void hbl_cn_get_cnts_names(struct hbl_aux_dev *aux_dev, u32 port, u8 *data) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + __hbl_cn_get_cnts_names(cn_port, data, false); +} + +static void hbl_cn_get_cnts_values(struct hbl_aux_dev *aux_dev, u32 port, u64 *data) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + __hbl_cn_get_cnts_values(cn_port, data); +} + +static bool hbl_cn_get_mac_lpbk(struct hbl_aux_dev *aux_dev, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + return cn_port->mac_loopback; +} + +static int hbl_cn_set_mac_lpbk(struct hbl_aux_dev *aux_dev, u32 port, bool enable) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + if (atomic_read(&cn_port->num_of_allocated_qps)) { + dev_dbg(hdev->dev, + "There are active QPs under this port - Can't %s mac loopback\n", + enable ? "enable" : "disable"); + return -EBUSY; + } + + cn_port->mac_loopback = enable; + + if (enable) + hdev->mac_loopback |= BIT(port); + else + hdev->mac_loopback &= ~BIT(port); + + return 0; +} + +static int hbl_cn_update_mtu(struct hbl_aux_dev *aux_dev, u32 port, u32 mtu) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + unsigned long qp_id = 0; + struct hbl_cn_qp *qp; + int rc = 0; + + cn_port = &hdev->cn_ports[port]; + port_funcs = hdev->asic_funcs->port_funcs; + mtu += HBL_EN_MAX_HEADERS_SZ; + + port_funcs->cfg_lock(cn_port); + xa_for_each(&cn_port->qp_ids, qp_id, qp) { + if (qp->mtu_type == MTU_FROM_NETDEV && qp->mtu != mtu) { + rc = port_funcs->update_qp_mtu(cn_port, qp, mtu); + if (rc) { + dev_err(hdev->dev, "Failed to update MTU, port: %d, qpn: %ld, %d\n", + port, qp_id, rc); + break; + } + } + } + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int hbl_cn_qpc_write(struct hbl_aux_dev *aux_dev, u32 port, void *qpc, + struct qpc_mask *qpc_mask, u32 qpn, bool is_req) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + int rc; + + cn_port = &hdev->cn_ports[port]; + port_funcs = hdev->asic_funcs->port_funcs; + + port_funcs->cfg_lock(cn_port); + rc = port_funcs->qpc_write(cn_port, qpc, qpc_mask, qpn, is_req); + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static void hbl_cn_ctrl_lock(struct hbl_aux_dev *aux_dev, u32 port) + __acquires(&cn_port->control_lock) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + mutex_lock(&cn_port->control_lock); +} + +static void hbl_cn_ctrl_unlock(struct hbl_aux_dev *aux_dev, u32 port) + __releases(&cn_port->control_lock) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + mutex_unlock(&cn_port->control_lock); +} + +static int hbl_cn_dispatcher_register_qp(struct hbl_aux_dev *aux_dev, u32 port, u32 asid, u32 qp_id) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + return hbl_cn_eq_dispatcher_register_qp(cn_port, asid, qp_id); +} + +static int hbl_cn_dispatcher_unregister_qp(struct hbl_aux_dev *aux_dev, u32 port, u32 qp_id) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + return hbl_cn_eq_dispatcher_unregister_qp(cn_port, qp_id); +} + +static u32 hbl_cn_get_speed(struct hbl_aux_dev *aux_dev, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + return cn_port->speed; +} + +static void hbl_cn_track_ext_port_reset(struct hbl_aux_dev *aux_dev, u32 port, u32 syndrome) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + hbl_cn_track_port_reset(cn_port, syndrome); +} + +static void hbl_cn_port_toggle_count(struct hbl_aux_dev *aux_dev, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + cn_port->port_toggle_cnt++; +} + +/* Check for initialized hbl IB device. */ +bool hbl_cn_is_ibdev(struct hbl_cn_device *hdev) +{ + return !!hdev->ib_aux_dev.priv; +} + +/* Check for opened hbl IB device. */ +static bool hbl_cn_is_ibdev_opened(struct hbl_cn_device *hdev) +{ + return hdev->ib_aux_dev.priv && hdev->ib_device_opened; +} + +static int hbl_cn_ib_alloc_ucontext(struct hbl_aux_dev *ib_aux_dev, int user_fd, void **cn_ib_ctx) +{ + struct hbl_cn_comp_vm_info *user_vm_info, *driver_vm_info; + struct hbl_cn_device *hdev = HBL_AUX2NIC(ib_aux_dev); + struct hbl_aux_dev *aux_dev = hdev->cn_aux_dev; + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_aux_ops *aux_ops; + struct hbl_cn_ctx *ctx; + int rc; + + asic_funcs = hdev->asic_funcs; + aux_ops = aux_dev->aux_ops; + + if (!hdev->multi_ctx_support && hdev->ctx) { + dev_err(hdev->dev, "There is already an active user context\n"); + return -EBUSY; + } + + ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return -ENOMEM; + + ctx->hdev = hdev; + mutex_init(&ctx->lock); + + user_vm_info = &ctx->user_vm_info; + driver_vm_info = &ctx->driver_vm_info; + + rc = aux_ops->register_cn_user_context(aux_dev, user_fd, ctx, &ctx->comp_handle, + &user_vm_info->vm_handle); + if (rc) { + dev_dbg(hdev->dev, "Failed to register user context with FD %d\n", user_fd); + goto release_ctx; + } + + if (user_vm_info->vm_handle != ctx->comp_handle) { + rc = aux_ops->get_vm_info(aux_dev, user_vm_info->vm_handle, &user_vm_info->vm_info); + if (rc) { + dev_err(hdev->dev, "Failed to get user VM info for handle 0x%llx\n", + user_vm_info->vm_handle); + goto deregister_ctx; + } + + if (user_vm_info->vm_info.mmu_mode == HBL_CN_MMU_MODE_NETWORK_TLB) + ctx->user_asid = user_vm_info->vm_info.net_tlb.pasid; + else + ctx->user_asid = user_vm_info->vm_info.ext_mmu.work_id; + } else { + /* No data transfer in this mode */ + ctx->user_asid = -1; + } + + rc = aux_ops->vm_create(aux_dev, ctx->comp_handle, 0, &driver_vm_info->vm_handle); + if (rc) { + dev_err(hdev->dev, "Failed to create driver VM for vompute handle 0x%llx\n", + ctx->comp_handle); + goto deregister_ctx; + } + + rc = aux_ops->get_vm_info(aux_dev, driver_vm_info->vm_handle, &driver_vm_info->vm_info); + if (rc) { + dev_err(hdev->dev, "Failed to get driver VM info for handle 0x%llx\n", + driver_vm_info->vm_handle); + goto destroy_driver_vm; + } + + if (driver_vm_info->vm_info.mmu_mode == HBL_CN_MMU_MODE_NETWORK_TLB) + ctx->asid = driver_vm_info->vm_info.net_tlb.pasid; + else + ctx->asid = driver_vm_info->vm_info.ext_mmu.work_id; + + /* must be called before calling create_mem_ctx */ + rc = asic_funcs->ctx_init(ctx); + if (rc) { + dev_err(hdev->dev, "failed to init user context with ASID %d\n", ctx->asid); + goto destroy_driver_vm; + } + + if (ctx->user_asid != -1 && user_vm_info->vm_info.mmu_mode == HBL_CN_MMU_MODE_NETWORK_TLB) { + rc = asic_funcs->create_mem_ctx(ctx, user_vm_info->vm_info.net_tlb.pasid, + user_vm_info->vm_info.net_tlb.page_tbl_addr); + if (rc) { + dev_err(hdev->dev, + "failed to create HW memory context for user VM, FD %d\n", user_fd); + goto ctx_cleanup; + } + } + + if (driver_vm_info->vm_info.mmu_mode == HBL_CN_MMU_MODE_NETWORK_TLB) { + rc = asic_funcs->create_mem_ctx(ctx, driver_vm_info->vm_info.net_tlb.pasid, + driver_vm_info->vm_info.net_tlb.page_tbl_addr); + if (rc) { + dev_err(hdev->dev, + "failed to create HW memory context for driver VM, FD %d\n", + user_fd); + goto user_vm_ctx_cleanup; + } + } + + *cn_ib_ctx = ctx; + hdev->ib_device_opened = true; + hdev->ctx = ctx; + + return 0; + +user_vm_ctx_cleanup: + if (ctx->user_asid != -1 && user_vm_info->vm_info.mmu_mode == HBL_CN_MMU_MODE_NETWORK_TLB) + asic_funcs->destroy_mem_ctx(ctx, user_vm_info->vm_info.net_tlb.pasid, + user_vm_info->vm_info.net_tlb.page_tbl_addr); +ctx_cleanup: + asic_funcs->ctx_fini(ctx); +destroy_driver_vm: + aux_ops->vm_destroy(aux_dev, driver_vm_info->vm_handle); +deregister_ctx: + aux_ops->deregister_cn_user_context(aux_dev, user_vm_info->vm_handle); +release_ctx: + mutex_destroy(&ctx->lock); + kfree(ctx); + + return rc; +} + +static void hbl_cn_ib_dealloc_ucontext(struct hbl_aux_dev *ib_aux_dev, void *cn_ib_ctx) +{ + struct hbl_cn_comp_vm_info *user_vm_info, *driver_vm_info; + struct hbl_cn_device *hdev = HBL_AUX2NIC(ib_aux_dev); + struct hbl_aux_dev *aux_dev = hdev->cn_aux_dev; + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_ctx *ctx = cn_ib_ctx; + struct hbl_cn_aux_ops *aux_ops; + + aux_ops = aux_dev->aux_ops; + asic_funcs = hdev->asic_funcs; + user_vm_info = &ctx->user_vm_info; + driver_vm_info = &ctx->driver_vm_info; + + dev_dbg(hdev->dev, "IB context dealloc\n"); + + if (driver_vm_info->vm_info.mmu_mode == HBL_CN_MMU_MODE_NETWORK_TLB) + asic_funcs->destroy_mem_ctx(ctx, driver_vm_info->vm_info.net_tlb.pasid, + driver_vm_info->vm_info.net_tlb.page_tbl_addr); + + if (ctx->user_asid != -1 && user_vm_info->vm_info.mmu_mode == HBL_CN_MMU_MODE_NETWORK_TLB) + asic_funcs->destroy_mem_ctx(ctx, user_vm_info->vm_info.net_tlb.pasid, + user_vm_info->vm_info.net_tlb.page_tbl_addr); + + hbl_cn_ctx_resources_destroy(hdev, ctx); + hdev->asic_funcs->ctx_fini(ctx); + + aux_ops->vm_destroy(aux_dev, driver_vm_info->vm_handle); + aux_ops->deregister_cn_user_context(aux_dev, user_vm_info->vm_handle); + + hdev->ctx = NULL; + mutex_destroy(&ctx->lock); + kfree(ctx); + + hdev->ib_device_opened = false; +} + +static void hbl_cn_ib_query_port(struct hbl_aux_dev *aux_dev, u32 port, + struct hbl_ib_port_attr *port_attr) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_port *cn_port; + + asic_funcs = hdev->asic_funcs; + cn_port = &hdev->cn_ports[port]; + + port_attr->open = hbl_cn_is_port_open(cn_port); + port_attr->link_up = cn_port->pcs_link; + port_attr->speed = cn_port->speed; + port_attr->max_msg_sz = asic_funcs->get_max_msg_sz(hdev); + port_attr->num_lanes = hdev->lanes_per_port; + port_attr->max_mtu = SZ_8K; +} + +static inline void parse_fw_ver(struct hbl_cn_device *hdev, char *str, u32 *maj, u16 *min, u16 *sub) +{ + char *ver = strstr(str, "fw-"); + int ret; + + if (!ver) + goto failure; + + ret = sscanf(ver, "fw-%d.%hu.%hu", maj, min, sub); + if (ret < 3) { +failure: + dev_dbg(hdev->dev, "Failed to read version string\n"); + *maj = *min = *sub = 0; + } +} + +static void hbl_cn_ib_query_device(struct hbl_aux_dev *aux_dev, struct hbl_ib_device_attr *dev_attr) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_properties *cn_props; + struct hbl_ib_aux_data *aux_data; + u16 minor, sub_ver; + u32 major; + + aux_data = aux_dev->aux_data; + cn_props = &hdev->cn_props; + + if (hdev->cpucp_fw) { + parse_fw_ver(hdev, hdev->fw_ver, &major, &minor, &sub_ver); + dev_attr->fw_ver = ((u64)major << 32) | ((u64)minor << 16) | sub_ver; + } + + dev_attr->max_mr_size = aux_data->dram_size; + + dev_attr->page_size_cap = PAGE_SIZE; + + dev_attr->vendor_id = hdev->pdev->vendor; + dev_attr->vendor_part_id = hdev->pdev->device; + dev_attr->hw_ver = hdev->pdev->subsystem_device; + + dev_attr->max_qp = cn_props->max_qps_num; + + dev_attr->max_qp_wr = aux_data->max_num_of_wqes; + dev_attr->max_cqe = cn_props->user_cq_max_entries; + + dev_attr->cqe_size = cn_props->cqe_size; + dev_attr->min_cq_entries = cn_props->user_cq_min_entries; +} + +static void hbl_cn_ib_set_ip_addr_encap(struct hbl_aux_dev *aux_dev, u32 ip_addr, u32 port) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_port *cn_port; + u32 encap_id; + + asic_funcs = hdev->asic_funcs; + cn_port = &hdev->cn_ports[port]; + + asic_funcs->port_funcs->set_ip_addr_encap(cn_port, &encap_id, ip_addr); +} + +static char *hbl_cn_ib_qp_syndrome_to_str(struct hbl_aux_dev *aux_dev, u32 syndrome) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_asic_funcs *asic_funcs; + + asic_funcs = hdev->asic_funcs; + + return asic_funcs->qp_syndrome_to_str(syndrome); +} + +static int hbl_cn_ib_verify_qp_id(struct hbl_aux_dev *aux_dev, u32 qp_id, u32 port) +{ + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + struct hbl_cn_device *hdev; + struct hbl_cn_qp *qp; + int rc = 0; + + hdev = HBL_AUX2NIC(aux_dev); + port_funcs = hdev->asic_funcs->port_funcs; + cn_port = &hdev->cn_ports[port]; + + port_funcs->cfg_lock(cn_port); + qp = xa_load(&cn_port->qp_ids, qp_id); + + if (IS_ERR_OR_NULL(qp)) { + dev_dbg(hdev->dev, "Failed to find matching QP for handle %d, port %d\n", qp_id, + port); + rc = -EINVAL; + goto cfg_unlock; + } + + /* sanity test the port IDs */ + if (qp->port != port) { + dev_dbg(hdev->dev, "QP port %d does not match requested port %d\n", qp->port, port); + rc = -EINVAL; + goto cfg_unlock; + } + +cfg_unlock: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int hbl_cn_ib_dump_qp(struct hbl_aux_dev *aux_dev, struct hbl_ib_dump_qp_attr *attr, + char *buf, size_t size) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_qp_info qp_info = {}; + int rc; + + asic_funcs = hdev->asic_funcs; + + qp_info.port = attr->port; + qp_info.qpn = attr->qpn; + qp_info.req = attr->req; + qp_info.full_print = attr->full; + qp_info.force_read = attr->force; + + rc = asic_funcs->qp_read(hdev, &qp_info, buf, size); + if (rc) { + dev_err(hdev->dev, "Failed to read QP %u, port %u\n", attr->qpn, attr->port); + return rc; + } + + return 0; +} + +static int hbl_cn_en_aux_data_init(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + struct hbl_en_aux_data *en_aux_data; + struct hbl_cn_properties *cn_props; + struct hbl_en_aux_ops *en_aux_ops; + struct hbl_aux_dev *en_aux_dev; + char **mac_addr; + int i; + + en_aux_dev = &hdev->en_aux_dev; + en_aux_dev->type = HBL_AUX_DEV_ETH; + en_aux_data = en_aux_dev->aux_data; + en_aux_ops = en_aux_dev->aux_ops; + cn_props = &hdev->cn_props; + + en_aux_data->pdev = hdev->pdev; + en_aux_data->dev = hdev->dev; + en_aux_data->ports_mask = hdev->ext_ports_mask; + en_aux_data->auto_neg_mask = hdev->auto_neg_mask; + en_aux_data->id = hdev->id; + en_aux_data->fw_ver = hdev->fw_ver; + en_aux_data->qsfp_eeprom = hdev->cpucp_info->qsfp_eeprom; + en_aux_data->pending_reset_long_timeout = hdev->pending_reset_long_timeout; + en_aux_data->max_frm_len = cn_props->max_frm_len; + en_aux_data->raw_elem_size = cn_props->raw_elem_size; + en_aux_data->max_raw_mtu = cn_props->max_raw_mtu; + en_aux_data->min_raw_mtu = cn_props->min_raw_mtu; + en_aux_data->max_num_of_ports = hdev->cn_props.max_num_of_ports; + en_aux_data->has_eq = hdev->has_eq; + en_aux_data->asic_type = hdev->asic_type; + + mac_addr = kcalloc(hdev->cn_props.max_num_of_ports, sizeof(*mac_addr), GFP_KERNEL); + if (!mac_addr) + return -ENOMEM; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(en_aux_data->ports_mask & BIT(i))) + continue; + + mac_addr[i] = hdev->cpucp_info->mac_addrs[i].mac_addr; + } + + en_aux_data->mac_addr = mac_addr; + + /* set en -> cn ops */ + /* device functions */ + en_aux_ops->device_operational = hbl_cn_device_operational; + en_aux_ops->hw_access_lock = hbl_cn_hw_access_lock; + en_aux_ops->hw_access_unlock = hbl_cn_hw_access_unlock; + en_aux_ops->is_eth_lpbk = hbl_cn_is_eth_lpbk; + /* port functions */ + en_aux_ops->port_hw_init = hbl_cn_port_hw_init; + en_aux_ops->port_hw_fini = hbl_cn_port_hw_fini; + en_aux_ops->phy_init = hbl_cn_phy_port_init; + en_aux_ops->phy_fini = hbl_cn_phy_port_fini; + en_aux_ops->set_pfc = hbl_cn_set_pfc; + en_aux_ops->get_cnts_num = hbl_cn_get_cnts_num; + en_aux_ops->get_cnts_names = hbl_cn_get_cnts_names; + en_aux_ops->get_cnts_values = hbl_cn_get_cnts_values; + en_aux_ops->get_mac_lpbk = hbl_cn_get_mac_lpbk; + en_aux_ops->set_mac_lpbk = hbl_cn_set_mac_lpbk; + en_aux_ops->update_mtu = hbl_cn_update_mtu; + en_aux_ops->qpc_write = hbl_cn_qpc_write; + en_aux_ops->ctrl_lock = hbl_cn_ctrl_lock; + en_aux_ops->ctrl_unlock = hbl_cn_ctrl_unlock; + en_aux_ops->eq_dispatcher_register_qp = hbl_cn_dispatcher_register_qp; + en_aux_ops->eq_dispatcher_unregister_qp = hbl_cn_dispatcher_unregister_qp; + en_aux_ops->get_speed = hbl_cn_get_speed; + en_aux_ops->track_ext_port_reset = hbl_cn_track_ext_port_reset; + en_aux_ops->port_toggle_count = hbl_cn_port_toggle_count; + + asic_funcs->set_en_data(hdev); + + return 0; +} + +static void hbl_cn_en_aux_data_fini(struct hbl_cn_device *hdev) +{ + struct hbl_aux_dev *aux_dev = &hdev->en_aux_dev; + struct hbl_en_aux_data *aux_data; + + aux_data = aux_dev->aux_data; + + kfree(aux_data->mac_addr); + aux_data->mac_addr = NULL; +} + +static int hbl_cn_ib_aux_data_init(struct hbl_cn_device *hdev) +{ + struct hbl_ib_port_cnts_data *cnts_data; + struct hbl_ib_aux_data *ib_aux_data; + struct hbl_ib_aux_ops *ib_aux_ops; + struct hbl_aux_dev *ib_aux_dev; + struct hbl_cn_port *cn_port; + int rc, i; + + ib_aux_dev = &hdev->ib_aux_dev; + ib_aux_dev->type = HBL_AUX_DEV_IB; + ib_aux_data = ib_aux_dev->aux_data; + ib_aux_ops = ib_aux_dev->aux_ops; + + ib_aux_data->pdev = hdev->pdev; + ib_aux_data->dev = hdev->dev; + ib_aux_data->ports_mask = hdev->ports_mask; + ib_aux_data->ext_ports_mask = hdev->ext_ports_mask; + ib_aux_data->max_num_of_wqes = hdev->cn_props.max_hw_user_wqs_num; + ib_aux_data->max_num_of_ports = hdev->cn_props.max_num_of_ports; + ib_aux_data->pending_reset_long_timeout = hdev->pending_reset_long_timeout; + ib_aux_data->id = hdev->id; + ib_aux_data->dram_size = hdev->dram_size; + ib_aux_data->mixed_qp_wq_types = hdev->mixed_qp_wq_types; + ib_aux_data->umr_support = hdev->umr_support; + ib_aux_data->cc_support = hdev->cc_support; + + ib_aux_data->cnts_data = kcalloc(hdev->cn_props.max_num_of_ports, + sizeof(*ib_aux_data->cnts_data), GFP_KERNEL); + if (!ib_aux_data->cnts_data) + return -ENOMEM; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(ib_aux_data->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + cnts_data = &ib_aux_data->cnts_data[i]; + + cnts_data->num = __hbl_cn_get_cnts_num(cn_port); + + cnts_data->names = kcalloc(cnts_data->num, HBL_IB_CNT_NAME_LEN, GFP_KERNEL); + if (!cnts_data->names) { + rc = -ENOMEM; + goto free_cnts_data; + } + + __hbl_cn_get_cnts_names(cn_port, cnts_data->names, true); + } + + /* set ib -> cn ops */ + /* the following functions are used even if the IB verbs API is disabled */ + ib_aux_ops->device_operational = hbl_cn_device_operational; + ib_aux_ops->hw_access_lock = hbl_cn_hw_access_lock; + ib_aux_ops->hw_access_unlock = hbl_cn_hw_access_unlock; + ib_aux_ops->alloc_ucontext = hbl_cn_ib_alloc_ucontext; + ib_aux_ops->dealloc_ucontext = hbl_cn_ib_dealloc_ucontext; + ib_aux_ops->query_port = hbl_cn_ib_query_port; + ib_aux_ops->query_device = hbl_cn_ib_query_device; + ib_aux_ops->set_ip_addr_encap = hbl_cn_ib_set_ip_addr_encap; + ib_aux_ops->qp_syndrome_to_str = hbl_cn_ib_qp_syndrome_to_str; + ib_aux_ops->verify_qp_id = hbl_cn_ib_verify_qp_id; + ib_aux_ops->get_cnts_values = hbl_cn_get_cnts_values; + ib_aux_ops->dump_qp = hbl_cn_ib_dump_qp; + + /* these functions are used only if the IB verbs API is enabled */ + ib_aux_ops->cmd_ctrl = hbl_cn_ib_cmd_ctrl; + ib_aux_ops->query_mem_handle = hbl_cn_ib_query_mem_handle; + + return 0; + +free_cnts_data: + for (--i; i >= 0; i--) { + if (!(ib_aux_data->ports_mask & BIT(i))) + continue; + + kfree(ib_aux_data->cnts_data[i].names); + } + kfree(ib_aux_data->cnts_data); + + return rc; +} + +static void hbl_cn_ib_aux_data_fini(struct hbl_cn_device *hdev) +{ + struct hbl_ib_aux_data *aux_data; + struct hbl_aux_dev *aux_dev; + int i; + + aux_dev = &hdev->ib_aux_dev; + aux_data = aux_dev->aux_data; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(aux_data->ports_mask & BIT(i))) + continue; + + kfree(aux_data->cnts_data[i].names); + } + kfree(aux_data->cnts_data); +} + +static void eth_adev_release(struct device *dev) +{ + struct hbl_aux_dev *aux_dev = container_of(dev, struct hbl_aux_dev, adev.dev); + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + + hdev->is_eth_aux_dev_initialized = false; +} + +static int hbl_cn_en_aux_drv_init(struct hbl_cn_device *hdev) +{ + struct hbl_aux_dev *aux_dev = &hdev->en_aux_dev; + struct auxiliary_device *adev; + int rc; + + rc = hbl_cn_en_aux_data_init(hdev); + if (rc) { + dev_err(hdev->dev, "eth aux data init failed\n"); + return rc; + } + + adev = &aux_dev->adev; + adev->id = hdev->id; + adev->name = "en"; + adev->dev.parent = hdev->dev; + adev->dev.release = eth_adev_release; + + rc = auxiliary_device_init(adev); + if (rc) { + dev_err(hdev->dev, "eth auxiliary_device_init failed\n"); + goto aux_data_free; + } + + rc = auxiliary_device_add(adev); + if (rc) { + dev_err(hdev->dev, "eth auxiliary_device_add failed\n"); + goto uninit_adev; + } + + hdev->is_eth_aux_dev_initialized = true; + + return 0; + +uninit_adev: + auxiliary_device_uninit(adev); +aux_data_free: + hbl_cn_en_aux_data_fini(hdev); + + return rc; +} + +static void hbl_cn_en_aux_drv_fini(struct hbl_cn_device *hdev) +{ + struct auxiliary_device *adev; + + if (!hdev->is_eth_aux_dev_initialized) + return; + + adev = &hdev->en_aux_dev.adev; + + auxiliary_device_delete(adev); + auxiliary_device_uninit(adev); + + hbl_cn_en_aux_data_fini(hdev); +} + +static void ib_adev_release(struct device *dev) +{ + struct hbl_aux_dev *aux_dev = container_of(dev, struct hbl_aux_dev, adev.dev); + struct hbl_cn_device *hdev; + + hdev = container_of(aux_dev, struct hbl_cn_device, ib_aux_dev); + + hdev->is_ib_aux_dev_initialized = false; +} + +static int hbl_cn_ib_aux_drv_init(struct hbl_cn_device *hdev) +{ + struct hbl_aux_dev *aux_dev = &hdev->ib_aux_dev; + struct auxiliary_device *adev; + int rc; + + if (!hdev->ib_support) + return 0; + + rc = hbl_cn_ib_aux_data_init(hdev); + if (rc) { + dev_err(hdev->dev, "IB aux data init failed\n"); + return rc; + } + + adev = &aux_dev->adev; + adev->id = hdev->id; + adev->name = "ib"; + adev->dev.parent = hdev->dev; + adev->dev.release = ib_adev_release; + + rc = auxiliary_device_init(adev); + if (rc) { + dev_err(hdev->dev, "ib auxiliary_device_init failed\n"); + goto aux_data_free; + } + + rc = auxiliary_device_add(adev); + if (rc) { + dev_err(hdev->dev, "ib auxiliary_device_add failed\n"); + goto uninit_adev; + } + + hdev->is_ib_aux_dev_initialized = true; + + return 0; + +uninit_adev: + auxiliary_device_uninit(adev); +aux_data_free: + hbl_cn_ib_aux_data_fini(hdev); + + return rc; +} + +static void hbl_cn_ib_aux_drv_fini(struct hbl_cn_device *hdev) +{ + struct auxiliary_device *adev; + + if (!hdev->ib_support || !hdev->is_ib_aux_dev_initialized) + return; + + adev = &hdev->ib_aux_dev.adev; + + auxiliary_device_delete(adev); + auxiliary_device_uninit(adev); + + hbl_cn_ib_aux_data_fini(hdev); +} + +void hbl_cn_internal_port_fini_locked(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + + asic_funcs = hdev->asic_funcs; + + if (!cn_port->port_open) + return; + + cn_port->port_open = false; + + /* verify that the port is marked as closed before continuing */ + mb(); + + asic_funcs->port_funcs->phy_port_fini(cn_port); + + __hbl_cn_port_hw_fini(cn_port); +} + +static void hbl_cn_internal_ports_fini(struct hbl_cn_device *hdev) +{ + struct hbl_cn_port *cn_port; + int i; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i)) || (hdev->ext_ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + mutex_lock(&cn_port->control_lock); + + hbl_cn_internal_port_fini_locked(cn_port); + + mutex_unlock(&cn_port->control_lock); + } +} + +void hbl_cn_ports_cancel_status_work(struct hbl_cn_device *hdev) +{ + struct hbl_cn_port *cn_port; + int i; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + cancel_delayed_work_sync(&cn_port->fw_status_work); + } +} + +int hbl_cn_internal_port_init_locked(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + u32 port = cn_port->port; + int rc; + + asic_funcs = hdev->asic_funcs; + + rc = __hbl_cn_port_hw_init(cn_port); + if (rc) { + dev_err(hdev->dev, "Failed to configure the HW, port: %d, %d", port, rc); + return rc; + } + + rc = asic_funcs->port_funcs->phy_port_init(cn_port); + if (rc) { + dev_err(hdev->dev, "Failed to configure the HW, port: %d, %d", port, rc); + goto phy_fail; + } + + cn_port->port_open = true; + + return 0; + +phy_fail: + __hbl_cn_port_hw_fini(cn_port); + + return rc; +} + +static int hbl_cn_internal_ports_init(struct hbl_cn_device *hdev) +{ + struct hbl_cn_port *cn_port; + u32 port; + int rc, i; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i)) || (hdev->ext_ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + port = cn_port->port; + + mutex_lock(&cn_port->control_lock); + + rc = hbl_cn_internal_port_init_locked(cn_port); + if (rc) { + dev_err(hdev->dev, "Failed to configure the HW, port: %d, %d", port, rc); + mutex_unlock(&cn_port->control_lock); + goto port_init_fail; + } + + mutex_unlock(&cn_port->control_lock); + } + + return 0; + +port_init_fail: + hbl_cn_internal_ports_fini(hdev); + + return rc; +} + +static int hbl_cn_kernel_ctx_init(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + return asic_funcs->kernel_ctx_init(hdev, hdev->kernel_asid); +} + +static void hbl_cn_kernel_ctx_fini(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + asic_funcs->kernel_ctx_fini(hdev, hdev->kernel_asid); +} + +static void hbl_cn_mac_loopback_init(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_en_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + u32 port = cn_port->port; + bool enable; + + aux_dev = &hdev->en_aux_dev; + aux_ops = aux_dev->aux_ops; + + enable = !!(hdev->mac_loopback & BIT(port)); + cn_port->mac_loopback = enable; + + if (cn_port->eth_enable && aux_ops->set_dev_lpbk) + aux_ops->set_dev_lpbk(aux_dev, port, enable); +} + +static int hbl_cn_core_init(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + struct hbl_cn_macro *cn_macro; + struct hbl_cn_port *cn_port; + int rc, i, port_cnt = 0; + u32 port; + + /* RX packet drop config is not preserved across hard reset. */ + hdev->rx_drop_percent = 0; + + if (hdev->load_phy_fw) { + if (hdev->cn_props.is_phy_fw_binary) { + rc = hbl_cn_phy_has_binary_fw(hdev); + if (rc) { + dev_err(hdev->dev, "F/W file was not found\n"); + return rc; + } + } + + rc = asic_funcs->phy_fw_load_all(hdev); + if (rc) { + dev_err(hdev->dev, "F/W load for all failed\n"); + return rc; + } + } + + if (hdev->phy_config_fw) + dev_dbg(hdev->dev, "F/W CRC: 0x%x\n", asic_funcs->phy_get_crc(hdev)); + + for (i = 0; i < hdev->cn_props.num_of_macros; i++) { + hdev->cn_macros[i].phy_macro_needs_reset = true; + hdev->cn_macros[i].rec_link_sts = 0; + } + + memset(hdev->phy_ber_info, 0, + hdev->cn_props.max_num_of_lanes * sizeof(struct hbl_cn_ber_info)); + + rc = asic_funcs->core_init(hdev); + if (rc) { + dev_err(hdev->dev, "core init failed\n"); + return rc; + } + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++, port_cnt++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + cn_macro = cn_port->cn_macro; + port = cn_port->port; + + /* In case this port got disabled, enable it back here */ + cn_port->disabled = false; + /* Port toggle count should be reinitialized for each port upond hard reset only */ + cn_port->port_toggle_cnt = 0; + cn_port->port_toggle_cnt_prev = 0; + + /* Reset the macro PHY once on boot. + * This function resets all the 4 lanes in the PHY macro, therefore only one of the + * two ports of the macro should call it. + */ + if (hdev->phy_config_fw && cn_macro->phy_macro_needs_reset) { + rc = asic_funcs->phy_reset_macro(cn_macro); + if (rc) { + dev_err(hdev->dev, "PHY reset macro failed for port %d\n", port); + goto err; + } + + cn_macro->phy_macro_needs_reset = false; + } + + hbl_cn_spmu_init(cn_port, false); + + cn_port->auto_neg_enable = !!(hdev->auto_neg_mask & BIT(port)); + + if (!hdev->in_reset) + cn_port->eth_enable = !!(BIT(port) & hdev->ext_ports_mask); + + /* This function must be called after setting cn_port->eth_enable */ + hbl_cn_mac_loopback_init(cn_port); + } + + return 0; + +err: + asic_funcs->core_fini(hdev); + + return rc; +} + +static void hbl_cn_core_fini(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + asic_funcs->core_fini(hdev); +} + +static void wq_arrays_pool_destroy(struct hbl_cn_device *hdev) +{ + if (!hdev->wq_arrays_pool_enable) + return; + + gen_pool_destroy(hdev->wq_arrays_pool); +} + +static int wq_arrays_pool_alloc(struct hbl_cn_device *hdev) +{ + struct hbl_cn_properties *cn_props; + int rc; + + if (!hdev->wq_arrays_pool_enable) + return 0; + + cn_props = &hdev->cn_props; + + hdev->wq_arrays_pool = gen_pool_create(ilog2(hdev->cache_line_size), -1); + if (!hdev->wq_arrays_pool) { + dev_err(hdev->dev, "Failed to create a pool to manage WQ arrays on HBM\n"); + rc = -ENOMEM; + goto gen_pool_create_fail; + } + + gen_pool_set_algo(hdev->wq_arrays_pool, gen_pool_best_fit, NULL); + + rc = gen_pool_add(hdev->wq_arrays_pool, cn_props->wq_base_addr, cn_props->wq_base_size, + -1); + if (rc) { + dev_err(hdev->dev, "Failed to add memory to the WQ arrays pool\n"); + goto gen_pool_add_fail; + } + + return 0; + +gen_pool_add_fail: + gen_pool_destroy(hdev->wq_arrays_pool); +gen_pool_create_fail: + return rc; +} + +int __hbl_cn_ports_reopen(struct hbl_cn_device *hdev) +{ + struct hbl_en_aux_ops *aux_ops; + struct hbl_aux_dev *en_aux_dev; + int rc; + + en_aux_dev = &hdev->en_aux_dev; + aux_ops = en_aux_dev->aux_ops; + + rc = hbl_cn_kernel_ctx_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init kernel context\n"); + return rc; + } + + rc = hbl_cn_core_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init core\n"); + goto core_init_fail; + } + + rc = hbl_cn_internal_ports_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init internal ports\n"); + goto internal_ports_fail; + } + + hdev->in_reset = false; + hdev->fw_reset = false; + hdev->operational = true; + + if (aux_ops->ports_reopen) { + rc = aux_ops->ports_reopen(en_aux_dev); + if (rc) { + dev_err(hdev->dev, "Failed to reopen en ports\n"); + goto en_ports_reopen_fail; + } + } + + return 0; + +en_ports_reopen_fail: + hdev->operational = false; + hbl_cn_internal_ports_fini(hdev); +internal_ports_fail: + hbl_cn_core_fini(hdev); +core_init_fail: + hbl_cn_kernel_ctx_fini(hdev); + + return rc; +} + +void __hbl_cn_stop(struct hbl_cn_device *hdev) +{ + struct hbl_en_aux_ops *aux_ops; + struct hbl_aux_dev *en_aux_dev; + + en_aux_dev = &hdev->en_aux_dev; + aux_ops = en_aux_dev->aux_ops; + + /* Cancelling all outstanding works for all ports should be done first when stopping */ + hdev->asic_funcs->ports_cancel_status_work(hdev); + + qps_stop(hdev); + + if (aux_ops->ports_stop) + aux_ops->ports_stop(en_aux_dev); + + hbl_cn_internal_ports_fini(hdev); + hbl_cn_core_fini(hdev); + hbl_cn_kernel_ctx_fini(hdev); +} + +void __hbl_cn_hard_reset_prepare(struct hbl_cn_device *hdev, bool fw_reset, bool in_teardown) +{ + struct hbl_en_aux_ops *aux_ops; + struct hbl_aux_dev *en_aux_dev; + + en_aux_dev = &hdev->en_aux_dev; + aux_ops = en_aux_dev->aux_ops; + + hdev->in_reset = true; + hdev->fw_reset = fw_reset; + hdev->in_teardown = in_teardown; + hdev->operational = false; + + mutex_lock(&hdev->hw_access_lock); + mutex_unlock(&hdev->hw_access_lock); + + if (aux_ops->ports_stop_prepare) + aux_ops->ports_stop_prepare(en_aux_dev); +} + +void hbl_cn_hard_reset_prepare(struct hbl_aux_dev *cn_aux_dev, bool fw_reset, bool in_teardown) +{ + struct hbl_cn_device *hdev = cn_aux_dev->priv; + + __hbl_cn_hard_reset_prepare(hdev, fw_reset, in_teardown); +} + +int hbl_cn_send_port_cpucp_status(struct hbl_aux_dev *aux_dev, u32 port, u8 cmd, u8 period) +{ + struct hbl_cn_device *hdev = aux_dev->priv; + struct hbl_cn_port *cn_port; + + cn_port = &hdev->cn_ports[port]; + + if (cmd > HBL_CN_STATUS_PERIODIC_STOP) { + dev_err(hdev->dev, "Received invalid CN status cmd (%d) from F/W, port %d", cmd, + port); + return -EINVAL; + } + + hdev->status_cmd = cmd; + hdev->status_period = (cmd == HBL_CN_STATUS_PERIODIC_START) ? period : 0; + + if (cmd == HBL_CN_STATUS_PERIODIC_STOP) + cancel_delayed_work_sync(&cn_port->fw_status_work); + else + queue_delayed_work(cn_port->wq, &cn_port->fw_status_work, 0); + + return 0; +} + +static void hbl_cn_get_cpucp_info(struct hbl_cn_device *hdev) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + aux_ops->get_cpucp_info(aux_dev, hdev->cpucp_info); +} + +static int hbl_cn_ports_reopen(struct hbl_aux_dev *aux_dev) +{ + struct hbl_cn_device *hdev = aux_dev->priv; + int rc; + + /* update CPUCP info after device reset */ + hbl_cn_get_cpucp_info(hdev); + + rc = hbl_cn_request_irqs(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to request IRQs\n"); + return rc; + } + + rc = __hbl_cn_ports_reopen(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to reopen ports\n"); + goto free_irqs; + } + + return 0; + +free_irqs: + hbl_cn_free_irqs(hdev); + + return rc; +} + +static void hbl_cn_stop(struct hbl_aux_dev *aux_dev) +{ + struct hbl_cn_device *hdev = aux_dev->priv; + + __hbl_cn_stop(hdev); + + hbl_cn_synchronize_irqs(aux_dev); + hbl_cn_free_irqs(hdev); +} + +static int hbl_cn_set_static_properties(struct hbl_cn_device *hdev) +{ + return hdev->asic_funcs->set_static_properties(hdev); +} + +static int hbl_cn_set_dram_properties(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + return asic_funcs->set_dram_properties(hdev); +} + +static int hbl_cn_set_asic_funcs(struct hbl_cn_device *hdev) +{ + switch (hdev->asic_type) { + case HBL_ASIC_GAUDI2: + default: + dev_err(hdev->dev, "Unrecognized ASIC type %d\n", hdev->asic_type); + return -EINVAL; + } + + return 0; +} + +int hbl_cn_dev_init(struct hbl_cn_device *hdev) +{ + int rc; + + if (!hdev->ports_mask) { + dev_err(hdev->dev, "All ports are disabled\n"); + return -EINVAL; + } + + /* must be called first to init the ASIC funcs */ + rc = hbl_cn_set_asic_funcs(hdev); + if (rc) { + dev_err(hdev->dev, "failed to set ASIC aux ops\n"); + return rc; + } + + /* get CPUCP info before initializing the device */ + hbl_cn_get_cpucp_info(hdev); + + /* init static cn properties */ + rc = hbl_cn_set_static_properties(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to set static properties\n"); + return rc; + } + + /* init DRAM cn properties */ + rc = hbl_cn_set_dram_properties(hdev); + if (rc) { + dev_err(hdev->dev, "failed to set DRAM properties\n"); + return rc; + } + + rc = hbl_cn_sw_init(hdev); + if (rc) { + dev_err(hdev->dev, "SW init failed\n"); + return rc; + } + + rc = hbl_cn_request_irqs(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to request IRQs\n"); + goto request_irqs_fail; + } + + rc = hbl_cn_kernel_ctx_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init kernel context\n"); + goto kernel_ctx_init_fail; + } + + rc = hbl_cn_core_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init core\n"); + goto core_init_fail; + } + + rc = hbl_cn_internal_ports_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init internal ports\n"); + goto internal_ports_init_fail; + } + + rc = wq_arrays_pool_alloc(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init WQ arrays pool\n"); + goto wq_arrays_pool_alloc_fail; + } + + hbl_cn_mem_init(hdev); + + hdev->operational = true; + + rc = hbl_cn_en_aux_drv_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init Ethernet driver\n"); + goto en_aux_drv_fail; + } + + rc = hbl_cn_ib_aux_drv_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init IB driver\n"); + goto ib_aux_drv_fail; + } + + hbl_cn_late_init(hdev); + + hdev->is_initialized = true; + + return 0; + +ib_aux_drv_fail: + hbl_cn_en_aux_drv_fini(hdev); +en_aux_drv_fail: + hdev->operational = false; + hbl_cn_mem_fini(hdev); + wq_arrays_pool_destroy(hdev); +wq_arrays_pool_alloc_fail: + hbl_cn_internal_ports_fini(hdev); +internal_ports_init_fail: + hbl_cn_core_fini(hdev); +core_init_fail: + hbl_cn_kernel_ctx_fini(hdev); +kernel_ctx_init_fail: + hbl_cn_free_irqs(hdev); +request_irqs_fail: + hbl_cn_sw_fini(hdev); + + return rc; +} + +void hbl_cn_dev_fini(struct hbl_cn_device *hdev) +{ + if (!hdev->is_initialized) + return; + + hdev->is_initialized = false; + + if (hdev->hw_stop_during_teardown) { + hbl_cn_hard_reset_prepare(hdev->cn_aux_dev, false, true); + hbl_cn_stop(hdev->cn_aux_dev); + } + + hbl_cn_late_fini(hdev); + + hbl_cn_ib_aux_drv_fini(hdev); + /* must be called after MSI was disabled */ + hbl_cn_en_aux_drv_fini(hdev); + hbl_cn_mem_fini(hdev); + wq_arrays_pool_destroy(hdev); + hbl_cn_sw_fini(hdev); +} + +static int hbl_cn_cmd_port_check(struct hbl_cn_device *hdev, u32 port, u32 flags) +{ + bool check_open = flags & NIC_PORT_CHECK_OPEN, + check_enable = (flags & NIC_PORT_CHECK_ENABLE) || check_open, + print_on_err = flags & NIC_PORT_PRINT_ON_ERR; + struct hbl_cn_port *cn_port; + + if (port >= hdev->cn_props.max_num_of_ports) { + if (print_on_err) + dev_dbg(hdev->dev, "Invalid port %d\n", port); + return -EINVAL; + } + + if (check_enable && !(hdev->ports_mask & BIT(port))) { + if (print_on_err) + dev_dbg(hdev->dev, "Port %d is disabled\n", port); + return -ENODEV; + } + + cn_port = &hdev->cn_ports[port]; + + if (check_open && !hbl_cn_is_port_open(cn_port)) { + if (print_on_err) + dev_dbg(hdev->dev, "Port %d is closed\n", port); + return -ENODEV; + } + + return 0; +} + +static void hbl_cn_get_qp_id_range(struct hbl_cn_port *cn_port, u32 *min_id, u32 *max_id) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + + asic_funcs = hdev->asic_funcs; + + asic_funcs->port_funcs->get_qp_id_range(cn_port, min_id, max_id); + + /* Take the minimum between the max id supported by the port and the max id supported by + * the WQs number the user asked to allocate. + */ + *max_id = min(cn_port->qp_idx_offset + cn_port->num_of_wqs - 1, *max_id); +} + +static void hbl_cn_qp_do_release(struct hbl_cn_qp *qp) +{ + struct hbl_cn_qpc_drain_attr drain_attr = { .wait_for_idle = false, }; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + + if (IS_ERR_OR_NULL(qp)) + return; + + cn_port = qp->cn_port; + port_funcs = cn_port->hdev->asic_funcs->port_funcs; + + cancel_delayed_work(&qp->adaptive_tmr_reset); + + port_funcs->qp_pre_destroy(qp); + + /* QP was found before, hence use xa_store to replace the pointer but don't release index. + * xa_store should not fail in such scenario. + */ + xa_store(&qp->cn_port->qp_ids, qp->qp_id, NULL, GFP_KERNEL); + + /* drain the Req QP now in order to make sure that accesses to the WQ will not + * be performed from this point on. + * Waiting for the WQ to drain is performed in the reset work + */ + hbl_cn_qp_modify(cn_port, qp, CN_QP_STATE_SQD, &drain_attr); + + queue_work(cn_port->qp_wq, &qp->async_work); +} + +static void qp_adaptive_tmr_reset(struct work_struct *work) +{ + struct hbl_cn_qp *qp = container_of(work, struct hbl_cn_qp, adaptive_tmr_reset.work); + struct hbl_cn_port *cn_port = qp->cn_port; + struct hbl_cn_device *hdev; + + hdev = cn_port->hdev; + + hdev->asic_funcs->port_funcs->adaptive_tmr_reset(qp); +} + +static int alloc_qp(struct hbl_cn_device *hdev, struct hbl_cn_ctx *ctx, + struct hbl_cni_alloc_conn_in *in, struct hbl_cni_alloc_conn_out *out) +{ + struct hbl_cn_wq_array_properties *swq_arr_props, *rwq_arr_props; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + struct xa_limit id_limit; + u32 min_id, max_id, port; + struct hbl_cn_qp *qp; + int id, rc; + + port = in->port; + + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + qp = kzalloc(sizeof(*qp), GFP_KERNEL); + if (!qp) + return -ENOMEM; + + port_funcs = hdev->asic_funcs->port_funcs; + + cn_port = &hdev->cn_ports[port]; + qp->cn_port = cn_port; + qp->port = port; + qp->ctx = ctx; + qp->curr_state = CN_QP_STATE_RESET; + INIT_WORK(&qp->async_work, qp_destroy_work); + INIT_DELAYED_WORK(&qp->adaptive_tmr_reset, qp_adaptive_tmr_reset); + + hbl_cn_get_qp_id_range(cn_port, &min_id, &max_id); + + port_funcs->cfg_lock(cn_port); + + if (!cn_port->set_app_params) { + dev_dbg(hdev->dev, + "Failed to allocate QP, set_app_params wasn't called yet, port %d\n", port); + rc = -EPERM; + goto error_exit; + } + + swq_arr_props = &cn_port->wq_arr_props[HBL_CNI_USER_WQ_SEND]; + rwq_arr_props = &cn_port->wq_arr_props[HBL_CNI_USER_WQ_RECV]; + + if (!swq_arr_props->enabled || !rwq_arr_props->enabled) { + dev_dbg(hdev->dev, "Failed to allocate QP as WQs are not configured, port %d\n", + port); + rc = -EPERM; + goto error_exit; + } + + if (swq_arr_props->under_unset || rwq_arr_props->under_unset) { + dev_dbg(hdev->dev, "Failed to allocate QP as WQs are under unset, port %d\n", port); + rc = -EPERM; + goto error_exit; + } + + id_limit = XA_LIMIT(min_id, max_id); + rc = xa_alloc(&cn_port->qp_ids, &id, qp, id_limit, GFP_KERNEL); + if (rc) { + dev_dbg(hdev->dev, "Failed allocate QP IDR entry, port %d", port); + goto error_exit; + } + + qp->qp_id = id; + + rc = port_funcs->register_qp(cn_port, id, ctx->asid); + if (rc) { + dev_dbg(hdev->dev, "Failed to register QP %d, port %d\n", id, port); + goto qp_register_error; + } + + atomic_inc(&cn_port->num_of_allocated_qps); + + port_funcs->cfg_unlock(cn_port); + + out->conn_id = id; + + return 0; + +qp_register_error: + xa_erase(&qp->cn_port->qp_ids, qp->qp_id); +error_exit: + port_funcs->cfg_unlock(cn_port); + kfree(qp); + return rc; +} + +u32 hbl_cn_get_wq_array_type(bool is_send) +{ + return is_send ? HBL_CNI_USER_WQ_SEND : HBL_CNI_USER_WQ_RECV; +} + +static int alloc_and_map_wq(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, u32 n_wq, + bool is_swq) +{ + u32 wq_arr_type, wqe_size, qp_idx_offset, wq_idx; + struct hbl_cn_wq_array_properties *wq_arr_props; + struct hbl_cn_mem_data mem_data = {}; + struct hbl_cn_properties *cn_props; + struct hbl_cn_device *hdev; + struct hbl_cn_mem_buf *buf; + u64 wq_arr_size, wq_size; + int rc; + + hdev = cn_port->hdev; + cn_props = &hdev->cn_props; + qp_idx_offset = cn_port->qp_idx_offset; + wq_idx = qp->qp_id - qp_idx_offset; + + wq_arr_type = hbl_cn_get_wq_array_type(is_swq); + wq_arr_props = &cn_port->wq_arr_props[wq_arr_type]; + wqe_size = is_swq ? cn_port->swqe_size : cn_props->rwqe_size; + + if (wq_arr_props->dva_base) { + mem_data.mem_id = HBL_CN_DRV_MEM_HOST_VIRTUAL; + mem_data.size = PAGE_ALIGN(n_wq * wqe_size); + + /* Get offset into device VA block pre-allocated for SWQ. + * + * Note: HW indexes into SWQ array using qp_id. + * In general, it's HW requirement to leave holes in a WQ array if corresponding QP + * indexes are allocated on another WQ array. + */ + mem_data.device_va = wq_arr_props->dva_base + wq_arr_props->offset + + wq_arr_props->wq_size * wq_idx; + + /* Check for out of range. */ + if (mem_data.device_va + mem_data.size > + wq_arr_props->dva_base + wq_arr_props->dva_size) { + dev_dbg(hdev->dev, + "Out of range device VA. device_va 0x%llx, size 0x%llx\n", + mem_data.device_va, mem_data.size); + return -EINVAL; + } + } else { + /* DMA coherent allocate case. Memory for WQ array is already allocated in + * user_wq_arr_set(). Here we use the allocated base addresses and QP id to + * calculate the CPU & bus addresses of the WQ for current QP and return that + * handle to the user. User may mmap() this handle returned by set_req_qp_ctx() + * to write WQEs. + */ + mem_data.mem_id = HBL_CN_DRV_MEM_HOST_MAP_ONLY; + + buf = hbl_cn_mem_buf_get(hdev, wq_arr_props->handle); + if (!buf) { + dev_err(hdev->dev, "Failed to retrieve WQ arr handle for port %d\n", + cn_port->port); + return -EINVAL; + } + + /* Actual size to allocate. Page aligned since we mmap to user. */ + mem_data.size = PAGE_ALIGN(n_wq * wqe_size); + wq_size = wq_arr_props->wq_size; + wq_arr_size = buf->mappable_size; + + /* Get offset into kernel buffer block pre-allocated for SWQ. */ + mem_data.in.host_map_data.kernel_address = buf->kernel_address + + wq_arr_props->offset + wq_size * wq_idx; + + mem_data.in.host_map_data.bus_address = buf->bus_address + wq_arr_props->offset + + wq_size * wq_idx; + + /* Check for out of range. */ + if ((u64)mem_data.in.host_map_data.kernel_address + mem_data.size > + (u64)buf->kernel_address + wq_arr_size) { + dev_dbg(hdev->dev, + "Out of range kernel addr. kernel addr 0x%p, size 0x%llx\n", + mem_data.in.host_map_data.kernel_address, mem_data.size); + return -EINVAL; + } + } + + /* Allocate host vmalloc memory and map its physical pages to PMMU. */ + rc = hbl_cn_mem_alloc(qp->ctx, &mem_data); + if (rc) { + dev_dbg(hdev->dev, "Failed to allocate %s. Port %d, QP %d\n", + is_swq ? "SWQ" : "RWQ", cn_port->port, qp->qp_id); + return rc; + } + + /* Retrieve mmap handle. */ + if (is_swq) { + qp->swq_handle = mem_data.handle; + qp->swq_size = mem_data.size; + } else { + qp->rwq_handle = mem_data.handle; + qp->rwq_size = mem_data.size; + } + + return 0; +} + +static int set_req_qp_ctx(struct hbl_cn_device *hdev, struct hbl_cni_req_conn_ctx_in *in, + struct hbl_cni_req_conn_ctx_out *out) +{ + struct hbl_cn_wq_array_properties *swq_arr_props, *rwq_arr_props; + struct hbl_cn_encap_xarray_pdata *encap_data; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_asic_funcs *asic_funcs; + u32 wq_size, port, max_wq_size; + struct hbl_cn_port *cn_port; + struct hbl_cn_qp *qp; + int rc; + + port = in->port; + + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + asic_funcs = hdev->asic_funcs; + port_funcs = asic_funcs->port_funcs; + cn_port = &hdev->cn_ports[port]; + + if (in->timer_granularity > NIC_TMR_TIMEOUT_MAX_GRAN) { + dev_err(hdev->dev, + "timer granularity %d is not supported\n", in->timer_granularity); + return -EINVAL; + } + + if (!in->timer_granularity && !hbl_cn_is_ibdev_opened(hdev)) + in->timer_granularity = NIC_TMR_TIMEOUT_DEFAULT_GRAN; + + port_funcs->cfg_lock(cn_port); + qp = xa_load(&cn_port->qp_ids, in->conn_id); + + if (IS_ERR_OR_NULL(qp)) { + dev_dbg(hdev->dev, "Failed to find matching QP for handle %d, port %d\n", + in->conn_id, port); + rc = -EINVAL; + goto cfg_unlock; + } + + /* sanity test the port IDs */ + if (qp->port != port) { + dev_dbg(hdev->dev, "QP port %d does not match requested port %d\n", qp->port, port); + rc = -EINVAL; + goto cfg_unlock; + } + + if (in->encap_en) { + encap_data = xa_load(&cn_port->encap_ids, in->encap_id); + if (!encap_data) { + dev_dbg_ratelimited(hdev->dev, + "Encapsulation ID %d not found, ignoring\n", + in->encap_id); + in->encap_en = 0; + in->encap_id = 0; + } + } + + if (qp->is_req) { + dev_dbg(hdev->dev, "Port %d, QP %d - Requester QP is already set\n", port, + qp->qp_id); + rc = -EINVAL; + goto cfg_unlock; + } + + wq_size = in->wq_size; + + /* verify that size does not exceed wq_array size */ + max_wq_size = cn_port->num_of_wq_entries; + + if (wq_size > max_wq_size) { + dev_dbg(hdev->dev, + "Port %d, Requester QP %d - requested size (%d) > max size (%d)\n", port, + qp->qp_id, wq_size, max_wq_size); + rc = -EINVAL; + goto cfg_unlock; + } + + swq_arr_props = &cn_port->wq_arr_props[HBL_CNI_USER_WQ_SEND]; + rwq_arr_props = &cn_port->wq_arr_props[HBL_CNI_USER_WQ_RECV]; + + if (!swq_arr_props->on_device_mem) { + rc = alloc_and_map_wq(cn_port, qp, wq_size, true); + if (rc) + goto cfg_unlock; + + out->swq_mem_handle = qp->swq_handle; + out->swq_mem_size = qp->swq_size; + } + + if (!rwq_arr_props->on_device_mem) { + rc = alloc_and_map_wq(cn_port, qp, wq_size, false); + if (rc) + goto err_free_swq; + + out->rwq_mem_handle = qp->rwq_handle; + out->rwq_mem_size = qp->rwq_size; + } + + qp->remote_key = in->remote_key; + + rc = hbl_cn_qp_modify(cn_port, qp, CN_QP_STATE_RTS, in); + if (rc) + goto err_free_rwq; + + port_funcs->cfg_unlock(cn_port); + + return 0; + +err_free_rwq: + if (qp->rwq_handle) { + hbl_cn_mem_destroy(hdev, qp->rwq_handle); + qp->rwq_handle = 0; + out->rwq_mem_handle = qp->rwq_handle; + if (!rwq_arr_props->dva_base) { + int ret; + + ret = hbl_cn_mem_buf_put_handle(hdev, rwq_arr_props->handle); + if (ret == 1) + rwq_arr_props->handle = 0; + } + } +err_free_swq: + if (qp->swq_handle) { + hbl_cn_mem_destroy(hdev, qp->swq_handle); + qp->swq_handle = 0; + out->swq_mem_handle = qp->swq_handle; + if (!swq_arr_props->dva_base) { + int ret; + + ret = hbl_cn_mem_buf_put_handle(hdev, swq_arr_props->handle); + if (ret == 1) + swq_arr_props->handle = 0; + } + } +cfg_unlock: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int set_res_qp_ctx(struct hbl_cn_device *hdev, struct hbl_cni_res_conn_ctx_in *in) +{ + struct hbl_cn_encap_xarray_pdata *encap_data; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_port *cn_port; + struct hbl_cn_qp *qp; + u32 port; + int rc; + + port = in->port; + + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + asic_funcs = hdev->asic_funcs; + port_funcs = asic_funcs->port_funcs; + cn_port = &hdev->cn_ports[port]; + + port_funcs->cfg_lock(cn_port); + qp = xa_load(&cn_port->qp_ids, in->conn_id); + + if (IS_ERR_OR_NULL(qp)) { + dev_dbg(hdev->dev, "Failed to find matching QP for handle %d, port %d\n", + in->conn_id, port); + rc = -EINVAL; + goto unlock_cfg; + } + + if (in->encap_en) { + encap_data = xa_load(&cn_port->encap_ids, in->encap_id); + if (!encap_data) { + dev_dbg_ratelimited(hdev->dev, + "Encapsulation ID %d not found, ignoring\n", + in->encap_id); + in->encap_en = 0; + in->encap_id = 0; + } + } + + if (qp->is_res) { + dev_dbg(hdev->dev, "Port %d, QP %d - Responder QP is already set\n", port, + qp->qp_id); + rc = -EINVAL; + goto unlock_cfg; + } + + /* sanity test the port IDs */ + if (qp->port != port) { + dev_dbg(hdev->dev, "QP port %d does not match requested port %d\n", qp->port, port); + rc = -EINVAL; + goto unlock_cfg; + } + + qp->local_key = in->local_key; + + if (qp->curr_state == CN_QP_STATE_RESET) { + rc = hbl_cn_qp_modify(cn_port, qp, CN_QP_STATE_INIT, NULL); + if (rc) + goto unlock_cfg; + } + + /* all is well, we are ready to receive */ + rc = hbl_cn_qp_modify(cn_port, qp, CN_QP_STATE_RTR, in); + + port_funcs->cfg_unlock(cn_port); + + return rc; + +unlock_cfg: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +/* must be called under the port cfg lock */ +u32 hbl_cn_get_max_qp_id(struct hbl_cn_port *cn_port) +{ + int max_qp_id = cn_port->qp_idx_offset; + unsigned long qp_id = 0; + struct hbl_cn_qp *qp; + + xa_for_each(&cn_port->qp_ids, qp_id, qp) + if (qp->qp_id > max_qp_id) + max_qp_id = qp->qp_id; + + return max_qp_id; +} + +static void qp_destroy_work(struct work_struct *work) +{ + struct hbl_cn_qp *qp = container_of(work, struct hbl_cn_qp, async_work); + struct hbl_cn_wq_array_properties *swq_arr_props, *rwq_arr_props; + struct hbl_cn_port *cn_port = qp->cn_port; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_qpc_drain_attr drain_attr; + struct hbl_cn_qpc_reset_attr rst_attr; + struct hbl_cn_ctx *ctx = qp->ctx; + struct hbl_cn_device *hdev; + int rc; + + hdev = cn_port->hdev; + port_funcs = hdev->asic_funcs->port_funcs; + + if (!hdev->operational) { + drain_attr.wait_for_idle = false; + rst_attr.reset_mode = hdev->qp_reset_mode; + } else { + drain_attr.wait_for_idle = true; + rst_attr.reset_mode = CN_QP_RESET_MODE_GRACEFUL; + } + + /* Complete the wait for SQ to drain. To allow parallel QPs destruction, don't take the cfg + * lock here. This is safe because SQD->SQD QP transition is a simple wait to drain the QP + * without any access to the HW. + */ + if (qp->curr_state == CN_QP_STATE_SQD) + hbl_cn_qp_modify(cn_port, qp, CN_QP_STATE_SQD, &drain_attr); + + port_funcs->cfg_lock(cn_port); + + hbl_cn_qp_modify(cn_port, qp, CN_QP_STATE_RESET, &rst_attr); + + port_funcs->unregister_qp(cn_port, qp->qp_id); + + swq_arr_props = &cn_port->wq_arr_props[HBL_CNI_USER_WQ_SEND]; + rwq_arr_props = &cn_port->wq_arr_props[HBL_CNI_USER_WQ_RECV]; + + if (qp->swq_handle) { + hbl_cn_mem_destroy(hdev, qp->swq_handle); + qp->swq_handle = 0; + if (!swq_arr_props->dva_base) { + rc = hbl_cn_mem_buf_put_handle(hdev, swq_arr_props->handle); + if (rc == 1) + swq_arr_props->handle = 0; + } + } + + if (qp->rwq_handle) { + hbl_cn_mem_destroy(hdev, qp->rwq_handle); + qp->rwq_handle = 0; + if (!rwq_arr_props->dva_base) { + rc = hbl_cn_mem_buf_put_handle(hdev, rwq_arr_props->handle); + if (rc == 1) + rwq_arr_props->handle = 0; + } + } + + xa_erase(&cn_port->qp_ids, qp->qp_id); + + if (atomic_dec_and_test(&cn_port->num_of_allocated_qps)) { + if (swq_arr_props->under_unset) + __user_wq_arr_unset(ctx, cn_port, HBL_CNI_USER_WQ_SEND); + + if (rwq_arr_props->under_unset) + __user_wq_arr_unset(ctx, cn_port, HBL_CNI_USER_WQ_RECV); + } + + if (qp->req_user_cq) + hbl_cn_user_cq_put(qp->req_user_cq); + + if (qp->res_user_cq) + hbl_cn_user_cq_put(qp->res_user_cq); + + port_funcs->qp_post_destroy(qp); + + /* hbl_cn_mem_destroy should be included inside lock not due to protection. + * The handles (swq_handle and rwq_handle) are created based on QP id. + * Lock is to avoid concurrent memory access from a new handle created before freeing + * memory. + */ + port_funcs->cfg_unlock(cn_port); + + kfree(qp); +} + +static void qps_drain_async_work(struct hbl_cn_device *hdev) +{ + struct hbl_cn_port *cn_port; + int i, num_gen_qps; + + /* wait for the workers to complete */ + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + drain_workqueue(cn_port->qp_wq); + + num_gen_qps = atomic_read(&cn_port->num_of_allocated_qps); + if (num_gen_qps) + dev_warn(hdev->dev, "Port %d still has %d QPs alive\n", i, num_gen_qps); + } +} + +static inline int __must_check PTR_ERR_OR_EINVAL(__force const void *ptr) +{ + if (IS_ERR(ptr)) + return PTR_ERR(ptr); + else + return -EINVAL; +} + +static int destroy_qp(struct hbl_cn_device *hdev, struct hbl_cni_destroy_conn_in *in) +{ + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_port *cn_port; + struct hbl_cn_qp *qp; + u32 port, flags; + int rc; + + port = in->port; + + if (port >= hdev->cn_props.max_num_of_ports) { + dev_dbg(hdev->dev, "Invalid port %d\n", port); + return -EINVAL; + } + + cn_port = &hdev->cn_ports[port]; + + /* in case of destroying QPs of external ports, the port may be already closed by a user + * issuing "ip link set down" command so we only check if the port is enabled in these + * ports. + */ + flags = cn_port->eth_enable ? NIC_PORT_CHECK_ENABLE : NIC_PORT_CHECK_OPEN; + flags |= NIC_PORT_PRINT_ON_ERR; + rc = hbl_cn_cmd_port_check(hdev, port, flags); + if (rc) + return rc; + + asic_funcs = hdev->asic_funcs; + port_funcs = asic_funcs->port_funcs; + + /* prevent reentrancy by locking the whole process of destroy_qp */ + port_funcs->cfg_lock(cn_port); + qp = xa_load(&cn_port->qp_ids, in->conn_id); + + if (IS_ERR_OR_NULL(qp)) { + rc = PTR_ERR_OR_EINVAL(qp); + goto out_err; + } + + hbl_cn_qp_do_release(qp); + + port_funcs->cfg_unlock(cn_port); + + return 0; + +out_err: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static void hbl_cn_qps_stop(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_asic_port_funcs *port_funcs = cn_port->hdev->asic_funcs->port_funcs; + struct hbl_cn_qpc_drain_attr drain = { .wait_for_idle = false, }; + unsigned long qp_id = 0; + struct hbl_cn_qp *qp; + + port_funcs->cfg_lock(cn_port); + + xa_for_each(&cn_port->qp_ids, qp_id, qp) { + if (IS_ERR_OR_NULL(qp)) + continue; + + hbl_cn_qp_modify(cn_port, qp, CN_QP_STATE_QPD, (void *)&drain); + } + + port_funcs->cfg_unlock(cn_port); +} + +static void qps_stop(struct hbl_cn_device *hdev) +{ + struct hbl_cn_port *cn_port; + int i; + + /* stop the QPs */ + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + hbl_cn_qps_stop(cn_port); + } +} + +static int user_wq_arr_set(struct hbl_cn_device *hdev, struct hbl_cni_user_wq_arr_set_in *in, + struct hbl_cni_user_wq_arr_set_out *out, struct hbl_cn_ctx *ctx) +{ + u32 port, type, num_of_wqs, num_of_wq_entries, min_wqs_per_port, mem_id; + struct hbl_cn_wq_array_properties *wq_arr_props; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_properties *cn_props; + struct hbl_cn_port *cn_port; + char *type_str; + int rc; + + if (in->swq_granularity > HBL_CNI_SWQE_GRAN_64B) { + dev_dbg(hdev->dev, "Invalid send WQE granularity %d\n", in->swq_granularity); + return -EINVAL; + } + + port_funcs = hdev->asic_funcs->port_funcs; + cn_props = &hdev->cn_props; + + type = in->type; + + if (type > cn_props->max_wq_arr_type) { + dev_dbg(hdev->dev, "invalid type %d, can't set user WQ\n", type); + return -EINVAL; + } + + mem_id = in->mem_id; + + if (mem_id != HBL_CNI_MEM_HOST && mem_id != HBL_CNI_MEM_DEVICE) { + dev_dbg(hdev->dev, "invalid memory type %d for user WQ\n", mem_id); + return -EINVAL; + } + + port = in->port; + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + + wq_arr_props = &cn_port->wq_arr_props[type]; + type_str = wq_arr_props->type_str; + + /* For generic WQs minimum number of wqs required is 2, one for raw eth and one for rdma */ + min_wqs_per_port = NIC_MIN_WQS_PER_PORT; + if (in->num_of_wqs < min_wqs_per_port) { + dev_dbg(hdev->dev, "number of %s WQs must be minimum %d, port %d\n", type_str, + min_wqs_per_port, port); + return -EINVAL; + } + + /* H/W limitation */ + if (in->num_of_wqs > cn_props->max_hw_qps_num) { + dev_dbg(hdev->dev, "number of %s WQs (0x%x) can't be bigger than 0x%x, port %d\n", + type_str, in->num_of_wqs, cn_props->max_hw_qps_num, port); + return -EINVAL; + } + + if (!is_power_of_2(in->num_of_wq_entries)) { + dev_dbg(hdev->dev, + "number of %s WQ entries (0x%x) must be a power of 2, port %d\n", type_str, + in->num_of_wq_entries, port); + return -EINVAL; + } + + /* H/W limitation */ + if (in->num_of_wq_entries < cn_props->min_hw_user_wqs_num) { + dev_dbg(hdev->dev, + "number of %s WQ entries (0x%x) must be at least %d, port %d\n", type_str, + in->num_of_wq_entries, cn_props->min_hw_user_wqs_num, port); + return -EINVAL; + } + + /* H/W limitation */ + if (in->num_of_wq_entries > cn_props->max_hw_user_wqs_num) { + dev_dbg(hdev->dev, + "number of %s WQ entries (0x%x) can't be bigger than 0x%x, port %d\n", + type_str, in->num_of_wq_entries, cn_props->max_hw_user_wqs_num, port); + return -EINVAL; + } + + port_funcs->cfg_lock(cn_port); + + if (!cn_port->set_app_params) { + dev_dbg(hdev->dev, + "Failed to set %s WQ array, set_app_params wasn't called yet, port %d\n", + type_str, port); + rc = -EPERM; + goto out; + } + + /* we first check the wq_under_unset condition since a prev WQ unset (async) operation may + * still be in progress, and since in such cases we would like to return -EAGAIN to the + * caller and not -EINVAL + */ + if (wq_arr_props->enabled && wq_arr_props->under_unset) { + dev_dbg_ratelimited(hdev->dev, + "Retry to set %s WQ array as it is under unset, port %d\n", + type_str, port); + rc = -EAGAIN; + goto out; + } + + if (wq_arr_props->enabled) { + dev_dbg(hdev->dev, "%s WQ array is already enabled, port %d\n", type_str, port); + rc = -EINVAL; + goto out; + } + + if (wq_arr_props->under_unset) { + dev_dbg(hdev->dev, + "Failed to set %s WQ array as it is not enabled and under unset, port %d\n", + type_str, port); + rc = -EPERM; + goto out; + } + + num_of_wq_entries = cn_port->num_of_wq_entries; + num_of_wqs = cn_port->num_of_wqs; + + if (num_of_wq_entries && num_of_wq_entries != in->num_of_wq_entries) { + dev_dbg(hdev->dev, "%s WQ number of entries (0x%x) should be 0x%x, port %d\n", + type_str, in->num_of_wq_entries, num_of_wq_entries, port); + rc = -EINVAL; + goto out; + } + + if (num_of_wqs && num_of_wqs != in->num_of_wqs) { + dev_dbg(hdev->dev, "%s WQs number (0x%x) should be 0x%x, port %d\n", + type_str, in->num_of_wqs, num_of_wqs, port); + rc = -EINVAL; + goto out; + } + + rc = hdev->asic_funcs->user_wq_arr_set(hdev, in, out, ctx); + if (rc) { + dev_err(hdev->dev, "%s WQ array set failed, port %d, err %d\n", type_str, port, rc); + goto out; + } + + cn_port->num_of_wq_entries = in->num_of_wq_entries; + cn_port->num_of_wqs = in->num_of_wqs; + + wq_arr_props->enabled = true; + +out: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int __user_wq_arr_unset(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type) +{ + struct hbl_cn_wq_array_properties *wq_arr_props; + struct hbl_cn_device *hdev; + char *type_str; + u32 port; + int rc; + + hdev = ctx->hdev; + wq_arr_props = &cn_port->wq_arr_props[type]; + type_str = wq_arr_props->type_str; + port = cn_port->port; + + rc = hdev->asic_funcs->port_funcs->user_wq_arr_unset(ctx, cn_port, type); + if (rc) + dev_err(hdev->dev, "%s WQ array unset failed, port %d, err %d\n", type_str, port, + rc); + + wq_arr_props->enabled = false; + wq_arr_props->under_unset = false; + + if (!cn_port->wq_arr_props[HBL_CNI_USER_WQ_SEND].enabled && + !cn_port->wq_arr_props[HBL_CNI_USER_WQ_RECV].enabled) { + cn_port->num_of_wq_entries = 0; + cn_port->num_of_wqs = 0; + } + + return rc; +} + +static int user_wq_arr_unset(struct hbl_cn_device *hdev, struct hbl_cni_user_wq_arr_unset_in *in, + struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_wq_array_properties *wq_arr_props; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_properties *cn_props; + struct hbl_cn_port *cn_port; + u32 port, type; + char *type_str; + int rc; + + port_funcs = hdev->asic_funcs->port_funcs; + cn_props = &hdev->cn_props; + + type = in->type; + + if (type > cn_props->max_wq_arr_type) { + dev_dbg(hdev->dev, "invalid type %d, can't unset user WQ\n", type); + return -EINVAL; + } + + port = in->port; + + /* No need to check if the port is open because internal ports are always open and external + * ports might be closed by a user command e.g. "ip link set down" after a WQ was + * configured, but we still want to unset it. + */ + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_ENABLE | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + + wq_arr_props = &cn_port->wq_arr_props[type]; + type_str = wq_arr_props->type_str; + + port_funcs->cfg_lock(cn_port); + + if (!wq_arr_props->enabled) { + dev_dbg(hdev->dev, "%s WQ array is disabled, port %d\n", type_str, port); + rc = -EINVAL; + goto out; + } + + if (wq_arr_props->under_unset) { + dev_dbg(hdev->dev, "%s WQ array is already under unset, port %d\n", type_str, port); + rc = -EPERM; + goto out; + } + + /* Allocated QPs might still use the WQ, hence unset the WQ once they are destroyed */ + if (atomic_read(&cn_port->num_of_allocated_qps)) { + wq_arr_props->under_unset = true; + rc = 0; + goto out; + } + + rc = __user_wq_arr_unset(ctx, cn_port, type); +out: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int alloc_user_cq_id(struct hbl_cn_device *hdev, struct hbl_cni_alloc_user_cq_id_in *in, + struct hbl_cni_alloc_user_cq_id_out *out, struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_asic_port_funcs *port_funcs = hdev->asic_funcs->port_funcs; + struct hbl_cn_properties *cn_props = &hdev->cn_props; + u32 min_id, max_id, port, flags; + struct hbl_cn_user_cq *user_cq; + struct hbl_cn_port *cn_port; + struct xa_limit id_limit; + int id, rc; + + port = in->port; + flags = NIC_PORT_PRINT_ON_ERR; + + if (!cn_props->force_cq) + flags |= NIC_PORT_CHECK_OPEN; + + rc = hbl_cn_cmd_port_check(hdev, port, flags); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + + user_cq = kzalloc(sizeof(*user_cq), GFP_KERNEL); + if (!user_cq) + return -ENOMEM; + + user_cq->state = USER_CQ_STATE_ALLOC; + user_cq->ctx = ctx; + user_cq->cn_port = cn_port; + kref_init(&user_cq->refcount); + + port_funcs->get_cq_id_range(cn_port, &min_id, &max_id); + + port_funcs->cfg_lock(cn_port); + + if (!cn_port->set_app_params) { + dev_dbg(hdev->dev, + "Failed to allocate a CQ ID, set_app_params wasn't called yet, port %d\n", + port); + rc = -EPERM; + goto cfg_unlock; + } + + id_limit = XA_LIMIT(min_id, max_id); + rc = xa_alloc(&cn_port->cq_ids, &id, user_cq, id_limit, GFP_KERNEL); + if (rc) { + dev_err(hdev->dev, "No available user CQ, port %d\n", port); + goto cfg_unlock; + } + + user_cq->id = id; + + mutex_init(&user_cq->overrun_lock); + + port_funcs->cfg_unlock(cn_port); + + dev_dbg(hdev->dev, "Allocating CQ id %d in port %d", id, port); + + out->id = id; + + return 0; + +cfg_unlock: + port_funcs->cfg_unlock(cn_port); + kfree(user_cq); + + return rc; +} + +static bool validate_cq_id_range(struct hbl_cn_port *cn_port, u32 cq_id) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + u32 min_id, max_id; + + port_funcs = hdev->asic_funcs->port_funcs; + + port_funcs->get_cq_id_range(cn_port, &min_id, &max_id); + + return (cq_id >= min_id) && (cq_id <= max_id); +} + +static int __user_cq_set(struct hbl_cn_device *hdev, struct hbl_cni_user_cq_set_in_params *in, + struct hbl_cni_user_cq_set_out_params *out) +{ + struct hbl_cn_asic_port_funcs *port_funcs = hdev->asic_funcs->port_funcs; + struct hbl_cn_properties *cn_props = &hdev->cn_props; + struct hbl_cn_user_cq *user_cq; + struct hbl_cn_port *cn_port; + u32 port, flags, id; + int rc; + + id = in->id; + port = in->port; + + flags = NIC_PORT_PRINT_ON_ERR; + + if (!cn_props->force_cq) + flags |= NIC_PORT_CHECK_OPEN; + + rc = hbl_cn_cmd_port_check(hdev, port, flags); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + + if (!validate_cq_id_range(cn_port, id)) { + dev_dbg(hdev->dev, "user CQ %d is invalid, port %d\n", id, port); + return -EINVAL; + } + + if (in->num_of_cqes < cn_props->user_cq_min_entries) { + dev_dbg(hdev->dev, + "user CQ %d buffer length must be at least 0x%x entries, port %d\n", + id, cn_props->user_cq_min_entries, port); + return -EINVAL; + } + + if (!is_power_of_2(in->num_of_cqes)) { + dev_dbg(hdev->dev, "user CQ %d buffer length must be at power of 2, port %d\n", + id, port); + return -EINVAL; + } + + if (in->num_of_cqes > cn_props->user_cq_max_entries) { + dev_dbg(hdev->dev, + "user CQ %d buffer length must not be more than 0x%x entries, port %d\n", + id, cn_props->user_cq_max_entries, port); + return -EINVAL; + } + + port_funcs->cfg_lock(cn_port); + + /* Validate if user CQ is allocated. */ + user_cq = xa_load(&cn_port->cq_ids, id); + if (!user_cq) { + dev_dbg(hdev->dev, "user CQ %d wasn't allocated, port %d\n", id, port); + rc = -EINVAL; + goto out; + } + + /* Validate that user CQ is in ALLOC state. */ + if (user_cq->state != USER_CQ_STATE_ALLOC) { + dev_dbg(hdev->dev, "user CQ %d set failed, current state %d, port %d\n", + id, user_cq->state, port); + rc = -EINVAL; + goto out; + } + + rc = port_funcs->user_cq_set(user_cq, in, out); + if (rc) { + dev_dbg(hdev->dev, "user CQ %d set failed, port %d\n", id, port); + goto out; + } + + user_cq->state = USER_CQ_STATE_SET; +out: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int user_cq_id_set(struct hbl_cn_device *hdev, struct hbl_cni_user_cq_id_set_in *in, + struct hbl_cni_user_cq_id_set_out *out) +{ + struct hbl_cni_user_cq_set_out_params out2 = {}; + struct hbl_cni_user_cq_set_in_params in2 = {}; + int rc; + + in2.port = in->port; + in2.num_of_cqes = in->num_of_cqes; + in2.id = in->id; + + rc = __user_cq_set(hdev, &in2, &out2); + if (rc) + return rc; + + out->mem_handle = out2.mem_handle; + out->pi_handle = out2.pi_handle; + out->regs_handle = out2.regs_handle; + out->regs_offset = out2.regs_offset; + + return 0; +} + +static void user_cq_destroy(struct kref *kref) +{ + struct hbl_cn_user_cq *user_cq = container_of(kref, struct hbl_cn_user_cq, refcount); + struct hbl_cn_port *cn_port = user_cq->cn_port; + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + + port_funcs = hdev->asic_funcs->port_funcs; + + /* Destroy the remaining resources allocated during SET state. The below callback needs to + * be called only if the CQ moved to unset from set state. This is because, this resource + * was created only during set state. If the CQ moved directly to unset from alloc then we + * shouldn't be trying to clear the resource. + */ + if (user_cq->state == USER_CQ_STATE_SET_TO_UNSET) + port_funcs->user_cq_destroy(user_cq); + + mutex_destroy(&user_cq->overrun_lock); + xa_erase(&cn_port->cq_ids, user_cq->id); + kfree(user_cq); +} + +struct hbl_cn_user_cq *hbl_cn_user_cq_get(struct hbl_cn_port *cn_port, u8 cq_id) +{ + struct hbl_cn_user_cq *user_cq; + + user_cq = xa_load(&cn_port->cq_ids, cq_id); + if (!user_cq || user_cq->state != USER_CQ_STATE_SET) + return NULL; + + kref_get(&user_cq->refcount); + + return user_cq; +} + +int hbl_cn_user_cq_put(struct hbl_cn_user_cq *user_cq) +{ + return kref_put(&user_cq->refcount, user_cq_destroy); +} + +static int user_cq_unset_locked(struct hbl_cn_user_cq *user_cq, bool warn_if_alive) +{ + struct hbl_cn_port *cn_port = user_cq->cn_port; + struct hbl_cn_device *hdev = cn_port->hdev; + u32 port = cn_port->port, id = user_cq->id; + struct hbl_cn_asic_port_funcs *port_funcs; + int rc = 0, ret; + + port_funcs = hdev->asic_funcs->port_funcs; + + /* Call unset only if the CQ has already been SET */ + if (user_cq->state == USER_CQ_STATE_SET) { + rc = port_funcs->user_cq_unset(user_cq); + if (rc) + dev_dbg(hdev->dev, "user CQ %d unset failed, port %d\n", id, port); + + user_cq->state = USER_CQ_STATE_SET_TO_UNSET; + } else { + user_cq->state = USER_CQ_STATE_ALLOC_TO_UNSET; + } + + /* we'd like to destroy even if the unset callback returned error */ + ret = hbl_cn_user_cq_put(user_cq); + + if (warn_if_alive && ret != 1) + dev_warn(hdev->dev, "user CQ %d was not destroyed, port %d\n", id, port); + + return rc; +} + +static int __user_cq_unset(struct hbl_cn_device *hdev, struct hbl_cni_user_cq_unset_in_params *in) +{ + struct hbl_cn_asic_port_funcs *port_funcs = hdev->asic_funcs->port_funcs; + struct hbl_cn_properties *cn_props = &hdev->cn_props; + struct hbl_cn_user_cq *user_cq; + struct hbl_cn_port *cn_port; + u32 port, flags, id; + int rc; + + port = in->port; + id = in->id; + + if (port >= cn_props->max_num_of_ports) { + dev_dbg(hdev->dev, "Invalid port %d\n", port); + return -EINVAL; + } + + cn_port = &hdev->cn_ports[port]; + + flags = NIC_PORT_PRINT_ON_ERR; + + /* Unless force_cq flag in enabled, in case of user CQ unset of external ports, the port + * may be already closed by the user, so we only check if the port is enabled. + */ + if (!cn_props->force_cq) + flags |= cn_port->eth_enable ? NIC_PORT_CHECK_ENABLE : NIC_PORT_CHECK_OPEN; + + rc = hbl_cn_cmd_port_check(hdev, port, flags); + if (rc) + return rc; + + if (!validate_cq_id_range(cn_port, id)) { + dev_dbg(hdev->dev, "user CQ %d is invalid, port %d\n", id, port); + return -EINVAL; + } + + port_funcs->cfg_lock(cn_port); + + /* Validate if user CQ is allocated. */ + user_cq = xa_load(&cn_port->cq_ids, id); + if (!user_cq) { + dev_dbg(hdev->dev, "user CQ %d wasn't allocated, port %d\n", id, port); + rc = -EINVAL; + goto out; + } + + rc = user_cq_unset_locked(user_cq, false); +out: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int user_cq_id_unset(struct hbl_cn_device *hdev, struct hbl_cni_user_cq_id_unset_in *in) +{ + struct hbl_cni_user_cq_unset_in_params in2 = {}; + + in2.port = in->port; + in2.id = in->id; + + return __user_cq_unset(hdev, &in2); +} + +static int user_set_app_params(struct hbl_cn_device *hdev, + struct hbl_cni_set_user_app_params_in *in, struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + bool modify_wqe_checkers; + u32 port; + int rc; + + port_funcs = asic_funcs->port_funcs; + + port = in->port; + + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + + /* We must take rtnl_lock here prior to taking cfg_lock, as we may land into flow that + * extracts the IP port and that can cause a deadlock in case an operation from the + * net subsystem that requires the cfg_lock is executed at the same time. As such operation + * will first obtain rtnl_lock and then will try to take a cfg_lock, hence a deadlock. + */ + rtnl_lock(); + port_funcs->cfg_lock(cn_port); + + rc = asic_funcs->user_set_app_params(hdev, in, &modify_wqe_checkers, ctx); + if (rc) + goto out; + + if (modify_wqe_checkers) { + rc = hdev->asic_funcs->port_funcs->disable_wqe_index_checker(cn_port); + if (rc) { + dev_err(hdev->dev, "Failed disable wqe index checker, port %d rc %d\n", + port, rc); + goto out; + } + } + + cn_port->set_app_params = true; + +out: + port_funcs->cfg_unlock(cn_port); + rtnl_unlock(); + + return rc; +} + +static int user_get_app_params(struct hbl_cn_device *hdev, + struct hbl_cni_get_user_app_params_in *in, + struct hbl_cni_get_user_app_params_out *out) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + u32 port; + int rc; + + port_funcs = asic_funcs->port_funcs; + + port = in->port; + + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + + port_funcs->cfg_lock(cn_port); + asic_funcs->user_get_app_params(hdev, in, out); + port_funcs->cfg_unlock(cn_port); + + return 0; +} + +static int eq_poll(struct hbl_cn_device *hdev, struct hbl_cn_ctx *ctx, + struct hbl_cni_eq_poll_in *in, struct hbl_cni_eq_poll_out *out) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + struct hbl_cn_port *cn_port; + u32 port; + int rc; + + port = in->port; + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + rc = asic_funcs->port_funcs->eq_poll(cn_port, ctx->asid, out); + switch (rc) { + case 0: + out->status = HBL_CNI_EQ_POLL_STATUS_SUCCESS; + break; + case -EOPNOTSUPP: + out->status = HBL_CNI_EQ_POLL_STATUS_ERR_UNSUPPORTED_OP; + break; + case -EINVAL: + out->status = HBL_CNI_EQ_POLL_STATUS_ERR_NO_SUCH_PORT; + break; + case -ENXIO: + out->status = HBL_CNI_EQ_POLL_STATUS_ERR_PORT_DISABLED; + break; + case -ENODATA: + out->status = HBL_CNI_EQ_POLL_STATUS_EQ_EMPTY; + break; + case -ESRCH: + out->status = HBL_CNI_EQ_POLL_STATUS_ERR_NO_SUCH_EQ; + break; + default: + out->status = HBL_CNI_EQ_POLL_STATUS_ERR_UNDEF; + break; + } + + return 0; +} + +static void get_user_db_fifo_id_range(struct hbl_cn_port *cn_port, u32 *min_id, u32 *max_id, + u32 id_hint) +{ + struct hbl_cn_asic_port_funcs *port_funcs; + + port_funcs = cn_port->hdev->asic_funcs->port_funcs; + + /* id_hint comes from user. Driver enforces allocation of the requested + * db fifo HW resource. i.e. driver fails if requested resource is not + * available. Reason, user stack has hard coded user fifo resource IDs. + */ + if (id_hint) { + *min_id = id_hint; + *max_id = id_hint; + } else { + port_funcs->get_db_fifo_id_range(cn_port, min_id, max_id); + } +} + +static int alloc_user_db_fifo(struct hbl_cn_device *hdev, struct hbl_cn_ctx *ctx, + struct hbl_cni_alloc_user_db_fifo_in *in, + struct hbl_cni_alloc_user_db_fifo_out *out) +{ + struct hbl_cn_db_fifo_xarray_pdata *xa_pdata; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + struct xa_limit id_limit; + u32 min_id, max_id; + int rc, id; + u32 port; + + port = in->port; + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + port_funcs = hdev->asic_funcs->port_funcs; + + get_user_db_fifo_id_range(cn_port, &min_id, &max_id, in->id_hint); + + /* IDR private data. */ + xa_pdata = kzalloc(sizeof(*xa_pdata), GFP_KERNEL); + if (!xa_pdata) + return -ENOMEM; + + xa_pdata->asid = ctx->asid; + xa_pdata->state = DB_FIFO_STATE_ALLOC; + xa_pdata->port = port; + + port_funcs->cfg_lock(cn_port); + + if (!cn_port->set_app_params) { + dev_dbg(hdev->dev, + "Failed to allocate DB FIFO, set_app_params wasn't called yet, port %d\n", + port); + rc = -EPERM; + goto cfg_unlock; + } + + id_limit = XA_LIMIT(min_id, max_id); + rc = xa_alloc(&cn_port->db_fifo_ids, &id, xa_pdata, id_limit, GFP_KERNEL); + if (rc) { + dev_dbg_ratelimited(hdev->dev, "DB FIFO ID allocation failed, port %d\n", port); + goto cfg_unlock; + } + + xa_pdata->id = id; + + port_funcs->cfg_unlock(cn_port); + + out->id = id; + + return 0; + +cfg_unlock: + port_funcs->cfg_unlock(cn_port); + kfree(xa_pdata); + return rc; +} + +static int validate_db_fifo_id_range(struct hbl_cn_port *cn_port, u32 db_fifo_id) +{ + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_device *hdev; + u32 min_id, max_id; + + hdev = cn_port->hdev; + asic_funcs = hdev->asic_funcs; + + asic_funcs->port_funcs->get_db_fifo_id_range(cn_port, &min_id, &max_id); + + if (db_fifo_id < min_id || db_fifo_id > max_id) { + dev_dbg_ratelimited(hdev->dev, "Invalid db fifo ID, %d, port: %d\n", db_fifo_id, + cn_port->port); + return -EINVAL; + } + + return 0; +} + +static int validate_db_fifo_mode(struct hbl_cn_port *cn_port, u8 fifo_mode) +{ + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_device *hdev; + u32 modes_mask; + + hdev = cn_port->hdev; + asic_funcs = hdev->asic_funcs; + + asic_funcs->port_funcs->get_db_fifo_modes_mask(cn_port, &modes_mask); + + if (!(BIT(fifo_mode) & modes_mask)) { + dev_dbg_ratelimited(hdev->dev, "Invalid db fifo mode, %d, port: %d\n", fifo_mode, + cn_port->port); + return -EINVAL; + } + + return 0; +} + +static int validate_db_fifo_ioctl(struct hbl_cn_port *cn_port, u32 db_fifo_id) +{ + return validate_db_fifo_id_range(cn_port, db_fifo_id); +} + +static int user_db_fifo_unset_and_free(struct hbl_cn_port *cn_port, + struct hbl_cn_db_fifo_xarray_pdata *xa_pdata) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + int rc = 0; + + asic_funcs = hdev->asic_funcs; + + asic_funcs->port_funcs->db_fifo_unset(cn_port, xa_pdata->id, xa_pdata); + + /* Destroy CI buffer if we allocated one. + * Note: Not all DB fifo modes need CI memory buffer. + * Track CI via sync objects. + * If there is an issue in destroying the CI memory, then we might exit this function + * without freeing the db_fifo_pool. This would cause a kernel assertion when we try to do + * rmmod as the gen_alloc_destroy for db_fifo_pool would fail as there are allocations + * still left in the pool. So, the db_fifo_pool needs to be freed irrespective of the ci + * memory being destroyed or not. + */ + if (xa_pdata->ci_mmap_handle) + rc = hbl_cn_mem_destroy(hdev, xa_pdata->ci_mmap_handle); + + asic_funcs->port_funcs->db_fifo_free(cn_port, xa_pdata->db_pool_addr, xa_pdata->fifo_size); + + return rc; +} + +static int user_db_fifo_set(struct hbl_cn_device *hdev, struct hbl_cn_ctx *ctx, + struct hbl_cni_user_db_fifo_set_in *in, + struct hbl_cni_user_db_fifo_set_out *out) +{ + u64 umr_block_addr, umr_mmap_handle, ci_mmap_handle = 0, ci_device_handle; + struct hbl_cn_db_fifo_xarray_pdata *xa_pdata; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_mem_data mem_data = {}; + struct hbl_cn_port *cn_port; + u32 umr_db_offset, port, id; + int rc; + + port = in->port; + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + port_funcs = hdev->asic_funcs->port_funcs; + id = in->id; + + rc = validate_db_fifo_ioctl(cn_port, id); + if (rc) + return rc; + + /* Get allocated ID private data. Having meta data associated with IDR also helps validate + * that user do not trick kernel into configuring db fifo HW for an unallocated ID. + */ + port_funcs->cfg_lock(cn_port); + xa_pdata = xa_load(&cn_port->db_fifo_ids, id); + if (!xa_pdata) { + dev_dbg_ratelimited(hdev->dev, "DB FIFO ID %d is not allocated, port: %d\n", id, + port); + rc = -EINVAL; + goto cfg_unlock; + } + + rc = validate_db_fifo_mode(cn_port, in->mode); + if (rc) + goto cfg_unlock; + + xa_pdata->fifo_mode = in->mode; + + /* User may call db_fifo_set multiple times post db_fifo_alloc. So, before doing any + * further register changes, make sure to unset the previous settings for this id + */ + if (xa_pdata->state == DB_FIFO_STATE_SET) { + rc = user_db_fifo_unset_and_free(cn_port, xa_pdata); + if (rc) { + dev_dbg(hdev->dev, "Fail to unset DB FIFO %d before set, port %d\n", id, + port); + goto cfg_unlock; + } + } + + rc = port_funcs->db_fifo_allocate(cn_port, xa_pdata); + if (rc) { + dev_dbg(hdev->dev, "DB FIFO %d allocation failed, port %d, mode %d\n", id, port, + in->mode); + goto cfg_unlock; + } + + /* Get the user mapped register(UMR) block address and + * db fifo offset associated with the ID. + */ + port_funcs->get_db_fifo_umr(cn_port, id, &umr_block_addr, &umr_db_offset); + + /* Get mmap handle for UMR block. */ + rc = hbl_cn_get_hw_block_handle(hdev, umr_block_addr, &umr_mmap_handle); + if (rc) { + dev_dbg_ratelimited(hdev->dev, + "Failed to get UMR mmap handle of DB FIFO %d, port %d\n", id, + port); + goto free_db_fifo; + } + + /* Allocate a consumer-index(CI) buffer in host kernel. + * HW updates CI when it pops a db fifo. User mmaps CI buffer and may poll to read current + * CI. + * Allocate page size, else we risk exposing kernel data to userspace inadvertently. + */ + mem_data.mem_id = HBL_CN_DRV_MEM_HOST_DMA_COHERENT; + mem_data.size = PAGE_SIZE; + rc = hbl_cn_mem_alloc(ctx, &mem_data); + if (rc) { + dev_dbg_ratelimited(hdev->dev, + "DB FIFO id %d, CI buffer allocation failed, port %d\n", + id, port); + goto free_db_fifo; + } + + ci_mmap_handle = mem_data.handle; + ci_device_handle = mem_data.addr; + + rc = port_funcs->db_fifo_set(cn_port, ctx, id, ci_device_handle, xa_pdata); + if (rc) { + dev_dbg_ratelimited(hdev->dev, "DB FIFO id %d, HW config failed, port %d\n", id, + port); + goto free_ci; + } + + /* Cache IDR metadata and init IOCTL out. */ + out->ci_handle = ci_mmap_handle; + out->regs_handle = umr_mmap_handle; + out->regs_offset = umr_db_offset; + + xa_pdata->ci_mmap_handle = out->ci_handle; + xa_pdata->umr_mmap_handle = out->regs_handle; + xa_pdata->umr_db_offset = out->regs_offset; + xa_pdata->state = DB_FIFO_STATE_SET; + + out->fifo_size = xa_pdata->fifo_size; + out->fifo_bp_thresh = xa_pdata->fifo_size / 2; + + port_funcs->cfg_unlock(cn_port); + + return 0; + +free_ci: + if (ci_mmap_handle) + hbl_cn_mem_destroy(hdev, ci_mmap_handle); +free_db_fifo: + port_funcs->db_fifo_free(cn_port, xa_pdata->db_pool_addr, xa_pdata->fifo_size); +cfg_unlock: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int __user_db_fifo_unset(struct hbl_cn_port *cn_port, + struct hbl_cn_db_fifo_xarray_pdata *xa_pdata) +{ + u32 id = xa_pdata->id; + int rc = 0; + + /* User may call unset or the context may be destroyed while a db fifo is still in + * allocated state. When we call alloc_user_db_fifo next time, we would skip that + * particular id. This way, the id is blocked indefinitely until a full reset is done. + * So to fix this issue, we maintain the state of the idr. Perform unset only if set had + * been previously done for the idr. + */ + if (xa_pdata->state == DB_FIFO_STATE_SET) + rc = user_db_fifo_unset_and_free(cn_port, xa_pdata); + + kfree(xa_pdata); + xa_erase(&cn_port->db_fifo_ids, id); + + return rc; +} + +static int user_db_fifo_unset(struct hbl_cn_device *hdev, struct hbl_cni_user_db_fifo_unset_in *in) +{ + struct hbl_cn_db_fifo_xarray_pdata *xa_pdata; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + int rc; + u32 id; + + rc = hbl_cn_cmd_port_check(hdev, in->port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[in->port]; + port_funcs = hdev->asic_funcs->port_funcs; + id = in->id; + + rc = validate_db_fifo_ioctl(cn_port, id); + if (rc) + return rc; + + port_funcs->cfg_lock(cn_port); + + xa_pdata = xa_load(&cn_port->db_fifo_ids, id); + if (!xa_pdata) { + dev_dbg_ratelimited(hdev->dev, "DB fifo ID %d is not allocated, port: %d\n", id, + in->port); + rc = -EINVAL; + goto out; + } + + rc = __user_db_fifo_unset(cn_port, xa_pdata); +out: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int user_encap_alloc(struct hbl_cn_device *hdev, struct hbl_cni_user_encap_alloc_in *in, + struct hbl_cni_user_encap_alloc_out *out) +{ + struct hbl_cn_encap_xarray_pdata *xa_pdata; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + struct xa_limit id_limit; + u32 min_id, max_id; + int rc, id; + u32 port; + + port = in->port; + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + port_funcs = hdev->asic_funcs->port_funcs; + + port_funcs->get_encap_id_range(cn_port, &min_id, &max_id); + + /* IDR private data. */ + xa_pdata = kzalloc(sizeof(*xa_pdata), GFP_KERNEL); + if (!xa_pdata) + return -ENOMEM; + + xa_pdata->port = port; + + port_funcs->cfg_lock(cn_port); + + if (!cn_port->set_app_params) { + dev_dbg(hdev->dev, + "Failed to allocate encapsulation ID, set_app_params wasn't called yet, port %d\n", + port); + rc = -EPERM; + goto cfg_unlock; + } + + id_limit = XA_LIMIT(min_id, max_id); + rc = xa_alloc(&cn_port->encap_ids, &id, xa_pdata, id_limit, GFP_KERNEL); + if (rc) { + dev_dbg_ratelimited(hdev->dev, "Encapsulation ID allocation failed, port %d\n", + port); + goto cfg_unlock; + } + + xa_pdata->id = id; + port_funcs->cfg_unlock(cn_port); + + out->id = id; + + return 0; + +cfg_unlock: + port_funcs->cfg_unlock(cn_port); + kfree(xa_pdata); + + return rc; +} + +static int validate_encap_id_range(struct hbl_cn_port *cn_port, u32 encap_id) +{ + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_device *hdev; + u32 min_id, max_id; + + hdev = cn_port->hdev; + asic_funcs = hdev->asic_funcs; + + asic_funcs->port_funcs->get_encap_id_range(cn_port, &min_id, &max_id); + + if (encap_id < min_id || encap_id > max_id) { + dev_dbg_ratelimited(hdev->dev, "Invalid encapsulation ID, %d\n", encap_id); + return -EINVAL; + } + + return 0; +} + +static int validate_encap_ioctl(struct hbl_cn_port *cn_port, u32 encap_id) +{ + return validate_encap_id_range(cn_port, encap_id); +} + +static bool is_encap_supported(struct hbl_cn_device *hdev, struct hbl_cni_user_encap_set_in *in) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + return asic_funcs->is_encap_supported(hdev, in); +} + +static int user_encap_set(struct hbl_cn_device *hdev, struct hbl_cni_user_encap_set_in *in) +{ + struct hbl_cn_encap_xarray_pdata *xa_pdata; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + u32 id, encap_type_data = 0; + void *encap_header = NULL; + int rc; + + /* Check if the user request for encap set is supported */ + if (!is_encap_supported(hdev, in)) + return -EOPNOTSUPP; + + rc = hbl_cn_cmd_port_check(hdev, in->port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[in->port]; + port_funcs = hdev->asic_funcs->port_funcs; + id = in->id; + + rc = validate_encap_ioctl(cn_port, id); + if (rc) + return rc; + + switch (in->encap_type) { + case HBL_CNI_ENCAP_OVER_IPV4: + encap_type_data = in->ip_proto; + break; + case HBL_CNI_ENCAP_OVER_UDP: + encap_type_data = in->udp_dst_port; + break; + case HBL_CNI_ENCAP_NONE: + /* No encapsulation/tunneling mode. Just set + * source IPv4 address and UDP protocol. + */ + encap_type_data = HBL_CN_IPV4_PROTOCOL_UDP; + break; + default: + dev_dbg_ratelimited(hdev->dev, "Invalid encapsulation type, %d\n", in->encap_type); + return -EINVAL; + } + + port_funcs->cfg_lock(cn_port); + + xa_pdata = xa_load(&cn_port->encap_ids, id); + if (!xa_pdata) { + dev_dbg_ratelimited(hdev->dev, "Encapsulation ID %d is not allocated\n", id); + rc = -EINVAL; + goto cfg_unlock; + } + + /* There could be a use case wherein the user allocates a encap ID and then calls encap_set + * with IPv4 encap. Now, without doing a unset, the user can call the encap_set with UDP + * encap or encap_none. In this case, we should be clearing the existing settings as well + * as freeing any allocated buffer. So, call unset API to clear the settings + */ + port_funcs->encap_unset(cn_port, id, xa_pdata); + + if (xa_pdata->encap_type != HBL_CNI_ENCAP_NONE) + kfree(xa_pdata->encap_header); + + if (in->encap_type != HBL_CNI_ENCAP_NONE) { + if (in->tnl_hdr_size > NIC_MAX_TNL_HDR_SIZE) { + dev_dbg_ratelimited(hdev->dev, "Invalid tunnel header size, %d\n", + in->tnl_hdr_size); + rc = -EINVAL; + goto cfg_unlock; + } + + /* Align encapsulation header to 32bit register fields. */ + encap_header = kzalloc(ALIGN(in->tnl_hdr_size, 4), GFP_KERNEL); + if (!encap_header) { + rc = -ENOMEM; + goto cfg_unlock; + } + + rc = copy_from_user(encap_header, u64_to_user_ptr(in->tnl_hdr_ptr), + in->tnl_hdr_size); + if (rc) { + dev_dbg_ratelimited(hdev->dev, + "Copy encapsulation header data failed, %d\n", rc); + rc = -EFAULT; + goto free_header; + } + + xa_pdata->encap_header = encap_header; + xa_pdata->encap_header_size = in->tnl_hdr_size; + } + + xa_pdata->encap_type = in->encap_type; + xa_pdata->encap_type_data = encap_type_data; + xa_pdata->src_ip = in->ipv4_addr; + xa_pdata->is_set = true; + + rc = port_funcs->encap_set(cn_port, id, xa_pdata); + if (rc) + goto free_header; + + port_funcs->cfg_unlock(cn_port); + + return 0; + +free_header: + if (in->encap_type != HBL_CNI_ENCAP_NONE) + kfree(encap_header); +cfg_unlock: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int user_encap_unset(struct hbl_cn_device *hdev, struct hbl_cni_user_encap_unset_in *in) +{ + struct hbl_cn_encap_xarray_pdata *xa_pdata; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + int rc; + u32 id; + + rc = hbl_cn_cmd_port_check(hdev, in->port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[in->port]; + port_funcs = hdev->asic_funcs->port_funcs; + id = in->id; + + rc = validate_encap_ioctl(cn_port, id); + if (rc) + return rc; + + port_funcs->cfg_lock(cn_port); + + xa_pdata = xa_load(&cn_port->encap_ids, id); + if (!xa_pdata) { + dev_dbg_ratelimited(hdev->dev, "Encapsulation ID %d is not allocated\n", id); + rc = -EINVAL; + goto out; + } + + if (xa_pdata->is_set) { + port_funcs->encap_unset(cn_port, id, xa_pdata); + + if (xa_pdata->encap_type != HBL_CNI_ENCAP_NONE) + kfree(xa_pdata->encap_header); + } + + xa_erase(&cn_port->encap_ids, id); + kfree(xa_pdata); + +out: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int user_ccq_set(struct hbl_cn_device *hdev, struct hbl_cni_user_ccq_set_in *in, + struct hbl_cni_user_ccq_set_out *out, struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_asic_port_funcs *port_funcs = hdev->asic_funcs->port_funcs; + u64 ccq_mmap_handle, ccq_device_addr, pi_mmap_handle, pi_device_addr; + struct hbl_cn_mem_data mem_data = {}; + struct hbl_cn_port *cn_port; + u32 port, ccqn; + int rc; + + rc = hbl_cn_cmd_port_check(hdev, in->port, NIC_PORT_CHECK_OPEN | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + port = in->port; + + if (!hdev->mmu_bypass) { + dev_dbg(hdev->dev, "Allocation of non physical dma-mem is not supported, port %d\n", + port); + return -EOPNOTSUPP; + } + + if (!is_power_of_2(in->num_of_entries)) { + dev_dbg(hdev->dev, "user CCQ buffer length must be at power of 2, port %d\n", + port); + return -EINVAL; + } + + if (in->num_of_entries > USER_CCQ_MAX_ENTRIES || + in->num_of_entries < USER_CCQ_MIN_ENTRIES) { + dev_dbg(hdev->dev, "CCQ buffer length invalid 0x%x, port %d\n", in->num_of_entries, + port); + return -EINVAL; + } + + cn_port = &hdev->cn_ports[port]; + + port_funcs->cfg_lock(cn_port); + + if (!cn_port->set_app_params) { + dev_dbg(hdev->dev, + "Failed to set CCQ handler, set_app_params wasn't called yet, port %d\n", + port); + rc = -EPERM; + goto cfg_unlock; + } + + if (cn_port->ccq_enable) { + dev_dbg(hdev->dev, "Failed setting CCQ handler - it is already set, port %d\n", + port); + rc = -EBUSY; + goto cfg_unlock; + } + + /* Allocate the queue memory buffer in host kernel */ + mem_data.mem_id = HBL_CN_DRV_MEM_HOST_DMA_COHERENT; + mem_data.size = in->num_of_entries * CC_CQE_SIZE; + rc = hbl_cn_mem_alloc(ctx, &mem_data); + if (rc) { + dev_err(hdev->dev, "CCQ memory buffer allocation failed, port %d\n", port); + goto cfg_unlock; + } + + ccq_mmap_handle = mem_data.handle; + ccq_device_addr = mem_data.addr; + + /* Allocate a producer-index (PI) buffer in host kernel */ + memset(&mem_data, 0, sizeof(mem_data)); + mem_data.mem_id = HBL_CN_DRV_MEM_HOST_DMA_COHERENT; + mem_data.size = PAGE_SIZE; + rc = hbl_cn_mem_alloc(ctx, &mem_data); + if (rc) { + dev_err(hdev->dev, "CCQ PI buffer allocation failed, port %d\n", port); + goto free_ccq; + } + + pi_mmap_handle = mem_data.handle; + pi_device_addr = mem_data.addr; + + port_funcs->user_ccq_set(cn_port, ccq_device_addr, pi_device_addr, in->num_of_entries, + &ccqn); + + rc = hbl_cn_eq_dispatcher_register_ccq(cn_port, ctx->asid, ccqn); + if (rc) { + dev_err(hdev->dev, "failed to register CCQ EQ handler, port %u, asid %u\n", port, + ctx->asid); + goto free_pi; + } + + cn_port->ccq_handle = ccq_mmap_handle; + cn_port->ccq_pi_handle = pi_mmap_handle; + + out->mem_handle = cn_port->ccq_handle; + out->pi_handle = cn_port->ccq_pi_handle; + out->id = ccqn; + + cn_port->ccq_enable = true; + + port_funcs->cfg_unlock(cn_port); + + return 0; + +free_pi: + hbl_cn_mem_destroy(hdev, pi_mmap_handle); +free_ccq: + hbl_cn_mem_destroy(hdev, ccq_mmap_handle); +cfg_unlock: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int __user_ccq_unset(struct hbl_cn_device *hdev, struct hbl_cn_ctx *ctx, u32 port) +{ + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + bool has_errors = false; + u32 ccqn; + int rc; + + cn_port = &hdev->cn_ports[port]; + + port_funcs = hdev->asic_funcs->port_funcs; + port_funcs->user_ccq_unset(cn_port, &ccqn); + + rc = hbl_cn_mem_destroy(hdev, cn_port->ccq_pi_handle); + if (rc) { + dev_err(hdev->dev, "Failed to free CCQ PI memory, port %d\n", port); + has_errors = true; + } + + rc = hbl_cn_mem_destroy(hdev, cn_port->ccq_handle); + if (rc) { + dev_err(hdev->dev, "Failed to free CCQ memory, port %d\n", port); + has_errors = true; + } + + rc = hbl_cn_eq_dispatcher_unregister_ccq(cn_port, ctx->asid, ccqn); + if (rc) { + dev_err(hdev->dev, "Failed to unregister CCQ EQ handler, port %u, asid %u\n", port, + ctx->asid); + has_errors = true; + } + + if (has_errors) + return -EIO; + + cn_port->ccq_enable = false; + + return 0; +} + +static int user_ccq_unset(struct hbl_cn_device *hdev, struct hbl_cni_user_ccq_unset_in *in, + struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_asic_port_funcs *port_funcs = hdev->asic_funcs->port_funcs; + struct hbl_cn_port *cn_port; + u32 port; + int rc; + + port = in->port; + + rc = hbl_cn_cmd_port_check(hdev, port, NIC_PORT_CHECK_ENABLE | NIC_PORT_PRINT_ON_ERR); + if (rc) + return rc; + + cn_port = &hdev->cn_ports[port]; + + port_funcs->cfg_lock(cn_port); + + if (!cn_port->ccq_enable) { + dev_dbg(hdev->dev, "Failed unsetting CCQ handler - it is already unset, port %u\n", + port); + rc = -ENXIO; + goto out; + } + + rc = __user_ccq_unset(hdev, ctx, in->port); +out: + port_funcs->cfg_unlock(cn_port); + + return rc; +} + +static int dump_qp(struct hbl_cn_device *hdev, struct hbl_cni_dump_qp_in *in) +{ + struct hbl_cn_qp_info qp_info = {}; + u32 buf_size; + char *buf; + int rc; + + buf_size = in->user_buf_size; + + if (!buf_size || buf_size > NIC_DUMP_QP_SZ) { + dev_err(hdev->dev, "Invalid buffer size %u\n", buf_size); + return -EINVAL; + } + + buf = kzalloc(buf_size, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + qp_info.port = in->port; + qp_info.qpn = in->qpn; + qp_info.req = in->req; + qp_info.full_print = true; + qp_info.force_read = true; + + rc = hdev->asic_funcs->qp_read(hdev, &qp_info, buf, buf_size); + if (rc) { + dev_err(hdev->dev, "Failed to read QP %u, port %u\n", in->qpn, in->port); + goto out; + } + + if (copy_to_user((void __user *)(uintptr_t)in->user_buf, buf, buf_size)) { + dev_err(hdev->dev, "copy to user failed in debug ioctl\n"); + rc = -EFAULT; + goto out; + } + +out: + kfree(buf); + return rc; +} + +static int __hbl_cn_control(struct hbl_cn_device *hdev, u32 op, void *input, void *output, + struct hbl_cn_ctx *ctx) +{ + int rc; + + if (!(hdev->ctrl_op_mask & BIT(op))) { + dev_dbg(hdev->dev, "CN control request %d is not supported on this device\n", op); + return -EOPNOTSUPP; + } + + switch (op) { + case HBL_CNI_OP_ALLOC_CONN: + rc = alloc_qp(hdev, ctx, input, output); + break; + case HBL_CNI_OP_SET_REQ_CONN_CTX: + rc = set_req_qp_ctx(hdev, input, output); + break; + case HBL_CNI_OP_SET_RES_CONN_CTX: + rc = set_res_qp_ctx(hdev, input); + break; + case HBL_CNI_OP_DESTROY_CONN: + rc = destroy_qp(hdev, input); + break; + case HBL_CNI_OP_USER_WQ_SET: + rc = user_wq_arr_set(hdev, input, output, ctx); + break; + case HBL_CNI_OP_USER_WQ_UNSET: + rc = user_wq_arr_unset(hdev, input, ctx); + break; + case HBL_CNI_OP_ALLOC_USER_CQ_ID: + rc = alloc_user_cq_id(hdev, input, output, ctx); + break; + case HBL_CNI_OP_SET_USER_APP_PARAMS: + rc = user_set_app_params(hdev, input, ctx); + break; + case HBL_CNI_OP_GET_USER_APP_PARAMS: + rc = user_get_app_params(hdev, input, output); + break; + case HBL_CNI_OP_EQ_POLL: + rc = eq_poll(hdev, ctx, input, output); + break; + case HBL_CNI_OP_ALLOC_USER_DB_FIFO: + rc = alloc_user_db_fifo(hdev, ctx, input, output); + break; + case HBL_CNI_OP_USER_DB_FIFO_SET: + rc = user_db_fifo_set(hdev, ctx, input, output); + break; + case HBL_CNI_OP_USER_DB_FIFO_UNSET: + rc = user_db_fifo_unset(hdev, input); + break; + case HBL_CNI_OP_USER_ENCAP_ALLOC: + rc = user_encap_alloc(hdev, input, output); + break; + case HBL_CNI_OP_USER_ENCAP_SET: + rc = user_encap_set(hdev, input); + break; + case HBL_CNI_OP_USER_ENCAP_UNSET: + rc = user_encap_unset(hdev, input); + break; + case HBL_CNI_OP_USER_CCQ_SET: + rc = user_ccq_set(hdev, input, output, ctx); + break; + case HBL_CNI_OP_USER_CCQ_UNSET: + rc = user_ccq_unset(hdev, input, ctx); + break; + case HBL_CNI_OP_USER_CQ_ID_SET: + rc = user_cq_id_set(hdev, input, output); + break; + case HBL_CNI_OP_USER_CQ_ID_UNSET: + rc = user_cq_id_unset(hdev, input); + break; + case HBL_CNI_OP_DUMP_QP: + rc = dump_qp(hdev, input); + break; + default: + /* we shouldn't get here as we check the opcode mask before */ + dev_dbg(hdev->dev, "Invalid CN control request %d\n", op); + return -EINVAL; + } + + return rc; +} + +static int hbl_cn_ib_cmd_ctrl(struct hbl_aux_dev *aux_dev, void *cn_ib_ctx, u32 op, void *input, + void *output) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(aux_dev); + struct hbl_cn_ctx *ctx = cn_ib_ctx; + int rc; + + mutex_lock(&ctx->lock); + + do + rc = __hbl_cn_control(hdev, op, input, output, ctx); + while (rc == -EAGAIN); + + mutex_unlock(&ctx->lock); + + return rc; +} + +static enum hbl_ib_mem_type mem_id_to_mem_type(enum hbl_cn_drv_mem_id id) +{ + switch (id) { + case HBL_CN_DRV_MEM_HOST_DMA_COHERENT: + return HBL_IB_MEM_HOST_DMA_COHERENT; + case HBL_CN_DRV_MEM_HOST_VIRTUAL: + return HBL_IB_MEM_HOST_VIRTUAL; + case HBL_CN_DRV_MEM_DEVICE: + return HBL_IB_MEM_DEVICE; + case HBL_CN_DRV_MEM_HOST_MAP_ONLY: + return HBL_IB_MEM_HOST_MAP_ONLY; + case HBL_CN_DRV_MEM_INVALID: + default: + return HBL_IB_MEM_INVALID; + } +} + +static int hbl_cn_ib_query_mem_handle(struct hbl_aux_dev *ib_aux_dev, u64 mem_handle, + struct hbl_ib_mem_info *info) +{ + struct hbl_cn_device *hdev = HBL_AUX2NIC(ib_aux_dev); + struct hbl_cn_mem_buf *buf; + u64 mem_type; + + mem_type = (mem_handle >> PAGE_SHIFT) & HBL_CN_MMAP_TYPE_MASK; + + memset(info, 0, sizeof(*info)); + info->mem_handle = mem_handle; + + switch (mem_type) { + case HBL_CN_MMAP_TYPE_BLOCK: + info->mtype = HBL_IB_MEM_HW_BLOCK; + if (!hbl_cn_get_hw_block_addr(hdev, mem_handle, &info->bus_addr, &info->size)) + return 0; + + dev_err(hdev->dev, "NIC: No hw block address for handle %#llx\n", mem_handle); + break; + case HBL_CN_MMAP_TYPE_CN_MEM: + buf = hbl_cn_mem_buf_get(hdev, mem_handle); + if (!buf) { + dev_err(hdev->dev, "NIC: No buffer for handle %#llx\n", mem_handle); + break; + } + + info->cpu_addr = buf->kernel_address; + info->bus_addr = buf->bus_address; + info->size = buf->mappable_size; + info->vmalloc = false; + info->mtype = mem_id_to_mem_type(buf->mem_id); + + hbl_cn_mem_buf_put(buf); + return 0; + default: + dev_err(hdev->dev, "NIC: Invalid handle %#llx\n", mem_handle); + break; + } + return -EINVAL; +} + +static void qps_destroy(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_port_funcs *port_funcs = hdev->asic_funcs->port_funcs; + struct hbl_cn_port *cn_port; + unsigned long qp_id = 0; + struct hbl_cn_qp *qp; + int i; + + /* destroy the QPs */ + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + /* protect against destroy_qp occurring in parallel */ + port_funcs->cfg_lock(cn_port); + + xa_for_each(&cn_port->qp_ids, qp_id, qp) { + if (IS_ERR_OR_NULL(qp)) + continue; + + hbl_cn_qp_do_release(qp); + } + + port_funcs->cfg_unlock(cn_port); + } + + /* wait for the workers to complete */ + qps_drain_async_work(hdev); + + /* Verify the lists are empty */ + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + port_funcs->cfg_lock(cn_port); + + xa_for_each(&cn_port->qp_ids, qp_id, qp) + dev_err_ratelimited(hdev->dev, "Port %d QP %ld is still alive\n", + cn_port->port, qp_id); + + port_funcs->cfg_unlock(cn_port); + } +} + +static void user_cqs_destroy(struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_device *hdev = ctx->hdev; + struct hbl_cn_properties *cn_props; + struct hbl_cn_user_cq *user_cq; + struct hbl_cn_port *cn_port; + unsigned long id; + int i; + + cn_props = &hdev->cn_props; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!cn_props->force_cq && !(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + xa_for_each(&cn_port->cq_ids, id, user_cq) { + if (user_cq->state == USER_CQ_STATE_ALLOC) + hbl_cn_user_cq_put(user_cq); + else if (user_cq->state == USER_CQ_STATE_SET) + user_cq_unset_locked(user_cq, true); + } + } +} + +static void wq_arrs_destroy(struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_wq_array_properties *wq_arr_props; + struct hbl_cn_device *hdev = ctx->hdev; + struct hbl_cn_port *cn_port; + u32 type; + int i; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + wq_arr_props = cn_port->wq_arr_props; + + for (type = 0; type < HBL_CNI_USER_WQ_TYPE_MAX; type++) { + if (wq_arr_props[type].enabled) + __user_wq_arr_unset(ctx, cn_port, type); + } + } +} + +static void ccqs_destroy(struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_device *hdev = ctx->hdev; + struct hbl_cn_port *cn_port; + int port; + + for (port = 0; port < hdev->cn_props.max_num_of_ports; port++) { + if (!(hdev->ports_mask & BIT(port))) + continue; + + cn_port = &hdev->cn_ports[port]; + if (cn_port->ccq_enable) + __user_ccq_unset(hdev, ctx, port); + } +} + +static void user_db_fifos_destroy(struct hbl_cn_ctx *ctx) +{ + struct hbl_cn_db_fifo_xarray_pdata *xa_pdata; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_port *cn_port; + struct hbl_cn_device *hdev; + unsigned long id; + int i; + + hdev = ctx->hdev; + port_funcs = hdev->asic_funcs->port_funcs; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + port_funcs->cfg_lock(cn_port); + + xa_for_each(&cn_port->db_fifo_ids, id, xa_pdata) + if (xa_pdata->asid == ctx->asid) + __user_db_fifo_unset(cn_port, xa_pdata); + + port_funcs->cfg_unlock(cn_port); + } +} + +static void encap_ids_destroy(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_port_funcs *port_funcs = hdev->asic_funcs->port_funcs; + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + struct hbl_cn_encap_xarray_pdata *xa_pdata; + struct hbl_cn_port *cn_port; + unsigned long encap_id; + int i; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + port_funcs->cfg_lock(cn_port); + + xa_for_each(&cn_port->encap_ids, encap_id, xa_pdata) { + asic_funcs->port_funcs->encap_unset(cn_port, encap_id, xa_pdata); + + if (xa_pdata->encap_type != HBL_CNI_ENCAP_NONE) + kfree(xa_pdata->encap_header); + + kfree(xa_pdata); + xa_erase(&cn_port->encap_ids, encap_id); + } + + port_funcs->cfg_unlock(cn_port); + } +} + +static void set_app_params_clear(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_port *cn_port; + u32 max_num_of_ports, port; + + asic_funcs = hdev->asic_funcs; + max_num_of_ports = hdev->cn_props.max_num_of_ports; + + asic_funcs->app_params_clear(hdev); + + for (port = 0; port < max_num_of_ports; port++) { + if (!(hdev->ports_mask & BIT(port))) + continue; + + cn_port = &hdev->cn_ports[port]; + cn_port->set_app_params = false; + } +} + +void hbl_cn_ctx_resources_destroy(struct hbl_cn_device *hdev, struct hbl_cn_ctx *ctx) +{ + qps_destroy(hdev); + user_cqs_destroy(ctx); + wq_arrs_destroy(ctx); + ccqs_destroy(ctx); + user_db_fifos_destroy(ctx); + encap_ids_destroy(hdev); + set_app_params_clear(hdev); +} + +int hbl_cn_alloc_ring(struct hbl_cn_device *hdev, struct hbl_cn_ring *ring, int elem_size, + int count) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + int rc; + + ring->count = count; + ring->elem_size = elem_size; + ring->asid = hdev->kernel_asid; + + RING_BUF_SIZE(ring) = elem_size * count; + RING_BUF_ADDRESS(ring) = hbl_cn_dma_alloc_coherent(hdev, RING_BUF_SIZE(ring), + &RING_BUF_DMA_ADDRESS(ring), GFP_KERNEL); + if (!RING_BUF_ADDRESS(ring)) + return -ENOMEM; + + /* ring's idx_ptr shall point on pi/ci address */ + RING_PI_SIZE(ring) = sizeof(u64); + RING_PI_ADDRESS(ring) = hbl_cn_dma_pool_zalloc(hdev, RING_PI_SIZE(ring), + GFP_KERNEL | __GFP_ZERO, + &RING_PI_DMA_ADDRESS(ring)); + if (!RING_PI_ADDRESS(ring)) { + rc = -ENOMEM; + goto pi_alloc_fail; + } + + return 0; + +pi_alloc_fail: + asic_funcs->dma_free_coherent(hdev, RING_BUF_SIZE(ring), RING_BUF_ADDRESS(ring), + RING_BUF_DMA_ADDRESS(ring)); + + return rc; +} + +void hbl_cn_free_ring(struct hbl_cn_device *hdev, struct hbl_cn_ring *ring) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + asic_funcs->dma_pool_free(hdev, RING_PI_ADDRESS(ring), RING_PI_DMA_ADDRESS(ring)); + + asic_funcs->dma_free_coherent(hdev, RING_BUF_SIZE(ring), RING_BUF_ADDRESS(ring), + RING_BUF_DMA_ADDRESS(ring)); +} + +static void hbl_cn_randomize_status_cnts(struct hbl_cn_port *cn_port, + struct hbl_cn_cpucp_status *status) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + u32 port = cn_port->port; + + RAND_STAT_CNT(status->high_ber_reinit); + RAND_STAT_CNT(status->correctable_err_cnt); + RAND_STAT_CNT(status->uncorrectable_err_cnt); + RAND_STAT_CNT(status->bad_format_cnt); + RAND_STAT_CNT(status->responder_out_of_sequence_psn_cnt); +} + +static void hbl_cn_get_status(struct hbl_cn_port *cn_port, struct hbl_cn_cpucp_status *status) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + u32 port = cn_port->port; + + /* Port toggle counter should always be filled regardless of the logical state of the + * port. + */ + status->port_toggle_cnt = hbl_cn_get_port_toggle_cnt(cn_port); + + status->port = port; + status->up = hbl_cn_is_port_open(cn_port); + + if (!status->up) + return; + + status->pcs_link = cn_port->pcs_link; + status->phy_ready = cn_port->phy_fw_tuned; + status->auto_neg = cn_port->auto_neg_enable; + + if (hdev->rand_status) { + hbl_cn_randomize_status_cnts(cn_port, status); + return; + } + + status->high_ber_reinit = cn_port->pcs_remote_fault_reconfig_cnt; + + /* Each ASIC will fill the rest of the statistics */ + hdev->asic_funcs->port_funcs->get_status(cn_port, status); +} + +static void hbl_cn_convert_cpucp_status(struct cpucp_nic_status *to, + struct hbl_cn_cpucp_status *from) +{ + to->port = cpu_to_le32(from->port); + to->bad_format_cnt = cpu_to_le32(from->bad_format_cnt); + to->responder_out_of_sequence_psn_cnt = + cpu_to_le32(from->responder_out_of_sequence_psn_cnt); + to->high_ber_reinit = cpu_to_le32(from->high_ber_reinit); + to->correctable_err_cnt = cpu_to_le32(from->correctable_err_cnt); + to->uncorrectable_err_cnt = cpu_to_le32(from->uncorrectable_err_cnt); + to->retraining_cnt = cpu_to_le32(from->retraining_cnt); + to->up = from->up; + to->pcs_link = from->pcs_link; + to->phy_ready = from->phy_ready; + to->auto_neg = from->auto_neg; + to->timeout_retransmission_cnt = cpu_to_le32(from->timeout_retransmission_cnt); + to->high_ber_cnt = cpu_to_le32(from->high_ber_cnt); + to->pre_fec_ser.integer = cpu_to_le16(from->pre_fec_ser.integer); + to->pre_fec_ser.exp = cpu_to_le16(from->pre_fec_ser.exp); + to->post_fec_ser.integer = cpu_to_le16(from->post_fec_ser.integer); + to->post_fec_ser.exp = cpu_to_le16(from->post_fec_ser.exp); + to->bandwidth.integer = cpu_to_le16(from->bandwidth.integer); + to->bandwidth.frac = cpu_to_le16(from->bandwidth.frac); + to->lat.integer = cpu_to_le16(from->lat.integer); + to->lat.frac = cpu_to_le16(from->lat.frac); + to->port_toggle_cnt = cpu_to_le32(from->port_toggle_cnt); +} + +static int hbl_cn_send_cpucp_status(struct hbl_cn_device *hdev, u32 port, + struct hbl_cn_cpucp_status *cn_status) +{ + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_asic_funcs *asic_funcs; + struct cpucp_nic_status_packet *pkt; + struct cpucp_nic_status status = {}; + struct hbl_cn_properties *cn_props; + size_t total_pkt_size, data_size; + struct hbl_cn_port *cn_port; + u64 result; + int rc; + + cn_props = &hdev->cn_props; + data_size = cn_props->status_packet_size; + asic_funcs = hdev->asic_funcs; + port_funcs = asic_funcs->port_funcs; + cn_port = &hdev->cn_ports[port]; + + total_pkt_size = sizeof(struct cpucp_nic_status_packet) + data_size; + + /* data should be aligned to 8 bytes in order to CPU-CP to copy it */ + total_pkt_size = (total_pkt_size + 0x7) & ~0x7; + + /* total_pkt_size is casted to u16 later on */ + if (total_pkt_size > USHRT_MAX) { + dev_err(hdev->dev, "NIC status data is too big\n"); + rc = -EINVAL; + goto out; + } + + pkt = kzalloc(total_pkt_size, GFP_KERNEL); + if (!pkt) { + rc = -ENOMEM; + goto out; + } + + hbl_cn_convert_cpucp_status(&status, cn_status); + + pkt->length = cpu_to_le32(data_size / sizeof(u32)); + memcpy(&pkt->data, &status, data_size); + + pkt->cpucp_pkt.ctl = cpu_to_le32(CPUCP_PACKET_NIC_STATUS << CPUCP_PKT_CTL_OPCODE_SHIFT); + + rc = asic_funcs->send_cpu_message(hdev, (u32 *)pkt, total_pkt_size, 0, &result); + if (rc) + dev_err(hdev->dev, "failed to send NIC status, port %d\n", port); + + kfree(pkt); +out: + port_funcs->post_send_status(cn_port); + + return rc; +} + +void hbl_cn_fw_status_work(struct work_struct *work) +{ + struct hbl_cn_port *cn_port = container_of(work, struct hbl_cn_port, fw_status_work.work); + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_cpucp_status status = {}; + u32 port = cn_port->port; + int rc; + + hbl_cn_get_status(cn_port, &status); + + rc = hbl_cn_send_cpucp_status(hdev, port, &status); + if (rc) + return; + + if (hdev->status_cmd == HBL_CN_STATUS_PERIODIC_START) + queue_delayed_work(cn_port->wq, &cn_port->fw_status_work, + msecs_to_jiffies(hdev->status_period * 1000)); +} + +static void cn_port_sw_fini(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_asic_funcs *asic_funcs = cn_port->hdev->asic_funcs; + + if (!cn_port->sw_initialized) + return; + + cn_port->sw_initialized = false; + + asic_funcs->port_funcs->port_sw_fini(cn_port); + + xa_destroy(&cn_port->cq_ids); + xa_destroy(&cn_port->encap_ids); + xa_destroy(&cn_port->db_fifo_ids); + xa_destroy(&cn_port->qp_ids); + + mutex_destroy(&cn_port->cnt_lock); + mutex_destroy(&cn_port->control_lock); + + kfree(cn_port->reset_tracker); + + destroy_workqueue(cn_port->qp_wq); + destroy_workqueue(cn_port->wq); +} + +static void cn_wq_arr_props_init(struct hbl_cn_wq_array_properties *wq_arr_props) +{ + wq_arr_props[HBL_CNI_USER_WQ_SEND].type_str = "send"; + wq_arr_props[HBL_CNI_USER_WQ_SEND].is_send = true; + + wq_arr_props[HBL_CNI_USER_WQ_RECV].type_str = "recv"; + wq_arr_props[HBL_CNI_USER_WQ_RECV].is_send = false; +} + +static int cn_port_sw_init(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_wq_array_properties *wq_arr_props; + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_reset_tracker *reset_tracker; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_asic_funcs *asic_funcs; + u32 port, max_qp_error_syndromes; + char wq_name[32] = {0}; + int rc; + + port = cn_port->port; + asic_funcs = hdev->asic_funcs; + port_funcs = asic_funcs->port_funcs; + wq_arr_props = cn_port->wq_arr_props; + reset_tracker = NULL; + + snprintf(wq_name, sizeof(wq_name) - 1, "hbl%u-cn%d-wq", hdev->id, port); + cn_port->wq = alloc_workqueue(wq_name, 0, 0); + if (!cn_port->wq) { + dev_err(hdev->dev, "Failed to create WQ, port: %d\n", port); + return -ENOMEM; + } + + snprintf(wq_name, sizeof(wq_name) - 1, "hbl%u-cn%d-qp-wq", hdev->id, port); + cn_port->qp_wq = alloc_workqueue(wq_name, WQ_UNBOUND, 0); + if (!cn_port->qp_wq) { + dev_err(hdev->dev, "Failed to create QP WQ, port: %d\n", port); + rc = -ENOMEM; + goto qp_wq_err; + } + + max_qp_error_syndromes = hdev->cn_props.max_qp_error_syndromes; + if (max_qp_error_syndromes) { + reset_tracker = kcalloc(max_qp_error_syndromes, sizeof(*reset_tracker), GFP_KERNEL); + if (!reset_tracker) { + rc = -ENOMEM; + goto reset_tracker_err; + } + + cn_port->reset_tracker = reset_tracker; + } + + mutex_init(&cn_port->control_lock); + mutex_init(&cn_port->cnt_lock); + + xa_init_flags(&cn_port->qp_ids, XA_FLAGS_ALLOC); + xa_init_flags(&cn_port->db_fifo_ids, XA_FLAGS_ALLOC); + xa_init_flags(&cn_port->encap_ids, XA_FLAGS_ALLOC); + xa_init_flags(&cn_port->cq_ids, XA_FLAGS_ALLOC); + + INIT_DELAYED_WORK(&cn_port->link_status_work, port_funcs->phy_link_status_work); + + cn_port->speed = asic_funcs->get_default_port_speed(hdev); + cn_port->pfc_enable = true; + cn_port->pflags = PFLAGS_PCS_LINK_CHECK | PFLAGS_PHY_AUTO_NEG_LPBK; + + cn_wq_arr_props_init(wq_arr_props); + + rc = port_funcs->port_sw_init(cn_port); + if (rc) + goto sw_init_err; + + cn_port->sw_initialized = true; + + return 0; + +sw_init_err: + xa_destroy(&cn_port->cq_ids); + xa_destroy(&cn_port->encap_ids); + xa_destroy(&cn_port->db_fifo_ids); + xa_destroy(&cn_port->qp_ids); + + mutex_destroy(&cn_port->cnt_lock); + mutex_destroy(&cn_port->control_lock); + + if (max_qp_error_syndromes) + kfree(reset_tracker); +reset_tracker_err: + destroy_workqueue(cn_port->qp_wq); +qp_wq_err: + destroy_workqueue(cn_port->wq); + + return rc; +} + +static int cn_macro_sw_init(struct hbl_cn_macro *cn_macro) +{ + struct hbl_cn_asic_funcs *asic_funcs; + + asic_funcs = cn_macro->hdev->asic_funcs; + + return asic_funcs->macro_sw_init(cn_macro); +} + +static void cn_macro_sw_fini(struct hbl_cn_macro *cn_macro) +{ + struct hbl_cn_asic_funcs *asic_funcs; + + asic_funcs = cn_macro->hdev->asic_funcs; + + asic_funcs->macro_sw_fini(cn_macro); +} + +static void hbl_cn_sw_fini(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + int i; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) + cn_port_sw_fini(&hdev->cn_ports[i]); + + for (i = 0; i < hdev->cn_props.num_of_macros; i++) + cn_macro_sw_fini(&hdev->cn_macros[i]); + + asic_funcs->sw_fini(hdev); + + kfree(hdev->ib_aux_dev.aux_data); + kfree(hdev->ib_aux_dev.aux_ops); + kfree(hdev->en_aux_dev.aux_data); + kfree(hdev->en_aux_dev.aux_ops); + kfree(hdev->mac_lane_remap); + kfree(hdev->phy_ber_info); + kfree(hdev->phy_tx_taps); + kfree(hdev->cn_macros); + kfree(hdev->cn_ports); +} + +static int hbl_cn_sw_init(struct hbl_cn_device *hdev) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + struct hbl_cn_macro *cn_macro, *cn_macros; + int rc, i, macro_cnt = 0, port_cnt = 0; + struct hbl_cn_port *cn_port, *cn_ports; + struct hbl_en_aux_data *en_aux_data; + struct hbl_ib_aux_data *ib_aux_data; + struct hbl_en_aux_ops *en_aux_ops; + struct hbl_ib_aux_ops *ib_aux_ops; + struct hbl_cn_ber_info *ber_info; + struct hbl_cn_tx_taps *tx_taps; + u32 *mac_lane_remap; + + asic_funcs->pre_sw_init(hdev); + + /* Allocate per port common structure array */ + cn_ports = kcalloc(hdev->cn_props.max_num_of_ports, sizeof(*cn_ports), GFP_KERNEL); + if (!cn_ports) + return -ENOMEM; + + /* Allocate per macro common structure array */ + cn_macros = kcalloc(hdev->cn_props.num_of_macros, sizeof(*cn_macros), GFP_KERNEL); + if (!cn_macros) { + rc = -ENOMEM; + goto macro_alloc_fail; + } + + tx_taps = kcalloc(hdev->cn_props.max_num_of_lanes, sizeof(*tx_taps), GFP_KERNEL); + if (!tx_taps) { + rc = -ENOMEM; + goto taps_alloc_fail; + } + + ber_info = kcalloc(hdev->cn_props.max_num_of_lanes, sizeof(*ber_info), GFP_KERNEL); + if (!ber_info) { + rc = -ENOMEM; + goto ber_info_alloc_fail; + } + + mac_lane_remap = kcalloc(hdev->cn_props.num_of_macros, sizeof(*mac_lane_remap), + GFP_KERNEL); + if (!mac_lane_remap) { + rc = -ENOMEM; + goto mac_remap_alloc_fail; + } + + en_aux_data = kzalloc(sizeof(*en_aux_data), GFP_KERNEL); + if (!en_aux_data) { + rc = -ENOMEM; + goto en_aux_data_alloc_fail; + } + + en_aux_ops = kzalloc(sizeof(*en_aux_ops), GFP_KERNEL); + if (!en_aux_ops) { + rc = -ENOMEM; + goto en_aux_ops_alloc_fail; + } + + ib_aux_data = kzalloc(sizeof(*ib_aux_data), GFP_KERNEL); + if (!ib_aux_data) { + rc = -ENOMEM; + goto ib_aux_data_alloc_fail; + } + + ib_aux_ops = kzalloc(sizeof(*ib_aux_ops), GFP_KERNEL); + if (!ib_aux_ops) { + rc = -ENOMEM; + goto ib_aux_ops_alloc_fail; + } + + hdev->en_aux_dev.aux_data = en_aux_data; + hdev->en_aux_dev.aux_ops = en_aux_ops; + hdev->ib_aux_dev.aux_data = ib_aux_data; + hdev->ib_aux_dev.aux_ops = ib_aux_ops; + + hdev->phy_tx_taps = tx_taps; + hdev->phy_ber_info = ber_info; + hdev->mac_lane_remap = mac_lane_remap; + hdev->phy_config_fw = !hdev->pldm && !hdev->skip_phy_init; + hdev->mmu_bypass = true; + hdev->phy_calc_ber_wait_sec = 30; + + rc = asic_funcs->sw_init(hdev); + if (rc) { + dev_err(hdev->dev, "ASIC SW init failed\n"); + goto sw_init_fail; + } + + hdev->cn_ports = cn_ports; + hdev->cn_macros = cn_macros; + for (i = 0; i < hdev->cn_props.num_of_macros; i++, macro_cnt++) { + cn_macro = &hdev->cn_macros[i]; + + cn_macro->hdev = hdev; + cn_macro->idx = i; + + rc = cn_macro_sw_init(cn_macro); + if (rc) { + dev_err(hdev->dev, "Macro %d SW init failed\n", i); + goto macro_init_fail; + } + } + + /* At this stage, we don't know how many ports we have, so we must + * allocate for the maximum number of ports (and also free all of them + * in sw_fini) + */ + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++, port_cnt++) { + cn_port = &hdev->cn_ports[i]; + cn_port->hdev = hdev; + cn_port->port = i; + atomic_set(&cn_port->num_of_allocated_qps, 0); + rc = cn_port_sw_init(cn_port); + if (rc) { + dev_err(hdev->dev, "S/W init failed, port %d\n", i); + goto port_init_fail; + } + } + + return 0; + +port_init_fail: + for (i = 0; i < port_cnt; i++) + cn_port_sw_fini(&hdev->cn_ports[i]); + +macro_init_fail: + for (i = 0; i < macro_cnt; i++) + cn_macro_sw_fini(&hdev->cn_macros[i]); + + asic_funcs->sw_fini(hdev); +sw_init_fail: + kfree(ib_aux_ops); +ib_aux_ops_alloc_fail: + kfree(ib_aux_data); +ib_aux_data_alloc_fail: + kfree(en_aux_ops); +en_aux_ops_alloc_fail: + kfree(en_aux_data); +en_aux_data_alloc_fail: + kfree(mac_lane_remap); +mac_remap_alloc_fail: + kfree(ber_info); +ber_info_alloc_fail: + kfree(tx_taps); +taps_alloc_fail: + kfree(cn_macros); +macro_alloc_fail: + kfree(cn_ports); + + return rc; +} + +static void hbl_cn_late_init(struct hbl_cn_device *hdev) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + /* compute2cn */ + aux_ops->ports_reopen = hbl_cn_ports_reopen; + aux_ops->ports_stop_prepare = hbl_cn_hard_reset_prepare; + aux_ops->ports_stop = hbl_cn_stop; + aux_ops->synchronize_irqs = hbl_cn_synchronize_irqs; + + hdev->asic_funcs->late_init(hdev); +} + +static void hbl_cn_late_fini(struct hbl_cn_device *hdev) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + /* compute2cn */ + aux_ops->ports_reopen = NULL; + aux_ops->ports_stop_prepare = NULL; + aux_ops->ports_stop = NULL; + aux_ops->synchronize_irqs = NULL; + + hdev->asic_funcs->late_fini(hdev); +} + +bool hbl_cn_is_port_open(struct hbl_cn_port *cn_port) +{ + struct hbl_aux_dev *aux_dev = &cn_port->hdev->en_aux_dev; + struct hbl_en_aux_ops *aux_ops = aux_dev->aux_ops; + u32 port = cn_port->port; + + if (cn_port->eth_enable && aux_ops->is_port_open) + return aux_ops->is_port_open(aux_dev, port); + + return cn_port->port_open; +} + +u32 hbl_cn_get_pflags(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_en_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + u32 port = cn_port->port; + + aux_dev = &hdev->en_aux_dev; + aux_ops = aux_dev->aux_ops; + + if (cn_port->eth_enable && aux_ops->get_pflags) + return aux_ops->get_pflags(aux_dev, port); + + return cn_port->pflags; +} + +u8 hbl_cn_get_num_of_digits(u64 num) +{ + u8 n_digits = 0; + + while (num) { + n_digits++; + num /= 10; + } + + return n_digits; +} + +static void hbl_cn_spmu_init(struct hbl_cn_port *cn_port, bool full) +{ + u32 spmu_events[NIC_SPMU_STATS_LEN_MAX], num_event_types, port = cn_port->port; + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_stat *event_types; + int rc, i; + + if (!hdev->supports_coresight) + return; + + port_funcs = hdev->asic_funcs->port_funcs; + + port_funcs->spmu_get_stats_info(cn_port, &event_types, &num_event_types); + num_event_types = min_t(u32, num_event_types, NIC_SPMU_STATS_LEN_MAX); + + for (i = 0; i < num_event_types; i++) + spmu_events[i] = event_types[i].lo_offset; + + if (full) { + rc = port_funcs->spmu_config(cn_port, num_event_types, spmu_events, false); + if (rc) + dev_err(hdev->dev, "Failed to disable spmu for port %d\n", port); + } + + rc = port_funcs->spmu_config(cn_port, num_event_types, spmu_events, true); + if (rc) + dev_err(hdev->dev, "Failed to enable spmu for port %d\n", port); +} + +static void hbl_cn_reset_stats_counters_port(struct hbl_cn_device *hdev, u32 port) +{ + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_en_aux_ops *aux_ops; + struct hbl_cn_port *cn_port; + struct hbl_aux_dev *aux_dev; + + cn_port = &hdev->cn_ports[port]; + aux_dev = &hdev->en_aux_dev; + aux_ops = aux_dev->aux_ops; + port_funcs = hdev->asic_funcs->port_funcs; + + /* Ethernet */ + if (cn_port->eth_enable && aux_ops->reset_stats) + aux_ops->reset_stats(aux_dev, port); + + /* MAC */ + port_funcs->reset_mac_stats(cn_port); + + /* SPMU */ + hbl_cn_spmu_init(cn_port, true); + + /* XPCS91 */ + cn_port->correctable_errors_cnt = 0; + cn_port->uncorrectable_errors_cnt = 0; + + /* PCS */ + cn_port->pcs_local_fault_cnt = 0; + cn_port->pcs_remote_fault_cnt = 0; + cn_port->pcs_remote_fault_reconfig_cnt = 0; + cn_port->pcs_link_restore_cnt = 0; + + /* Congestion Queue */ + cn_port->cong_q_err_cnt = 0; +} + +void hbl_cn_reset_stats_counters(struct hbl_cn_device *hdev) +{ + struct hbl_cn_port *cn_port; + u32 port; + int i; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + if (!hbl_cn_is_port_open(cn_port)) + continue; + + port = cn_port->port; + + hbl_cn_reset_stats_counters_port(hdev, port); + } +} + +void hbl_cn_reset_ports_toggle_counters(struct hbl_cn_device *hdev) +{ + struct hbl_cn_port *cn_port; + int i; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + cn_port->port_toggle_cnt = 0; + cn_port->port_toggle_cnt_prev = 0; + } +} + +/* The following implements the events dispatcher + * Each application registering with the device is assigned a unique ASID + * by the driver, it is also being associated with a SW-EQ by the dispatcher + * (The Eth driver is handled by the kernel associated with ASID 0). + * during the lifetime of the app/ASID, each resource allocated to it + * that can generate events (such as QP and CQ) is being associated by the + * dispatcher the appropriate ASID. + * During the course of work of the NIC, the HW EQ is accessed + * (by poling or interrupt), and for each event found in it + * - The resource ID which generated the event is retrieved from it (CQ# or QP#) + * - The ASID it retrieved from the ASID-resource association lists, + * - The event is inserted to the ASID-specific SW-EQ to be retrieved later on + * by the app. An exception is the Eth driver which as for today is tightly + * coupled with the EQ so the dispatcher calls the Eth event handling routine + * (if registered) immediately after dispatching the events to the SW-EQs. + * Note: The Link events which are always handled by the Eth driver (ASID 0). + */ + +struct hbl_cn_ev_dq *hbl_cn_cqn_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 cqn, + struct hbl_cn_device *hdev) +{ + struct hbl_cn_properties *cn_prop = &hdev->cn_props; + struct hbl_cn_ev_dq *dq; + + if (cqn >= cn_prop->max_cqs) + return NULL; + + dq = ev_dqs->cq_dq[cqn]; + if (!dq || !dq->associated) + return NULL; + + return dq; +} + +struct hbl_cn_ev_dq *hbl_cn_ccqn_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 ccqn, + struct hbl_cn_device *hdev) +{ + struct hbl_cn_properties *cn_prop = &hdev->cn_props; + struct hbl_cn_ev_dq *dq; + + if (ccqn >= cn_prop->max_ccqs) + return NULL; + + dq = ev_dqs->ccq_dq[ccqn]; + if (!dq || !dq->associated) + return NULL; + + return dq; +} + +struct hbl_cn_dq_qp_info *hbl_cn_get_qp_info(struct hbl_cn_ev_dqs *ev_dqs, u32 qpn) +{ + struct hbl_cn_dq_qp_info *qp_info = NULL; + + hash_for_each_possible(ev_dqs->qps, qp_info, node, qpn) + if (qpn == qp_info->qpn) + return qp_info; + + return NULL; +} + +struct hbl_cn_ev_dq *hbl_cn_qpn_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 qpn) +{ + struct hbl_cn_dq_qp_info *qp_info = hbl_cn_get_qp_info(ev_dqs, qpn); + + if (qp_info) + return qp_info->dq; + + return NULL; +} + +struct hbl_cn_ev_dq *hbl_cn_dbn_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 dbn, + struct hbl_cn_device *hdev) +{ + struct hbl_cn_properties *cn_prop = &hdev->cn_props; + struct hbl_cn_ev_dq *dq; + + if (dbn >= cn_prop->max_db_fifos) + return NULL; + + dq = ev_dqs->db_dq[dbn]; + if (!dq || !dq->associated) + return NULL; + + return dq; +} + +struct hbl_cn_ev_dq *hbl_cn_asid_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 asid) +{ + struct hbl_cn_ev_dq *dq; + int i; + + for (i = 0; i < NIC_NUM_CONCUR_ASIDS; i++) { + dq = &ev_dqs->edq[i]; + if (dq->associated && dq->asid == asid) + return dq; + } + + return NULL; +} + +static void hbl_cn_dq_reset(struct hbl_cn_ev_dq *dq) +{ + struct hbl_cn_eq_raw_buf *buf = &dq->buf; + + dq->overflow = 0; + buf->tail = 0; + buf->head = buf->tail; + buf->events_count = 0; + memset(buf->events, 0, sizeof(buf->events)); +} + +bool hbl_cn_eq_dispatcher_is_empty(struct hbl_cn_ev_dq *dq) +{ + return (dq->buf.events_count == 0); +} + +bool hbl_cn_eq_dispatcher_is_full(struct hbl_cn_ev_dq *dq) +{ + return (dq->buf.events_count == (NIC_EQ_INFO_BUF_SIZE - 1)); +} + +void hbl_cn_eq_dispatcher_init(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + int i; + + hash_init(ev_dqs->qps); + mutex_init(&ev_dqs->lock); + + hbl_cn_dq_reset(&ev_dqs->default_edq); + + for (i = 0; i < NIC_NUM_CONCUR_ASIDS; i++) + hbl_cn_dq_reset(&ev_dqs->edq[i]); + + for (i = 0; i < NIC_DRV_MAX_CQS_NUM; i++) + ev_dqs->cq_dq[i] = NULL; + + for (i = 0; i < NIC_DRV_NUM_DB_FIFOS; i++) + ev_dqs->db_dq[i] = NULL; +} + +void hbl_cn_eq_dispatcher_fini(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_ev_dqs *edqs = ev_dqs; + struct hbl_cn_dq_qp_info *qp_info; + u32 port = cn_port->port; + struct hlist_node *tmp; + int i; + + if (!hash_empty(edqs->qps)) + dev_err(hdev->dev, "port %d dispatcher is closed while there are QPs in use\n", + port); + + hash_for_each_safe(edqs->qps, i, tmp, qp_info, node) { + dev_err_ratelimited(hdev->dev, "port %d QP %d was not destroyed\n", port, + qp_info->qpn); + hash_del(&qp_info->node); + kfree(qp_info); + } + + mutex_destroy(&ev_dqs->lock); +} + +void hbl_cn_eq_dispatcher_reset(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_ev_dqs *edqs = ev_dqs; + int i; + + mutex_lock(&edqs->lock); + + hbl_cn_dq_reset(&edqs->default_edq); + + for (i = 0; i < NIC_NUM_CONCUR_ASIDS; i++) + hbl_cn_dq_reset(&edqs->edq[i]); + + mutex_unlock(&edqs->lock); +} + +int hbl_cn_eq_dispatcher_associate_dq(struct hbl_cn_port *cn_port, u32 asid) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_ev_dq *dq; + int i, rc = -ENOSPC; + + mutex_lock(&ev_dqs->lock); + + dq = hbl_cn_asid_to_dq(ev_dqs, asid); + if (dq) { + rc = 0; + goto exit; + } + + for (i = 0; i < NIC_NUM_CONCUR_ASIDS; i++) { + dq = &ev_dqs->edq[i]; + if (!dq->associated) { + dq->associated = true; + dq->asid = asid; + rc = 0; + break; + } + } + +exit: + mutex_unlock(&ev_dqs->lock); + + return rc; +} + +int hbl_cn_eq_dispatcher_dissociate_dq(struct hbl_cn_port *cn_port, u32 asid) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_ev_dq *dq; + + mutex_lock(&ev_dqs->lock); + + dq = hbl_cn_asid_to_dq(ev_dqs, asid); + if (!dq) + goto exit; + + hbl_cn_dq_reset(dq); + dq->associated = false; + dq->asid = U32_MAX; + +exit: + mutex_unlock(&ev_dqs->lock); + + return 0; +} + +int hbl_cn_eq_dispatcher_register_qp(struct hbl_cn_port *cn_port, u32 asid, u32 qp_id) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_dq_qp_info *qp_info; + struct hbl_cn_ev_dq *dq; + int rc = 0; + + mutex_lock(&ev_dqs->lock); + + /* check if such qp is already registered and if with the same asid */ + dq = hbl_cn_qpn_to_dq(ev_dqs, qp_id); + if (dq) { + if (dq->asid != asid) + rc = -EINVAL; + + goto exit; + } + + /* find the dq associated with the given asid */ + dq = hbl_cn_asid_to_dq(ev_dqs, asid); + if (!dq) { + rc = -ENODATA; + goto exit; + } + + /* register the QP */ + qp_info = kmalloc(sizeof(*qp_info), GFP_KERNEL); + if (!qp_info) { + rc = -ENOMEM; + goto exit; + } + + qp_info->dq = dq; + qp_info->qpn = qp_id; + hash_add(ev_dqs->qps, &qp_info->node, qp_id); + +exit: + mutex_unlock(&ev_dqs->lock); + + return rc; +} + +int hbl_cn_eq_dispatcher_unregister_qp(struct hbl_cn_port *cn_port, u32 qp_id) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_dq_qp_info *qp_info; + + mutex_lock(&ev_dqs->lock); + + qp_info = hbl_cn_get_qp_info(ev_dqs, qp_id); + if (qp_info) { + hash_del(&qp_info->node); + kfree(qp_info); + } + + mutex_unlock(&ev_dqs->lock); + + return 0; +} + +int hbl_cn_eq_dispatcher_register_cq(struct hbl_cn_port *cn_port, u32 asid, u32 cqn) +{ + struct hbl_cn_properties *cn_prop = &cn_port->hdev->cn_props; + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_ev_dq *dq; + int rc = 0; + + if (cqn >= cn_prop->max_cqs) + return -EINVAL; + + mutex_lock(&ev_dqs->lock); + + /* check if such qp is already registered and if with the same + * asid + */ + dq = ev_dqs->cq_dq[cqn]; + if (dq) { + if (dq->asid != asid) + rc = -EINVAL; + + goto exit; + } + + /* find the dq associated with the given asid */ + dq = hbl_cn_asid_to_dq(ev_dqs, asid); + if (!dq) { + rc = -ENODATA; + goto exit; + } + + ev_dqs->cq_dq[cqn] = dq; + +exit: + mutex_unlock(&ev_dqs->lock); + + return rc; +} + +int hbl_cn_eq_dispatcher_unregister_cq(struct hbl_cn_port *cn_port, u32 cqn) +{ + struct hbl_cn_properties *cn_prop = &cn_port->hdev->cn_props; + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + + if (cqn >= cn_prop->max_cqs) + return -EINVAL; + + mutex_lock(&ev_dqs->lock); + + ev_dqs->cq_dq[cqn] = NULL; + + mutex_unlock(&ev_dqs->lock); + + return 0; +} + +int hbl_cn_eq_dispatcher_register_ccq(struct hbl_cn_port *cn_port, u32 asid, u32 ccqn) +{ + struct hbl_cn_properties *cn_prop = &cn_port->hdev->cn_props; + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_ev_dq *dq; + int rc = 0; + + if (ccqn >= cn_prop->max_ccqs) + return -EINVAL; + + mutex_lock(&ev_dqs->lock); + + /* check if such qp is already registered and if with the same asid */ + dq = ev_dqs->ccq_dq[ccqn]; + if (dq) { + rc = -EINVAL; + goto exit; + } + + /* find the dq associated with the given asid */ + dq = hbl_cn_asid_to_dq(ev_dqs, asid); + if (!dq) { + rc = -ENODATA; + goto exit; + } + + ev_dqs->ccq_dq[ccqn] = dq; + +exit: + mutex_unlock(&ev_dqs->lock); + return rc; +} + +int hbl_cn_eq_dispatcher_unregister_ccq(struct hbl_cn_port *cn_port, u32 asid, u32 ccqn) +{ + struct hbl_cn_properties *cn_prop = &cn_port->hdev->cn_props; + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + + if (ccqn >= cn_prop->max_ccqs) + return -EINVAL; + + if (!hbl_cn_asid_to_dq(ev_dqs, asid)) + return -ENODATA; + + mutex_lock(&ev_dqs->lock); + + ev_dqs->ccq_dq[ccqn] = NULL; + + mutex_unlock(&ev_dqs->lock); + + return 0; +} + +int hbl_cn_eq_dispatcher_register_db(struct hbl_cn_port *cn_port, u32 asid, u32 dbn) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_ev_dq *dq; + u32 min, max; + int rc = 0; + + cn_port->hdev->asic_funcs->port_funcs->get_db_fifo_hw_id_range(cn_port, &min, &max); + if (dbn < min || dbn > max) { + dev_err(cn_port->hdev->dev, + "Failed to register dbn %u to the dispatcher (valid range %u-%u)\n", dbn, + min, max); + return -EINVAL; + } + + mutex_lock(&ev_dqs->lock); + + /* check if doorbell is already registered and if so is it with the same + * asid + */ + dq = ev_dqs->db_dq[dbn]; + if (dq) { + if (dq->asid != asid) + rc = -EINVAL; + + goto exit; + } + + /* find the dq associated with the given asid and transport */ + dq = hbl_cn_asid_to_dq(ev_dqs, asid); + if (!dq) { + rc = -ENODATA; + goto exit; + } + + ev_dqs->db_dq[dbn] = dq; + +exit: + mutex_unlock(&ev_dqs->lock); + + return rc; +} + +int hbl_cn_eq_dispatcher_unregister_db(struct hbl_cn_port *cn_port, u32 dbn) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + u32 min, max; + + cn_port->hdev->asic_funcs->port_funcs->get_db_fifo_hw_id_range(cn_port, &min, &max); + if (dbn < min || dbn > max) { + dev_err(cn_port->hdev->dev, + "Failed to unregister dbn %u from the dispatcher (valid range %u-%u)\n", + dbn, min, max); + return -EINVAL; + } + + mutex_lock(&ev_dqs->lock); + + ev_dqs->db_dq[dbn] = NULL; + + mutex_unlock(&ev_dqs->lock); + + return 0; +} + +static int __hbl_cn_eq_dispatcher_enqueue(struct hbl_cn_port *cn_port, struct hbl_cn_ev_dq *dq, + const struct hbl_cn_eqe *eqe) +{ + struct hbl_aux_dev *aux_dev = &cn_port->hdev->ib_aux_dev; + struct hbl_ib_aux_ops *aux_ops = aux_dev->aux_ops; + + if (hbl_cn_eq_dispatcher_is_full(dq)) { + dq->overflow++; + return -ENOSPC; + } + + memcpy(&dq->buf.events[dq->buf.head], eqe, min(sizeof(*eqe), sizeof(dq->buf.events[0]))); + dq->buf.head = (dq->buf.head + 1) & (NIC_EQ_INFO_BUF_SIZE - 1); + dq->buf.events_count++; + + /* If IB device exist, call work scheduler for hbl to poll eq */ + if (aux_ops->eqe_work_schd) + aux_ops->eqe_work_schd(aux_dev, cn_port->port); + + return 0; +} + +/* Broadcast event to all user ASIDs */ +int hbl_cn_eq_dispatcher_enqueue_bcast(struct hbl_cn_port *cn_port, const struct hbl_cn_eqe *eqe) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_ev_dq *dq; + int i, rc = 0; + + if (!hbl_cn_is_port_open(cn_port)) + return 0; + + mutex_lock(&ev_dqs->lock); + + for (i = 0; i < NIC_NUM_CONCUR_ASIDS; i++) { + if (i == hdev->kernel_asid) + continue; + + dq = hbl_cn_asid_to_dq(ev_dqs, i); + if (!dq) + continue; + + rc = __hbl_cn_eq_dispatcher_enqueue(cn_port, dq, eqe); + if (rc) { + dev_dbg_ratelimited(cn_port->hdev->dev, + "Port %d, failed to enqueue dispatcher for ASID %d. %d\n", + cn_port->port, i, rc); + break; + } + } + + mutex_unlock(&ev_dqs->lock); + + return rc; +} + +int hbl_cn_eq_dispatcher_enqueue(struct hbl_cn_port *cn_port, const struct hbl_cn_eqe *eqe) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_ev_dq *dq; + int rc; + + if (!hbl_cn_is_port_open(cn_port)) + return 0; + + port_funcs = cn_port->hdev->asic_funcs->port_funcs; + + mutex_lock(&ev_dqs->lock); + + dq = port_funcs->eq_dispatcher_select_dq(cn_port, eqe); + if (!dq) { + rc = -ENODATA; + goto exit; + } + + rc = __hbl_cn_eq_dispatcher_enqueue(cn_port, dq, eqe); + if (rc) + dev_dbg_ratelimited(cn_port->hdev->dev, + "Port %d, failed to enqueue dispatcher. %d\n", cn_port->port, + rc); + +exit: + mutex_unlock(&ev_dqs->lock); + return rc; +} + +int hbl_cn_eq_dispatcher_dequeue(struct hbl_cn_port *cn_port, u32 asid, struct hbl_cn_eqe *eqe, + bool is_default) +{ + struct hbl_cn_ev_dqs *ev_dqs = &cn_port->ev_dqs; + struct hbl_cn_ev_dq *dq; + int rc; + + mutex_lock(&ev_dqs->lock); + + if (is_default) + dq = &ev_dqs->default_edq; + else + dq = hbl_cn_asid_to_dq(ev_dqs, asid); + + if (!dq) { + rc = -ESRCH; + goto exit; + } + + if (hbl_cn_eq_dispatcher_is_empty(dq)) { + rc = -ENODATA; + goto exit; + } + + /* We do a copy here instead of returning a pointer since a reset or + * destroy operation may occur after we return from the routine + */ + memcpy(eqe, &dq->buf.events[dq->buf.tail], min(sizeof(*eqe), sizeof(dq->buf.events[0]))); + + dq->buf.tail = (dq->buf.tail + 1) & (NIC_EQ_INFO_BUF_SIZE - 1); + dq->buf.events_count--; + rc = 0; + +exit: + mutex_unlock(&ev_dqs->lock); + return rc; +} + +u32 hbl_cn_dram_readl(struct hbl_cn_device *hdev, u64 addr) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + return aux_ops->dram_readl(aux_dev, addr); +} + +void hbl_cn_dram_writel(struct hbl_cn_device *hdev, u32 val, u64 addr) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + aux_ops->dram_writel(aux_dev, val, addr); +} + +u32 hbl_cn_rreg(struct hbl_cn_device *hdev, u32 reg) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + return aux_ops->rreg(aux_dev, reg); +} + +void hbl_cn_wreg(struct hbl_cn_device *hdev, u32 reg, u32 val) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + return aux_ops->wreg(aux_dev, reg, val); +} + +int hbl_cn_reserve_wq_dva(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u64 wq_arr_size, + u32 type, u64 *dva) +{ + struct hbl_cn_wq_array_properties *wq_arr_props; + int rc; + + /* The Device VA block for WQ array is just reserved here. It will be backed by host + * physical pages once the MMU mapping is done via hbl_map_vmalloc_range inside the + * alloc_and_map_wq. Using host page alignment ensures we start with offset 0, both + * on host and device side. + */ + rc = hbl_cn_reserve_dva_block(ctx, wq_arr_size, dva); + if (rc) + return rc; + + wq_arr_props = &cn_port->wq_arr_props[type]; + + wq_arr_props->dva_base = *dva; + wq_arr_props->dva_size = wq_arr_size; + + return 0; +} + +void hbl_cn_unreserve_wq_dva(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type) +{ + struct hbl_cn_wq_array_properties *wq_arr_props = &cn_port->wq_arr_props[type]; + + hbl_cn_unreserve_dva_block(ctx, wq_arr_props->dva_base, wq_arr_props->dva_size); + wq_arr_props->dva_base = 0; +} + +void hbl_cn_track_port_reset(struct hbl_cn_port *cn_port, u32 syndrome) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_reset_tracker *reset_tracker; + unsigned long timestamp_jiffies = jiffies; + u32 max_qp_error_syndromes; + + max_qp_error_syndromes = hdev->cn_props.max_qp_error_syndromes; + if (syndrome >= max_qp_error_syndromes) { + dev_dbg(hdev->dev, "Invalid syndrome %u\n", syndrome); + return; + } + + reset_tracker = &cn_port->reset_tracker[syndrome]; + + /* In case the timeout passed, reset the tracker parameters and return */ + if (time_after_eq(timestamp_jiffies, reset_tracker->timeout_jiffies)) { + reset_tracker->num_seq_resets = 1; + reset_tracker->timeout_jiffies = timestamp_jiffies + + msecs_to_jiffies(NIC_SEQ_RESETS_TIMEOUT_MS); + return; + } + + reset_tracker->num_seq_resets++; + + /* In case the max sequential resets was reached before we passed the timeout, + * disable that port. + */ + if (reset_tracker->num_seq_resets == NIC_MAX_SEQ_RESETS) { + dev_err(hdev->dev, + "Disabling port %u due to %d sequential resets, syndrome %u\n", + cn_port->port, NIC_MAX_SEQ_RESETS, syndrome); + cn_port->disabled = true; + } +} + +void hbl_cn_eq_handler(struct hbl_cn_port *cn_port) +{ + struct hbl_en_aux_ops *en_aux_ops; + struct hbl_aux_dev *aux_dev; + struct hbl_cn_device *hdev; + struct hbl_cn_eqe eqe; + u32 port; + + if (!cn_port->eq_handler_enable) + return; + + hdev = cn_port->hdev; + aux_dev = &hdev->en_aux_dev; + en_aux_ops = aux_dev->aux_ops; + port = cn_port->port; + + mutex_lock(&cn_port->control_lock); + + if (!hbl_cn_is_port_open(cn_port)) { + dev_dbg(hdev->dev, "ignoring events while port %d closed", port); + goto out; + } + + if (en_aux_ops->handle_eqe) + while (!hbl_cn_eq_dispatcher_dequeue(cn_port, hdev->kernel_asid, &eqe, false)) + en_aux_ops->handle_eqe(aux_dev, port, &eqe); + +out: + mutex_unlock(&cn_port->control_lock); +} + +void hbl_cn_get_self_hw_block_handle(struct hbl_cn_device *hdev, u64 address, u64 *handle) +{ + *handle = lower_32_bits(address) | (HBL_CN_MMAP_TYPE_BLOCK); + *handle <<= PAGE_SHIFT; +} + +u32 hbl_cn_hw_block_handle_to_addr32(struct hbl_cn_device *hdev, u64 handle) +{ + return lower_32_bits(handle >> PAGE_SHIFT); +} + +void *__hbl_cn_dma_alloc_coherent(struct hbl_cn_device *hdev, size_t size, dma_addr_t *dma_handle, + gfp_t flag, const char *caller) +{ + const struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + return asic_funcs->dma_alloc_coherent(hdev, size, dma_handle, flag); +} + +void __hbl_cn_dma_free_coherent(struct hbl_cn_device *hdev, size_t size, void *cpu_addr, + dma_addr_t dma_addr, const char *caller) +{ + const struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + asic_funcs->dma_free_coherent(hdev, size, cpu_addr, dma_addr); +} + +void *__hbl_cn_dma_pool_zalloc(struct hbl_cn_device *hdev, size_t size, gfp_t mem_flags, + dma_addr_t *dma_handle, const char *caller) +{ + const struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + return asic_funcs->dma_pool_zalloc(hdev, size, mem_flags, dma_handle); +} + +void __hbl_cn_dma_pool_free(struct hbl_cn_device *hdev, void *vaddr, dma_addr_t dma_addr, + const char *caller) +{ + const struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + asic_funcs->dma_pool_free(hdev, vaddr, dma_addr); +} + +int hbl_cn_get_reg_pcie_addr(struct hbl_cn_device *hdev, u8 bar_id, u32 reg, u64 *pci_addr) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + u64 offset; + int rc; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + rc = aux_ops->get_reg_pcie_addr(aux_dev, reg, &offset); + if (rc) + return rc; + + *pci_addr = pci_resource_start(hdev->pdev, bar_id) + offset; + + return 0; +} + +int hbl_cn_get_src_ip(struct hbl_cn_port *cn_port, u32 *src_ip) +{ + struct hbl_aux_dev *aux_dev = &cn_port->hdev->en_aux_dev; + struct hbl_en_aux_ops *aux_ops = aux_dev->aux_ops; + u32 port = cn_port->port; + + if (cn_port->eth_enable && aux_ops->get_src_ip) + return aux_ops->get_src_ip(aux_dev, port, src_ip); + + *src_ip = 0; + + return 0; +} diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h new file mode 100644 index 000000000000..27139e93d990 --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h @@ -0,0 +1,1627 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#ifndef HABANALABS_CN_H_ +#define HABANALABS_CN_H_ + +#include <linux/habanalabs/cpucp_if.h> +#include <linux/net/intel/cni.h> +#include <linux/net/intel/cn.h> + +#include <linux/bitfield.h> +#include <linux/ctype.h> +#include <linux/kfifo.h> +#include <linux/netdevice.h> +#include <linux/types.h> +#include <linux/genalloc.h> + +/* Use upper bits of mmap offset to store habana CN driver specific information. + * bits[63:60] - Encode mmap type + * bits[45:0] - mmap offset value + * + * NOTE: struct vm_area_struct.vm_pgoff uses offset in pages. Hence, these + * defines are w.r.t to PAGE_SIZE + */ +#define HBL_CN_MMAP_TYPE_SHIFT (60 - PAGE_SHIFT) +#define HBL_CN_MMAP_TYPE_MASK (0xfull << HBL_CN_MMAP_TYPE_SHIFT) +#define HBL_CN_MMAP_TYPE_CN_MEM (0x2ull << HBL_CN_MMAP_TYPE_SHIFT) +#define HBL_CN_MMAP_TYPE_BLOCK (0x1ull << HBL_CN_MMAP_TYPE_SHIFT) + +#define HBL_CN_MMAP_OFFSET_VALUE_MASK (0x0FFFFFFFFFFFull >> PAGE_SHIFT) +#define HBL_CN_MMAP_OFFSET_VALUE_GET(off) ((off) & HBL_CN_MMAP_OFFSET_VALUE_MASK) + +#define RREG32(reg) hbl_cn_rreg(hdev, (reg)) +#define WREG32(reg, v) hbl_cn_wreg(hdev, (reg), (v)) +#define WREG32_P(reg, val, mask) \ + do { \ + u32 __reg = (reg); \ + u32 tmp_ = RREG32(__reg); \ + u32 __mask = (mask); \ + tmp_ &= __mask; \ + tmp_ |= ((val) & ~__mask); \ + WREG32(__reg, tmp_); \ + } while (0) + +#define RMWREG32_SHIFTED(reg, val, mask) WREG32_P(reg, val, ~(mask)) + +#define RMWREG32(reg, val, mask) \ + do { \ + u32 _mask = (mask); \ + RMWREG32_SHIFTED(reg, (val) << __ffs(_mask), _mask); \ + } while (0) + +#define __snprintf(buf, bsize, fmt, ...) \ + do { \ + size_t _bsize = (bsize); \ + char *_buf = (buf); \ + size_t _blen; \ + \ + _blen = strlen(_buf); \ + \ + if (_blen < _bsize) \ + snprintf(_buf + _blen, _bsize - _blen, fmt, ##__VA_ARGS__); \ + } while (0) + +#define NIC_MAX_TNL_HDR_SIZE 32 /* Bytes */ + +#define NIC_EQ_INFO_BUF_SIZE 256 +#define NIC_NUM_CONCUR_ASIDS 4 +#define RDMA_OFFSET 1 + +#define NIC_QPC_INV_USEC 1000000 /* 1s */ +#define NIC_SIM_QPC_INV_USEC (NIC_QPC_INV_USEC * 5) +#define NIC_PLDM_QPC_INV_USEC (NIC_QPC_INV_USEC * 10) + +#define NIC_SPMU_STATS_LEN_MAX 6 + +#define NIC_TMR_TIMEOUT_DEFAULT_GRAN 13 +#define NIC_TMR_TIMEOUT_MAX_GRAN 31 +#define NIC_ADAPTIVE_TIMEOUT_RANGE 6 +#define NIC_GRAN_TO_USEC(gran) (1UL << ((gran) + 2)) +#define NIC_TMR_RESET_FACTOR 3 + +#define PARSE_FIELD(data, shift, size) (((data) >> (shift)) & (BIT(size) - 1)) +#define MERGE_FIELDS(data_hi, data_lo, shift) ((data_hi) << (shift) | (data_lo)) + +#define NIC_MACRO_CFG_SIZE hdev->cn_props.macro_cfg_size +#define NIC_MACRO_CFG_BASE(port) (NIC_MACRO_CFG_SIZE * ((port) >> 1)) + +#define NIC_MACRO_RREG32(reg) RREG32(NIC_MACRO_CFG_BASE(port) + (reg)) +#define NIC_MACRO_WREG32(reg, val) WREG32(NIC_MACRO_CFG_BASE(port) + (reg), (val)) +#define NIC_MACRO_RMWREG32(reg, val, mask) RMWREG32(NIC_MACRO_CFG_BASE(port) + (reg), val, mask) + +#define NIC_PORT_CHECK_ENABLE BIT(0) +#define NIC_PORT_CHECK_OPEN BIT(1) +#define NIC_PORT_PRINT_ON_ERR BIT(2) +#define NIC_PORT_CHECK_ALL GENMASK(2, 0) + +#define QPC_REQ_BURST_SIZE 16 +#define QPC_REQ_SCHED_Q 3 +#define QPC_RES_SCHED_Q 2 +#define QPC_RAW_SCHED_Q 1 + +#define REGMASK(V, F) (((V) << F##_SHIFT) & F##_MASK) +#define REGMASK2(V, F) (((V) << F##_S) & F##_M) + +#define NIC_DR_10 1031250 +#define NIC_DR_25 2578125 +#define NIC_DR_26 2656250 +#define NIC_DR_50 5312500 +#define NIC_DR_100 10625000 + +#define NIC_MAC_LANE_0 0U +#define NIC_MAC_LANE_1 1U +#define NIC_MAC_LANE_2 2U +#define NIC_MAC_LANE_3 3U +#define NIC_MAC_LANES 4U + +#define CC_CQE_SIZE 16 +#define USER_CCQ_MAX_ENTRIES (BIT(21) / CC_CQE_SIZE) /* dma_alloc can only allocate 2M */ +#define USER_CCQ_MIN_ENTRIES 16 + +#define DMA_COHERENT_MAX_SIZE SZ_4M + +#define PHY_TX_TAPS_NUM 5 + +#define ACCUMULATE_FEC_STATS_DURATION_MS 100 /* ms */ +#define ACCUMULATE_FEC_STATS_DURATION_MS_MAX 10000 /* ms */ + +#define HBL_CN_BLOCK_SIZE 0x1000 + +/* DMA alloc/free wrappers */ +#define hbl_cn_dma_alloc_coherent(hdev, size, dma_handle, flags) \ + __hbl_cn_dma_alloc_coherent(hdev, size, dma_handle, flags, __func__) +#define hbl_cn_dma_free_coherent(hdev, size, cpu_addr, dma_addr) \ + __hbl_cn_dma_free_coherent(hdev, size, cpu_addr, dma_addr, __func__) + +#define hbl_cn_dma_pool_zalloc(hdev, size, mem_flags, dma_handle) \ + __hbl_cn_dma_pool_zalloc(hdev, size, mem_flags, dma_handle, __func__) +#define hbl_cn_dma_pool_free(hdev, vaddr, dma_addr) \ + __hbl_cn_dma_pool_free(hdev, vaddr, dma_addr, __func__) + +extern struct hbl_cn_stat hbl_cn_mac_fec_stats[]; +extern struct hbl_cn_stat hbl_cn_mac_stats_rx[]; +extern struct hbl_cn_stat hbl_cn_mac_stats_tx[]; +extern size_t hbl_cn_mac_fec_stats_len; +extern size_t hbl_cn_mac_stats_rx_len; +extern size_t hbl_cn_mac_stats_tx_len; + +/** + * enum mtu_type - Describes QP's MTU value source. + * @MTU_INVALID: MTU is not configured yet. + * @MTU_FROM_USER: MTU gotten from user call to set requester context. + * @MTU_FROM_NETDEV: MTU gotten from netdev. + * @MTU_DEFAULT: Use default MTU value. + */ +enum mtu_type { + MTU_INVALID, + MTU_FROM_USER, + MTU_FROM_NETDEV, + MTU_DEFAULT +}; + +/** + * enum hbl_cn_qp_state - The states the QPs can be. + * Follows the spirit of "10.3.1 QUEUE PAIR AND EE CONTEXT STATES" section in + * InfiniBand(TM) Architecture Release. + * CN_QP_STATE_RESET: QP is in reset state + * CN_QP_STATE_INIT: Initialized state where all QP resources are allocated. QP can post Recv WRs. + * CN_QP_STATE_RTR: Ready to receive state. QP can post & process Rcv WRs & send ACKs, + * CN_QP_STATE_RTS: Ready to send state. QP can post and process recv & send WRs + * CN_QP_STATE_SQD: SQ is in drained state (a sub-state of the QP draining process). + * CN_QP_STATE_QPD: QP is in drained state, both RQ and SQ are drained. + * CN_QP_STATE_SQERR: Send queue error state. QP can Post & process Receive WRs, Send WRs are + * completed in error. + * CN_QP_STATE_ERR: Error state. + * CN_QP_NUM_STATE: Number of states the QP can be in. + */ +enum hbl_cn_qp_state { + CN_QP_STATE_RESET = 0, + CN_QP_STATE_INIT, + CN_QP_STATE_RTR, + CN_QP_STATE_RTS, + CN_QP_STATE_SQD, + CN_QP_STATE_QPD, + CN_QP_STATE_SQERR, + CN_QP_STATE_ERR, + CN_QP_NUM_STATE, /* must be last */ +}; + +/** + * enum hbl_cn_qp_state_op - The Valid state transition operations on QP. + * CN_QP_OP_INVAL: Invalid OP, indicates invalid state transition path, not to be used. Must be 0. + * CN_QP_OP_RST_2INIT: Move the QP from the Reset state to the Init state. + * CN_QP_OP_INIT_2RTR: Move the QP from the Init state to the Ready-to-receive state. + * CN_QP_OP_RTR_2RTR: Reconfig Responder. + * CN_QP_OP_RTR_2QPD: drain the Responder. + * CN_QP_OP_RTR_2RTS: Move the QP from RTR state to the Ready-to-send state. + * CN_QP_OP_RTR_2SQD: Move the QP from RTR state to the drained state. + * CN_QP_OP_RTS_2RTS: Reconfigure the requester. + * CN_QP_OP_RTS_2SQERR: move the QP from RTS to the SQER state due to HW errors. + * CN_QP_OP_RTS_2SQD: Drain the SQ and move to the SQ-Drained state. + * CN_QP_OP_RTS_2QPD: drain the QP (requester and responder). + * CN_QP_OP_SQD_2SQD: Re-drain the SQ. + * CN_QP_OP_SQD_2QPD: Drain the QP (Responder too). + * CN_QP_OP_SQD_2RTS: Enable the requester after draining is done. + * CN_QP_OP_SQD_2SQ_ERR: move the QP to SQ_Err due to HW error. + * CN_QP_OP_QPD_2RTR: restart the Responder. + * CN_QP_OP_QPD_2QPD: drain the QP (again). + * CN_QP_OP_SQ_ERR_2SQD: recover from SQ err and return to work + * CN_QP_OP_2ERR: Place the QP in error state (due to HW errors). + * An error can be forced from any state, except Reset. + * CN_QP_OP_2RESET: Move to reset state. + * it is possible to transition from any state to the Reset state. + * CN_QP_OP_NOP: Do nothing. + */ +enum hbl_cn_qp_state_op { + CN_QP_OP_INVAL = 0, + CN_QP_OP_RST_2INIT, + CN_QP_OP_INIT_2RTR, + CN_QP_OP_RTR_2RTR, + CN_QP_OP_RTR_2QPD, + CN_QP_OP_RTR_2RTS, + CN_QP_OP_RTR_2SQD, + CN_QP_OP_RTS_2RTS, + CN_QP_OP_RTS_2SQERR, + CN_QP_OP_RTS_2SQD, + CN_QP_OP_RTS_2QPD, + CN_QP_OP_SQD_2SQD, + CN_QP_OP_SQD_2QPD, + CN_QP_OP_SQD_2RTS, + CN_QP_OP_SQD_2SQ_ERR, + CN_QP_OP_QPD_2RTR, + CN_QP_OP_QPD_2QPD, + CN_QP_OP_SQ_ERR_2SQD, + CN_QP_OP_2ERR, + CN_QP_OP_2RESET, + CN_QP_OP_NOP, +}; + +/** + * enum db_fifo_state - Describes db fifo's current state. Starting it from 1 because by default + * on reset when the state is 0, it shouldn't be confused as Allocated state. + * @DB_FIFO_STATE_ALLOC: db fifo id has been allocated. + * @DB_FIFO_STATE_SET: db fifo set is done for the corresponding id. + */ +enum db_fifo_state { + DB_FIFO_STATE_ALLOC = 1, + DB_FIFO_STATE_SET, +}; + +/** + * struct hbl_cn_qp_reset_mode - QP reset method. + * @CN_QP_RESET_MODE_GRACEFUL: Graceful reset, reset the QP components in an orderly manner and wait + * on each component to settle before moving to the next step. + * @CN_QP_RESET_MODE_FAST: Fast reset, reset the QP components in an orderly manner, without waiting + * for the components to settle . + * @CN_QP_RESET_MODE_HARD: Clear the QP contexts immediately. + */ +enum hbl_cn_qp_reset_mode { + CN_QP_RESET_MODE_GRACEFUL = 0, + CN_QP_RESET_MODE_FAST = 1, + CN_QP_RESET_MODE_HARD = 2, +}; + +/** + * enum hbl_cn_user_cq_state - User CQ states. + * @USER_CQ_STATE_ALLOC: ID allocated. + * @USER_CQ_STATE_SET: HW configured. Resources allocated. + * @USER_CQ_STATE_ALLOC_TO_UNSET: CQ moved to unset state from alloc state directly. + * @USER_CQ_STATE_SET_TO_UNSET: CQ moved to unset from set state. HW config cleared. + * Resources ready to be reclaimed. + */ +enum hbl_cn_user_cq_state { + USER_CQ_STATE_ALLOC = 1, + USER_CQ_STATE_SET, + USER_CQ_STATE_ALLOC_TO_UNSET, + USER_CQ_STATE_SET_TO_UNSET, +}; + +/** + * enum hbl_cn_drv_mem_id - Memory allocation methods: + * HBL_CN_DRV_MEM_INVALID: N/A option. + * HBL_CN_DRV_MEM_HOST_DMA_COHERENT: Host DMA coherent memory. + * HBL_CN_DRV_MEM_HOST_VIRTUAL: Host virtual memory. + * HBL_CN_DRV_MEM_DEVICE: Device HBM memory. + * HBL_CN_DRV_MEM_HOST_MAP_ONLY: Host mapping only. + */ +enum hbl_cn_drv_mem_id { + HBL_CN_DRV_MEM_INVALID, + HBL_CN_DRV_MEM_HOST_DMA_COHERENT, + HBL_CN_DRV_MEM_HOST_VIRTUAL, + HBL_CN_DRV_MEM_DEVICE, + HBL_CN_DRV_MEM_HOST_MAP_ONLY, +}; + +struct hbl_cn_port; +struct hbl_cn_device; +struct hbl_cn_macro; + +/** + * struct hbl_cn_dq_qp_info - structure to hold qp info for dispatch queue. + * @node: reference to a QP within the list + * @dq: dq per asid event dispatcher queue + * @qpn: QP id + */ +struct hbl_cn_dq_qp_info { + struct hlist_node node; + struct hbl_cn_ev_dq *dq; + u32 qpn; +}; + +/** + * struct hbl_cn_eq_raw_buf - a buffer holding unparsed raw EQ events + * @events: an array which stores the events + * @head: the queue head + * @tail: the queue tail + * @events_count: number of available events in the queue + */ +struct hbl_cn_eq_raw_buf { + struct hbl_cn_eqe events[NIC_EQ_INFO_BUF_SIZE]; + u32 head; + u32 tail; + u32 events_count; +}; + +/** + * struct hbl_cn_ev_dq - per-asid/app event dispatch queue + * @buf: the dispatched events queue. + * @asid: the asid registered on this dq + * @overflow: buffer overflow counter + * @associated: if this dq associate with a user/asid or not. + */ +struct hbl_cn_ev_dq { + struct hbl_cn_eq_raw_buf buf; + u32 asid; + u32 overflow; + u8 associated; +}; + +/** + * struct hbl_cn_ev_dqs - software managed events dispatch queues. + * used for dispatching events to their applications. + * @qps: a hash table to convert QP-numbers to their owner (ASID). + * @cq_dq: array to associate/convert cq-numbers to the dispatch queues. + * @ccq_dq: array to associate/convert ccq-numbers to the dispatch queues. + * @db_dq: array to associate/convert doorbell-numbers to the dispatch queues. + * @edq: the events dispatch queues (as many queues as the number of possible same-time ASIDs). + * @default_edq: default events dispatch queue for unknown resources and events. + * @lock: protects from simultaneous operations. + */ +struct hbl_cn_ev_dqs { + DECLARE_HASHTABLE(qps, 11); + struct hbl_cn_ev_dq *cq_dq[NIC_DRV_MAX_CQS_NUM]; + struct hbl_cn_ev_dq *ccq_dq[NIC_DRV_MAX_CCQS_NUM]; + struct hbl_cn_ev_dq *db_dq[NIC_DRV_NUM_DB_FIFOS]; + struct hbl_cn_ev_dq edq[NIC_NUM_CONCUR_ASIDS]; + struct hbl_cn_ev_dq default_edq; + /* protects from simultaneous operations */ + struct mutex lock; +}; + +/** + * struct hbl_cn_qp_info - holds information of a QP to read via debugfs. + * @port: the port the QP belongs to. + * @qpn: QP number. + * @req: true for requester QP, otherwise responder. + * @full_print: print full QP information. + * @force_read: force reading a QP in invalid/error state. + */ +struct hbl_cn_qp_info { + u32 port; + u32 qpn; + u8 req; + u8 full_print; + u8 force_read; +}; + +/** + * struct hbl_cn_wqe_info - holds information of a WQE to read via debugfs. + * @port: the port the WQE belongs to. + * @qpn: QP number. + * @wqe_idx: WQE index. + * @tx: true for tx WQE, otherwise rx WQE. + */ +struct hbl_cn_wqe_info { + u32 port; + u32 qpn; + u32 wqe_idx; + u8 tx; +}; + +/** + * struct hbl_cn_db_fifo_xarray_pdata - Holds private data of userspace doorbell xarray + * @asid: Associated user context. + * @port: Associated port index. + * @id: fifo index. + * @ci_mmap_handle: Consumer index mmap handle. + * @umr_mmap_handle: UMR block mmap handle. + * @umr_db_offset: db fifo offset in UMR block. + * @state: db fifo's state. + * @db_pool_addr: offset of the allocated address in gen pool. + * @fifo_offset: actual fifo offset allocated for that id. + * @fifo_size: size of the fifo allocated. + * @fifo_mode: mode of the fifo as received in the IOCTL. + */ +struct hbl_cn_db_fifo_xarray_pdata { + u32 asid; + u32 port; + u32 id; + u64 ci_mmap_handle; + u64 umr_mmap_handle; + u32 umr_db_offset; + enum db_fifo_state state; + u32 db_pool_addr; + u32 fifo_offset; + u32 fifo_size; + u8 fifo_mode; +}; + +/** + * struct hbl_cn_encap_xarray_pdata - Holds private data of userspace encapsulation xarray + * @port: Associated port index + * @id: Encapsulation ID + * @src_ip: Source port IPv4 address. + * @encap_type: L3/L4 encapsulation + * @encap_type_data: IPv4 protocol or UDP port + * @encap_header: Encapsulation header + * @encap_header_size: Encapsulation header size + * @is_set: True if encap was set, false otherwise + */ +struct hbl_cn_encap_xarray_pdata { + u32 port; + u32 id; + u32 src_ip; + enum hbl_nic_encap_type encap_type; + u32 encap_type_data; + void *encap_header; + u32 encap_header_size; + u8 is_set; +}; + +/** + * struct hbl_cn_user_cq - user CQ data. + * @cn_port: associated port. + * @refcount: number of QPs that use this CQ. + * @ctx: Associated user context. + * @state: User CQ state. + * @overrun_lock: protects the setting\unsetting of CQ overrun. + * @mem_handle: mmap handle of buffer memory. + * @pi_handle: mmap handle of PI memory. + * @id: CQ ID. + * @qp_set_overrun_cnt: number of QPs which expect CQ overrun to be enabled. + * @is_mmu_bp: is MMU bypass enabled for the memory buffer. + */ +struct hbl_cn_user_cq { + struct hbl_cn_port *cn_port; + struct kref refcount; + struct hbl_cn_ctx *ctx; + enum hbl_cn_user_cq_state state; + /* protects the setting\unsetting of CQ overrun */ + struct mutex overrun_lock; + u64 mem_handle; + u64 pi_handle; + u32 id; + u32 qp_set_overrun_cnt; + u8 is_mmu_bp; +}; + +/** + * struct hbl_cn_wq_array_properties - WQ array properties. + * @type_str: string of this WQ array type. + * @handle: handle for this WQ array. + * @dva_base: reserved device VA for this WQ array. + * @dva_size: size in bytes of device VA block of this WQ array. + * @wq_size: size in bytes of each WQ in this WQ array. + * @idx: index of this WQ array. + * @offset: offset inside the memory chunk. + * @under_unset: true if this WQ array is waiting for unset (will be done when all QPs are + * destroyed), false otherwise. + * @on_device_mem: true if this WQ array resides on HBM, false if on host. + * @is_send: true if this WQ array should contain send WQEs, false if recv WQEs. + * @wq_mmu_bypass: true if WQs has MMU-BP access, false otherwise. + * @enabled: true if this WQ array is enabled, false otherwise. + */ +struct hbl_cn_wq_array_properties { + char *type_str; + u64 handle; + u64 dva_base; + u64 dva_size; + u64 wq_size; + u32 idx; + u32 offset; + u8 under_unset; + u8 on_device_mem; + u8 is_send; + u8 wq_mmu_bypass; + u8 enabled; +}; + +/** + * struct hbl_cn_reset_tracker - port reset tracking information. + * @timeout_jiffies: end of the measurement window. + * @num_seq_resets: how many sequential resets were triggered inside the measurement window. + */ +struct hbl_cn_reset_tracker { + unsigned long timeout_jiffies; + u8 num_seq_resets; +}; + +/** + * struct hbl_cn_mem_buf - describes a memory allocation. + * @ctx: pointer to the context this memory belongs to. + * @bus_address: Holds the memory's DMA address. + * @kernel_address: Holds the memory's kernel virtual address. + * @refcount: reference counter for buffer users. + * @mmap: atomic boolean indicating whether or not the buffer is mapped right now. + * @real_mapped_size: the actual size of buffer mapped, after part of it may be released, may + * change at runtime. + * @mappable_size: the original mappable size of the buffer, does not change after the allocation. + * @device_addr: Holds the HBM address. + * @device_va: Device virtual address. Valid only for MMU mapped allocations. + * @handle: The buffer id that is stored in the mem xarray. + * @mem_id: specify host/device memory allocation. + * @is_destroyed: Indicates whether or not the memory was destroyed. + */ +struct hbl_cn_mem_buf { + struct hbl_cn_ctx *ctx; + dma_addr_t bus_address; + void *kernel_address; + struct kref refcount; + atomic_t mmap; + u64 real_mapped_size; + u64 mappable_size; + u64 device_addr; + u64 device_va; + u64 handle; + u32 mem_id; + atomic_t is_destroyed; +}; + +/** + * struct hbl_cn_qp - Describes a Queue Pair. + * @cn_port: Pointer to the port this QP belongs to. + * @async_work: async work performed on QP, when destroying the QP. + * @adaptive_tmr_reset: reset work performed on QP, for adaptive timer. + * @req_user_cq: CQ ID used by the requester context. + * @res_user_cq: CQ ID used by the responder context. + * @ctx: Associated user context. + * @curr_state: The current state of the QP. + * @mtu_type: Source of MTU value from user, from netdev or default. + * @swq_handle: Send WQ mmap handle. + * @rwq_handle: Receive WQ mmap handle. + * @port: The port number this QP belongs to. + * @qp_id: The QP number within its port. + * @local_key: Key for local access. + * @remote_key: Key for remote access. + * @mtu: Current MTU value. + * @swq_size: Send WQ mmap size. + * @rwq_size: Receive WQ mmap size. + * @is_req: is requester context was set for the QP. + * @is_res: is responder context was set for the QP. + * @force_cq_overrun: force CQ overrun, if needed, during destruction phase. + * @timeout_granularity: User supplied granularity value. + * @timeout_curr: Currently used granularity value. + */ +struct hbl_cn_qp { + struct hbl_cn_port *cn_port; + struct work_struct async_work; + struct delayed_work adaptive_tmr_reset; + struct hbl_cn_user_cq *req_user_cq; + struct hbl_cn_user_cq *res_user_cq; + struct hbl_cn_ctx *ctx; + enum hbl_cn_qp_state curr_state; + enum mtu_type mtu_type; + u64 swq_handle; + u64 rwq_handle; + u32 port; + u32 qp_id; + u32 local_key; + u32 remote_key; + u32 mtu; + u32 swq_size; + u32 rwq_size; + u8 is_req; + u8 is_res; + u8 force_cq_overrun; + u8 timeout_granularity; + u8 timeout_curr; +}; + +/** + * enum qp_conn_state - State of retransmission flow. + * @QP_CONN_STATE_OPEN: connection is open. + * @QP_CONN_STATE_CLOSED: connection is closed. + * @QP_CONN_STATE_RESYNC: Connection is re-synchronizing. + * @QP_CONN_STATE_ERROR: Connection is in error state. + */ +enum qp_conn_state { + QP_CONN_STATE_OPEN = 0, + QP_CONN_STATE_CLOSED = 1, + QP_CONN_STATE_RESYNC = 2, + QP_CONN_STATE_ERROR = 3, +}; + +/** + * struct hbl_cn_qpc_attr - QPC attributes as read from the HW. + * @valid: QPC is valid. + * @in_work: qp was scheduled to work. + * @error: QPC is in error state (relevant in Req QPC only). + * @conn_state - state of retransmission flow (relevant in Res QPC only). + */ +struct hbl_cn_qpc_attr { + u8 valid; + u8 in_work; + u8 error; + enum qp_conn_state conn_state; +}; + +/** + * struct hbl_cn_qpc_reset_attr - attributes used when setting QP state to reset. + * @reset_mode: the type/mode of reset to be used. + */ +struct hbl_cn_qpc_reset_attr { + enum hbl_cn_qp_reset_mode reset_mode; +}; + +/** + * struct hbl_cn_qpc_drain_attr - QPC attributes used for draining operation. + * @wait_for_idle: wait for QPC to become idle. + */ +struct hbl_cn_qpc_drain_attr { + bool wait_for_idle; +}; + +/** + * struct hbl_cn_mem_data - memory allocation metadata. + * @in: mem_id specific allocation parameters. + * @in.device_mem_data: mem_id HBL_CN_DRV_MEM_DEVICE specific allocation parameters. + * @in.device_mem_data.port: Associated port index. + * @in.device_mem_data.type: enum hbl_nic_mem_type to be allocated. + * @in.host_map_data: mem_id HBL_CN_DRV_MEM_HOST_MAP_ONLY specific mapping parameters. + * @in.host_map_data.bus_address: Memory DMA address. + * @in.host_map_data.kernel_address: Memory kernel virtual address. + * @mem_id: Allocation type, enum hbl_cn_mem_id. + * @size: Allocation size. + * @device_va: Device virtual address. Valid only for MMU mapped allocation. + * @handle: Returned mmap handle. + * @addr: Returned allocation address. + */ +struct hbl_cn_mem_data { + union { + /* HBL_CN_DRV_MEM_DEVICE */ + struct { + u32 port; + enum hbl_nic_mem_type type; + } device_mem_data; + + /* HBL_CN_DRV_MEM_HOST_MAP_ONLY */ + struct { + dma_addr_t bus_address; + void *kernel_address; + } host_map_data; + } in; + + /* Common in params */ + enum hbl_cn_drv_mem_id mem_id; + u64 size; + u64 device_va; + + /* Common out params */ + u64 handle; + u64 addr; +}; + +/** + * struct hbl_cni_user_cq_set_in_params - user CQ configuration in params. + * @port: port index. + * @num_of_cqes: Number of CQ entries in the buffer. + * @id: CQ ID. + */ +struct hbl_cni_user_cq_set_in_params { + u32 port; + u32 num_of_cqes; + u32 id; +}; + +/** + * struct hbl_cni_user_cq_set_out_params - user CQ configuration out params. + * @mem_handle: Handle of CQ memory buffer. + * @pi_handle: Handle of CQ producer-inder memory buffer. + * @regs_handle: Handle of CQ Registers base-address. + * @regs_offset: CQ Registers sub-offset. + */ +struct hbl_cni_user_cq_set_out_params { + u64 mem_handle; + u64 pi_handle; + u64 regs_handle; + u32 regs_offset; +}; + +/** + * struct hbl_cni_user_cq_unset_in_params - user CQ unconfiguration in params. + * @port: port index. + * @id: CQ ID. + */ +struct hbl_cni_user_cq_unset_in_params { + u32 port; + u32 id; +}; + +/** + * struct hbl_cn_cpucp_status - describes the status of a port. + * @port: port index. + * @bad_format_cnt: e.g. CRC. + * @responder_out_of_sequence_psn_cnt: e.g NAK. + * @high_ber_reinit_cnt: link reinit due to high BER. + * @correctable_err_cnt: e.g. bit-flip. + * @uncorrectable_err_cnt: e.g. MAC errors. + * @retraining_cnt: re-training counter. + * @up: is port up. + * @pcs_link: has PCS link. + * @phy_ready: is PHY ready. + * @auto_neg: is Autoneg enabled. + * @timeout_retransmission_cnt: timeout retransmission events. + * @high_ber_cnt: high ber events. + * @pre_fec_ser: pre FEC SER value. + * @post_fec_ser: post FEC SER value. + * @bandwidth: measured bandwidth. + * @lat: measured latency. + * @port_toggle_cnt: counts how many times the link toggled since last port PHY init. + */ +struct hbl_cn_cpucp_status { + u32 port; + u32 bad_format_cnt; + u32 responder_out_of_sequence_psn_cnt; + u32 high_ber_reinit; + u32 correctable_err_cnt; + u32 uncorrectable_err_cnt; + u32 retraining_cnt; + u8 up; + u8 pcs_link; + u8 phy_ready; + u8 auto_neg; + u32 timeout_retransmission_cnt; + u32 high_ber_cnt; + struct hbl_cn_cpucp_ser_val pre_fec_ser; + struct hbl_cn_cpucp_ser_val post_fec_ser; + struct hbl_cn_cpucp_frac_val bandwidth; + struct hbl_cn_cpucp_frac_val lat; + u32 port_toggle_cnt; +}; + +/** + * struct hbl_cn_asic_port_funcs - ASIC specific functions that are can be called from common code + * for a specific port. + * @port_hw_init: initialize the port HW. + * @port_hw_fini: cleanup the port HW. + * @phy_port_init: port PHY init. + * @phy_port_start_stop: port PHY start/stop. + * @phy_port_power_up: port PHY power-up. + * @phy_port_reconfig: port PHY reconfigure. + * @phy_port_fini: port PHY cleanup. + * @phy_link_status_work: link status handler. + * @update_mtu: updates MTU inside a requestor QP context. + * @user_wq_arr_unset: unset user WQ array (check whether user_wq_lock should be taken). + * @get_cq_id_range: get user CQ ID range. + * @user_cq_set: set user CQ. + * @user_cq_unset: unset user CQ. + * @user_cq_destroy: destroy user CQ. + * @get_cnts_num: get the number of available counters. + * @get_cnts_names: get the names of the available counters. + * @get_cnts_values: get the values of the available counters. + * @port_sw_init: initialize per port software components. + * @port_sw_fini: finalize per port software components. + * @register_qp: register a new qp-id with the NIC. + * @unregister_qp: unregister a qp. + * @get_qp_id_range: Get unsecure QP ID range. + * @eq_poll: poll the EQ for asid/app-specific events. + * @get_db_fifo_id_range: Get the fifo ID range that is available to the user. + * @get_db_fifo_hw_id_range: Get the actual HW fifo ID range. + * @db_fifo_set: Config unsecure userspace doorbell fifo. + * @db_fifo_unset: Destroy unsecure userspace doorbell fifo. + * @get_db_fifo_umr: Get UMR block address and db fifo offset. + * @get_db_fifo_modes_mask: Get the supported db fifo modes + * @db_fifo_allocate: Allocate fifo for the specific mode + * @db_fifo_free: Free the fifo for the specific id + * @set_pfc: enable/disable PFC. + * @get_encap_id_range: Get user encapsulation ID range + * @encap_set: Start encapsulation + * @encap_unset: Stop encapsulation + * @set_ip_addr_encap: Setup IP address encapsulation. + * @qpc_write: write a QP context to the HW. + * @qpc_invalidate: invalidate a QP context. + * @qpc_query: read a QP context. + * @qpc_clear: clear a QP context. + * @user_ccq_set: set user congestion completion queue. + * @user_ccq_unset: unset user congestion completion queue. + * @reset_mac_stats: reset MAC statistics. + * @collect_fec_stats: collect FEC statistics. + * @disable_wqe_index_checker: Disable WQE index checker for both Rx and Tx. + * @get_status: get status information for F/W. + * @cfg_lock: acquire the port configuration lock. + * @cfg_unlock: release the port configuration lock. + * @cfg_is_locked: check if the port configuration lock is locked. + * @qp_pre_destroy: prepare for a QP destroy. Called under the cfg lock. + * @qp_post_destroy: cleanup after a QP destroy. Called under the cfg lock. + * @set_port_status: config port status before notifying user. + * @send_cpucp_packet: Send cpucp packet to FW. + * @adaptive_tmr_reset: Reset timer granularity for adaptive timeout feature. + * @spmu_get_stats_info: get SPMU statistics information. + * @spmu_config: config the SPMU. + * @spmu_sample: read SPMU counters. + * @post_send_status: handler for post sending status packet to FW. + */ +struct hbl_cn_asic_port_funcs { + int (*port_hw_init)(struct hbl_cn_port *cn_port); + void (*port_hw_fini)(struct hbl_cn_port *cn_port); + int (*phy_port_init)(struct hbl_cn_port *cn_port); + void (*phy_port_start_stop)(struct hbl_cn_port *cn_port, bool is_start); + int (*phy_port_power_up)(struct hbl_cn_port *cn_port); + void (*phy_port_reconfig)(struct hbl_cn_port *cn_port); + void (*phy_port_fini)(struct hbl_cn_port *cn_port); + void (*phy_link_status_work)(struct work_struct *work); + int (*update_qp_mtu)(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, u32 mtu); + int (*user_wq_arr_unset)(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type); + void (*get_cq_id_range)(struct hbl_cn_port *cn_port, u32 *min_id, u32 *max_id); + int (*user_cq_set)(struct hbl_cn_user_cq *user_cq, struct hbl_cni_user_cq_set_in_params *in, + struct hbl_cni_user_cq_set_out_params *out); + int (*user_cq_unset)(struct hbl_cn_user_cq *user_cq); + void (*user_cq_destroy)(struct hbl_cn_user_cq *user_cq); + int (*get_cnts_num)(struct hbl_cn_port *cn_port); + void (*get_cnts_names)(struct hbl_cn_port *cn_port, u8 *data, bool ext); + void (*get_cnts_values)(struct hbl_cn_port *cn_port, u64 *data); + int (*port_sw_init)(struct hbl_cn_port *cn_port); + void (*port_sw_fini)(struct hbl_cn_port *cn_port); + int (*register_qp)(struct hbl_cn_port *cn_port, u32 qp_id, u32 asid); + void (*unregister_qp)(struct hbl_cn_port *cn_port, u32 qp_id); + void (*get_qp_id_range)(struct hbl_cn_port *cn_port, u32 *min_id, u32 *max_id); + int (*eq_poll)(struct hbl_cn_port *cn_port, u32 asid, + struct hbl_cni_eq_poll_out *event); + struct hbl_cn_ev_dq * (*eq_dispatcher_select_dq)(struct hbl_cn_port *cn_port, + const struct hbl_cn_eqe *eqe); + void (*get_db_fifo_id_range)(struct hbl_cn_port *cn_port, u32 *min_id, u32 *max_id); + void (*get_db_fifo_hw_id_range)(struct hbl_cn_port *cn_port, u32 *min_id, u32 *max_id); + int (*db_fifo_set)(struct hbl_cn_port *cn_port, struct hbl_cn_ctx *ctx, u32 id, + u64 ci_device_handle, struct hbl_cn_db_fifo_xarray_pdata *xa_pdata); + void (*db_fifo_unset)(struct hbl_cn_port *cn_port, u32 id, + struct hbl_cn_db_fifo_xarray_pdata *xa_pdata); + void (*get_db_fifo_umr)(struct hbl_cn_port *cn_port, u32 id, + u64 *umr_block_addr, u32 *umr_db_offset); + void (*get_db_fifo_modes_mask)(struct hbl_cn_port *cn_port, u32 *mode_mask); + int (*db_fifo_allocate)(struct hbl_cn_port *cn_port, + struct hbl_cn_db_fifo_xarray_pdata *xa_pdata); + void (*db_fifo_free)(struct hbl_cn_port *cn_port, u32 db_pool_addr, u32 fifo_size); + int (*set_pfc)(struct hbl_cn_port *cn_port); + void (*get_encap_id_range)(struct hbl_cn_port *cn_port, u32 *min_id, u32 *max_id); + int (*encap_set)(struct hbl_cn_port *cn_port, u32 encap_id, + struct hbl_cn_encap_xarray_pdata *xa_pdata); + void (*encap_unset)(struct hbl_cn_port *cn_port, u32 encap_id, + struct hbl_cn_encap_xarray_pdata *xa_pdata); + void (*set_ip_addr_encap)(struct hbl_cn_port *cn_port, u32 *encap_id, u32 src_ip); + int (*qpc_write)(struct hbl_cn_port *cn_port, void *qpc, struct qpc_mask *qpc_mask, + u32 qpn, bool is_req); + int (*qpc_invalidate)(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, bool is_req); + int (*qpc_query)(struct hbl_cn_port *cn_port, u32 qpn, bool is_req, + struct hbl_cn_qpc_attr *attr); + int (*qpc_clear)(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, bool is_req); + void (*user_ccq_set)(struct hbl_cn_port *cn_port, u64 ccq_device_addr, u64 pi_device_addr, + u32 num_of_entries, u32 *ccqn); + void (*user_ccq_unset)(struct hbl_cn_port *cn_port, u32 *ccqn); + void (*reset_mac_stats)(struct hbl_cn_port *cn_port); + void (*collect_fec_stats)(struct hbl_cn_port *cn_port, char *buf, size_t size); + int (*disable_wqe_index_checker)(struct hbl_cn_port *cn_port); + void (*get_status)(struct hbl_cn_port *cn_port, struct hbl_cn_cpucp_status *status); + void (*cfg_lock)(struct hbl_cn_port *cn_port); + void (*cfg_unlock)(struct hbl_cn_port *cn_port); + bool (*cfg_is_locked)(struct hbl_cn_port *cn_port); + void (*qp_pre_destroy)(struct hbl_cn_qp *qp); + void (*qp_post_destroy)(struct hbl_cn_qp *qp); + void (*set_port_status)(struct hbl_cn_port *cn_port, bool up); + int (*send_cpucp_packet)(struct hbl_cn_port *cn_port, enum cpucp_packet_id packet_id, + int val); + void (*adaptive_tmr_reset)(struct hbl_cn_qp *qp); + void (*spmu_get_stats_info)(struct hbl_cn_port *cn_port, struct hbl_cn_stat **stats, + u32 *n_stats); + int (*spmu_config)(struct hbl_cn_port *cn_port, u32 num_event_types, u32 event_types[], + bool enable); + int (*spmu_sample)(struct hbl_cn_port *cn_port, u32 num_out_data, u64 out_data[]); + void (*post_send_status)(struct hbl_cn_port *cn_port); +}; + +/** + * struct hbl_cn_asic_funcs - ASIC specific functions that are can be called from common code. + * @core_init: core infrastructure init. + * @core_fini: core infrastructure cleanup. + * @get_default_port_speed: get the default port BW in MB/s. + * @phy_reset_macro: macro PHY reset. + * @phy_get_crc: get PHY CRC. + * @set_req_qp_ctx: set up a requester QP context. + * @set_res_qp_ctx: set up a responder QP context. + * @user_wq_arr_set: set user WQ array (check whether user_wq_lock should be taken). + * @user_set_app_params: update user params to be later retrieved by user_get_app_params. + * @user_get_app_params: retrieve user params, previously configured or saved by + * user_set_app_params. + * @get_phy_fw_name: returns the PHY FW file name. + * @pre_sw_init: initialize device SW fixed properties. + * @sw_init: initialize device SW. + * @sw_fini: cleanup device SW. + * @macro_sw_init: initialize per macro software components. + * @macro_sw_fini: finalize per macro software components. + * @kernel_ctx_init: initialize kernel context. + * @kernel_ctx_fini: de-initialize kernel context. + * @ctx_init: initialize user context. + * @ctx_fini: de-initialize user context. + * @qp_read: read a QP content. + * @wqe_read: read a WQE content. + * @phy_fw_load_all: load PHY fw on all the ports. + * @set_en_data: ASIC data to be used by the Ethernet driver. + * @request_irqs: Add handlers to interrupt lines. + * @free_irqs: Free interrupts allocated with request_irqs. + * @synchronize_irqs: Wait for pending IRQ handlers (on other CPUs). + * @phy_dump_serdes_params: dump the serdes parameters. + * @get_max_msg_sz: get maximum message size. + * @qp_syndrome_to_str: convert a QP error syndrome to an error string. + * @app_params_clear: clear app params. + * @inject_rx_err: Force RX packet drops. + * @is_encap_supported: true if encapsulation is supported according to the given parameters. + * @set_wqe_index_checker: set wqe index checker (enable/disable). + * @get_wqe_index_checker: get wqe index checker (enabled/disabled). + * @set_static_properties: Sets static CN properties. + * @set_dram_properties: Sets DRAM CN properties. + * @late_init: set post initialization properties, e.g., compute2cn ops. + * @late_fini: clear post initialization properties, e.g., compute2cn ops. + * @get_hw_block_handle: Map block and return its handle. + * @get_hw_block_addr: Get address and size for a memory handle. + * @create_mem_ctx: create a HW memory context. + * @destroy_mem_ctx: destroy a HW memory context. + * @phy_speed_rate_write: set PHY speed rate ID. + * @phy_speed_rate_read: get PHY speed rate ID. + * @phy_training_type_write: set PHY training type ID. + * @phy_training_type_read: get PHY training type ID. + * @dma_alloc_coherent: Allocate coherent DMA memory. + * @dma_free_coherent: Free coherent DMA memory. + * @dma_pool_zalloc: Allocate a memory block from a DMA memory pool. + * @dma_pool_free: Free a DMA memory pool block. + * @set_maintenance_work_interval: Set maintenance work interval. + * @get_maintenance_work_interval: Get maintenance work interval. + * @send_cpu_message: Send message to F/W. If the message is timedout, the driver will eventually + * reset the device. The timeout is passed as an argument. If it is 0 the + * timeout set is the default timeout for the specific ASIC. + * @ports_cancel_status_work: Cancel status work of all ports. + * @port_funcs: Functions called from common code for a specific port. + */ +struct hbl_cn_asic_funcs { + int (*core_init)(struct hbl_cn_device *hdev); + void (*core_fini)(struct hbl_cn_device *hdev); + u32 (*get_default_port_speed)(struct hbl_cn_device *hdev); + int (*phy_reset_macro)(struct hbl_cn_macro *cn_macro); + u16 (*phy_get_crc)(struct hbl_cn_device *hdev); + int (*set_req_qp_ctx)(struct hbl_cn_device *hdev, struct hbl_cni_req_conn_ctx_in *in, + struct hbl_cn_qp *qp); + int (*set_res_qp_ctx)(struct hbl_cn_device *hdev, struct hbl_cni_res_conn_ctx_in *in, + struct hbl_cn_qp *qp); + int (*user_wq_arr_set)(struct hbl_cn_device *hdev, struct hbl_cni_user_wq_arr_set_in *in, + struct hbl_cni_user_wq_arr_set_out *out, struct hbl_cn_ctx *ctx); + int (*user_set_app_params)(struct hbl_cn_device *hdev, + struct hbl_cni_set_user_app_params_in *in, + bool *modify_wqe_checkers, struct hbl_cn_ctx *ctx); + void (*user_get_app_params)(struct hbl_cn_device *hdev, + struct hbl_cni_get_user_app_params_in *in, + struct hbl_cni_get_user_app_params_out *out); + const char* (*get_phy_fw_name)(void); + void (*pre_sw_init)(struct hbl_cn_device *hdev); + int (*sw_init)(struct hbl_cn_device *hdev); + void (*sw_fini)(struct hbl_cn_device *hdev); + int (*macro_sw_init)(struct hbl_cn_macro *cn_macro); + void (*macro_sw_fini)(struct hbl_cn_macro *cn_macro); + int (*kernel_ctx_init)(struct hbl_cn_device *hdev, u32 asid); + void (*kernel_ctx_fini)(struct hbl_cn_device *hdev, u32 asid); + int (*ctx_init)(struct hbl_cn_ctx *ctx); + void (*ctx_fini)(struct hbl_cn_ctx *ctx); + int (*qp_read)(struct hbl_cn_device *hdev, struct hbl_cn_qp_info *qp_info, char *buf, + size_t bsize); + int (*wqe_read)(struct hbl_cn_device *hdev, char *buf, size_t bsize); + int (*phy_fw_load_all)(struct hbl_cn_device *hdev); + void (*set_en_data)(struct hbl_cn_device *hdev); + int (*request_irqs)(struct hbl_cn_device *hdev); + void (*free_irqs)(struct hbl_cn_device *hdev); + void (*synchronize_irqs)(struct hbl_cn_device *hdev); + void (*phy_dump_serdes_params)(struct hbl_cn_device *hdev, char *buf, size_t size); + u32 (*get_max_msg_sz)(struct hbl_cn_device *hdev); + char *(*qp_syndrome_to_str)(u32 syndrome); + void (*app_params_clear)(struct hbl_cn_device *hdev); + int (*inject_rx_err)(struct hbl_cn_device *hdev, u8 drop_percent); + bool (*is_encap_supported)(struct hbl_cn_device *hdev, + struct hbl_cni_user_encap_set_in *in); + int (*set_wqe_index_checker)(struct hbl_cn_device *hdev, u32 enable); + int (*get_wqe_index_checker)(struct hbl_cn_device *hdev); + int (*set_static_properties)(struct hbl_cn_device *hdev); + int (*set_dram_properties)(struct hbl_cn_device *hdev); + void (*late_init)(struct hbl_cn_device *hdev); + void (*late_fini)(struct hbl_cn_device *hdev); + int (*get_hw_block_handle)(struct hbl_cn_device *hdev, u64 address, u64 *handle); + int (*get_hw_block_addr)(struct hbl_cn_device *hdev, u64 handle, u64 *addr, u64 *size); + int (*create_mem_ctx)(struct hbl_cn_ctx *ctx, u32 pasid, u64 page_tbl_addr); + void (*destroy_mem_ctx)(struct hbl_cn_ctx *ctx, u32 pasid, u64 page_tbl_addr); + int (*phy_speed_rate_write)(struct hbl_cn_device *hdev, u32 speed_rate_id); + u32 (*phy_speed_rate_read)(struct hbl_cn_device *hdev); + int (*phy_training_type_write)(struct hbl_cn_device *hdev, u32 training_type_id); + u32 (*phy_training_type_read)(struct hbl_cn_device *hdev); + void *(*dma_alloc_coherent)(struct hbl_cn_device *hdev, size_t size, dma_addr_t *dma_handle, + gfp_t flag); + void (*dma_free_coherent)(struct hbl_cn_device *hdev, size_t size, void *cpu_addr, + dma_addr_t dma_addr); + void *(*dma_pool_zalloc)(struct hbl_cn_device *hdev, size_t size, gfp_t mem_flags, + dma_addr_t *dma_handle); + void (*dma_pool_free)(struct hbl_cn_device *hdev, void *vaddr, dma_addr_t dma_addr); + void (*set_maintenance_work_interval)(struct hbl_cn_device *hdev, u32 value); + u32 (*get_maintenance_work_interval)(struct hbl_cn_device *hdev); + int (*send_cpu_message)(struct hbl_cn_device *hdev, u32 *msg, u16 len, u32 timeout, + u64 *result); + void (*ports_cancel_status_work)(struct hbl_cn_device *hdev); + struct hbl_cn_asic_port_funcs *port_funcs; +}; + +/** + * struct hbl_cn_tx_taps - holds the Tx taps values for a specific lane (tx_pre2, tx_pre1, tx_main, + * tx_post1 and tx_post2). + * @pam4_taps: taps for PAM4 mode. + * @nrz_taps: taps for NRZ mode. + */ +struct hbl_cn_tx_taps { + s32 pam4_taps[PHY_TX_TAPS_NUM]; + s32 nrz_taps[PHY_TX_TAPS_NUM]; +}; + +/** + * struct hbl_cn_ber_info - holds the last calculated BER info for a specific lane. + * the BER (bit error rate) value is represented by "integer.frac * e ^ -exp". + * @integer: the integer part of the BER value. + * @frac: the fracture part of the BER value. + * @exp: the exponent part of the BER value. + * @valid: is info valid. + */ +struct hbl_cn_ber_info { + u64 integer; + u64 frac; + u8 exp; + u8 valid; +}; + +/** + * struct hbl_cn_macro - manage specific macro that holds multiple engines. + * @hdev: habanalabs device structure. + * @rec_link_sts: link status bits as received from the MAC_REC_STS0 register. + * @phy_macro_needs_reset: true if the PHY macro needs to be reset. + * @idx: index of the macro. + */ +struct hbl_cn_macro { + struct hbl_cn_device *hdev; + u32 rec_link_sts; + u8 phy_macro_needs_reset; + u8 idx; +}; + +/** + * struct hbl_cn_port - manage specific port common structure. + * @hdev: habanalabs device structure. + * @cn_specific: pointer to an ASIC specific port structure. + * @cn_macro: pointer to the manage structure of the containing macro. + * @wq: general purpose WQ for low/medium priority jobs like link status detection or status fetch. + * @qp_wq: QP work queue for handling the reset or destruction of QPs. + * @wq_arr_props: array per type of WQ array properties. + * @ev_dqs: per ASID/App events dispatch queues managed by the driver. + * @num_of_allocated_qps: the currently number of allocated qps for this port. + * @link_status_work: work for checking port link status. + * @fw_status_work: work for sending port status to the FW. + * @control_lock: protects from a race between port open/close and other stuff that might run in + * parallel (such as event handling). + * @cnt_lock: protects the counters from concurrent reading. Needed for SPMU and XPCS91 counters. + * @qp_ids: xarray to hold all QP IDs. + * @db_fifo_ids: Allocated doorbell fifo IDs. + * @cq_ids: xarray to hold all CQ IDs. + * @encap_ids: Allocated encapsulation IDs. + * @fw_tuning_limit_ts: time stamp of FW tuning time limit. + * @correctable_errors_cnt: count the correctable FEC blocks. + * @uncorrectable_errors_cnt: count the uncorrectable FEC blocks. + * @port: port index. + * @speed: the bandwidth of the port in Mb/s. + * @pflags: private flags bit mask. + * @retry_cnt: counts the number of retries during link establishment. + * @pcs_local_fault_cnt: counter of PCS link local errors since last F/W configuration. These errors + * can appear even when link is up. + * @pcs_remote_fault_cnt: counter of PCS link remote errors since last F/W configuration. These + * errors can appear even when link is up. + * @pcs_remote_fault_seq_cnt: counter for number of PCS remote faults in a row, or in other words + * the length of their sequence. + * @pcs_remote_fault_reconfig_cnt: counter of PHY reconfigurations due to remote fault errors since + * last port open. + * @pcs_link_restore_cnt: counter of PCS link momentary loss (glitch) since last F/W configuration. + * @data_rate: data rate according to speed and number of lanes. + * @num_of_wq_entries: number of entries configured in the port WQ. + * @num_of_wqs: number of WQs configured for this port. + * @qp_idx_offset: offset to the base QP index of this port for generic QPs. + * @port_toggle_cnt: counts number of times port link status was toggled since PHY init. + * @port_toggle_cnt_prev: holds the value of port_toggle_cnt in the last pcs link check. + * @cong_q_err_cnt: error count of congestion queue error. + * @port_open: true if the port H/W is initialized, false otherwise. + * @mac_loopback: true if port in MAC loopback mode, false otherwise. + * @pfc_enable: true if this port supports Priority Flow Control, false otherwise. + * @sw_initialized: true if the basic SW initialization was completed successfully for this port, + * false otherwise. + * @phy_fw_tuned: true if F/W is tuned, false otherwise. + * @phy_func_mode_en: true if PHY is set to functional mode, false otherwise. + * @pcs_link: true if the port has PCS link, false otherwise. + * @eq_pcs_link: true if the port got PCS link in the EQ, false otherwise.. + * @link_eqe: cache link status EQE. Dispatched to user for internal ports only. + * @auto_neg_enable: true if this port supports Autonegotiation, false otherwise. + * @auto_neg_resolved: true if Autonegotiation was completed for this port, false otherwise. + * @auto_neg_skipped: true if Autonegotiation was skipped for this port, false otherwise. + * @eth_enable: is Ethernet traffic enabled in addition to RDMA. + * @ccq_enable: true if the CCQ was initialized successfully for this port, false otherwise. + * @set_app_params: set_app_params operation was executed by the user. This is a mandatory step in + * order to initialize the uAPI. + * @disabled: true if this port is disabled, i.e. need to block its initialization, false otherwise. + * @bp_enable: true if WQ back-pressure was enabled, false otherwise. + * @eq_handler_enable: true if event queue events are handled, false otherwise. + */ +struct hbl_cn_port { + struct hbl_cn_device *hdev; + void *cn_specific; + struct hbl_cn_macro *cn_macro; + struct workqueue_struct *wq; + struct workqueue_struct *qp_wq; + struct hbl_cn_wq_array_properties wq_arr_props[HBL_CNI_USER_WQ_TYPE_MAX]; + struct hbl_cn_ev_dqs ev_dqs; + struct hbl_cn_reset_tracker *reset_tracker; + atomic_t num_of_allocated_qps; + struct delayed_work link_status_work; + struct delayed_work fw_status_work; + /* protects from a race between port open/close and event handling */ + struct mutex control_lock; + /* protects the counters from concurrent reading */ + struct mutex cnt_lock; + struct xarray qp_ids; + struct xarray db_fifo_ids; + struct xarray cq_ids; + struct xarray encap_ids; + struct hbl_cn_eqe link_eqe; + ktime_t fw_tuning_limit_ts; + u64 ccq_handle; + u64 ccq_pi_handle; + u64 correctable_errors_cnt; + u64 uncorrectable_errors_cnt; + u32 port; + u32 speed; + u32 pflags; + u32 retry_cnt; + u32 pcs_local_fault_cnt; + u32 pcs_remote_fault_seq_cnt; + u32 pcs_remote_fault_reconfig_cnt; + u32 pcs_remote_fault_cnt; + u32 pcs_link_restore_cnt; + u32 data_rate; + u32 num_of_wq_entries; + u32 num_of_wqs; + u32 qp_idx_offset; + u32 swqe_size; + u32 port_toggle_cnt; + u32 port_toggle_cnt_prev; + u32 cong_q_err_cnt; + u8 port_open; + u8 mac_loopback; + u8 pfc_enable; + u8 sw_initialized; + u8 phy_fw_tuned; + u8 phy_func_mode_en; + u8 pcs_link; + u8 eq_pcs_link; + u8 auto_neg_enable; + u8 auto_neg_resolved; + u8 auto_neg_skipped; + u8 eth_enable; + u8 ccq_enable; + u8 set_app_params; + u8 disabled; + u8 bp_enable; + u8 eq_handler_enable; +}; + +/** + * struct hbl_cn_comp_vm_info - Compute virtual memory info. + * @vm_info: VM info. + * @vm_handle: VM handle. + */ +struct hbl_cn_comp_vm_info { + struct hbl_cn_vm_info vm_info; + u64 vm_handle; +}; + +/** + * struct hbl_cn_ctx - user context common structure. + * @hdev: device structure. + * @user_vm_info: info of user compute VM. + * @driver_vm_info: info of driver compute VM. + * @lock: protects context from specific concurrent operations. + * @comp_handle: compute handle. + * @asid: ASID for accessing driver memory. + * @user_asid: ASID for accessing user memory: + */ +struct hbl_cn_ctx { + struct hbl_cn_device *hdev; + struct hbl_cn_comp_vm_info user_vm_info; + struct hbl_cn_comp_vm_info driver_vm_info; + /* protects context from specific concurrent operations */ + struct mutex lock; + u64 comp_handle; + u32 asid; + u32 user_asid; +}; + +/** + * struct hbl_cn_properties - ASIC specific properties. + * @phy_base_addr: base address of the PHY. + * @nic_drv_addr: the base address of the memory in the device + * @nic_drv_size: the size of the memory in the device + * @nic_drv_base_addr: the aligned base address of the memory in the device + * @nic_drv_end_addr: the aligned end address of the memory in the device + * @txs_base_addr: base address of the ports timer cfg + * @txs_base_size: size of the ports timer cfg + * @wq_base_addr: base address of send and receive work-q + * @wq_base_size: base address of send and receive work-q + * @tmr_base_addr: base address of the macros timer cfg + * @tmr_base_size: size of the macros timer cfg + * @req_qpc_base_addr: the base address of a requester (sender) QP context buffer + * @req_qpc_base_size: the size of a requester (sender) QP context buffer + * @res_qpc_base_addr: the base address of a responder (receiver) QP context buffer + * @res_qpc_base_size: the size of a requester (receiver) QP context buffer + * @max_hw_qps_num: maximum number of QPs supported by HW. + * @max_qps_num: maximum number of QPs to allocate. + * @max_hw_user_wqs_num: maximum number of WQ entries supported by HW. + * @min_hw_user_wqs_num: minimum number of WQ entries supported by HW. + * @macro_cfg_size: the size of the macro configuration space. + * @rwqe_size: receive WQE size. + * @user_cq_min_entries: minimum number of supported user CQ entries. + * @user_cq_max_entries: max number of supported user CQ entries. + * @max_frm_len: maximum allowed frame length. + * @raw_elem_size: size of element in raw buffers. + * @status_packet_size: size of the status packet we are going to send to F/W. + * @cqe_size: Size of the Completion queue Entry. + * @max_qp_error_syndromes: maximum number of QP error syndromes. + * @max_raw_mtu: maximum MTU size for raw packets. + * @min_raw_mtu: minimum MTU size for raw packets. + * @clk: clock frequency in MHz. + * @force_cq: all CQs should be enabled regardless of the ports link mask. + * @max_num_of_lanes: maximum number of lanes supported by ASIC. + * @max_num_of_ports: maximum number of ports supported by ASIC. + * @num_of_macros: number of macros supported by ASIC. + * @max_cqs: maximum number of completion queues. + * @max_ccqs: maximum number of congestion control completion queues. + * @max_db_fifos: maximum number of DB fifos. + * @max_wq_arr_type: maximum WQ array type number. + * @is_phy_fw_binary: True if phy FW is in binary format, false otherwise. + */ +struct hbl_cn_properties { + u64 phy_base_addr; + u64 nic_drv_addr; + u64 nic_drv_size; + u64 nic_drv_base_addr; + u64 nic_drv_end_addr; + u64 txs_base_addr; + u64 txs_base_size; + u64 wq_base_addr; + u64 wq_base_size; + u64 tmr_base_addr; + u64 tmr_base_size; + u64 req_qpc_base_addr; + u64 req_qpc_base_size; + u64 res_qpc_base_addr; + u64 res_qpc_base_size; + u32 max_hw_qps_num; + u32 max_qps_num; + u32 max_hw_user_wqs_num; + u32 min_hw_user_wqs_num; + u32 macro_cfg_size; + u32 rwqe_size; + u32 user_cq_min_entries; + u32 user_cq_max_entries; + u32 max_frm_len; + u32 raw_elem_size; + u32 status_packet_size; + u32 cqe_size; + u32 max_qp_error_syndromes; + u16 max_raw_mtu; + u16 min_raw_mtu; + u16 clk; + u8 force_cq; + u8 max_num_of_lanes; + u8 max_num_of_ports; + u8 num_of_macros; + u8 max_cqs; + u8 max_ccqs; + u8 max_db_fifos; + u8 max_wq_arr_type; + u8 is_phy_fw_binary; +}; + +/** + * struct hbl_cn_device - habanalabs CN device structure. + * @pdev: pointer to PCI device. + * @dev: related kernel basic device structure. + * @cpucp_info: FW info. + * @asic_funcs: ASIC specific functions that can be called from common code. + * @phy_tx_taps: array that holds all PAM4 Tx taps of all lanes. + * @phy_ber_info: array that holds last calculated BER info of all lanes. + * @cn_ports: pointer to an array that holds all ports manage common structures. + * @cn_macros: pointer to an array that holds all macros manage structures. + * @wq_arrays_pool: memory pool for WQ arrays on HBM. + * @cn_props: fixed NIC properties. + * @asic_specific: ASIC specific information to use only from ASIC files. + * @cn_aux_dev: pointer to CN auxiliary device. + * @en_aux_dev: Ethernet auxiliary device. + * @ib_aux_dev: InfiniBand auxiliary device. + * @qp_info: details of a QP to read via debugfs. + * @wqe_info: details of a WQE to read via debugfs. + * @ctx: user context. + * @hw_access_lock: protects from HW access during reset flows. + * @asic_type: ASIC specific type. + * @status_cmd: status packet command from FW. + * @qp_reset_mode: Graceful/fast reset. + * @fw_ver: FW version. + * @mem_ids: an xarray holding all active memory handles. + * @ctrl_op_mask: mask of supported control operations. + * @ports_mask: mask of available ports. + * @ext_ports_mask: mask of external ports (subset of ports_mask). + * @phys_auto_neg_mask: mask of ports with Autonegotiation availability. + * @auto_neg_mask: mask of port with Autonegotiation enabled. + * @mac_loopback: enable MAC loopback on specific ports. + * @dram_size: available DRAM size. + * @mmap_type_flag: flag to indicate NIC MMAP type. + * @pol_tx_mask: bitmap of tx polarity for all lanes. + * @pol_rx_mask: bitmap of rx polarity for all lanes. + * @device_timeout: device access timeout in usec. + * @mac_lane_remap: MAC to PHY lane mapping. + * @pending_reset_long_timeout: Long timeout for pending hard reset to finish in seconds. + * @kernel_asid: kernel ASID. + * @qp_drain_time: drain waiting time in seconds after QP invalidation. + * @card_location: the OAM number in the HLS (relevant for PMC card type). + * @phy_port_to_dump: the port which its serdes params will be dumped. + * @fw_major_version: major version of current loaded preboot. + * @fw_minor_version: minor version of current loaded preboot. + * @qpc_cache_inv_timeout: timeout for QPC cache invalidation. + * @fw_app_cpu_boot_dev_sts0: bitmap representation of application security status reported by FW, + * bit description can be found in CPU_BOOT_DEV_STS0. + * @fw_app_cpu_boot_dev_sts1: bitmap representation of application security status reported by FW, + * bit description can be found in CPU_BOOT_DEV_STS1. + * @accumulate_fec_duration: Time (ms) to accumulate FEC errors for. + * @id: device ID. + * @phy_calc_ber_wait_sec: time in seconds to wait before BER calculation. + * @cache_line_size: device cache line size. + * @operational: is device operational. + * @in_reset: is device under reset. + * @fw_reset: is device under reset which was initiated by FW. + * @in_teardown: is device under teardown. + * @is_initialized: is device initialized. + * @pldm: is running on Palladium setup. + * @skip_phy_init: avoid writing/reading PHY registers. + * @load_phy_fw: true if the PHY F/W should be loaded, false otherwise. + * @cpucp_fw: is CPUCP FW enabled. + * @supports_coresight: is CoreSight supported. + * @use_fw_serdes_info: true if FW serdes values should be used, false if hard coded values should + * be used. + * @phy_config_fw: true if the PHY F/W should be configured, false otherwise. The PHY F/W should be + * configured on ASIC only, in contrary to Palladium. + * @mmu_bypass: use MMU bypass for allocated data structures (false is used only for debug mode). + * @wq_arrays_pool_enable: Use device memory pool for WQ arrays. + * @poll_enable: enable polling mode rather than interrupt mode. + * @has_eq: is event queue is supported. + * @skip_mac_reset: skip MAC reset. + * @skip_mac_cnts: Used to skip MAC counters if not supported. + * @skip_odd_ports_cfg_lock: do not lock the odd ports when acquiring the cfg lock for all ports. + * @ib_support: InfiniBand support. + * @mmu_enable: is MMU enabled. + * @eth_loopback: enable hack in hbl_en_handle_tx to test eth traffic. + * @lanes_per_port: number of physical lanes per port. + * @is_eth_aux_dev_initialized: true if the eth auxiliary device is initialized. + * @is_ib_aux_dev_initialized: true if the IB auxiliary device is initialized. + * @rx_drop_percent: RX packet drop percentage set via debugfs. + * @rand_status: randomize the FW status counters (used for testing). + * @status_period: periodic time in secs at which FW expects status packet. + * @phy_regs_print: print all PHY registers reads/writes. + * @phy_calc_ber: show PHY BER statistics during power-up. + * @is_decap_disabled: true if need to skip decapsulation, false otherwise. + * @phy_set_nrz: Set the PHY to NRZ mode (25Gbps speed). + * @skip_phy_default_tx_taps_cfg: Used to skip re-configuration of the default tx_taps. + * @cpucp_checkers_shift: CPUCP checkers flags shift. + * @mixed_qp_wq_types: Using mixed QP WQ types is supported. + * @hw_stop_during_teardown: Stopping the HW should take place during device teardown. + * @qp_wait_for_idle: Wait for QP to be idle. + * @hw_invalid_while_teardown: HW is unavailable during device teardown. + * @umr_support: device supports UMR. + * @ib_device_opened: Is true if IB deviced has been opened. + * @multi_ctx_support: device supports multiple contexts. + * @skip_phy_pol_cfg: Used to prevent overwriting polarity cfg after setting them via debugfs. + * @cc_support: device supports congestion control. + * @phy_force_first_tx_taps_cfg: start with first Tx taps config in PHY power-up. + */ +struct hbl_cn_device { + struct pci_dev *pdev; + struct device *dev; + struct hbl_cn_cpucp_info *cpucp_info; + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_tx_taps *phy_tx_taps; + struct hbl_cn_ber_info *phy_ber_info; + struct hbl_cn_port *cn_ports; + struct hbl_cn_macro *cn_macros; + struct gen_pool *wq_arrays_pool; + struct hbl_cn_properties cn_props; + void *asic_specific; + char *fw_ver; + struct hbl_aux_dev *cn_aux_dev; + struct hbl_aux_dev en_aux_dev; + struct hbl_aux_dev ib_aux_dev; + struct hbl_cn_qp_info qp_info; + struct hbl_cn_wqe_info wqe_info; + struct hbl_cn_ctx *ctx; + /* protects from HW access during reset flows */ + struct mutex hw_access_lock; + enum hbl_cn_asic_type asic_type; + enum hbl_cn_status_cmd status_cmd; + enum hbl_cn_qp_reset_mode qp_reset_mode; + struct xarray mem_ids; + u64 ctrl_op_mask; + u64 ports_mask; + u64 ext_ports_mask; + u64 phys_auto_neg_mask; + u64 auto_neg_mask; + u64 mac_loopback; + u64 dram_size; + u64 mmap_type_flag; + u64 pol_tx_mask; + u64 pol_rx_mask; + u32 device_timeout; + u32 *mac_lane_remap; + u32 pending_reset_long_timeout; + u32 kernel_asid; + u32 qp_drain_time; + u32 card_location; + u32 phy_port_to_dump; + u32 fw_major_version; + u32 fw_minor_version; + u32 qpc_cache_inv_timeout; + u32 fw_app_cpu_boot_dev_sts0; + u32 fw_app_cpu_boot_dev_sts1; + u32 accumulate_fec_duration; + u16 id; + u16 phy_calc_ber_wait_sec; + u16 cache_line_size; + u8 operational; + u8 in_reset; + u8 fw_reset; + u8 in_teardown; + u8 is_initialized; + u8 pldm; + u8 skip_phy_init; + u8 load_phy_fw; + u8 cpucp_fw; + u8 supports_coresight; + u8 use_fw_serdes_info; + u8 phy_config_fw; + u8 mmu_bypass; + u8 wq_arrays_pool_enable; + u8 poll_enable; + u8 has_eq; + u8 skip_mac_reset; + u8 skip_mac_cnts; + u8 skip_odd_ports_cfg_lock; + u8 ib_support; + u8 mmu_enable; + u8 eth_loopback; + u8 lanes_per_port; + u8 is_eth_aux_dev_initialized; + u8 is_ib_aux_dev_initialized; + u8 rx_drop_percent; + u8 rand_status; + u8 status_period; + u8 phy_regs_print; + u8 phy_calc_ber; + u8 is_decap_disabled; + u8 phy_set_nrz; + u8 skip_phy_default_tx_taps_cfg; + u8 cpucp_checkers_shift; + u8 mixed_qp_wq_types; + u8 hw_stop_during_teardown; + u8 qp_wait_for_idle; + u8 hw_invalid_while_teardown; + u8 umr_support; + u8 ib_device_opened; + u8 multi_ctx_support; + u8 skip_phy_pol_cfg; + u8 cc_support; + u8 phy_force_first_tx_taps_cfg; +}; + +static inline void hbl_cn_strtolower(char *str) +{ + while (*str) { + *str = tolower(*str); + str++; + } +} + +int hbl_cn_dev_init(struct hbl_cn_device *hdev); +void hbl_cn_dev_fini(struct hbl_cn_device *hdev); +bool hbl_cn_comp_device_operational(struct hbl_cn_device *hdev); +void hbl_cn_spmu_get_stats_info(struct hbl_cn_port *cn_port, struct hbl_cn_stat **stats, + u32 *n_stats); +int hbl_cn_reserve_dva_block(struct hbl_cn_ctx *ctx, u64 size, u64 *dva); +void hbl_cn_unreserve_dva_block(struct hbl_cn_ctx *ctx, u64 dva, u64 size); +int hbl_cn_get_hw_block_handle(struct hbl_cn_device *hdev, u64 address, u64 *handle); +int hbl_cn_send_cpucp_packet(struct hbl_cn_device *hdev, u32 port, enum cpucp_packet_id pkt_id, + int val); +int hbl_cn_internal_port_init_locked(struct hbl_cn_port *cn_port); +void hbl_cn_internal_port_fini_locked(struct hbl_cn_port *cn_port); +int hbl_cn_phy_init(struct hbl_cn_port *cn_port); +void hbl_cn_phy_fini(struct hbl_cn_port *cn_port); +void hbl_cn_phy_port_reconfig(struct hbl_cn_port *cn_port); +int hbl_cn_phy_has_binary_fw(struct hbl_cn_device *hdev); +void hbl_cn_phy_set_fw_polarity(struct hbl_cn_device *hdev); +void hbl_cn_phy_set_port_status(struct hbl_cn_port *cn_port, bool up); +int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 out_data[], u32 *num_out_data); +int hbl_cn_qp_modify(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, + enum hbl_cn_qp_state new_state, void *params); +u32 hbl_cn_get_max_qp_id(struct hbl_cn_port *cn_port); +bool hbl_cn_is_port_open(struct hbl_cn_port *cn_port); +u32 hbl_cn_get_pflags(struct hbl_cn_port *cn_port); +u8 hbl_cn_get_num_of_digits(u64 num); +void hbl_cn_reset_stats_counters(struct hbl_cn_device *hdev); +void hbl_cn_reset_ports_toggle_counters(struct hbl_cn_device *hdev); +void hbl_cn_get_self_hw_block_handle(struct hbl_cn_device *hdev, u64 address, u64 *handle); +u32 hbl_cn_hw_block_handle_to_addr32(struct hbl_cn_device *hdev, u64 handle); + +struct hbl_cn_ev_dq *hbl_cn_asid_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 asid); +struct hbl_cn_ev_dq *hbl_cn_dbn_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 dbn, + struct hbl_cn_device *hdev); +struct hbl_cn_ev_dq *hbl_cn_qpn_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 qpn); +struct hbl_cn_dq_qp_info *hbl_cn_get_qp_info(struct hbl_cn_ev_dqs *ev_dqs, u32 qpn); +struct hbl_cn_ev_dq *hbl_cn_cqn_to_dq(struct hbl_cn_ev_dqs *ev_dqs, + u32 cqn, struct hbl_cn_device *hdev); +struct hbl_cn_ev_dq *hbl_cn_ccqn_to_dq(struct hbl_cn_ev_dqs *ev_dqs, u32 ccqn, + struct hbl_cn_device *hdev); + +int hbl_cn_reserve_wq_dva(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u64 wq_arr_size, + u32 type, u64 *dva); +void hbl_cn_unreserve_wq_dva(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type); +u32 hbl_cn_get_wq_array_type(bool is_send); + +void hbl_cn_track_port_reset(struct hbl_cn_port *cn_port, u32 syndrome); +int hbl_cn_get_reg_pcie_addr(struct hbl_cn_device *hdev, u8 bar_id, u32 reg, u64 *pci_addr); +void hbl_cn_ports_cancel_status_work(struct hbl_cn_device *hdev); + +/* Memory related functions */ +int hbl_cn_mem_alloc(struct hbl_cn_ctx *ctx, struct hbl_cn_mem_data *mem_data); +int hbl_cn_mem_destroy(struct hbl_cn_device *hdev, u64 handle); +struct hbl_cn_mem_buf *hbl_cn_mem_buf_get(struct hbl_cn_device *hdev, u64 handle); +int hbl_cn_mem_buf_put(struct hbl_cn_mem_buf *buf); +int hbl_cn_mem_buf_put_handle(struct hbl_cn_device *hdev, u64 handle); +void hbl_cn_mem_init(struct hbl_cn_device *hdev); +void hbl_cn_mem_fini(struct hbl_cn_device *hdev); + +u32 hbl_cn_dram_readl(struct hbl_cn_device *hdev, u64 addr); +void hbl_cn_dram_writel(struct hbl_cn_device *hdev, u32 val, u64 addr); +u32 hbl_cn_rreg(struct hbl_cn_device *hdev, u32 reg); +void hbl_cn_wreg(struct hbl_cn_device *hdev, u32 reg, u32 val); +void hbl_cn_get_frac_info(u64 numerator, u64 denominator, u64 *integer, u64 *exp); + +bool hbl_cn_eq_dispatcher_is_empty(struct hbl_cn_ev_dq *dq); +bool hbl_cn_eq_dispatcher_is_full(struct hbl_cn_ev_dq *dq); +void hbl_cn_eq_dispatcher_init(struct hbl_cn_port *cn_port); +void hbl_cn_eq_dispatcher_fini(struct hbl_cn_port *cn_port); +void hbl_cn_eq_dispatcher_reset(struct hbl_cn_port *cn_port); +int hbl_cn_eq_dispatcher_associate_dq(struct hbl_cn_port *cn_port, u32 asid); +int hbl_cn_eq_dispatcher_dissociate_dq(struct hbl_cn_port *cn_port, u32 asid); +int hbl_cn_eq_dispatcher_register_qp(struct hbl_cn_port *cn_port, u32 asid, u32 qp_id); +int hbl_cn_eq_dispatcher_unregister_qp(struct hbl_cn_port *cn_port, u32 qp_id); +int hbl_cn_eq_dispatcher_register_cq(struct hbl_cn_port *cn_port, u32 asid, u32 cqn); +int hbl_cn_eq_dispatcher_unregister_cq(struct hbl_cn_port *cn_port, u32 cqn); +int hbl_cn_eq_dispatcher_register_db(struct hbl_cn_port *cn_port, u32 asid, u32 dbn); +int hbl_cn_eq_dispatcher_unregister_db(struct hbl_cn_port *cn_port, u32 dbn); +int hbl_cn_eq_dispatcher_dequeue(struct hbl_cn_port *cn_port, u32 asid, + struct hbl_cn_eqe *eqe, bool is_default); +int hbl_cn_eq_dispatcher_register_ccq(struct hbl_cn_port *cn_port, u32 asid, u32 ccqn); +int hbl_cn_eq_dispatcher_unregister_ccq(struct hbl_cn_port *cn_port, u32 asid, u32 ccqn); +int hbl_cn_eq_dispatcher_enqueue(struct hbl_cn_port *cn_port, const struct hbl_cn_eqe *eqe); +int hbl_cn_eq_dispatcher_enqueue_bcast(struct hbl_cn_port *cn_port, const struct hbl_cn_eqe *eqe); +void hbl_cn_eq_handler(struct hbl_cn_port *cn_port); +int hbl_cn_alloc_ring(struct hbl_cn_device *hdev, struct hbl_cn_ring *ring, int elem_size, + int count); +void hbl_cn_free_ring(struct hbl_cn_device *hdev, struct hbl_cn_ring *ring); + +struct hbl_cn_user_cq *hbl_cn_user_cq_get(struct hbl_cn_port *cn_port, u8 cq_id); +int hbl_cn_user_cq_put(struct hbl_cn_user_cq *user_cq); +bool hbl_cn_is_ibdev(struct hbl_cn_device *hdev); +void hbl_cn_hard_reset_prepare(struct hbl_aux_dev *cn_aux_dev, bool fw_reset, bool in_teardown); +int hbl_cn_send_port_cpucp_status(struct hbl_aux_dev *aux_dev, u32 port, u8 cmd, u8 period); +void hbl_cn_fw_status_work(struct work_struct *work); +int hbl_cn_get_src_ip(struct hbl_cn_port *cn_port, u32 *src_ip); +void hbl_cn_ctx_resources_destroy(struct hbl_cn_device *hdev, struct hbl_cn_ctx *ctx); + +int __hbl_cn_ports_reopen(struct hbl_cn_device *hdev); +void __hbl_cn_hard_reset_prepare(struct hbl_cn_device *hdev, bool fw_reset, bool in_teardown); +void __hbl_cn_stop(struct hbl_cn_device *hdev); + +/* DMA memory allocations */ +void *__hbl_cn_dma_alloc_coherent(struct hbl_cn_device *hdev, size_t size, dma_addr_t *dma_handle, + gfp_t flag, const char *caller); +void __hbl_cn_dma_free_coherent(struct hbl_cn_device *hdev, size_t size, void *cpu_addr, + dma_addr_t dma_addr, const char *caller); +void *__hbl_cn_dma_pool_zalloc(struct hbl_cn_device *hdev, size_t size, gfp_t mem_flags, + dma_addr_t *dma_handle, const char *caller); +void __hbl_cn_dma_pool_free(struct hbl_cn_device *hdev, void *vaddr, dma_addr_t dma_addr, + const char *caller); + +#endif /* HABANALABS_CN_H_ */ diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c new file mode 100644 index 000000000000..47eedd27f36e --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c @@ -0,0 +1,220 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#define pr_fmt(fmt) "habanalabs_cn: " fmt + +#include "hbl_cn.h" + +#include <linux/module.h> +#include <linux/auxiliary_bus.h> +#include <linux/sched/clock.h> + +#define HBL_DRIVER_AUTHOR "HabanaLabs Kernel Driver Team" + +#define HBL_DRIVER_DESC "HabanaLabs AI accelerators Core Network driver" + +MODULE_AUTHOR(HBL_DRIVER_AUTHOR); +MODULE_DESCRIPTION(HBL_DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* QP drain time in seconds */ +#define HBL_CN_QP_DRAIN_TIME 5 + +static bool poll_enable; +static uint qp_drain_time = HBL_CN_QP_DRAIN_TIME; + +module_param(poll_enable, bool, 0444); +MODULE_PARM_DESC(poll_enable, + "Enable driver in polling mode rather than IRQ (0 = no, 1 = yes, default: no)"); + +module_param(qp_drain_time, uint, 0444); +MODULE_PARM_DESC(qp_drain_time, "QP drain time in seconds after QP invalidation (default: 2)"); + +static int hdev_init(struct hbl_aux_dev *aux_dev) +{ + struct hbl_cn_aux_data *aux_data = aux_dev->aux_data; + struct hbl_cn_device *hdev; + int rc; + + hdev = kzalloc(sizeof(*hdev), GFP_KERNEL); + if (!hdev) + return -ENOMEM; + + hdev->cpucp_info = kzalloc(sizeof(*hdev->cpucp_info), GFP_KERNEL); + if (!hdev->cpucp_info) { + rc = -ENOMEM; + goto free_hdev; + } + + aux_dev->priv = hdev; + hdev->cn_aux_dev = aux_dev; + hdev->pdev = aux_data->pdev; + hdev->dev = aux_data->dev; + hdev->asic_type = aux_data->asic_type; + hdev->pending_reset_long_timeout = aux_data->pending_reset_long_timeout; + hdev->pldm = aux_data->pldm; + hdev->skip_phy_init = aux_data->skip_phy_init; + hdev->cpucp_fw = aux_data->cpucp_fw; + hdev->load_phy_fw = aux_data->load_phy_fw; + hdev->supports_coresight = aux_data->supports_coresight; + hdev->use_fw_serdes_info = aux_data->use_fw_serdes_info; + hdev->fw_ver = aux_data->fw_ver; + hdev->id = aux_data->id; + hdev->dram_size = aux_data->dram_size; + hdev->ports_mask = aux_data->ports_mask; + hdev->ext_ports_mask = aux_data->ext_ports_mask; + hdev->phys_auto_neg_mask = aux_data->auto_neg_mask; + hdev->cache_line_size = aux_data->cache_line_size; + hdev->kernel_asid = aux_data->kernel_asid; + hdev->qp_drain_time = qp_drain_time; + hdev->card_location = aux_data->card_location; + hdev->mmu_enable = aux_data->mmu_enable; + hdev->lanes_per_port = aux_data->lanes_per_port; + hdev->device_timeout = aux_data->device_timeout; + hdev->fw_major_version = aux_data->fw_major_version; + hdev->fw_minor_version = aux_data->fw_minor_version; + hdev->fw_app_cpu_boot_dev_sts0 = aux_data->fw_app_cpu_boot_dev_sts0; + hdev->fw_app_cpu_boot_dev_sts1 = aux_data->fw_app_cpu_boot_dev_sts1; + hdev->cpucp_checkers_shift = aux_data->cpucp_checkers_shift; + hdev->accumulate_fec_duration = ACCUMULATE_FEC_STATS_DURATION_MS; + hdev->poll_enable = poll_enable; + + mutex_init(&hdev->hw_access_lock); + + return 0; + +free_hdev: + kfree(hdev); + return rc; +} + +static void hdev_fini(struct hbl_aux_dev *aux_dev) +{ + struct hbl_cn_device *hdev = aux_dev->priv; + + mutex_destroy(&hdev->hw_access_lock); + + kfree(hdev->cpucp_info); + kfree(hdev); + aux_dev->priv = NULL; +} + +static const struct auxiliary_device_id hbl_cn_id_table[] = { + { .name = "habanalabs.cn", }, + {}, +}; + +MODULE_DEVICE_TABLE(auxiliary, hbl_cn_id_table); + +static int hbl_cn_probe(struct auxiliary_device *adev, const struct auxiliary_device_id *id) +{ + struct hbl_aux_dev *aux_dev = container_of(adev, struct hbl_aux_dev, adev); + struct hbl_cn_aux_ops *aux_ops = aux_dev->aux_ops; + struct hbl_cn_device *hdev; + ktime_t timeout; + int rc; + + rc = hdev_init(aux_dev); + if (rc) { + dev_err(&aux_dev->adev.dev, "Failed to init hdev\n"); + return -EIO; + } + + hdev = aux_dev->priv; + + /* don't allow module unloading while it is attached */ + if (!try_module_get(THIS_MODULE)) { + dev_err(hdev->dev, "Failed to increment %s module refcount\n", + module_name(THIS_MODULE)); + rc = -EIO; + goto module_get_err; + } + + timeout = ktime_add_ms(ktime_get(), hdev->pending_reset_long_timeout * MSEC_PER_SEC); + while (1) { + aux_ops->hw_access_lock(aux_dev); + + /* if the device is operational, proceed to actual init while holding the lock in + * order to prevent concurrent hard reset + */ + if (aux_ops->device_operational(aux_dev)) + break; + + aux_ops->hw_access_unlock(aux_dev); + + if (ktime_compare(ktime_get(), timeout) > 0) { + dev_err(hdev->dev, "Timeout while waiting for hard reset to finish\n"); + rc = -EBUSY; + goto timeout_err; + } + + dev_notice_once(hdev->dev, "Waiting for hard reset to finish before probing CN\n"); + + msleep_interruptible(MSEC_PER_SEC); + } + + rc = hbl_cn_dev_init(hdev); + if (rc) { + dev_err(hdev->dev, "Failed to init CN device\n"); + goto dev_init_err; + } + + aux_ops->hw_access_unlock(aux_dev); + + return 0; + +dev_init_err: + aux_ops->hw_access_unlock(aux_dev); +timeout_err: + module_put(THIS_MODULE); +module_get_err: + hdev_fini(aux_dev); + + return rc; +} + +/* This function can be called only from the compute driver when deleting the aux bus, because we + * incremented the module refcount on probing. Hence no need to protect here from hard reset. + */ +static void hbl_cn_remove(struct auxiliary_device *adev) +{ + struct hbl_aux_dev *aux_dev = container_of(adev, struct hbl_aux_dev, adev); + struct hbl_cn_device *hdev = aux_dev->priv; + + if (!hdev) + return; + + hbl_cn_dev_fini(hdev); + + /* allow module unloading as now it is detached */ + module_put(THIS_MODULE); + + hdev_fini(aux_dev); +} + +static struct auxiliary_driver hbl_cn_driver = { + .name = "cn", + .probe = hbl_cn_probe, + .remove = hbl_cn_remove, + .id_table = hbl_cn_id_table, +}; + +static int __init hbl_cn_init(void) +{ + pr_info("loading driver\n"); + + return auxiliary_driver_register(&hbl_cn_driver); +} + +static void __exit hbl_cn_exit(void) +{ + auxiliary_driver_unregister(&hbl_cn_driver); + + pr_info("driver removed\n"); +} + +module_init(hbl_cn_init); +module_exit(hbl_cn_exit); diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c new file mode 100644 index 000000000000..93c97fad6a20 --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#include "hbl_cn.h" + +int hbl_cn_mem_alloc(struct hbl_cn_ctx *ctx, struct hbl_cn_mem_data *mem_data) +{ + return 0; +} + +int hbl_cn_mem_destroy(struct hbl_cn_device *hdev, u64 handle) +{ + return 0; +} + +struct hbl_cn_mem_buf *hbl_cn_mem_buf_get(struct hbl_cn_device *hdev, u64 handle) +{ + return NULL; +} + +int hbl_cn_mem_buf_put(struct hbl_cn_mem_buf *buf) +{ + return 0; +} + +int hbl_cn_mem_buf_put_handle(struct hbl_cn_device *hdev, u64 handle) +{ + return 0; +} + +void hbl_cn_mem_init(struct hbl_cn_device *hdev) +{ +} + +void hbl_cn_mem_fini(struct hbl_cn_device *hdev) +{ +} diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c new file mode 100644 index 000000000000..0d07cd78221d --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#include "hbl_cn.h" + +void hbl_cn_phy_set_port_status(struct hbl_cn_port *cn_port, bool up) +{ +} + +int hbl_cn_phy_init(struct hbl_cn_port *cn_port) +{ + return 0; +} + +void hbl_cn_phy_fini(struct hbl_cn_port *cn_port) +{ +} + +void hbl_cn_phy_port_reconfig(struct hbl_cn_port *cn_port) +{ +} + +int hbl_cn_phy_has_binary_fw(struct hbl_cn_device *hdev) +{ + return 0; +} + +void hbl_cn_phy_set_fw_polarity(struct hbl_cn_device *hdev) +{ +} diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c new file mode 100644 index 000000000000..9ddc23bf8194 --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#include "hbl_cn.h" + +int hbl_cn_qp_modify(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, + enum hbl_cn_qp_state new_state, void *params) +{ + return 0; +} diff --git a/include/linux/habanalabs/cpucp_if.h b/include/linux/habanalabs/cpucp_if.h index f316c8d0f3fc..7fe3f3e68b04 100644 --- a/include/linux/habanalabs/cpucp_if.h +++ b/include/linux/habanalabs/cpucp_if.h @@ -366,6 +366,27 @@ struct hl_eq_addr_dec_intr_data { __u8 pad[7]; }; +#define MAX_PORTS_PER_NIC 4 + +/* NIC interrupt type */ +enum hl_nic_interrupt_type { + NIC_INTR_NONE = 0, + NIC_INTR_TMR = 1, + NIC_INTR_RXB_CORE_SPI, + NIC_INTR_RXB_CORE_SEI, + NIC_INTR_QPC_RESP_ERR, + NIC_INTR_RXE_SPI, + NIC_INTR_RXE_SEI, + NIC_INTR_TXS, + NIC_INTR_TXE, +}; + +struct hl_eq_nic_intr_cause { + __le32 intr_type; /* enum hl_nic_interrupt_type */ + __le32 pad; + struct hl_eq_intr_cause intr_cause[MAX_PORTS_PER_NIC]; +}; + struct hl_eq_entry { struct hl_eq_header hdr; union { @@ -382,6 +403,7 @@ struct hl_eq_entry { struct hl_eq_hbm_sei_data sei_data; /* Gaudi2 HBM */ struct hl_eq_engine_arc_intr_data arc_data; struct hl_eq_addr_dec_intr_data addr_dec; + struct hl_eq_nic_intr_cause nic_intr_cause; __le64 data[7]; }; }; @@ -665,6 +687,9 @@ enum pq_init_status { * by the host to prevent replay attacks. public key and certificate also * provided as part of the FW response. * + * CPUCP_PACKET_NIC_SET_CHECKERS - + * Packet to set a specific NIC checker bit. + * * CPUCP_PACKET_MONITOR_DUMP_GET - * Get monitors registers dump from the CpuCP kernel. * The CPU will put the registers dump in the a buffer allocated by the driver @@ -673,6 +698,14 @@ enum pq_init_status { * data corruption in case of mismatched driver/FW versions. * Obsolete. * + * CPUCP_PACKET_NIC_WQE_ASID_SET - + * Packet to set nic wqe asid as the registers needed are privilege and to be configured by FW + * + * CPUCP_PACKET_NIC_ECC_INTRS_UNMASK - + * Packet to unmask NIC memory registers which are masked at preboot stage. As per the Arch + * team recommendation, NIC memory ECC errors should be unmasked after NIC driver is up and + * running + * * CPUCP_PACKET_GENERIC_PASSTHROUGH - * Generic opcode for all firmware info that is only passed to host * through the LKD, without getting parsed there. @@ -681,12 +714,28 @@ enum pq_init_status { * LKD sends FW indication whether device is free or in use, this indication is reported * also to the BMC. * + * CPUCP_PACKET_NIC_MAC_TX_RESET - + * Packet to reset the NIC MAC Tx. + * + * CPUCP_PACKET_NIC_WQE_ASID_UNSET - + * Packet to unset nic wqe asid as the registers needed are privilege and to be configured + * by FW. + * * CPUCP_PACKET_SOFT_RESET - * Packet to perform soft-reset. * * CPUCP_PACKET_INTS_REGISTER - * Packet to inform FW that queues have been established and LKD is ready to receive * EQ events. + * + * CPUCP_PACKET_NIC_INIT_TXS_MEM - + * Init TXS related memory in HBM. + * + * CPUCP_PACKET_NIC_INIT_TMR_MEM - + * Init HW timer related memory in HBM. + * + * CPUCP_PACKET_NIC_CLR_MEM - + * Clear NIC related memory in HBM. */ enum cpucp_packet_id { @@ -740,21 +789,24 @@ enum cpucp_packet_id { CPUCP_PACKET_RESERVED2, /* not used */ CPUCP_PACKET_SEC_ATTEST_GET, /* internal */ CPUCP_PACKET_INFO_SIGNED_GET, /* internal */ - CPUCP_PACKET_RESERVED4, /* not used */ + CPUCP_PACKET_NIC_SET_CHECKERS, /* internal */ CPUCP_PACKET_MONITOR_DUMP_GET, /* debugfs */ - CPUCP_PACKET_RESERVED5, /* not used */ - CPUCP_PACKET_RESERVED6, /* not used */ - CPUCP_PACKET_RESERVED7, /* not used */ + CPUCP_PACKET_RESERVED3, /* not used */ + CPUCP_PACKET_NIC_WQE_ASID_SET, /* internal */ + CPUCP_PACKET_NIC_ECC_INTRS_UNMASK, /* internal */ CPUCP_PACKET_GENERIC_PASSTHROUGH, /* IOCTL */ - CPUCP_PACKET_RESERVED8, /* not used */ + CPUCP_PACKET_RESERVED4, /* not used */ CPUCP_PACKET_ACTIVE_STATUS_SET, /* internal */ - CPUCP_PACKET_RESERVED9, /* not used */ - CPUCP_PACKET_RESERVED10, /* not used */ - CPUCP_PACKET_RESERVED11, /* not used */ - CPUCP_PACKET_RESERVED12, /* internal */ - CPUCP_PACKET_RESERVED13, /* internal */ + CPUCP_PACKET_NIC_MAC_TX_RESET, /* internal */ + CPUCP_PACKET_RESERVED5, /* not used */ + CPUCP_PACKET_NIC_WQE_ASID_UNSET, /* internal */ + CPUCP_PACKET_RESERVED6, /* internal */ + CPUCP_PACKET_RESERVED7, /* internal */ CPUCP_PACKET_SOFT_RESET, /* internal */ CPUCP_PACKET_INTS_REGISTER, /* internal */ + CPUCP_PACKET_NIC_INIT_TXS_MEM, /* internal */ + CPUCP_PACKET_NIC_INIT_TMR_MEM, /* internal */ + CPUCP_PACKET_NIC_CLR_MEM, /* internal */ CPUCP_PACKET_ID_MAX /* must be last */ }; @@ -862,6 +914,9 @@ struct cpucp_packet { /* For NIC requests */ __le32 port_index; + /* For NIC requests */ + __le32 macro_index; + /* For Generic packet sub index */ __le32 pkt_subidx; }; @@ -1058,6 +1113,21 @@ enum pvt_index { PVT_NE }; +#define NIC_CHECKERS_TYPE_SHIFT 0 +#define NIC_CHECKERS_TYPE_MASK 0xFFFF +#define NIC_CHECKERS_CHECK_SHIFT 16 +#define NIC_CHECKERS_CHECK_MASK 0x1 +#define NIC_CHECKERS_DROP_SHIFT 17 +#define NIC_CHECKERS_DROP_MASK 0x1 + +enum nic_checkers_types { + RX_PKT_BAD_FORMAT = 0, + RX_INV_OPCODE, + RX_INV_SYNDROME, + RX_WQE_IDX_MISMATCH, + TX_WQE_IDX_MISMATCH = 0x80 +}; + /* Event Queue Packets */ struct eq_generic_event { @@ -1273,6 +1343,7 @@ struct ser_val { * @post_fec_ser: post FEC SER value. * @throughput: measured throughput. * @latency: measured latency. + * @port_toggle_cnt: counts how many times the link toggled since last port PHY init. */ struct cpucp_nic_status { __le32 port; @@ -1292,6 +1363,8 @@ struct cpucp_nic_status { struct ser_val post_fec_ser; struct frac_val bandwidth; struct frac_val lat; + __le32 port_toggle_cnt; + __u8 reserved[4]; }; enum cpucp_hbm_row_replace_cause { @@ -1420,4 +1493,36 @@ enum hl_passthrough_type { HL_PASSTHROUGH_VERSIONS, }; +/* structure cpucp_cn_init_hw_mem_packet - used for initializing the associated CN (Core Network) + * hw(TIMER, TX-SCHEDQ) memory in HBM using the provided parameters. + * @cpucp_pkt: basic cpucp packet, the rest of the parameters extend the packet. + * @mem_base_addr: base address of the associated memory + * @num_entries: number of entries. + * @entry_size: size of entry. + * @granularity: base value for first element. + * @pad: padding + */ +struct cpucp_cn_init_hw_mem_packet { + struct cpucp_packet cpucp_pkt; + __le64 mem_base_addr; + __le16 num_entries; + __le16 entry_size; + __le16 granularity; + __u8 pad[2]; +}; + +/* structure cpucp_cn_clear_mem_packet - used for clearing the associated CN (Core Network) + * memory in HBM using the provided parameters. + * @cpucp_pkt: basic cpucp packet, the rest of the parameters extend the packet. + * @mem_base_addr: base address of the associated memory + * @size: size in bytes of the associated memory. + * @pad: padding + */ +struct cpucp_cn_clear_mem_packet { + struct cpucp_packet cpucp_pkt; + __le64 mem_base_addr; + __le32 size; + __u8 pad[4]; +}; + #endif /* CPUCP_IF_H */ diff --git a/include/linux/habanalabs/hl_boot_if.h b/include/linux/habanalabs/hl_boot_if.h index 93366d5621fd..a6d9e510a974 100644 --- a/include/linux/habanalabs/hl_boot_if.h +++ b/include/linux/habanalabs/hl_boot_if.h @@ -194,6 +194,7 @@ enum cpu_boot_dev_sts { CPU_BOOT_DEV_STS_FW_NIC_STAT_EXT_EN = 24, CPU_BOOT_DEV_STS_IS_IDLE_CHECK_EN = 25, CPU_BOOT_DEV_STS_MAP_HWMON_EN = 26, + CPU_BOOT_DEV_STS_NIC_MEM_CLEAR_EN = 27, CPU_BOOT_DEV_STS_ENABLED = 31, CPU_BOOT_DEV_STS_SCND_EN = 63, CPU_BOOT_DEV_STS_LAST = 64 /* we have 2 registers of 32 bits */ @@ -331,6 +332,11 @@ enum cpu_boot_dev_sts { * HWMON enum mapping to cpucp enums. * Initialized in: linux * + * CPU_BOOT_DEV_STS0_NIC_MEM_CLEAR_EN + * If set, means f/w supports nic hbm memory clear and + * tmr,txs hbm memory init. + * Initialized in: zephyr-mgmt + * * CPU_BOOT_DEV_STS0_ENABLED Device status register enabled. * This is a main indication that the * running FW populates the device status @@ -367,6 +373,7 @@ enum cpu_boot_dev_sts { #define CPU_BOOT_DEV_STS0_FW_NIC_STAT_EXT_EN (1 << CPU_BOOT_DEV_STS_FW_NIC_STAT_EXT_EN) #define CPU_BOOT_DEV_STS0_IS_IDLE_CHECK_EN (1 << CPU_BOOT_DEV_STS_IS_IDLE_CHECK_EN) #define CPU_BOOT_DEV_STS0_MAP_HWMON_EN (1 << CPU_BOOT_DEV_STS_MAP_HWMON_EN) +#define CPU_BOOT_DEV_STS0_NIC_MEM_CLEAR_EN (1 << CPU_BOOT_DEV_STS_NIC_MEM_CLEAR_EN) #define CPU_BOOT_DEV_STS0_ENABLED (1 << CPU_BOOT_DEV_STS_ENABLED) #define CPU_BOOT_DEV_STS1_ENABLED (1 << CPU_BOOT_DEV_STS_ENABLED) @@ -403,7 +410,7 @@ enum kmd_msg { KMD_MSG_GOTO_WFE, KMD_MSG_FIT_RDY, KMD_MSG_SKIP_BMC, - RESERVED, + KMD_MSG_RESERVED, KMD_MSG_RST_DEV, KMD_MSG_LAST }; diff --git a/include/linux/net/intel/cn.h b/include/linux/net/intel/cn.h new file mode 100644 index 000000000000..d040b0bbd94c --- /dev/null +++ b/include/linux/net/intel/cn.h @@ -0,0 +1,474 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#ifndef HBL_CN_H_ +#define HBL_CN_H_ + +#include <linux/types.h> +#include <linux/sizes.h> +#include <linux/net/intel/cn_aux.h> + +#define HBL_EN_PFC_PRIO_NUM 4 +#define CQ_ARM_TIMEOUT_USEC 10 + +struct qpc_mask; + +/** + * enum hbl_cn_pflags - mutable capabilities of the port. + * PFLAGS_PCS_LINK_CHECK: check for PCS link periodically. + * PFLAGS_PHY_AUTO_NEG_LPBK: allow Autonegotiation in loopback. + */ +enum hbl_cn_pflags { + PFLAGS_PCS_LINK_CHECK = BIT(0), + PFLAGS_PHY_AUTO_NEG_LPBK = BIT(1), +}; + +enum hbl_ts_type { + TS_RC = 0, + TS_RAW = 1 +}; + +enum hbl_trust_level { + UNSECURED = 0, + SECURED = 1, + PRIVILEGE = 2 +}; + +/** + * enum qpc_req_wq_type - QP REQ WQ type. + * @QPC_REQ_WQ_TYPE_WRITE: WRITE, "native" SEND, RECV-RDV or READ-RDV operations are allowed. + * @QPC_REQ_WQ_TYPE_RDV_READ: No operation is allowed on this endpoint QP. + * @QPC_REQ_WQ_TYPE_RDV_WRITE: SEND-RDV operation is allowed on this QP. + */ +enum qpc_req_wq_type { + QPC_REQ_WQ_TYPE_WRITE = 1, + QPC_REQ_WQ_TYPE_RDV_READ = 2, + QPC_REQ_WQ_TYPE_RDV_WRITE = 3 +}; + +/** + * enum hbl_ib_mem_type - Memory allocation types. + * @HBL_IB_MEM_INVALID: N/A option. + * @HBL_IB_MEM_HOST_DMA_COHERENT: Host DMA coherent memory. + * @HBL_IB_MEM_HOST_VIRTUAL: Host virtual memory. + * @HBL_IB_MEM_DEVICE: Device HBM memory. + * @HBL_IB_MEM_HOST_MAP_ONLY: Host mapping only. + * @HBL_IB_MEM_HW_BLOCK: Hw registers. + */ +enum hbl_ib_mem_type { + HBL_IB_MEM_INVALID, + HBL_IB_MEM_HOST_DMA_COHERENT, + HBL_IB_MEM_HOST_VIRTUAL, + HBL_IB_MEM_DEVICE, + HBL_IB_MEM_HOST_MAP_ONLY, + HBL_IB_MEM_HW_BLOCK, +}; + +/** + * struct hbl_cn_eqe - describes an event-queue entry + * @data: the data each event-queue entry contains + */ +struct hbl_cn_eqe { + u32 data[4]; +}; + +/** + * struct hbl_cn_mem_resources - memory resource used by a memory ring. + * @addr: virtual address of the memory. + * @dma_addr: physical address of the memory. + * @size: memory size. + */ +struct hbl_cn_mem_resource { + void *addr; + dma_addr_t dma_addr; + u32 size; +}; + +/** + * struct hbl_cn_ring - represents a memory ring. + * @buf: the ring buffer memory resource. + * @pi: the memory-resident producer index of the ring, updated by HW + * @pi_shadow: producer shadow index - used by SW + * @ci_shadow: consumer shadow index - used by SW + * @rep_idx: use to count until a threshold value, like HW update + * @asid: the asid of the ring + * @count: the number of elements the ring can hold + * @elem_size: the rings's element size + */ +struct hbl_cn_ring { + struct hbl_cn_mem_resource buf; + struct hbl_cn_mem_resource pi; + u32 pi_shadow; + u32 ci_shadow; + u32 rep_idx; + u32 asid; + u32 count; + u32 elem_size; +}; + +/* ring support */ +#define RING_BUF_DMA_ADDRESS(ring) ((ring)->buf.dma_addr) +#define RING_BUF_ADDRESS(ring) ((ring)->buf.addr) +#define RING_BUF_SIZE(ring) ((ring)->buf.size) +#define RING_PI_DMA_ADDRESS(ring) ((ring)->pi.dma_addr) +#define RING_PI_ADDRESS(ring) ((ring)->pi.addr) +#define RING_PI_SIZE(ring) ((ring)->pi.size) +#define RING_CI_ADDRESS(ring) RING_BUF_ADDRESS(ring) + +/* Ethernet */ + +/** + * struct hbl_en_aux_data - habanalabs data for the Ethernet driver. + * @pdev: pointer to PCI device. + * @dev: related kernel basic device structure. + * @asic_specific: ASIC specific data. + * @fw_ver: FW version. + * @qsfp_eeprom: QSFPD EEPROM info. + * @mac_addr: array of all MAC addresses. + * @asic_type: ASIC specific type. + * @ports_mask: mask of available ports. + * @auto_neg_mask: mask of port with Autonegotiation enabled. + * @pending_reset_long_timeout: long timeout for pending hard reset to finish in seconds. + * @max_frm_len: maximum allowed frame length. + * @raw_elem_size: size of element in raw buffers. + * @max_raw_mtu: maximum MTU size for raw packets. + * @min_raw_mtu: minimum MTU size for raw packets. + * @id: device ID. + * @max_num_of_ports: max number of available ports. + * @has_eq: true if event queue is supported. + */ +struct hbl_en_aux_data { + struct pci_dev *pdev; + struct device *dev; + void *asic_specific; + char *fw_ver; + char *qsfp_eeprom; + char **mac_addr; + enum hbl_cn_asic_type asic_type; + u64 ports_mask; + u64 auto_neg_mask; + u32 pending_reset_long_timeout; + u32 max_frm_len; + u32 raw_elem_size; + u16 max_raw_mtu; + u16 min_raw_mtu; + u16 id; + u8 max_num_of_ports; + u8 has_eq; +}; + +/** + * struct hbl_en_aux_ops - pointer functions for cn <-> en drivers communication. + * @device_operational: is device operational. + * @hw_access_lock: prevent HW access. + * @hw_access_unlock: allow HW access. + * @is_eth_lpbk: is Ethernet loopback enabled. + * @port_hw_init: port HW init. + * @port_hw_fini: port HW cleanup. + * @phy_init: port PHY init. + * @phy_fini: port PHY cleanup. + * @set_pfc: enable/disable PFC. + * @get_cnts_num: get the number of available counters. + * @get_cnts_names: get the names of the available counters. + * @get_cnts_values: get the values of the available counters. + * @eq_dispatcher_register_qp: register QP to its event dispatch queue. + * @eq_dispatcher_unregister_qp: un-register QP from its event dispatch queue. + * @get_speed: get the port speed in Mb/s. + * @track_ext_port_reset: track the reset of the given port according to the given syndrome. + * @port_toggle_count: count port toggles upon actions that teardown or create a port. + * @ports_reopen: reopen the ports after hard reset. + * @ports_stop_prepare: prepare the ports for a stop. + * @ports_stop: stop traffic. + * @set_port_status: set the link port status. + * @get_mac_lpbk: get MAC loopback status. + * @set_mac_lpbk: set MAC loopback status. + * @update_mtu: update all QPs to use the new MTU value. + * @qpc_write: write a QP context to the HW. + * @ctrl_lock: control mutex lock. + * @ctrl_unlock: control mutex unlock. + * @is_port_open: is port open; + * @get_src_ip: get the source IP of the given port. + * @reset_stats: reset port statistics (called from debugfs only). + * @get_mtu: get the port MTU value. + * @get_pflags: get the port private flags. + * @set_dev_lpbk: set loopback status on the net-device. + * @handle_eqe: handle event queue entry from H/W. + * @asic_ops: pointer for ASIC specific ops struct. + */ +struct hbl_en_aux_ops { + /* en2cn */ + bool (*device_operational)(struct hbl_aux_dev *aux_dev); + void (*hw_access_lock)(struct hbl_aux_dev *aux_dev); + void (*hw_access_unlock)(struct hbl_aux_dev *aux_dev); + bool (*is_eth_lpbk)(struct hbl_aux_dev *aux_dev); + int (*port_hw_init)(struct hbl_aux_dev *aux_dev, u32 port); + void (*port_hw_fini)(struct hbl_aux_dev *aux_dev, u32 port); + int (*phy_init)(struct hbl_aux_dev *aux_dev, u32 port); + void (*phy_fini)(struct hbl_aux_dev *aux_dev, u32 port); + int (*set_pfc)(struct hbl_aux_dev *aux_dev, u32 port, bool enable); + int (*get_cnts_num)(struct hbl_aux_dev *aux_dev, u32 port); + void (*get_cnts_names)(struct hbl_aux_dev *aux_dev, u32 port, u8 *data); + void (*get_cnts_values)(struct hbl_aux_dev *aux_dev, u32 port, u64 *data); + bool (*get_mac_lpbk)(struct hbl_aux_dev *aux_dev, u32 port); + int (*set_mac_lpbk)(struct hbl_aux_dev *aux_dev, u32 port, bool enable); + int (*update_mtu)(struct hbl_aux_dev *aux_dev, u32 port, u32 mtu); + int (*qpc_write)(struct hbl_aux_dev *aux_dev, u32 port, void *qpc, + struct qpc_mask *qpc_mask, u32 qpn, bool is_req); + void (*ctrl_lock)(struct hbl_aux_dev *aux_dev, u32 port); + void (*ctrl_unlock)(struct hbl_aux_dev *aux_dev, u32 port); + int (*eq_dispatcher_register_qp)(struct hbl_aux_dev *aux_dev, u32 port, u32 asid, + u32 qp_id); + int (*eq_dispatcher_unregister_qp)(struct hbl_aux_dev *aux_dev, u32 port, u32 qp_id); + u32 (*get_speed)(struct hbl_aux_dev *aux_dev, u32 port); + void (*track_ext_port_reset)(struct hbl_aux_dev *aux_dev, u32 port, u32 syndrome); + void (*port_toggle_count)(struct hbl_aux_dev *aux_dev, u32 port); + + /* cn2en */ + int (*ports_reopen)(struct hbl_aux_dev *aux_dev); + void (*ports_stop_prepare)(struct hbl_aux_dev *aux_dev); + void (*ports_stop)(struct hbl_aux_dev *aux_dev); + void (*set_port_status)(struct hbl_aux_dev *aux_dev, u32 port_idx, bool up); + bool (*is_port_open)(struct hbl_aux_dev *aux_dev, u32 port_idx); + int (*get_src_ip)(struct hbl_aux_dev *aux_dev, u32 port_idx, u32 *src_ip); + void (*reset_stats)(struct hbl_aux_dev *aux_dev, u32 port_idx); + u32 (*get_mtu)(struct hbl_aux_dev *aux_dev, u32 port_idx); + u32 (*get_pflags)(struct hbl_aux_dev *aux_dev, u32 port_idx); + void (*set_dev_lpbk)(struct hbl_aux_dev *aux_dev, u32 port_idx, bool enable); + void (*handle_eqe)(struct hbl_aux_dev *aux_dev, u32 port, struct hbl_cn_eqe *eqe); + void *asic_ops; +}; + +/* InfiniBand */ + +#define HBL_IB_CNT_NAME_LEN (ETH_GSTRING_LEN * 2) + +/** + * struct hbl_ib_device_attr - IB device attributes. + * @fw_ver: firmware version. + * @max_mr_size: max size of a memory region. + * @page_size_cap: largest page size in MMU. + * @vendor_id: device vendor ID. + * @vendor_part_id: device vendor part ID. + * @hw_ver: device chip version. + * @cqe_size: Size of Completion Queue Entry. + * @min_cq_entries: Minimum completion queue entries needed. + * @max_qp: max QPs supported. + * @max_qp_wr: max QPs per work-request supported. + * @max_cqe: max completion-queue entries supported. + */ +struct hbl_ib_device_attr { + u64 fw_ver; + u64 max_mr_size; + u64 page_size_cap; + u32 vendor_id; + u32 vendor_part_id; + u32 hw_ver; + u32 cqe_size; + u32 min_cq_entries; + s32 max_qp; + s32 max_qp_wr; + s32 max_cqe; +}; + +/** + * struct hbl_ib_port_attr - IB port attributes. + * @speed: speed in Mb/s. + * @max_msg_sz: max message size + * @max_mtu: max mtu size + * @open: is open and fully initialized. + * @link_up: has PCS link. + * @num_lanes: number of lanes per port. + */ +struct hbl_ib_port_attr { + u32 speed; + u32 max_msg_sz; + u32 max_mtu; + u8 open; + u8 link_up; + u8 num_lanes; +}; + +/** + * struct hbl_ib_port_cnts_data - IB port counters data. + * @names: Names of the counters. + * @num: Number of counters. + */ +struct hbl_ib_port_cnts_data { + u8 *names; + u32 num; +}; + +/** + * struct hbl_ib_dump_qp_attr - IB QP dump attributes. + * @port: Port ID the QP belongs to. + * @qpn: QP number. + * @req: Requester QP, otherwise responder. + * @full: Include full QP information. + * @force: Force reading a QP in invalid/error state. + */ +struct hbl_ib_dump_qp_attr { + u32 port; + u32 qpn; + u8 req; + u8 full; + u8 force; +}; + +/** + * struct hbl_ib_mem_info - Information for a memory region pertaining to a memory handle. + * @cpu_addr: The kernel virtual address. + * @bus_addr: The bus address. + * @mtype: The memory type. + * @mem_handle: The memory handle. + * @size: The size of the memory region. + * @vmalloc: The memory is virtually contiguous only. + */ +struct hbl_ib_mem_info { + void *cpu_addr; + dma_addr_t bus_addr; + enum hbl_ib_mem_type mtype; + u64 mem_handle; + u64 size; + u8 vmalloc; +}; + +/** + * struct hbl_ib_aux_data - habanalabs data for the IB driver. + * @pdev: pointer to PCI device. + * @dev: related kernel basic device structure. + * @cnts_data: Ports counters data. + * @ports_mask: mask of available ports. + * @ext_ports_mask: mask of external ports (subset of ports_mask). + * @dram_size: available DRAM size. + * @max_num_of_wqes: maximum number of WQ entries. + * @pending_reset_long_timeout: long timeout for pending hard reset to finish in seconds. + * @id: device ID. + * @max_num_of_ports: maximum number of ports supported by ASIC. + * @mixed_qp_wq_types: Using mixed QP WQ types is supported. + * @umr_support: device supports UMR. + * @cc_support: device supports congestion control. + */ +struct hbl_ib_aux_data { + struct pci_dev *pdev; + struct device *dev; + struct hbl_ib_port_cnts_data *cnts_data; + u64 ports_mask; + u64 ext_ports_mask; + u64 dram_size; + u32 max_num_of_wqes; + u32 pending_reset_long_timeout; + u16 id; + u8 max_num_of_ports; + u8 mixed_qp_wq_types; + u8 umr_support; + u8 cc_support; +}; + +/** + * struct hbl_ib_aux_ops - pointer functions for cn <-> ib drivers communication. + * @device_operational: is device operational. + * @hw_access_lock: prevent HW access. + * @hw_access_unlock: allow HW access. + * @alloc_ucontext: allocate user context. + * @dealloc_ucontext: deallocate user context. + * @query_port: get port attributes. + * @cmd_ctrl: operate the device with proprietary opcodes. + * @query_device: get device attributes. + * @set_ip_addr_encap: setup IP address encapsulation. + * @qp_syndrome_to_str: translates syndrome qp number to string. + * @verify_qp_id: verify if the specified QP id is valid. + * @get_cnts_values: get the values of the available counters. + * @dump_qp: dump QP context to the given buffer. + * @query_mem_handle: query information for a memory handle. + * @eqe_work_schd: schedule a user eq poll work on hbl side. + * @dispatch_fatal_event: raise a fatal event to user space. + */ +struct hbl_ib_aux_ops { + /* ib2cn */ + bool (*device_operational)(struct hbl_aux_dev *aux_dev); + void (*hw_access_lock)(struct hbl_aux_dev *aux_dev); + void (*hw_access_unlock)(struct hbl_aux_dev *aux_dev); + int (*alloc_ucontext)(struct hbl_aux_dev *aux_dev, int user_fd, void **cn_ib_ctx); + void (*dealloc_ucontext)(struct hbl_aux_dev *aux_dev, void *cn_ib_ctx); + void (*query_port)(struct hbl_aux_dev *aux_dev, u32 port, + struct hbl_ib_port_attr *port_attr); + int (*cmd_ctrl)(struct hbl_aux_dev *aux_dev, void *cn_ib_ctx, u32 op, void *input, + void *output); + void (*query_device)(struct hbl_aux_dev *aux_dev, struct hbl_ib_device_attr *device_attr); + void (*set_ip_addr_encap)(struct hbl_aux_dev *aux_dev, u32 ip_addr, u32 port); + char *(*qp_syndrome_to_str)(struct hbl_aux_dev *aux_dev, u32 syndrome); + int (*verify_qp_id)(struct hbl_aux_dev *aux_dev, u32 qp_id, u32 port); + void (*get_cnts_values)(struct hbl_aux_dev *aux_dev, u32 port, u64 *data); + int (*dump_qp)(struct hbl_aux_dev *aux_dev, struct hbl_ib_dump_qp_attr *attr, char *buf, + size_t size); + int (*query_mem_handle)(struct hbl_aux_dev *aux_dev, u64 mem_handle, + struct hbl_ib_mem_info *info); + + /* cn2ib */ + void (*eqe_work_schd)(struct hbl_aux_dev *aux_dev, u32 port); + void (*dispatch_fatal_event)(struct hbl_aux_dev *aux_dev, u32 asid); +}; + +/* CN */ + +/* interrupt type */ +enum hbl_cn_cpucp_interrupt_type { + HBL_CN_CPUCP_INTR_NONE = 0, + HBL_CN_CPUCP_INTR_TMR = 1, + HBL_CN_CPUCP_INTR_RXB_CORE_SPI, + HBL_CN_CPUCP_INTR_RXB_CORE_SEI, + HBL_CN_CPUCP_INTR_QPC_RESP_ERR, + HBL_CN_CPUCP_INTR_RXE_SPI, + HBL_CN_CPUCP_INTR_RXE_SEI, + HBL_CN_CPUCP_INTR_TXS, + HBL_CN_CPUCP_INTR_TXE, +}; + +/* + * struct hbl_cn_eq_port_intr_cause - port interrupt cause data. + * @intr_cause_data: interrupt cause data. + */ +struct hbl_cn_eq_port_intr_cause { + u64 intr_cause_data; +}; + +/* + * struct hbl_cn_eq_intr_cause - interrupt cause data. + * @intr_type: interrupt type. + * @intr_cause: array of ports interrupt cause data. + */ +struct hbl_cn_eq_intr_cause { + u32 intr_type; /* enum hbl_cn_cpucp_interrupt_type */ + u32 pad; + struct hbl_cn_eq_port_intr_cause intr_cause[MAX_PORTS_PER_NIC]; +}; + +/* + * struct hbl_cn_cpucp_frac_val - fracture value represented by "integer.frac". + * @integer: the integer part of the fracture value; + * @frac: the fracture part of the fracture value. + */ +struct hbl_cn_cpucp_frac_val { + union { + struct { + u16 integer; + u16 frac; + }; + u16 val; + }; +}; + +/* + * struct hbl_cn_cpucp_ser_val - Symbol Error Rate value represented by "integer * 10 ^ -exp". + * @integer: the integer part of the SER value. + * @exp: the exponent part of the SER value. + */ +struct hbl_cn_cpucp_ser_val { + u16 integer; + u16 exp; +}; + +#endif /* HBL_CN_H_ */ diff --git a/include/linux/net/intel/cn_aux.h b/include/linux/net/intel/cn_aux.h new file mode 100644 index 000000000000..8a7f54e78afb --- /dev/null +++ b/include/linux/net/intel/cn_aux.h @@ -0,0 +1,298 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#ifndef HBL_CN_AUX_H_ +#define HBL_CN_AUX_H_ + +#include <linux/irqreturn.h> +#include <linux/habanalabs/cpucp_if.h> +#include <linux/auxiliary_bus.h> +#include <linux/if_vlan.h> +#include <uapi/linux/ethtool.h> + +#define HBL_EN_MAX_HEADERS_SZ (ETH_HLEN + 2 * VLAN_HLEN + ETH_FCS_LEN) + +/* driver specific value, should always be >= asic specific h/w resource */ +#define NIC_DRV_MAX_CQS_NUM 32 +#define NIC_DRV_MAX_CCQS_NUM 4 +#define NIC_DRV_NUM_DB_FIFOS 32 + +/** + * enum hbl_cn_asic_type - supported ASIC types. + * @ASIC_GAUDI2: Gaudi2 device. + */ +enum hbl_cn_asic_type { + HBL_ASIC_GAUDI2, +}; + +/** + * enum hbl_cn_status_cmd - status cmd type. + * @HBL_CN_STATUS_ONE_SHOT: one shot command. + * @HBL_CN_STATUS_PERIODIC_START: start periodic status update. + * @HBL_CN_STATUS_PERIODIC_STOP: stop periodic status update. + */ +enum hbl_cn_status_cmd { + HBL_CN_STATUS_ONE_SHOT, + HBL_CN_STATUS_PERIODIC_START, + HBL_CN_STATUS_PERIODIC_STOP, +}; + +/** + * enum hbl_aux_dev_type - auxiliary device type. + * HBL_AUX_DEV_CN: Shared Network Interface. + * HBL_AUX_DEV_ETH: Ethernet. + * HBL_AUX_DEV_IB: InfiniBand. + */ +enum hbl_aux_dev_type { + HBL_AUX_DEV_CN, + HBL_AUX_DEV_ETH, + HBL_AUX_DEV_IB, +}; + +/** + * struct hbl_aux_dev - habanalabs auxiliary device structure. + * @adev: auxiliary device. + * @aux_ops: pointer functions for drivers communication. + * @aux_data: essential data for operating the auxiliary device. + * @priv: auxiliary device private data. + * @type: type of the auxiliary device. + */ +struct hbl_aux_dev { + struct auxiliary_device adev; + void *aux_ops; + void *aux_data; + void *priv; + enum hbl_aux_dev_type type; +}; + +/** + * struct hbl_cn_stat - Holds ASIC specific statistics string and default register offset. + * @str: String name of ethtool stat. + * @lo_offset: Register offset of the stat. + * @hi_offset: High register offset. May be unused for some stats. + */ +struct hbl_cn_stat { + char str[ETH_GSTRING_LEN]; + int lo_offset; + int hi_offset; +}; + +/* + * struct hbl_cn_cpucp_mac_addr - port MAC address received from FW. + * @mac_addr: port MAC address. + */ +struct hbl_cn_cpucp_mac_addr { + u8 mac_addr[ETH_ALEN]; +}; + +/* + * struct hbl_cn_cpucp_info - info received from FW. + * @mac_addrs: array of MAC address for all physical ports. + * @link_mask: mask of available ports. + * @pol_tx_mask: array of Tx polarity value for all ports. + * @pol_rx_mask: array of Rx polarity value for all ports. + * @link_ext_mask: mask of external ports. + * @qsfp_eeprom: QSFP EEPROM info. + * @auto_neg_mask: mask of ports which supports Autonegotiation. + * @serdes_type: type of serdes. + * @tx_swap_map: lane swapping map. + */ +struct hbl_cn_cpucp_info { + struct hbl_cn_cpucp_mac_addr mac_addrs[CPUCP_MAX_NICS]; + u64 link_mask[CPUCP_NIC_MASK_ARR_LEN]; + u64 pol_tx_mask[CPUCP_NIC_POLARITY_ARR_LEN]; + u64 pol_rx_mask[CPUCP_NIC_POLARITY_ARR_LEN]; + u64 link_ext_mask[CPUCP_NIC_MASK_ARR_LEN]; + u8 qsfp_eeprom[CPUCP_NIC_QSFP_EEPROM_MAX_LEN]; + u64 auto_neg_mask[CPUCP_NIC_MASK_ARR_LEN]; + enum cpucp_serdes_type serdes_type; + u16 tx_swap_map[CPUCP_MAX_NICS]; +}; + +/** + * struct hbl_cn_aux_data - habanalabs data for the cn driver. + * @pdev: pointer to PCI device. + * @dev: related kernel basic device structure. + * @asic_specific: ASIC specific data. + * @fw_ver: FW version. + * @asic_type: ASIC specific type. + * @ports_mask: mask of available ports. + * @ext_ports_mask: mask of external ports (subset of ports_mask). + * @auto_neg_mask: mask of ports with Autonegotiation enabled. + * @dram_size: available DRAM size. + * @nic_drv_addr: base address for NIC driver on DRAM. + * @nic_drv_size: driver size reserved for NIC driver on DRAM. + * @macro_cfg_size: the size of the macro configuration space. + * @max_num_of_ports: max number of available ports. + * @pending_reset_long_timeout: long timeout for pending hard reset to finish in seconds. + * @kernel_asid: kernel ASID. + * @card_location: the OAM number in the HLS (relevant for PMC card type). + * @device_timeout: device access timeout in usec. + * @fw_major_version: major version of current loaded preboot. + * @fw_minor_version: minor version of current loaded preboot. + * @fw_app_cpu_boot_dev_sts0: bitmap representation of application security + * status reported by FW, bit description can be + * found in CPU_BOOT_DEV_STS0 + * @fw_app_cpu_boot_dev_sts1: bitmap representation of application security + * status reported by FW, bit description can be + * found in CPU_BOOT_DEV_STS1 + * @id: device ID. + * @cache_line_size: device cache line size. + * @clk: clock frequency in MHz. + * @pldm: is running on Palladium setup. + * @skip_phy_init: avoid writing/reading PHY registers. + * @load_phy_fw: load PHY F/W. + * @cpucp_fw: is CPUCP FW enabled. + * @supports_coresight: is CoreSight supported. + * @use_fw_serdes_info: true if FW serdes values should be used, false if hard coded values should + * be used. + * @mmu_enable: is MMU enabled. + * @lanes_per_port: number of physical lanes per port. + * @cpucp_checkers_shift: CPUCP checkers flags shift. + */ +struct hbl_cn_aux_data { + struct pci_dev *pdev; + struct device *dev; + void *asic_specific; + char *fw_ver; + enum hbl_cn_asic_type asic_type; + u64 ports_mask; + u64 ext_ports_mask; + u64 auto_neg_mask; + u64 dram_size; + u64 nic_drv_addr; + u64 nic_drv_size; + u32 macro_cfg_size; + u32 pending_reset_long_timeout; + u32 kernel_asid; + u32 card_location; + u32 device_timeout; + u32 fw_major_version; + u32 fw_minor_version; + u32 fw_app_cpu_boot_dev_sts0; + u32 fw_app_cpu_boot_dev_sts1; + u16 id; + u16 cache_line_size; + u16 clk; + u8 pldm; + u8 skip_phy_init; + u8 load_phy_fw; + u8 cpucp_fw; + u8 supports_coresight; + u8 use_fw_serdes_info; + u8 mmu_enable; + u8 lanes_per_port; + u8 cpucp_checkers_shift; +}; + +/** + * enum hbl_cn_mmu_mode - MMU modes the CN can work with. + * @HBL_CN_MMU_MODE_EXTERNAL: using external MMU HW IP. + * @HBL_CN_MMU_MODE_NETWORK_TLB: Using internal network TLB (but external page-table). + */ +enum hbl_cn_mmu_mode { + HBL_CN_MMU_MODE_EXTERNAL, + HBL_CN_MMU_MODE_NETWORK_TLB, +}; + +/** + * struct hbl_cn_vm_info - VM related info for the cn driver. + * @mmu_mode: the type (or mode) of MMU currently configured. + * @ext_mmu.work_id: the unique work-ID assigned to this VM when in external MMU mode. + * @net_tlb.pasid: the PCI process space address ID assigned to the device. + * @net_tlb.page_tbl_addr: the address of the MMU page table of this VM. + */ +struct hbl_cn_vm_info { + enum hbl_cn_mmu_mode mmu_mode; + union { + struct { + u32 work_id; + } ext_mmu; + + struct { + u32 pasid; + u64 page_tbl_addr; + } net_tlb; + }; +}; + +typedef bool (*hbl_cn_poll_cond_func)(u32 val, void *arg); + +enum hbl_cn_mem_type { + HBL_CN_MEM_TYPE_HOST, + HBL_CN_MEM_TYPE_DEVICE, +}; + +/** + * struct hbl_cn_aux_ops - pointer functions for cn <-> compute drivers communication. + * @device_operational: is device operational. + * @hw_access_lock: prevent HW access. + * @hw_access_unlock: allow HW access. + * @device_reset: Perform device reset. + * @vm_dev_mmu_map: map cpu/kernel address or device memory range to device address range in order + * to provide device-memory access. + * @vm_dev_mmu_unmap: unmap a previously mapped address range. + * @vm_reserve_dva_block: Reserve a device virtual block of a given size. + * @vm_unreserve_dva_block: Release a given device virtual block. + * @dram_readl: Read long from DRAM. + * @dram_writel: Write long to DRAM. + * @rreg: Read register. + * @wreg: Write register. + * @get_reg_pcie_addr: Retrieve pci address. + * @poll_reg: Poll on a register until a given condition is fulfilled or timeout. + * @get_cpucp_info: fetch updated CPUCP info. + * @register_cn_user_context: register a user context represented by user provided FD. If the + * returned comp_handle and vm_handle are equal then this context doesn't + * support data transfer. + * @deregister_cn_user_context: de-register the user context represented by the vm_handle returned + * from calling register_cn_user_context. + * @vm_create: create a VM in registered context. + * @vm_destroy: destroy a VM in registered context. + * @get_vm_info: get information on a VM. + * @ports_reopen: reopen the ports after hard reset. + * @ports_stop_prepare: prepare the ports for a stop. + * @ports_stop: stop traffic. + * @synchronize_irqs: Synchronize IRQs. + * @asic_ops: pointer for ASIC specific ops struct. + */ +struct hbl_cn_aux_ops { + /* cn2compute */ + bool (*device_operational)(struct hbl_aux_dev *aux_dev); + void (*hw_access_lock)(struct hbl_aux_dev *aux_dev); + void (*hw_access_unlock)(struct hbl_aux_dev *aux_dev); + void (*device_reset)(struct hbl_aux_dev *aux_dev); + int (*vm_dev_mmu_map)(struct hbl_aux_dev *aux_dev, u64 vm_handle, + enum hbl_cn_mem_type mem_type, u64 addr, u64 dva, size_t size); + void (*vm_dev_mmu_unmap)(struct hbl_aux_dev *aux_dev, u64 vm_handle, u64 dva, size_t size); + int (*vm_reserve_dva_block)(struct hbl_aux_dev *aux_dev, u64 vm_handle, u64 size, u64 *dva); + void (*vm_unreserve_dva_block)(struct hbl_aux_dev *aux_dev, u64 vm_handle, u64 dva, + u64 size); + u32 (*dram_readl)(struct hbl_aux_dev *aux_dev, u64 addr); + void (*dram_writel)(struct hbl_aux_dev *aux_dev, u32 val, u64 addr); + u32 (*rreg)(struct hbl_aux_dev *aux_dev, u32 reg); + void (*wreg)(struct hbl_aux_dev *aux_dev, u32 reg, u32 val); + int (*get_reg_pcie_addr)(struct hbl_aux_dev *aux_dev, u32 reg, u64 *pci_addr); + int (*poll_reg)(struct hbl_aux_dev *aux_dev, u32 reg, u64 timeout_us, + hbl_cn_poll_cond_func func, void *arg); + void (*get_cpucp_info)(struct hbl_aux_dev *aux_dev, + struct hbl_cn_cpucp_info *hbl_cn_cpucp_info); + int (*register_cn_user_context)(struct hbl_aux_dev *aux_dev, int user_fd, + const void *cn_ctx, u64 *comp_handle, u64 *vm_handle); + void (*deregister_cn_user_context)(struct hbl_aux_dev *aux_dev, u64 vm_handle); + int (*vm_create)(struct hbl_aux_dev *aux_dev, u64 comp_handle, u32 flags, u64 *vm_handle); + void (*vm_destroy)(struct hbl_aux_dev *aux_dev, u64 vm_handle); + int (*get_vm_info)(struct hbl_aux_dev *aux_dev, u64 vm_handle, + struct hbl_cn_vm_info *vm_info); + + /* compute2cn */ + int (*ports_reopen)(struct hbl_aux_dev *aux_dev); + void (*ports_stop_prepare)(struct hbl_aux_dev *aux_dev, bool fw_reset, bool in_teardown); + void (*ports_stop)(struct hbl_aux_dev *aux_dev); + void (*synchronize_irqs)(struct hbl_aux_dev *aux_dev); + void *asic_ops; +}; + +#endif /* HBL_CN_AUX_H_ */ diff --git a/include/linux/net/intel/cni.h b/include/linux/net/intel/cni.h new file mode 100644 index 000000000000..206b93ffd0e8 --- /dev/null +++ b/include/linux/net/intel/cni.h @@ -0,0 +1,636 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#ifndef HBL_CNI_H_ +#define HBL_CNI_H_ + +#include <linux/if_ether.h> +#include <linux/types.h> + +#define HBL_CNI_STAT_STR_LEN 32 + +/* Requester */ +#define HBL_CNI_CQE_TYPE_REQ 0 +/* Responder */ +#define HBL_CNI_CQE_TYPE_RES 1 + +/* Number of backpressure offsets */ +#define HBL_CNI_USER_BP_OFFS_MAX 16 + +/* Number of FnA addresses for SRAM/DCCM completion */ +#define HBL_CNI_FNA_CMPL_ADDR_NUM 2 + +/** + * struct hbl_cni_alloc_conn_in - NIC opcode HBL_CNI_OP_ALLOC_CONN in param. + * @port: NIC port ID. + * @hint: this may be used as the connection-number hint for the driver as a recommendation of user. + */ +struct hbl_cni_alloc_conn_in { + u32 port; + u32 hint; +}; + +/** + * struct hbl_cni_alloc_conn_out - NIC opcode HBL_CNI_OP_ALLOC_CONN out param. + * @conn_id: Connection ID. + */ +struct hbl_cni_alloc_conn_out { + u32 conn_id; +}; + +/** + * struct hbl_cni_req_conn_ctx_in - NIC opcode HBL_CNI_OP_SET_REQ_CONN_CTX in param. + * @dst_ip_addr: Destination IP address in native endianness. + * @dst_conn_id: Destination connection ID. + * @port: NIC port ID. + * @conn_id: Connection ID. + * @dst_mac_addr: Destination MAC address. + * @priority: Connection priority [0..3]. + * @timer_granularity: Timer granularity [0..127]. + * @swq_granularity: SWQ granularity [0 for 32B or 1 for 64B]. + * @wq_type: Work queue type [1..3]. + * @cq_number: Completion queue number. + * @wq_remote_log_size: Remote Work queue log size [2^QPC] Rendezvous. + * @congestion_en: Enable/disable Congestion-Control. + * @congestion_wnd: Congestion-Window size. + * @mtu: Max Transmit Unit. + * @encap_en: used as boolean; indicates if this QP has encapsulation support. + * @encap_id: Encapsulation-id; valid only if 'encap_en' is set. + * @wq_size: Max number of elements in the work queue. + * @loopback: used as boolean; indicates if this QP used for loopback mode. + * @compression_en: Enable compression. + * @remote_key: Remote-key to be used to generate on outgoing packets. + */ +struct hbl_cni_req_conn_ctx_in { + u32 reserved0; + u32 dst_ip_addr; + u32 dst_conn_id; + u32 deprecated0; + u32 reserved1; + u32 port; + u32 conn_id; + u8 dst_mac_addr[ETH_ALEN]; + u8 deprecated1; + u8 priority; + u8 deprecated2; + u8 timer_granularity; + u8 swq_granularity; + u8 wq_type; + u8 deprecated3; + u8 cq_number; + u8 wq_remote_log_size; + u8 congestion_en; + u32 congestion_wnd; + u16 mtu; + u8 encap_en; + u8 encap_id; + u32 wq_size; + u8 loopback; + u8 reserved2; + u8 reserved3; + u8 compression_en; + u32 remote_key; +}; + +/** + * struct hbl_cni_req_conn_ctx_out - NIC opcode HBL_CNI_OP_SET_REQ_CONN_CTX out param. + * @swq_mem_handle: Handle for send WQ memory. + * @rwq_mem_handle: Handle for receive WQ memory. + * @swq_mem_size: Size of the send WQ memory. + * @rwq_mem_size: Size of the receive WQ memory. + */ +struct hbl_cni_req_conn_ctx_out { + u64 swq_mem_handle; + u64 rwq_mem_handle; + u32 swq_mem_size; + u32 rwq_mem_size; +}; + +/** + * struct hbl_cni_res_conn_ctx_in - NIC opcode HBL_CNI_OP_SET_RES_CONN_CTX in param. + * @dst_ip_addr: Destination IP address in native endianness. + * @dst_conn_id: Destination connection ID. + * @port: NIC port ID. + * @conn_id: Connection ID. + * @dst_mac_addr: Destination MAC address. + * @priority: Connection priority [0..3]. + * @wq_peer_granularity: Work queue granularity. + * @cq_number: Completion queue number. + * @conn_peer: Connection peer. + * @rdv: used as boolean; indicates if this QP is RDV (WRITE or READ). + * @loopback: used as boolean; indicates if this QP used for loopback mode. + * @encap_en: used as boolean; indicates if this QP has encapsulation support. + * @encap_id: Encapsulation-id; valid only if 'encap_en' is set. + * @wq_peer_size: size of the peer Work queue. + * @local_key: Local-key to be used to validate against incoming packets. + */ +struct hbl_cni_res_conn_ctx_in { + u32 reserved; + u32 dst_ip_addr; + u32 dst_conn_id; + u32 port; + u32 conn_id; + u8 dst_mac_addr[ETH_ALEN]; + u8 priority; + u8 deprecated1; + u8 deprecated2; + u8 wq_peer_granularity; + u8 cq_number; + u8 deprecated3; + u32 conn_peer; + u8 rdv; + u8 loopback; + u8 encap_en; + u8 encap_id; + u32 wq_peer_size; + u32 local_key; +}; + +/** + * struct hbl_cni_destroy_conn_in - NIC opcode HBL_CNI_OP_DESTROY_CONN in param. + * @port: NIC port ID. + * @conn_id: Connection ID. + */ +struct hbl_cni_destroy_conn_in { + u32 port; + u32 conn_id; +}; + +/** + * enum hbl_nic_mem_type - NIC WQ memory allocation type. + * @HBL_CNI_USER_WQ_SEND: Allocate memory for the user send WQ array. + * @HBL_CNI_USER_WQ_RECV: Allocate memory for the user receive WQ array. + * @HBL_CNI_USER_WQ_TYPE_MAX: number of values in enum. + */ +enum hbl_nic_mem_type { + HBL_CNI_USER_WQ_SEND, + HBL_CNI_USER_WQ_RECV, + HBL_CNI_USER_WQ_TYPE_MAX +}; + +/** + * enum hbl_nic_mem_id - memory allocation methods. + * @HBL_CNI_MEM_HOST: memory allocated on the host memory. + * @HBL_CNI_MEM_DEVICE: memory allocated on the device memory. + */ +enum hbl_nic_mem_id { + HBL_CNI_MEM_HOST = 1, + HBL_CNI_MEM_DEVICE +}; + +/** + * enum hbl_nic_swq_granularity - send WQE granularity. + * @HBL_CNI_SWQE_GRAN_32B: 32 byte WQE for linear write. + * @HBL_CNI_SWQE_GRAN_64B: 64 byte WQE for multi-stride write. + */ +enum hbl_nic_swq_granularity { + HBL_CNI_SWQE_GRAN_32B, + HBL_CNI_SWQE_GRAN_64B +}; + +/** + * struct hbl_cni_user_wq_arr_set_in - NIC opcode HBL_CNI_OP_USER_WQ_SET in param. + * @port: NIC port ID. + * @num_of_wqs: Number of user WQs. + * @num_of_wq_entries: Number of entries per user WQ. + * @type: Type of user WQ array. + * @mem_id: Specify host/device memory allocation. + * @swq_granularity: Specify the granularity of send WQ, 0: 32 bytes, 1: 64 bytes. + */ +struct hbl_cni_user_wq_arr_set_in { + u64 reserved; + u32 port; + u32 num_of_wqs; + u32 num_of_wq_entries; + u32 type; + u32 mem_id; + u8 swq_granularity; +}; + +/** + * struct hbl_cni_user_wq_arr_set_out - NIC opcode HBL_CNI_OP_USER_WQ_SET out param. + * @mem_handle: Handle of WQ array memory buffer. + */ +struct hbl_cni_user_wq_arr_set_out { + u64 mem_handle; +}; + +/** + * struct hbl_cni_user_wq_arr_unset_in - NIC opcode HBL_CNI_OP_USER_WQ_UNSET in param. + * @port: NIC port ID. + * @type: Type of user WQ array. + */ +struct hbl_cni_user_wq_arr_unset_in { + u32 port; + u32 type; +}; + +/** + * struct hbl_cni_alloc_user_cq_id_in - NIC opcode HBL_CNI_OP_ALLOC_USER_CQ_ID in param. + * @port: NIC port ID. + */ +struct hbl_cni_alloc_user_cq_id_in { + u32 port; +}; + +/** + * struct hbl_cni_alloc_user_cq_id_out - NIC opcode HBL_CNI_OP_ALLOC_USER_CQ_ID out param. + * @id: CQ ID. + */ +struct hbl_cni_alloc_user_cq_id_out { + u32 id; +}; + +/** + * struct hbl_cni_user_cq_id_set_in - NIC opcode HBL_CNI_OP_USER_CQ_SET in param. + * @port: NIC port ID. + * @num_of_cqes: Number of CQ entries in the buffer. + * @id: CQ ID. + */ +struct hbl_cni_user_cq_id_set_in { + u32 port; + u32 num_of_cqes; + u32 id; +}; + +/** + * struct hbl_cni_user_cq_id_set_out - NIC opcode HBL_CNI_OP_USER_CQ_ID_SET out param. + * @mem_handle: Handle of CQ memory buffer. + * @pi_handle: Handle of CQ producer-inder memory buffer. + * @regs_handle: Handle of CQ Registers base-address. + * @regs_offset: CQ Registers sub-offset. + */ +struct hbl_cni_user_cq_id_set_out { + u64 mem_handle; + u64 pi_handle; + u64 regs_handle; + u32 regs_offset; +}; + +/** + * struct hbl_cni_user_cq_id_unset_in - NIC opcode HBL_CNI_OP_USER_CQ_ID_UNSET in param. + * @port: NIC port ID. + * @id: NIC CQ ID. + */ +struct hbl_cni_user_cq_id_unset_in { + u32 port; + u32 id; +}; + +/** + * struct hbl_cni_dump_qp_in - NIC opcode HBL_CNI_OP_DUMP_QP in param. + * @user_buf_address: Pre-allocated user buffer address to hold the dump output. + * @user_buf_size: Size of the user buffer. + * @port: NIC port ID. + * @qpn: NIC QP ID. + * @req: is requester (otherwise responder). + */ +struct hbl_cni_dump_qp_in { + u64 user_buf; + u32 user_buf_size; + u32 port; + u32 qpn; + u8 req; +}; + +/* User App Params */ + +/** + * struct hbl_cni_set_user_app_params_in - NIC opcode HBL_CNI_OP_SET_USER_APP_PARAMS in param. + * allow the user application to set general parameters + * regarding the RDMA nic operation. These parameters stay + * in effect until the application releases the device + * @port: NIC port ID. + * @bp_offs: Offsets in NIC memory to signal a back pressure. Note that the advanced flag must be + * enabled in case it's being set. + * @advanced: A boolean that indicates whether this WQ should support advanced operations, such as + * RDV, QMan, WTD, etc. + * @adaptive_timeout_en: Enable adaptive timeout feature for this port. + */ +struct hbl_cni_set_user_app_params_in { + u32 port; + u32 bp_offs[HBL_CNI_USER_BP_OFFS_MAX]; + u8 advanced; + u8 adaptive_timeout_en; +}; + +/** + * struct hbl_cni_get_user_app_params_in - NIC opcode HBL_CNI_OP_GET_USER_APP_PARAMS in param. + * @port: NIC port ID. + */ +struct hbl_cni_get_user_app_params_in { + u32 port; +}; + +/** + * struct hbl_cni_get_user_app_params_out - NIC opcode HBL_CNI_OP_GET_USER_APP_PARAMS out param. + * @max_num_of_qps: Number of QPs that are supported by the driver. User must allocate enough room + * for his work-queues according to this number. + * @num_allocated_qps: Number of QPs that were already allocated (in use). + * @max_allocated_qp_idx: The highest index of the allocated QPs (i.e. this is where the + * driver may allocate its next QP). + * @max_cq_size: Maximum size of a CQ buffer. + * @advanced: true if advanced features are supported. + * @max_num_of_cqs: Maximum number of CQs. + * @max_num_of_db_fifos: Maximum number of DB-FIFOs. + * @max_num_of_encaps: Maximum number of encapsulations. + * @speed: port speed in Mbps. + * @nic_macro_idx: macro index of this specific port. + * @nic_phys_port_idx: physical port index (AKA lane) of this specific port. + */ +struct hbl_cni_get_user_app_params_out { + u32 max_num_of_qps; + u32 num_allocated_qps; + u32 max_allocated_qp_idx; + u32 max_cq_size; + u8 advanced; + u8 max_num_of_cqs; + u8 max_num_of_db_fifos; + u8 max_num_of_encaps; + u32 speed; + u8 nic_macro_idx; + u8 nic_phys_port_idx; +}; + +/** + * struct hbl_cni_alloc_user_db_fifo_in - NIC opcode HBL_CNI_OP_ALLOC_USER_DB_FIFO in param + * @port: NIC port ID + * @id_hint: Hint to allocate a specific HW resource + */ +struct hbl_cni_alloc_user_db_fifo_in { + u32 port; + u32 id_hint; +}; + +/** + * struct hbl_cni_alloc_user_db_fifo_out - NIC opcode HBL_CNI_OP_ALLOC_USER_DB_FIFO out param + * @id: DB-FIFO ID + */ +struct hbl_cni_alloc_user_db_fifo_out { + u32 id; +}; + +/** + * enum hbl_nic_db_fifo_type - NIC users FIFO modes of operation. + * @HBL_CNI_DB_FIFO_TYPE_DB: mode for direct user door-bell submit. + * @HBL_CNI_DB_FIFO_TYPE_CC: mode for congestion control. + */ +enum hbl_nic_db_fifo_type { + HBL_CNI_DB_FIFO_TYPE_DB = 0, + HBL_CNI_DB_FIFO_TYPE_CC, +}; + +/** + * struct hbl_cni_user_db_fifo_set_in - NIC opcode HBL_CNI_OP_USER_DB_FIFO_SET in param. + * @port: NIC port ID + * @id: NIC DB-FIFO ID + * @mode: represents desired mode of operation for provided FIFO, according to hbl_nic_db_fifo_type + */ +struct hbl_cni_user_db_fifo_set_in { + u32 port; + u32 id; + u8 mode; +}; + +/** + * struct hbl_cni_user_db_fifo_set_out - NIC opcode HBL_CNI_OP_USER_DB_FIFO_SET out param. + * @ci_handle: Handle of DB-FIFO consumer-inder memory buffer. + * @regs_handle: Handle of DB-FIFO Registers base-address. + * @regs_offset: Offset to the DB-FIFO Registers. + * @fifo_size: fifo size that was allocated. + * @fifo_bp_thresh: fifo threshold that was set by the driver. + */ +struct hbl_cni_user_db_fifo_set_out { + u64 ci_handle; + u64 regs_handle; + u32 regs_offset; + u32 fifo_size; + u32 fifo_bp_thresh; +}; + +/** + * struct hbl_cni_user_db_fifo_unset_in - NIC opcode HBL_CNI_OP_USER_DB_FIFO_UNSET in param. + * @port: NIC port ID. + * @id: NIC DB-FIFO ID. + */ +struct hbl_cni_user_db_fifo_unset_in { + u32 port; + u32 id; +}; + +/* The operation completed successfully and an event was read */ +#define HBL_CNI_EQ_POLL_STATUS_SUCCESS 0 +/* The operation completed successfully, no event was found */ +#define HBL_CNI_EQ_POLL_STATUS_EQ_EMPTY 1 +/* The operation failed since it is not supported by the device/driver */ +#define HBL_CNI_EQ_POLL_STATUS_ERR_UNSUPPORTED_OP 2 +/* The operation failed, port was not found */ +#define HBL_CNI_EQ_POLL_STATUS_ERR_NO_SUCH_PORT 3 +/* The operation failed, port is disabled */ +#define HBL_CNI_EQ_POLL_STATUS_ERR_PORT_DISABLED 4 +/* The operation failed, an event-queue associated with the app was not found */ +#define HBL_CNI_EQ_POLL_STATUS_ERR_NO_SUCH_EQ 5 +/* The operation failed with an undefined error */ +#define HBL_CNI_EQ_POLL_STATUS_ERR_UNDEF 6 + +/* completion-queue events */ +#define HBL_CNI_EQ_EVENT_TYPE_CQ_ERR 0 +/* Queue-pair events */ +#define HBL_CNI_EQ_EVENT_TYPE_QP_ERR 1 +/* Doorbell events */ +#define HBL_CNI_EQ_EVENT_TYPE_DB_FIFO_ERR 2 +/* congestion completion-queue events */ +#define HBL_CNI_EQ_EVENT_TYPE_CCQ 3 +/* Direct WQE security error. */ +#define HBL_CNI_EQ_EVENT_TYPE_WTD_SECURITY_ERR 4 +/* Numerical error */ +#define HBL_CNI_EQ_EVENT_TYPE_NUMERICAL_ERR 5 +/* Link status. */ +#define HBL_CNI_EQ_EVENT_TYPE_LINK_STATUS 6 +/* Queue-pair counters aligned */ +#define HBL_CNI_EQ_EVENT_TYPE_QP_ALIGN_COUNTERS 7 + +/** + * struct hbl_cni_eq_poll_in - NIC opcode HBL_CNI_OP_EQ_POLL in param. + * @port: NIC port ID. + */ +struct hbl_cni_eq_poll_in { + u32 port; +}; + +/** + * struct hbl_cni_eq_poll_out - NIC opcode HBL_CNI_OP_EQ_POLL out param. + * @status: HBL_CNI_EQ_POLL_STATUS_*. + * @idx: Connection/CQ/DB-fifo index, depends on event type. + * @ev_data: Event-specific data. + * @ev_type: Event type. + * @rest_occurred: Was the error due to reset. + * @is_req: For QP events marks if corresponding QP is requestor. + */ +struct hbl_cni_eq_poll_out { + u32 status; + u32 idx; + u32 ev_data; + u8 ev_type; + u8 rest_occurred; + u8 is_req; +}; + +/** + * enum hbl_nic_encap_type - Supported encapsulation types + * @HBL_CNI_ENCAP_NONE: No Tunneling. + * @HBL_CNI_ENCAP_OVER_IPV4: Tunnel RDMA packets through L3 layer + * @HBL_CNI_ENCAP_OVER_UDP: Tunnel RDMA packets through L4 layer + */ +enum hbl_nic_encap_type { + HBL_CNI_ENCAP_NONE, + HBL_CNI_ENCAP_OVER_IPV4, + HBL_CNI_ENCAP_OVER_UDP, +}; + +/** + * struct hbl_cni_user_encap_alloc_in - NIC opcode HBL_CNI_OP_USER_ENCAP_ALLOC in param. + * @port: NIC port ID. + */ +struct hbl_cni_user_encap_alloc_in { + u32 port; +}; + +/** + * struct hbl_cni_user_encap_alloc_out - NIC opcode HBL_CNI_OP_USER_ENCAP_ALLOC out param. + * @id: Encapsulation ID. + */ +struct hbl_cni_user_encap_alloc_out { + u32 id; +}; + +/** + * struct hbl_cni_user_encap_set_in - NIC opcode HBL_CNI_OP_USER_ENCAP_SET in param. + * @tnl_hdr_ptr: Pointer to the tunnel encapsulation header. i.e. specific tunnel header data to be + * used in the encapsulation by the HW. + * @tnl_hdr_size: Tunnel encapsulation header size. + * @port: NIC port ID. + * @id: Encapsulation ID. + * @ipv4_addr: Source IP address, set regardless of encapsulation type. + * @udp_dst_port: The UDP destination-port. Valid for L4 tunnel. + * @ip_proto: IP protocol to use. Valid for L3 tunnel. + * @encap_type: Encapsulation type. May be either no-encapsulation or encapsulation over L3 or L4. + */ +struct hbl_cni_user_encap_set_in { + u64 tnl_hdr_ptr; + u32 tnl_hdr_size; + u32 port; + u32 id; + u32 ipv4_addr; + union { + u16 udp_dst_port; + u16 ip_proto; + }; + u8 encap_type; +}; + +/** + * struct hbl_cni_user_encap_unset_in - NIC opcode HBL_CNI_OP_USER_ENCAP_UNSET in param. + * @port: NIC port ID. + * @id: Encapsulation ID. + */ +struct hbl_cni_user_encap_unset_in { + u32 port; + u32 id; +}; + +/** + * struct hbl_cni_user_ccq_set_in - NIC opcode HBL_CNI_OP_USER_CCQ_SET in param. + * @port: NIC port ID. + * @num_of_entries: Number of CCQ entries in the buffer. + */ +struct hbl_cni_user_ccq_set_in { + u32 port; + u32 num_of_entries; +}; + +/** + * struct hbl_cni_user_ccq_set_out - NIC opcode HBL_CNI_OP_USER_CCQ_SET out param. + * @mem_handle: Handle of CCQ memory buffer. + * @pi_handle: Handle of CCQ producer-index memory buffer. + * @id: CQ ID. + */ +struct hbl_cni_user_ccq_set_out { + u64 mem_handle; + u64 pi_handle; + u32 id; +}; + +/** + * struct hbl_cni_user_ccq_unset_in - NIC opcode HBL_CNI_OP_USER_CCQ_UNSET in param. + * @port: NIC port ID. + */ +struct hbl_cni_user_ccq_unset_in { + u32 port; +}; + +/* Opcode to allocate connection ID */ +#define HBL_CNI_OP_ALLOC_CONN 0 +/* Opcode to set up a requester connection context */ +#define HBL_CNI_OP_SET_REQ_CONN_CTX 1 +/* Opcode to set up a responder connection context */ +#define HBL_CNI_OP_SET_RES_CONN_CTX 2 +/* Opcode to destroy a connection */ +#define HBL_CNI_OP_DESTROY_CONN 3 +/* Opcode reserved (deprecated) */ +#define HBL_CNI_OP_RESERVED0 4 +/* Opcode reserved (deprecated) */ +#define HBL_CNI_OP_RESERVED1 5 +/* Opcode reserved (deprecated) */ +#define HBL_CNI_OP_RESERVED2 6 +/* Opcode reserved (deprecated) */ +#define HBL_CNI_OP_RESERVED3 7 +/* Opcode reserved (deprecated) */ +#define HBL_CNI_OP_RESERVED4 8 +/* Opcode to set a user WQ array */ +#define HBL_CNI_OP_USER_WQ_SET 9 +/* Opcode to unset a user WQ array */ +#define HBL_CNI_OP_USER_WQ_UNSET 10 +/* Opcode reserved */ +#define HBL_CNI_OP_RESERVED5 11 +/* Opcode reserved */ +#define HBL_CNI_OP_RESERVED6 12 +/* Opcode reserved */ +#define HBL_CNI_OP_RESERVED7 13 +/* Opcode to allocate a CQ */ +#define HBL_CNI_OP_ALLOC_USER_CQ_ID 14 +/* Opcode to set specific user-application parameters */ +#define HBL_CNI_OP_SET_USER_APP_PARAMS 15 +/* Opcode to get specific user-application parameters */ +#define HBL_CNI_OP_GET_USER_APP_PARAMS 16 +/* Opcode to allocate a DB-FIFO */ +#define HBL_CNI_OP_ALLOC_USER_DB_FIFO 17 +/* Opcode to create a DB-FIFO */ +#define HBL_CNI_OP_USER_DB_FIFO_SET 18 +/* Opcode to destroy a DB-FIFO */ +#define HBL_CNI_OP_USER_DB_FIFO_UNSET 19 +/* Opcode to poll on EQ */ +#define HBL_CNI_OP_EQ_POLL 20 +/* Opcode to allocate encapsulation ID */ +#define HBL_CNI_OP_USER_ENCAP_ALLOC 21 +/* Opcode to create an encapsulation */ +#define HBL_CNI_OP_USER_ENCAP_SET 22 +/* Opcode to destroy an encapsulation */ +#define HBL_CNI_OP_USER_ENCAP_UNSET 23 +/* Opcode to create a CCQ */ +#define HBL_CNI_OP_USER_CCQ_SET 24 +/* Opcode to destroy a CCQ */ +#define HBL_CNI_OP_USER_CCQ_UNSET 25 +/* Opcode to set user CQ by ID */ +#define HBL_CNI_OP_USER_CQ_ID_SET 26 +/* Opcode to unset user CQ by ID */ +#define HBL_CNI_OP_USER_CQ_ID_UNSET 27 +/* Opcode reserved */ +#define HBL_CNI_OP_RESERVED8 28 +/* Opcode to dump the context of a QP */ +#define HBL_CNI_OP_DUMP_QP 29 + +#endif /* HBL_CNI_H_ */ -- 2.34.1 ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-13 8:21 ` [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver Omer Shpigelman @ 2024-06-13 13:01 ` Przemek Kitszel 2024-06-13 14:16 ` Przemek Kitszel 2024-06-17 8:08 ` Omer Shpigelman 2024-06-15 0:05 ` Stephen Hemminger 2024-06-17 14:05 ` Markus Elfring 2 siblings, 2 replies; 107+ messages in thread From: Przemek Kitszel @ 2024-06-13 13:01 UTC (permalink / raw) To: Omer Shpigelman, linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, zyehudai On 6/13/24 10:21, Omer Shpigelman wrote: > Add the hbl_cn driver which will serve both Ethernet and InfiniBand > drivers. > hbl_cn is the layer which is used by the satellite drivers for many shared > operations that are needed by both EN and IB subsystems like QPs, CQs etc. > The CN driver is initialized via auxiliary bus by the habanalabs driver. > > Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> > Co-developed-by: Abhilash K V <kvabhilash@habana.ai> > Signed-off-by: Abhilash K V <kvabhilash@habana.ai> > Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> > Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> > Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> > Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> > Co-developed-by: David Meriin <dmeriin@habana.ai> > Signed-off-by: David Meriin <dmeriin@habana.ai> > Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> > Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> > Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> > Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> > --- > .../device_drivers/ethernet/index.rst | 1 + > .../device_drivers/ethernet/intel/hbl.rst | 82 + > MAINTAINERS | 11 + > drivers/net/ethernet/intel/Kconfig | 20 + > drivers/net/ethernet/intel/Makefile | 1 + > drivers/net/ethernet/intel/hbl_cn/Makefile | 9 + > .../net/ethernet/intel/hbl_cn/common/Makefile | 3 + > .../net/ethernet/intel/hbl_cn/common/hbl_cn.c | 5954 +++++++++++++++++ > .../net/ethernet/intel/hbl_cn/common/hbl_cn.h | 1627 +++++ > .../ethernet/intel/hbl_cn/common/hbl_cn_drv.c | 220 + > .../intel/hbl_cn/common/hbl_cn_memory.c | 40 + > .../ethernet/intel/hbl_cn/common/hbl_cn_phy.c | 33 + > .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 13 + > include/linux/habanalabs/cpucp_if.h | 125 +- > include/linux/habanalabs/hl_boot_if.h | 9 +- > include/linux/net/intel/cn.h | 474 ++ > include/linux/net/intel/cn_aux.h | 298 + > include/linux/net/intel/cni.h | 636 ++ > 18 files changed, 9545 insertions(+), 11 deletions(-) this is a very big patch, it asks for a split; what's worse, it's proportional to the size of this series: 146 files changed, 148514 insertions(+), 70 deletions(-) which is just too big [...] > +Support > +======= > +For general information, go to the Intel support website at: > +https://www.intel.com/support/ > + > +If an issue is identified with the released source code on a supported kernel > +with a supported adapter, email the specific information related to the issue > +to intel-wired-lan@lists.osuosl.org. I'm welcoming you to post next version of the driver to the IWL mailing list, and before that, to go through our Intel path for ethernet subsystem (rdma and a few smaller ones also go through that) (that starts internally, I will PM you the details) [...] > +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c > @@ -0,0 +1,5954 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* Copyright 2020-2024 HabanaLabs, Ltd. > + * Copyright (C) 2023-2024, Intel Corporation. > + * All Rights Reserved. > + */ > + > +#include "hbl_cn.h" > + > +#include <linux/file.h> > +#include <linux/module.h> > +#include <linux/overflow.h> > +#include <linux/pci.h> > +#include <linux/slab.h> > + > +#define NIC_MIN_WQS_PER_PORT 2 > + > +#define NIC_SEQ_RESETS_TIMEOUT_MS 15000 /* 15 seconds */ > +#define NIC_MAX_SEQ_RESETS 3 > + > +#define HBL_CN_IPV4_PROTOCOL_UDP 17 > + > +/* SOB mask is not expected to change across ASIC. Hence common defines. */ > +#define NIC_SOB_INC_MASK 0x80000000 > +#define NIC_SOB_VAL_MASK 0x7fff > + > +#define NIC_DUMP_QP_SZ SZ_4K > + > +#define HBL_AUX2NIC(aux_dev) \ > + ({ \ > + struct hbl_aux_dev *__aux_dev = (aux_dev); \ > + ((__aux_dev)->type == HBL_AUX_DEV_ETH) ? \ > + container_of(__aux_dev, struct hbl_cn_device, en_aux_dev) : \ > + container_of(__aux_dev, struct hbl_cn_device, ib_aux_dev); \ > + }) this should be a function > + > +#define RAND_STAT_CNT(cnt) \ > + do { \ > + u32 __cnt = get_random_u32(); \ > + (cnt) = __cnt; \ > + dev_info(hdev->dev, "port %d, %s: %u\n", port, #cnt, __cnt); \ no way for such message, ditto for the function > + } while (0) > + > +struct hbl_cn_stat hbl_cn_mac_fec_stats[] = { > + {"correctable_errors", 0x2, 0x3}, > + {"uncorrectable_errors", 0x4, 0x5} > +}; > + > +struct hbl_cn_stat hbl_cn_mac_stats_rx[] = { > + {"Octets", 0x0}, > + {"OctetsReceivedOK", 0x4}, > + {"aAlignmentErrors", 0x8}, > + {"aPAUSEMACCtrlFramesReceived", 0xC}, > + {"aFrameTooLongErrors", 0x10}, > + {"aInRangeLengthErrors", 0x14}, > + {"aFramesReceivedOK", 0x18}, > + {"aFrameCheckSequenceErrors", 0x1C}, > + {"VLANReceivedOK", 0x20}, > + {"ifInErrors", 0x24}, > + {"ifInUcastPkts", 0x28}, > + {"ifInMulticastPkts", 0x2C}, > + {"ifInBroadcastPkts", 0x30}, > + {"DropEvents", 0x34}, > + {"Pkts", 0x38}, > + {"UndersizePkts", 0x3C}, > + {"Pkts64Octets", 0x40}, > + {"Pkts65to127Octets", 0x44}, > + {"Pkts128to255Octets", 0x48}, > + {"Pkts256to511Octets", 0x4C}, > + {"Pkts512to1023Octets", 0x50}, > + {"Pkts1024to1518Octets", 0x54}, > + {"Pkts1519toMaxOctets", 0x58}, > + {"OversizePkts", 0x5C}, > + {"Jabbers", 0x60}, > + {"Fragments", 0x64}, > + {"aCBFCPAUSERx0", 0x68}, > + {"aCBFCPAUSERx1", 0x6C}, > + {"aCBFCPAUSERx2", 0x70}, > + {"aCBFCPAUSERx3", 0x74}, > + {"aCBFCPAUSERx4", 0x78}, > + {"aCBFCPAUSERx5", 0x7C}, > + {"aCBFCPAUSERx6", 0x80}, > + {"aCBFCPAUSERx7", 0x84}, > + {"aMACControlFramesReceived", 0x88} > +}; > + > +struct hbl_cn_stat hbl_cn_mac_stats_tx[] = { > + {"Octets", 0x0}, > + {"OctetsTransmittedOK", 0x4}, > + {"aPAUSEMACCtrlFramesTransmitted", 0x8}, > + {"aFramesTransmittedOK", 0xC}, > + {"VLANTransmittedOK", 0x10}, > + {"ifOutErrors", 0x14}, > + {"ifOutUcastPkts", 0x18}, > + {"ifOutMulticastPkts", 0x1C}, > + {"ifOutBroadcastPkts", 0x20}, > + {"Pkts64Octets", 0x24}, > + {"Pkts65to127Octets", 0x28}, > + {"Pkts128to255Octets", 0x2C}, > + {"Pkts256to511Octets", 0x30}, > + {"Pkts512to1023Octets", 0x34}, > + {"Pkts1024to1518Octets", 0x38}, > + {"Pkts1519toMaxOctets", 0x3C}, > + {"aCBFCPAUSETx0", 0x40}, > + {"aCBFCPAUSETx1", 0x44}, > + {"aCBFCPAUSETx2", 0x48}, > + {"aCBFCPAUSETx3", 0x4C}, > + {"aCBFCPAUSETx4", 0x50}, > + {"aCBFCPAUSETx5", 0x54}, > + {"aCBFCPAUSETx6", 0x58}, > + {"aCBFCPAUSETx7", 0x5C}, > + {"aMACControlFramesTx", 0x60}, > + {"Pkts", 0x64} > +}; > + > +static const char pcs_counters_str[][ETH_GSTRING_LEN] = { > + {"pcs_local_faults"}, > + {"pcs_remote_faults"}, > + {"pcs_remote_fault_reconfig"}, > + {"pcs_link_restores"}, > + {"pcs_link_toggles"}, > +}; > + > +static size_t pcs_counters_str_len = ARRAY_SIZE(pcs_counters_str); > +size_t hbl_cn_mac_fec_stats_len = ARRAY_SIZE(hbl_cn_mac_fec_stats); > +size_t hbl_cn_mac_stats_rx_len = ARRAY_SIZE(hbl_cn_mac_stats_rx); > +size_t hbl_cn_mac_stats_tx_len = ARRAY_SIZE(hbl_cn_mac_stats_tx); why those are not const? > + > +static void qps_stop(struct hbl_cn_device *hdev); > +static void qp_destroy_work(struct work_struct *work); > +static int __user_wq_arr_unset(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type); > +static void user_cq_destroy(struct kref *kref); > +static void set_app_params_clear(struct hbl_cn_device *hdev); > +static int hbl_cn_ib_cmd_ctrl(struct hbl_aux_dev *aux_dev, void *cn_ib_ctx, u32 op, void *input, > + void *output); > +static int hbl_cn_ib_query_mem_handle(struct hbl_aux_dev *ib_aux_dev, u64 mem_handle, > + struct hbl_ib_mem_info *info); > + > +static void hbl_cn_reset_stats_counters_port(struct hbl_cn_device *hdev, u32 port); > +static void hbl_cn_late_init(struct hbl_cn_device *hdev); > +static void hbl_cn_late_fini(struct hbl_cn_device *hdev); > +static int hbl_cn_sw_init(struct hbl_cn_device *hdev); > +static void hbl_cn_sw_fini(struct hbl_cn_device *hdev); > +static void hbl_cn_spmu_init(struct hbl_cn_port *cn_port, bool full); > +static int hbl_cn_cmd_port_check(struct hbl_cn_device *hdev, u32 port, u32 flags); > +static void hbl_cn_qps_stop(struct hbl_cn_port *cn_port); > + > +static int hbl_cn_request_irqs(struct hbl_cn_device *hdev) > +{ > + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; > + > + return asic_funcs->request_irqs(hdev); > +} > + > +static void hbl_cn_free_irqs(struct hbl_cn_device *hdev) > +{ > + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; > + > + asic_funcs->free_irqs(hdev); > +} > + > +static void hbl_cn_synchronize_irqs(struct hbl_aux_dev *cn_aux_dev) > +{ > + struct hbl_cn_device *hdev = cn_aux_dev->priv; > + struct hbl_cn_asic_funcs *asic_funcs; > + > + asic_funcs = hdev->asic_funcs; > + > + asic_funcs->synchronize_irqs(hdev); > +} > + > +void hbl_cn_get_frac_info(u64 numerator, u64 denominator, u64 *integer, u64 *exp) > +{ > + u64 high_digit_n, high_digit_d, integer_tmp, exp_tmp; > + u8 num_digits_n, num_digits_d; > + int i; > + > + num_digits_d = hbl_cn_get_num_of_digits(denominator); > + high_digit_d = denominator; > + for (i = 0; i < num_digits_d - 1; i++) > + high_digit_d /= 10; > + > + integer_tmp = 0; > + exp_tmp = 0; > + > + if (numerator) { > + num_digits_n = hbl_cn_get_num_of_digits(numerator); > + high_digit_n = numerator; > + for (i = 0; i < num_digits_n - 1; i++) > + high_digit_n /= 10; > + > + exp_tmp = num_digits_d - num_digits_n; > + > + if (high_digit_n < high_digit_d) { > + high_digit_n *= 10; > + exp_tmp++; > + } > + > + integer_tmp = div_u64(high_digit_n, high_digit_d); > + } > + > + *integer = integer_tmp; > + *exp = exp_tmp; > +} this function sounds suspicious for a network driver, what do you need it for? > + > +int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 out_data[], u32 *num_out_data) > +{ > + struct hbl_cn_device *hdev = cn_port->hdev; > + struct hbl_cn_asic_port_funcs *port_funcs; > + struct hbl_cn_stat *ignore; > + int rc; > + > + port_funcs = hdev->asic_funcs->port_funcs; > + > + port_funcs->spmu_get_stats_info(cn_port, &ignore, num_out_data); hard to ignore that you deref uninitialized pointer... please consider going one step back and start with our internal mailing lists, thank you Przemek [...] ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-13 13:01 ` Przemek Kitszel @ 2024-06-13 14:16 ` Przemek Kitszel 2024-06-17 8:08 ` Omer Shpigelman 1 sibling, 0 replies; 107+ messages in thread From: Przemek Kitszel @ 2024-06-13 14:16 UTC (permalink / raw) To: Omer Shpigelman, linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, zyehudai On 6/13/24 15:01, Przemek Kitszel wrote: > On 6/13/24 10:21, Omer Shpigelman wrote: [...] >> + >> +int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 >> out_data[], u32 *num_out_data) >> +{ >> + struct hbl_cn_device *hdev = cn_port->hdev; >> + struct hbl_cn_asic_port_funcs *port_funcs; >> + struct hbl_cn_stat *ignore; >> + int rc; >> + >> + port_funcs = hdev->asic_funcs->port_funcs; >> + >> + port_funcs->spmu_get_stats_info(cn_port, &ignore, num_out_data); > > hard to ignore that you deref uninitialized pointer... oh, sorry, I was in hurry, please disregard this particular comment > > please consider going one step back and start with our internal mailing > lists, thank you > Przemek but this option very much still holds > > [...] > ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-13 13:01 ` Przemek Kitszel 2024-06-13 14:16 ` Przemek Kitszel @ 2024-06-17 8:08 ` Omer Shpigelman 2024-06-17 11:48 ` Leon Romanovsky 1 sibling, 1 reply; 107+ messages in thread From: Omer Shpigelman @ 2024-06-17 8:08 UTC (permalink / raw) To: Przemek Kitszel, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: ogabbay@kernel.org, Zvika Yehudai On 6/13/24 16:01, Przemek Kitszel wrote: > [Some people who received this message don't often get email from przemyslaw.kitszel@intel.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > On 6/13/24 10:21, Omer Shpigelman wrote: >> Add the hbl_cn driver which will serve both Ethernet and InfiniBand >> drivers. >> hbl_cn is the layer which is used by the satellite drivers for many shared >> operations that are needed by both EN and IB subsystems like QPs, CQs etc. >> The CN driver is initialized via auxiliary bus by the habanalabs driver. >> >> Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> >> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> >> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> >> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> >> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> >> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> >> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> >> Co-developed-by: David Meriin <dmeriin@habana.ai> >> Signed-off-by: David Meriin <dmeriin@habana.ai> >> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> >> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> >> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> >> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> >> --- >> .../device_drivers/ethernet/index.rst | 1 + >> .../device_drivers/ethernet/intel/hbl.rst | 82 + >> MAINTAINERS | 11 + >> drivers/net/ethernet/intel/Kconfig | 20 + >> drivers/net/ethernet/intel/Makefile | 1 + >> drivers/net/ethernet/intel/hbl_cn/Makefile | 9 + >> .../net/ethernet/intel/hbl_cn/common/Makefile | 3 + >> .../net/ethernet/intel/hbl_cn/common/hbl_cn.c | 5954 +++++++++++++++++ >> .../net/ethernet/intel/hbl_cn/common/hbl_cn.h | 1627 +++++ >> .../ethernet/intel/hbl_cn/common/hbl_cn_drv.c | 220 + >> .../intel/hbl_cn/common/hbl_cn_memory.c | 40 + >> .../ethernet/intel/hbl_cn/common/hbl_cn_phy.c | 33 + >> .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 13 + >> include/linux/habanalabs/cpucp_if.h | 125 +- >> include/linux/habanalabs/hl_boot_if.h | 9 +- >> include/linux/net/intel/cn.h | 474 ++ >> include/linux/net/intel/cn_aux.h | 298 + >> include/linux/net/intel/cni.h | 636 ++ >> 18 files changed, 9545 insertions(+), 11 deletions(-) > > this is a very big patch, it asks for a split; what's worse, it's > proportional to the size of this series: > 146 files changed, 148514 insertions(+), 70 deletions(-) > which is just too big > > [...] > Yeah, well I'm limited to 15 patches per patch set according to the kernel doc so I had to have this big patch. Our changes are contained in 4 different drivers and all of the changes should be merged together so the HW will be operational. Hence I had to squeeze some code to a big patch. >> +Support >> +======= >> +For general information, go to the Intel support website at: >> +https://www.intel.com/support/ >> + >> +If an issue is identified with the released source code on a supported kernel >> +with a supported adapter, email the specific information related to the issue >> +to intel-wired-lan@lists.osuosl.org. > > I'm welcoming you to post next version of the driver to the IWL mailing > list, and before that, to go through our Intel path for ethernet > subsystem (rdma and a few smaller ones also go through that) > (that starts internally, I will PM you the details) > > [...] > Ok, I'll go the Intel path first. >> +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c >> @@ -0,0 +1,5954 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/* Copyright 2020-2024 HabanaLabs, Ltd. >> + * Copyright (C) 2023-2024, Intel Corporation. >> + * All Rights Reserved. >> + */ >> + >> +#include "hbl_cn.h" >> + >> +#include <linux/file.h> >> +#include <linux/module.h> >> +#include <linux/overflow.h> >> +#include <linux/pci.h> >> +#include <linux/slab.h> >> + >> +#define NIC_MIN_WQS_PER_PORT 2 >> + >> +#define NIC_SEQ_RESETS_TIMEOUT_MS 15000 /* 15 seconds */ >> +#define NIC_MAX_SEQ_RESETS 3 >> + >> +#define HBL_CN_IPV4_PROTOCOL_UDP 17 >> + >> +/* SOB mask is not expected to change across ASIC. Hence common defines. */ >> +#define NIC_SOB_INC_MASK 0x80000000 >> +#define NIC_SOB_VAL_MASK 0x7fff >> + >> +#define NIC_DUMP_QP_SZ SZ_4K >> + >> +#define HBL_AUX2NIC(aux_dev) \ >> + ({ \ >> + struct hbl_aux_dev *__aux_dev = (aux_dev); \ >> + ((__aux_dev)->type == HBL_AUX_DEV_ETH) ? \ >> + container_of(__aux_dev, struct hbl_cn_device, en_aux_dev) : \ >> + container_of(__aux_dev, struct hbl_cn_device, ib_aux_dev); \ >> + }) > > this should be a function > I'll switch it to a function. >> + >> +#define RAND_STAT_CNT(cnt) \ >> + do { \ >> + u32 __cnt = get_random_u32(); \ >> + (cnt) = __cnt; \ >> + dev_info(hdev->dev, "port %d, %s: %u\n", port, #cnt, __cnt); \ > > no way for such message, ditto for the function > The thing is that I'd like to print the counter name and it's value. For that I need to stringify the counter name. IMO it is nicer to have the current code rather than something like: RAND_STAT_CNT(status->high_ber_reinit, __stringify(status->high_ber_reinit)); RAND_STAT_CNT(status->correctable_err_cnt, __stringify(status->correctable_err_cnt)); or: RAND_STAT_CNT(status->high_ber_reinit, "high_ber_reinit"); RAND_STAT_CNT(status->correctable_err_cnt, "correctable_err_cnt"); But I'll change it if it's not common to print from macros. >> + } while (0) >> + >> +struct hbl_cn_stat hbl_cn_mac_fec_stats[] = { >> + {"correctable_errors", 0x2, 0x3}, >> + {"uncorrectable_errors", 0x4, 0x5} >> +}; >> + >> +struct hbl_cn_stat hbl_cn_mac_stats_rx[] = { >> + {"Octets", 0x0}, >> + {"OctetsReceivedOK", 0x4}, >> + {"aAlignmentErrors", 0x8}, >> + {"aPAUSEMACCtrlFramesReceived", 0xC}, >> + {"aFrameTooLongErrors", 0x10}, >> + {"aInRangeLengthErrors", 0x14}, >> + {"aFramesReceivedOK", 0x18}, >> + {"aFrameCheckSequenceErrors", 0x1C}, >> + {"VLANReceivedOK", 0x20}, >> + {"ifInErrors", 0x24}, >> + {"ifInUcastPkts", 0x28}, >> + {"ifInMulticastPkts", 0x2C}, >> + {"ifInBroadcastPkts", 0x30}, >> + {"DropEvents", 0x34}, >> + {"Pkts", 0x38}, >> + {"UndersizePkts", 0x3C}, >> + {"Pkts64Octets", 0x40}, >> + {"Pkts65to127Octets", 0x44}, >> + {"Pkts128to255Octets", 0x48}, >> + {"Pkts256to511Octets", 0x4C}, >> + {"Pkts512to1023Octets", 0x50}, >> + {"Pkts1024to1518Octets", 0x54}, >> + {"Pkts1519toMaxOctets", 0x58}, >> + {"OversizePkts", 0x5C}, >> + {"Jabbers", 0x60}, >> + {"Fragments", 0x64}, >> + {"aCBFCPAUSERx0", 0x68}, >> + {"aCBFCPAUSERx1", 0x6C}, >> + {"aCBFCPAUSERx2", 0x70}, >> + {"aCBFCPAUSERx3", 0x74}, >> + {"aCBFCPAUSERx4", 0x78}, >> + {"aCBFCPAUSERx5", 0x7C}, >> + {"aCBFCPAUSERx6", 0x80}, >> + {"aCBFCPAUSERx7", 0x84}, >> + {"aMACControlFramesReceived", 0x88} >> +}; >> + >> +struct hbl_cn_stat hbl_cn_mac_stats_tx[] = { >> + {"Octets", 0x0}, >> + {"OctetsTransmittedOK", 0x4}, >> + {"aPAUSEMACCtrlFramesTransmitted", 0x8}, >> + {"aFramesTransmittedOK", 0xC}, >> + {"VLANTransmittedOK", 0x10}, >> + {"ifOutErrors", 0x14}, >> + {"ifOutUcastPkts", 0x18}, >> + {"ifOutMulticastPkts", 0x1C}, >> + {"ifOutBroadcastPkts", 0x20}, >> + {"Pkts64Octets", 0x24}, >> + {"Pkts65to127Octets", 0x28}, >> + {"Pkts128to255Octets", 0x2C}, >> + {"Pkts256to511Octets", 0x30}, >> + {"Pkts512to1023Octets", 0x34}, >> + {"Pkts1024to1518Octets", 0x38}, >> + {"Pkts1519toMaxOctets", 0x3C}, >> + {"aCBFCPAUSETx0", 0x40}, >> + {"aCBFCPAUSETx1", 0x44}, >> + {"aCBFCPAUSETx2", 0x48}, >> + {"aCBFCPAUSETx3", 0x4C}, >> + {"aCBFCPAUSETx4", 0x50}, >> + {"aCBFCPAUSETx5", 0x54}, >> + {"aCBFCPAUSETx6", 0x58}, >> + {"aCBFCPAUSETx7", 0x5C}, >> + {"aMACControlFramesTx", 0x60}, >> + {"Pkts", 0x64} >> +}; >> + >> +static const char pcs_counters_str[][ETH_GSTRING_LEN] = { >> + {"pcs_local_faults"}, >> + {"pcs_remote_faults"}, >> + {"pcs_remote_fault_reconfig"}, >> + {"pcs_link_restores"}, >> + {"pcs_link_toggles"}, >> +}; >> + >> +static size_t pcs_counters_str_len = ARRAY_SIZE(pcs_counters_str); >> +size_t hbl_cn_mac_fec_stats_len = ARRAY_SIZE(hbl_cn_mac_fec_stats); >> +size_t hbl_cn_mac_stats_rx_len = ARRAY_SIZE(hbl_cn_mac_stats_rx); >> +size_t hbl_cn_mac_stats_tx_len = ARRAY_SIZE(hbl_cn_mac_stats_tx); > > why those are not const? > I'll add const. >> + >> +static void qps_stop(struct hbl_cn_device *hdev); >> +static void qp_destroy_work(struct work_struct *work); >> +static int __user_wq_arr_unset(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type); >> +static void user_cq_destroy(struct kref *kref); >> +static void set_app_params_clear(struct hbl_cn_device *hdev); >> +static int hbl_cn_ib_cmd_ctrl(struct hbl_aux_dev *aux_dev, void *cn_ib_ctx, u32 op, void *input, >> + void *output); >> +static int hbl_cn_ib_query_mem_handle(struct hbl_aux_dev *ib_aux_dev, u64 mem_handle, >> + struct hbl_ib_mem_info *info); >> + >> +static void hbl_cn_reset_stats_counters_port(struct hbl_cn_device *hdev, u32 port); >> +static void hbl_cn_late_init(struct hbl_cn_device *hdev); >> +static void hbl_cn_late_fini(struct hbl_cn_device *hdev); >> +static int hbl_cn_sw_init(struct hbl_cn_device *hdev); >> +static void hbl_cn_sw_fini(struct hbl_cn_device *hdev); >> +static void hbl_cn_spmu_init(struct hbl_cn_port *cn_port, bool full); >> +static int hbl_cn_cmd_port_check(struct hbl_cn_device *hdev, u32 port, u32 flags); >> +static void hbl_cn_qps_stop(struct hbl_cn_port *cn_port); >> + >> +static int hbl_cn_request_irqs(struct hbl_cn_device *hdev) >> +{ >> + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; >> + >> + return asic_funcs->request_irqs(hdev); >> +} >> + >> +static void hbl_cn_free_irqs(struct hbl_cn_device *hdev) >> +{ >> + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; >> + >> + asic_funcs->free_irqs(hdev); >> +} >> + >> +static void hbl_cn_synchronize_irqs(struct hbl_aux_dev *cn_aux_dev) >> +{ >> + struct hbl_cn_device *hdev = cn_aux_dev->priv; >> + struct hbl_cn_asic_funcs *asic_funcs; >> + >> + asic_funcs = hdev->asic_funcs; >> + >> + asic_funcs->synchronize_irqs(hdev); >> +} >> + >> +void hbl_cn_get_frac_info(u64 numerator, u64 denominator, u64 *integer, u64 *exp) >> +{ >> + u64 high_digit_n, high_digit_d, integer_tmp, exp_tmp; >> + u8 num_digits_n, num_digits_d; >> + int i; >> + >> + num_digits_d = hbl_cn_get_num_of_digits(denominator); >> + high_digit_d = denominator; >> + for (i = 0; i < num_digits_d - 1; i++) >> + high_digit_d /= 10; >> + >> + integer_tmp = 0; >> + exp_tmp = 0; >> + >> + if (numerator) { >> + num_digits_n = hbl_cn_get_num_of_digits(numerator); >> + high_digit_n = numerator; >> + for (i = 0; i < num_digits_n - 1; i++) >> + high_digit_n /= 10; >> + >> + exp_tmp = num_digits_d - num_digits_n; >> + >> + if (high_digit_n < high_digit_d) { >> + high_digit_n *= 10; >> + exp_tmp++; >> + } >> + >> + integer_tmp = div_u64(high_digit_n, high_digit_d); >> + } >> + >> + *integer = integer_tmp; >> + *exp = exp_tmp; >> +} > > this function sounds suspicious for a network driver, what do you need > it for? > Some of our counters are exposed by the HW with numerator/denominator representation and we'd like to expose them to the user with exponent representation. This function converts a counter value from one representation to the other. >> + >> +int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 out_data[], u32 *num_out_data) >> +{ >> + struct hbl_cn_device *hdev = cn_port->hdev; >> + struct hbl_cn_asic_port_funcs *port_funcs; >> + struct hbl_cn_stat *ignore; >> + int rc; >> + >> + port_funcs = hdev->asic_funcs->port_funcs; >> + >> + port_funcs->spmu_get_stats_info(cn_port, &ignore, num_out_data); > > hard to ignore that you deref uninitialized pointer... > > please consider going one step back and start with our internal mailing > lists, thank you > Przemek > > [...] ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-17 8:08 ` Omer Shpigelman @ 2024-06-17 11:48 ` Leon Romanovsky 2024-06-18 7:28 ` Omer Shpigelman 0 siblings, 1 reply; 107+ messages in thread From: Leon Romanovsky @ 2024-06-17 11:48 UTC (permalink / raw) To: Omer Shpigelman Cc: Przemek Kitszel, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On Mon, Jun 17, 2024 at 08:08:26AM +0000, Omer Shpigelman wrote: > On 6/13/24 16:01, Przemek Kitszel wrote: > > [Some people who received this message don't often get email from przemyslaw.kitszel@intel.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > On 6/13/24 10:21, Omer Shpigelman wrote: > >> Add the hbl_cn driver which will serve both Ethernet and InfiniBand > >> drivers. > >> hbl_cn is the layer which is used by the satellite drivers for many shared > >> operations that are needed by both EN and IB subsystems like QPs, CQs etc. > >> The CN driver is initialized via auxiliary bus by the habanalabs driver. > >> > >> Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> > >> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> > >> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> > >> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> > >> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> > >> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> > >> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> > >> Co-developed-by: David Meriin <dmeriin@habana.ai> > >> Signed-off-by: David Meriin <dmeriin@habana.ai> > >> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> > >> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> > >> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> > >> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> > >> --- > >> .../device_drivers/ethernet/index.rst | 1 + > >> .../device_drivers/ethernet/intel/hbl.rst | 82 + > >> MAINTAINERS | 11 + > >> drivers/net/ethernet/intel/Kconfig | 20 + > >> drivers/net/ethernet/intel/Makefile | 1 + > >> drivers/net/ethernet/intel/hbl_cn/Makefile | 9 + > >> .../net/ethernet/intel/hbl_cn/common/Makefile | 3 + > >> .../net/ethernet/intel/hbl_cn/common/hbl_cn.c | 5954 +++++++++++++++++ > >> .../net/ethernet/intel/hbl_cn/common/hbl_cn.h | 1627 +++++ > >> .../ethernet/intel/hbl_cn/common/hbl_cn_drv.c | 220 + > >> .../intel/hbl_cn/common/hbl_cn_memory.c | 40 + > >> .../ethernet/intel/hbl_cn/common/hbl_cn_phy.c | 33 + > >> .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 13 + > >> include/linux/habanalabs/cpucp_if.h | 125 +- > >> include/linux/habanalabs/hl_boot_if.h | 9 +- > >> include/linux/net/intel/cn.h | 474 ++ > >> include/linux/net/intel/cn_aux.h | 298 + > >> include/linux/net/intel/cni.h | 636 ++ > >> 18 files changed, 9545 insertions(+), 11 deletions(-) > > > > this is a very big patch, it asks for a split; what's worse, it's > > proportional to the size of this series: > > 146 files changed, 148514 insertions(+), 70 deletions(-) > > which is just too big > > > > [...] > > > > Yeah, well I'm limited to 15 patches per patch set according to the kernel > doc so I had to have this big patch. > Our changes are contained in 4 different drivers and all of the changes > should be merged together so the HW will be operational. > Hence I had to squeeze some code to a big patch. Submit your code in multiple steps. One driver at a time. Thanks ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-17 11:48 ` Leon Romanovsky @ 2024-06-18 7:28 ` Omer Shpigelman 0 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-18 7:28 UTC (permalink / raw) To: Leon Romanovsky Cc: Przemek Kitszel, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On 6/17/24 14:48, Leon Romanovsky wrote: > [Some people who received this message don't often get email from leon@kernel.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > On Mon, Jun 17, 2024 at 08:08:26AM +0000, Omer Shpigelman wrote: >> On 6/13/24 16:01, Przemek Kitszel wrote: >>> [Some people who received this message don't often get email from przemyslaw.kitszel@intel.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] >>> >>> On 6/13/24 10:21, Omer Shpigelman wrote: >>>> Add the hbl_cn driver which will serve both Ethernet and InfiniBand >>>> drivers. >>>> hbl_cn is the layer which is used by the satellite drivers for many shared >>>> operations that are needed by both EN and IB subsystems like QPs, CQs etc. >>>> The CN driver is initialized via auxiliary bus by the habanalabs driver. >>>> >>>> Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> >>>> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> >>>> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> >>>> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> >>>> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> >>>> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> >>>> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> >>>> Co-developed-by: David Meriin <dmeriin@habana.ai> >>>> Signed-off-by: David Meriin <dmeriin@habana.ai> >>>> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> >>>> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> >>>> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> >>>> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> >>>> --- >>>> .../device_drivers/ethernet/index.rst | 1 + >>>> .../device_drivers/ethernet/intel/hbl.rst | 82 + >>>> MAINTAINERS | 11 + >>>> drivers/net/ethernet/intel/Kconfig | 20 + >>>> drivers/net/ethernet/intel/Makefile | 1 + >>>> drivers/net/ethernet/intel/hbl_cn/Makefile | 9 + >>>> .../net/ethernet/intel/hbl_cn/common/Makefile | 3 + >>>> .../net/ethernet/intel/hbl_cn/common/hbl_cn.c | 5954 +++++++++++++++++ >>>> .../net/ethernet/intel/hbl_cn/common/hbl_cn.h | 1627 +++++ >>>> .../ethernet/intel/hbl_cn/common/hbl_cn_drv.c | 220 + >>>> .../intel/hbl_cn/common/hbl_cn_memory.c | 40 + >>>> .../ethernet/intel/hbl_cn/common/hbl_cn_phy.c | 33 + >>>> .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 13 + >>>> include/linux/habanalabs/cpucp_if.h | 125 +- >>>> include/linux/habanalabs/hl_boot_if.h | 9 +- >>>> include/linux/net/intel/cn.h | 474 ++ >>>> include/linux/net/intel/cn_aux.h | 298 + >>>> include/linux/net/intel/cni.h | 636 ++ >>>> 18 files changed, 9545 insertions(+), 11 deletions(-) >>> >>> this is a very big patch, it asks for a split; what's worse, it's >>> proportional to the size of this series: >>> 146 files changed, 148514 insertions(+), 70 deletions(-) >>> which is just too big >>> >>> [...] >>> >> >> Yeah, well I'm limited to 15 patches per patch set according to the kernel >> doc so I had to have this big patch. >> Our changes are contained in 4 different drivers and all of the changes >> should be merged together so the HW will be operational. >> Hence I had to squeeze some code to a big patch. > > Submit your code in multiple steps. One driver at a time. > > Thanks I can push each driver at a time but it is missing the big context. Every single driver is useless without the others (or at least a subset of them). But I'll do that anyway so it will be possible to review. Thanks. ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-13 8:21 ` [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver Omer Shpigelman 2024-06-13 13:01 ` Przemek Kitszel @ 2024-06-15 0:05 ` Stephen Hemminger 2024-06-17 8:14 ` Omer Shpigelman 2024-06-17 14:05 ` Markus Elfring 2 siblings, 1 reply; 107+ messages in thread From: Stephen Hemminger @ 2024-06-15 0:05 UTC (permalink / raw) To: Omer Shpigelman Cc: linux-kernel, linux-rdma, netdev, dri-devel, ogabbay, zyehudai > +#define HBL_AUX2NIC(aux_dev) \ > + ({ \ > + struct hbl_aux_dev *__aux_dev = (aux_dev); \ > + ((__aux_dev)->type == HBL_AUX_DEV_ETH) ? \ > + container_of(__aux_dev, struct hbl_cn_device, en_aux_dev) : \ > + container_of(__aux_dev, struct hbl_cn_device, ib_aux_dev); \ > + }) > + > +#define RAND_STAT_CNT(cnt) \ > + do { \ > + u32 __cnt = get_random_u32(); \ > + (cnt) = __cnt; \ > + dev_info(hdev->dev, "port %d, %s: %u\n", port, #cnt, __cnt); \ > + } while (0) > + > +struct hbl_cn_stat hbl_cn_mac_fec_stats[] = { > + {"correctable_errors", 0x2, 0x3}, > + {"uncorrectable_errors", 0x4, 0x5} > +}; > + These tables should be marked const? > +struct hbl_cn_stat hbl_cn_mac_stats_rx[] = { > + {"Octets", 0x0}, > + {"OctetsReceivedOK", 0x4}, > + {"aAlignmentErrors", 0x8}, > + {"aPAUSEMACCtrlFramesReceived", 0xC}, > + {"aFrameTooLongErrors", 0x10}, > + {"aInRangeLengthErrors", 0x14}, > + {"aFramesReceivedOK", 0x18}, > + {"aFrameCheckSequenceErrors", 0x1C}, > + {"VLANReceivedOK", 0x20}, > + {"ifInErrors", 0x24}, > + {"ifInUcastPkts", 0x28}, > + {"ifInMulticastPkts", 0x2C}, > + {"ifInBroadcastPkts", 0x30}, > + {"DropEvents", 0x34}, > + {"Pkts", 0x38}, > + {"UndersizePkts", 0x3C}, > + {"Pkts64Octets", 0x40}, > + {"Pkts65to127Octets", 0x44}, > + {"Pkts128to255Octets", 0x48}, > + {"Pkts256to511Octets", 0x4C}, > + {"Pkts512to1023Octets", 0x50}, > + {"Pkts1024to1518Octets", 0x54}, > + {"Pkts1519toMaxOctets", 0x58}, > + {"OversizePkts", 0x5C}, > + {"Jabbers", 0x60}, > + {"Fragments", 0x64}, > + {"aCBFCPAUSERx0", 0x68}, > + {"aCBFCPAUSERx1", 0x6C}, > + {"aCBFCPAUSERx2", 0x70}, > + {"aCBFCPAUSERx3", 0x74}, > + {"aCBFCPAUSERx4", 0x78}, > + {"aCBFCPAUSERx5", 0x7C}, > + {"aCBFCPAUSERx6", 0x80}, > + {"aCBFCPAUSERx7", 0x84}, > + {"aMACControlFramesReceived", 0x88} > +}; > + > +struct hbl_cn_stat hbl_cn_mac_stats_tx[] = { > + {"Octets", 0x0}, > + {"OctetsTransmittedOK", 0x4}, > + {"aPAUSEMACCtrlFramesTransmitted", 0x8}, > + {"aFramesTransmittedOK", 0xC}, > + {"VLANTransmittedOK", 0x10}, > + {"ifOutErrors", 0x14}, > + {"ifOutUcastPkts", 0x18}, > + {"ifOutMulticastPkts", 0x1C}, > + {"ifOutBroadcastPkts", 0x20}, > + {"Pkts64Octets", 0x24}, > + {"Pkts65to127Octets", 0x28}, > + {"Pkts128to255Octets", 0x2C}, > + {"Pkts256to511Octets", 0x30}, > + {"Pkts512to1023Octets", 0x34}, > + {"Pkts1024to1518Octets", 0x38}, > + {"Pkts1519toMaxOctets", 0x3C}, > + {"aCBFCPAUSETx0", 0x40}, > + {"aCBFCPAUSETx1", 0x44}, > + {"aCBFCPAUSETx2", 0x48}, > + {"aCBFCPAUSETx3", 0x4C}, > + {"aCBFCPAUSETx4", 0x50}, > + {"aCBFCPAUSETx5", 0x54}, > + {"aCBFCPAUSETx6", 0x58}, > + {"aCBFCPAUSETx7", 0x5C}, > + {"aMACControlFramesTx", 0x60}, > + {"Pkts", 0x64} > +}; > + > +static const char pcs_counters_str[][ETH_GSTRING_LEN] = { > + {"pcs_local_faults"}, > + {"pcs_remote_faults"}, > + {"pcs_remote_fault_reconfig"}, > + {"pcs_link_restores"}, > + {"pcs_link_toggles"}, > +}; > + > +static size_t pcs_counters_str_len = ARRAY_SIZE(pcs_counters_str); > +size_t hbl_cn_mac_fec_stats_len = ARRAY_SIZE(hbl_cn_mac_fec_stats); > +size_t hbl_cn_mac_stats_rx_len = ARRAY_SIZE(hbl_cn_mac_stats_rx); > +size_t hbl_cn_mac_stats_tx_len = ARRAY_SIZE(hbl_cn_mac_stats_tx); > + > +static void qps_stop(struct hbl_cn_device *hdev); > +static void qp_destroy_work(struct work_struct *work); > +static int __user_wq_arr_unset(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type); > +static void user_cq_destroy(struct kref *kref); > +static void set_app_params_clear(struct hbl_cn_device *hdev); > +static int hbl_cn_ib_cmd_ctrl(struct hbl_aux_dev *aux_dev, void *cn_ib_ctx, u32 op, void *input, > + void *output); > +static int hbl_cn_ib_query_mem_handle(struct hbl_aux_dev *ib_aux_dev, u64 mem_handle, > + struct hbl_ib_mem_info *info); > + > +static void hbl_cn_reset_stats_counters_port(struct hbl_cn_device *hdev, u32 port); > +static void hbl_cn_late_init(struct hbl_cn_device *hdev); > +static void hbl_cn_late_fini(struct hbl_cn_device *hdev); > +static int hbl_cn_sw_init(struct hbl_cn_device *hdev); > +static void hbl_cn_sw_fini(struct hbl_cn_device *hdev); > +static void hbl_cn_spmu_init(struct hbl_cn_port *cn_port, bool full); > +static int hbl_cn_cmd_port_check(struct hbl_cn_device *hdev, u32 port, u32 flags); > +static void hbl_cn_qps_stop(struct hbl_cn_port *cn_port); Can you reorder code so forward declarations are not required? ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-15 0:05 ` Stephen Hemminger @ 2024-06-17 8:14 ` Omer Shpigelman 0 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-17 8:14 UTC (permalink / raw) To: Stephen Hemminger Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On 6/15/24 03:05, Stephen Hemminger wrote: > [You don't often get email from stephen@networkplumber.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > >> +#define HBL_AUX2NIC(aux_dev) \ >> + ({ \ >> + struct hbl_aux_dev *__aux_dev = (aux_dev); \ >> + ((__aux_dev)->type == HBL_AUX_DEV_ETH) ? \ >> + container_of(__aux_dev, struct hbl_cn_device, en_aux_dev) : \ >> + container_of(__aux_dev, struct hbl_cn_device, ib_aux_dev); \ >> + }) >> + >> +#define RAND_STAT_CNT(cnt) \ >> + do { \ >> + u32 __cnt = get_random_u32(); \ >> + (cnt) = __cnt; \ >> + dev_info(hdev->dev, "port %d, %s: %u\n", port, #cnt, __cnt); \ >> + } while (0) >> + >> +struct hbl_cn_stat hbl_cn_mac_fec_stats[] = { >> + {"correctable_errors", 0x2, 0x3}, >> + {"uncorrectable_errors", 0x4, 0x5} >> +}; >> + > > These tables should be marked const? > I'll add const to them. >> +struct hbl_cn_stat hbl_cn_mac_stats_rx[] = { >> + {"Octets", 0x0}, >> + {"OctetsReceivedOK", 0x4}, >> + {"aAlignmentErrors", 0x8}, >> + {"aPAUSEMACCtrlFramesReceived", 0xC}, >> + {"aFrameTooLongErrors", 0x10}, >> + {"aInRangeLengthErrors", 0x14}, >> + {"aFramesReceivedOK", 0x18}, >> + {"aFrameCheckSequenceErrors", 0x1C}, >> + {"VLANReceivedOK", 0x20}, >> + {"ifInErrors", 0x24}, >> + {"ifInUcastPkts", 0x28}, >> + {"ifInMulticastPkts", 0x2C}, >> + {"ifInBroadcastPkts", 0x30}, >> + {"DropEvents", 0x34}, >> + {"Pkts", 0x38}, >> + {"UndersizePkts", 0x3C}, >> + {"Pkts64Octets", 0x40}, >> + {"Pkts65to127Octets", 0x44}, >> + {"Pkts128to255Octets", 0x48}, >> + {"Pkts256to511Octets", 0x4C}, >> + {"Pkts512to1023Octets", 0x50}, >> + {"Pkts1024to1518Octets", 0x54}, >> + {"Pkts1519toMaxOctets", 0x58}, >> + {"OversizePkts", 0x5C}, >> + {"Jabbers", 0x60}, >> + {"Fragments", 0x64}, >> + {"aCBFCPAUSERx0", 0x68}, >> + {"aCBFCPAUSERx1", 0x6C}, >> + {"aCBFCPAUSERx2", 0x70}, >> + {"aCBFCPAUSERx3", 0x74}, >> + {"aCBFCPAUSERx4", 0x78}, >> + {"aCBFCPAUSERx5", 0x7C}, >> + {"aCBFCPAUSERx6", 0x80}, >> + {"aCBFCPAUSERx7", 0x84}, >> + {"aMACControlFramesReceived", 0x88} >> +}; >> + >> +struct hbl_cn_stat hbl_cn_mac_stats_tx[] = { >> + {"Octets", 0x0}, >> + {"OctetsTransmittedOK", 0x4}, >> + {"aPAUSEMACCtrlFramesTransmitted", 0x8}, >> + {"aFramesTransmittedOK", 0xC}, >> + {"VLANTransmittedOK", 0x10}, >> + {"ifOutErrors", 0x14}, >> + {"ifOutUcastPkts", 0x18}, >> + {"ifOutMulticastPkts", 0x1C}, >> + {"ifOutBroadcastPkts", 0x20}, >> + {"Pkts64Octets", 0x24}, >> + {"Pkts65to127Octets", 0x28}, >> + {"Pkts128to255Octets", 0x2C}, >> + {"Pkts256to511Octets", 0x30}, >> + {"Pkts512to1023Octets", 0x34}, >> + {"Pkts1024to1518Octets", 0x38}, >> + {"Pkts1519toMaxOctets", 0x3C}, >> + {"aCBFCPAUSETx0", 0x40}, >> + {"aCBFCPAUSETx1", 0x44}, >> + {"aCBFCPAUSETx2", 0x48}, >> + {"aCBFCPAUSETx3", 0x4C}, >> + {"aCBFCPAUSETx4", 0x50}, >> + {"aCBFCPAUSETx5", 0x54}, >> + {"aCBFCPAUSETx6", 0x58}, >> + {"aCBFCPAUSETx7", 0x5C}, >> + {"aMACControlFramesTx", 0x60}, >> + {"Pkts", 0x64} >> +}; >> + >> +static const char pcs_counters_str[][ETH_GSTRING_LEN] = { >> + {"pcs_local_faults"}, >> + {"pcs_remote_faults"}, >> + {"pcs_remote_fault_reconfig"}, >> + {"pcs_link_restores"}, >> + {"pcs_link_toggles"}, >> +}; >> + >> +static size_t pcs_counters_str_len = ARRAY_SIZE(pcs_counters_str); >> +size_t hbl_cn_mac_fec_stats_len = ARRAY_SIZE(hbl_cn_mac_fec_stats); >> +size_t hbl_cn_mac_stats_rx_len = ARRAY_SIZE(hbl_cn_mac_stats_rx); >> +size_t hbl_cn_mac_stats_tx_len = ARRAY_SIZE(hbl_cn_mac_stats_tx); >> + >> +static void qps_stop(struct hbl_cn_device *hdev); >> +static void qp_destroy_work(struct work_struct *work); >> +static int __user_wq_arr_unset(struct hbl_cn_ctx *ctx, struct hbl_cn_port *cn_port, u32 type); >> +static void user_cq_destroy(struct kref *kref); >> +static void set_app_params_clear(struct hbl_cn_device *hdev); >> +static int hbl_cn_ib_cmd_ctrl(struct hbl_aux_dev *aux_dev, void *cn_ib_ctx, u32 op, void *input, >> + void *output); >> +static int hbl_cn_ib_query_mem_handle(struct hbl_aux_dev *ib_aux_dev, u64 mem_handle, >> + struct hbl_ib_mem_info *info); >> + >> +static void hbl_cn_reset_stats_counters_port(struct hbl_cn_device *hdev, u32 port); >> +static void hbl_cn_late_init(struct hbl_cn_device *hdev); >> +static void hbl_cn_late_fini(struct hbl_cn_device *hdev); >> +static int hbl_cn_sw_init(struct hbl_cn_device *hdev); >> +static void hbl_cn_sw_fini(struct hbl_cn_device *hdev); >> +static void hbl_cn_spmu_init(struct hbl_cn_port *cn_port, bool full); >> +static int hbl_cn_cmd_port_check(struct hbl_cn_device *hdev, u32 port, u32 flags); >> +static void hbl_cn_qps_stop(struct hbl_cn_port *cn_port); > > Can you reorder code so forward declarations are not required? I'll try to reorder to get rid of the forward declarations. ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-13 8:21 ` [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver Omer Shpigelman 2024-06-13 13:01 ` Przemek Kitszel 2024-06-15 0:05 ` Stephen Hemminger @ 2024-06-17 14:05 ` Markus Elfring 2024-06-17 15:02 ` Andrew Lunn 2 siblings, 1 reply; 107+ messages in thread From: Markus Elfring @ 2024-06-17 14:05 UTC (permalink / raw) To: Abhilash K V, Andrey Agranovich, Bharat Jauhari, David Meriin, Omer Shpigelman, Sagiv Ozeri, Zvika Yehudai, netdev, linux-rdma, dri-devel Cc: LKML … > +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c > @@ -0,0 +1,5954 @@ … > +int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 out_data[], u32 *num_out_data) > +{ … > + mutex_lock(&cn_port->cnt_lock); > + rc = port_funcs->spmu_sample(cn_port, *num_out_data, out_data); > + mutex_unlock(&cn_port->cnt_lock); > + > + return rc; > +} … Would you become interested to apply a statement like “guard(mutex)(&cn_port->cnt_lock);”? https://elixir.bootlin.com/linux/v6.10-rc4/source/include/linux/mutex.h#L196 Regards, Markus ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-17 14:05 ` Markus Elfring @ 2024-06-17 15:02 ` Andrew Lunn 2024-06-18 7:51 ` Omer Shpigelman 0 siblings, 1 reply; 107+ messages in thread From: Andrew Lunn @ 2024-06-17 15:02 UTC (permalink / raw) To: Markus Elfring Cc: Abhilash K V, Andrey Agranovich, Bharat Jauhari, David Meriin, Omer Shpigelman, Sagiv Ozeri, Zvika Yehudai, netdev, linux-rdma, dri-devel, LKML On Mon, Jun 17, 2024 at 04:05:57PM +0200, Markus Elfring wrote: > … > > +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c > > @@ -0,0 +1,5954 @@ > … > > +int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 out_data[], u32 *num_out_data) > > +{ > … > > + mutex_lock(&cn_port->cnt_lock); > > + rc = port_funcs->spmu_sample(cn_port, *num_out_data, out_data); > > + mutex_unlock(&cn_port->cnt_lock); > > + > > + return rc; > > +} > … > > Would you become interested to apply a statement like “guard(mutex)(&cn_port->cnt_lock);”? > https://elixir.bootlin.com/linux/v6.10-rc4/source/include/linux/mutex.h#L196 Hi Markus We decided for netdev that guard() was too magical, at least for the moment. Lets wait a few years to see how it pans out. scoped_guard() is however O.K. Andrew ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver 2024-06-17 15:02 ` Andrew Lunn @ 2024-06-18 7:51 ` Omer Shpigelman 0 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-18 7:51 UTC (permalink / raw) To: Andrew Lunn, Markus Elfring Cc: Abhilash K V, Andrey Agranovich, Bharat Jauhari, David Meriin, Sagiv Ozeri, Zvika Yehudai, netdev@vger.kernel.org, linux-rdma@vger.kernel.org, dri-devel@lists.freedesktop.org, LKML On 6/17/24 18:02, Andrew Lunn wrote: > [Some people who received this message don't often get email from andrew@lunn.ch. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > On Mon, Jun 17, 2024 at 04:05:57PM +0200, Markus Elfring wrote: >> … >>> +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c >>> @@ -0,0 +1,5954 @@ >> … >>> +int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 out_data[], u32 *num_out_data) >>> +{ >> … >>> + mutex_lock(&cn_port->cnt_lock); >>> + rc = port_funcs->spmu_sample(cn_port, *num_out_data, out_data); >>> + mutex_unlock(&cn_port->cnt_lock); >>> + >>> + return rc; >>> +} >> … >> >> Would you become interested to apply a statement like “guard(mutex)(&cn_port->cnt_lock);”? >> https://elixir.bootlin.com/linux/v6.10-rc4/source/include/linux/mutex.h#L196 > > Hi Markus > > We decided for netdev that guard() was too magical, at least for the > moment. Lets wait a few years to see how it pans out. scoped_guard() > is however O.K. > > Andrew Thanks for the reference. I don't see any other Ethernet driver that uses these so let me first handle the necessary changes and later on I'll check optional enhancements. But yeah, we are always open to improve the code. ^ permalink raw reply [flat|nested] 107+ messages in thread
* [PATCH 02/15] net: hbl_cn: memory manager component 2024-06-13 8:21 [PATCH 00/15] Introduce HabanaLabs network drivers Omer Shpigelman 2024-06-13 8:21 ` [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver Omer Shpigelman @ 2024-06-13 8:21 ` Omer Shpigelman 2024-06-13 8:21 ` [PATCH 03/15] net: hbl_cn: physical layer support Omer Shpigelman ` (14 subsequent siblings) 16 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-13 8:21 UTC (permalink / raw) To: linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, oshpigelman, zyehudai Add a common memory manager which handles allocation and mapping. It manages physical/virtual memory on host/device. Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> Co-developed-by: David Meriin <dmeriin@habana.ai> Signed-off-by: David Meriin <dmeriin@habana.ai> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> --- .../intel/hbl_cn/common/hbl_cn_memory.c | 325 +++++++++++++++++- 1 file changed, 322 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c index 93c97fad6a20..878ecba66aa3 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c @@ -4,37 +4,356 @@ * All Rights Reserved. */ +#include <linux/vmalloc.h> #include "hbl_cn.h" -int hbl_cn_mem_alloc(struct hbl_cn_ctx *ctx, struct hbl_cn_mem_data *mem_data) +static int hbl_cn_map_vmalloc_range(struct hbl_cn_ctx *ctx, u64 vmalloc_va, u64 device_va, + u64 size) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = ctx->hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + return aux_ops->vm_dev_mmu_map(aux_dev, ctx->driver_vm_info.vm_handle, HBL_CN_MEM_TYPE_HOST, + vmalloc_va, device_va, size); +} + +static void hbl_cn_unmap_vmalloc_range(struct hbl_cn_ctx *ctx, u64 device_va, u64 size) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + + aux_dev = ctx->hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + aux_ops->vm_dev_mmu_unmap(aux_dev, ctx->driver_vm_info.vm_handle, device_va, size); +} + +static int alloc_mem(struct hbl_cn_mem_buf *buf, gfp_t gfp, struct hbl_cn_mem_data *mem_data) +{ + u64 device_addr, size = mem_data->size; + struct hbl_cn_ctx *ctx = buf->ctx; + u32 mem_id = mem_data->mem_id; + struct hbl_cn_device *hdev; + void *p = NULL; + + hdev = ctx->hdev; + + switch (mem_id) { + case HBL_CN_DRV_MEM_HOST_DMA_COHERENT: + if (get_order(size) > MAX_PAGE_ORDER) { + dev_err(hdev->dev, "memory size 0x%llx must be less than 0x%lx\n", size, + 1UL << (PAGE_SHIFT + MAX_PAGE_ORDER)); + return -ENOMEM; + } + + p = hbl_cn_dma_alloc_coherent(hdev, size, &buf->bus_address, GFP_USER | __GFP_ZERO); + if (!p) { + dev_err(hdev->dev, + "failed to allocate 0x%llx of dma memory for the NIC\n", size); + return -ENOMEM; + } + + break; + case HBL_CN_DRV_MEM_HOST_VIRTUAL: + p = vmalloc_user(size); + if (!p) { + dev_err(hdev->dev, "failed to allocate vmalloc memory, size 0x%llx\n", + size); + return -ENOMEM; + } + + break; + case HBL_CN_DRV_MEM_HOST_MAP_ONLY: + p = mem_data->in.host_map_data.kernel_address; + buf->bus_address = mem_data->in.host_map_data.bus_address; + break; + case HBL_CN_DRV_MEM_DEVICE: + if (!hdev->wq_arrays_pool_enable) { + dev_err(hdev->dev, "No WQ arrays pool support for device memory\n"); + return -EOPNOTSUPP; + } + + device_addr = (u64)gen_pool_alloc(hdev->wq_arrays_pool, size); + if (!device_addr) { + dev_err(hdev->dev, "Failed to allocate device memory, size 0x%llx\n", size); + return -ENOMEM; + } + + buf->device_addr = device_addr; + break; + default: + dev_err(hdev->dev, "Invalid mem_id %d\n", mem_id); + return -EINVAL; + } + + buf->kernel_address = p; + buf->mappable_size = size; + + return 0; +} + +static int map_mem(struct hbl_cn_mem_buf *buf, struct hbl_cn_mem_data *mem_data) +{ + struct hbl_cn_ctx *ctx = buf->ctx; + struct hbl_cn_device *hdev; + int rc; + + hdev = ctx->hdev; + + if (mem_data->mem_id == HBL_CN_DRV_MEM_HOST_DMA_COHERENT) { + dev_err(hdev->dev, "Mapping DMA coherent host memory is not yet supported\n"); + return -EPERM; + } + + rc = hbl_cn_map_vmalloc_range(ctx, (u64)buf->kernel_address, mem_data->device_va, + buf->mappable_size); + if (rc) + return rc; + + buf->device_va = mem_data->device_va; + + return 0; +} + +static void mem_do_release(struct hbl_cn_device *hdev, struct hbl_cn_mem_buf *buf) +{ + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + + if (buf->mem_id == HBL_CN_DRV_MEM_HOST_DMA_COHERENT) + asic_funcs->dma_free_coherent(hdev, buf->mappable_size, buf->kernel_address, + buf->bus_address); + else if (buf->mem_id == HBL_CN_DRV_MEM_HOST_VIRTUAL) + vfree(buf->kernel_address); + else if (buf->mem_id == HBL_CN_DRV_MEM_DEVICE) + gen_pool_free(hdev->wq_arrays_pool, buf->device_addr, buf->mappable_size); +} + +static int __cn_mem_buf_alloc(struct hbl_cn_mem_buf *buf, gfp_t gfp, + struct hbl_cn_mem_data *mem_data) +{ + struct hbl_cn_ctx *ctx = buf->ctx; + struct hbl_cn_device *hdev; + int rc; + + hdev = ctx->hdev; + + if (mem_data->mem_id != HBL_CN_DRV_MEM_DEVICE) + mem_data->size = PAGE_ALIGN(mem_data->size); + + rc = alloc_mem(buf, gfp, mem_data); + if (rc) + return rc; + + if (mem_data->device_va) { + mem_data->device_va = PAGE_ALIGN(mem_data->device_va); + rc = map_mem(buf, mem_data); + if (rc) + goto release_mem; + } + + return 0; + +release_mem: + mem_do_release(hdev, buf); + return rc; +} + +static struct hbl_cn_mem_buf *cn_mem_buf_alloc(struct hbl_cn_ctx *ctx, gfp_t gfp, + struct hbl_cn_mem_data *mem_data) +{ + struct xa_limit id_limit = XA_LIMIT(1, INT_MAX); + struct hbl_cn_device *hdev = ctx->hdev; + struct hbl_cn_mem_buf *buf; + int rc; + u32 id; + + buf = kzalloc(sizeof(*buf), gfp); + if (!buf) + return NULL; + + rc = xa_alloc(&hdev->mem_ids, &id, buf, id_limit, GFP_ATOMIC); + if (rc) { + dev_err(hdev->dev, "Failed to allocate xarray for a new buffer, rc=%d\n", rc); + goto free_buf; + } + + buf->ctx = ctx; + buf->mem_id = mem_data->mem_id; + + buf->handle = (((u64)id | hdev->mmap_type_flag) << PAGE_SHIFT); + kref_init(&buf->refcount); + + rc = __cn_mem_buf_alloc(buf, gfp, mem_data); + if (rc) + goto remove_xa; + + return buf; + +remove_xa: + xa_erase(&hdev->mem_ids, lower_32_bits(buf->handle >> PAGE_SHIFT)); +free_buf: + kfree(buf); + return NULL; +} + +static int cn_mem_alloc(struct hbl_cn_ctx *ctx, struct hbl_cn_mem_data *mem_data) { + struct hbl_cn_mem_buf *buf; + + buf = cn_mem_buf_alloc(ctx, GFP_KERNEL, mem_data); + if (!buf) + return -ENOMEM; + + mem_data->handle = buf->handle; + + if (mem_data->mem_id == HBL_CN_DRV_MEM_HOST_DMA_COHERENT) + mem_data->addr = (u64)buf->bus_address; + else if (mem_data->mem_id == HBL_CN_DRV_MEM_HOST_VIRTUAL) + mem_data->addr = (u64)buf->kernel_address; + else if (mem_data->mem_id == HBL_CN_DRV_MEM_DEVICE) + mem_data->addr = (u64)buf->device_addr; + return 0; } +int hbl_cn_mem_alloc(struct hbl_cn_ctx *ctx, struct hbl_cn_mem_data *mem_data) +{ + struct hbl_cn_device *hdev = ctx->hdev; + int rc; + + switch (mem_data->mem_id) { + case HBL_CN_DRV_MEM_HOST_DMA_COHERENT: + case HBL_CN_DRV_MEM_HOST_VIRTUAL: + case HBL_CN_DRV_MEM_HOST_MAP_ONLY: + case HBL_CN_DRV_MEM_DEVICE: + rc = cn_mem_alloc(ctx, mem_data); + break; + default: + dev_dbg(hdev->dev, "Invalid mem_id %d\n", mem_data->mem_id); + rc = -EINVAL; + break; + } + + return rc; +} + +static void cn_mem_buf_destroy(struct hbl_cn_mem_buf *buf) +{ + if (buf->device_va) + hbl_cn_unmap_vmalloc_range(buf->ctx, buf->device_va, buf->mappable_size); + + mem_do_release(buf->ctx->hdev, buf); + + kfree(buf); +} + int hbl_cn_mem_destroy(struct hbl_cn_device *hdev, u64 handle) { + struct hbl_cn_mem_buf *buf; + int rc; + + buf = hbl_cn_mem_buf_get(hdev, handle); + if (!buf) { + dev_dbg(hdev->dev, "Memory destroy failed, no match for handle 0x%llx\n", handle); + return -EINVAL; + } + + rc = atomic_cmpxchg(&buf->is_destroyed, 0, 1); + hbl_cn_mem_buf_put(buf); + if (rc) { + dev_dbg(hdev->dev, "Memory destroy failed, handle 0x%llx was already destroyed\n", + handle); + return -EINVAL; + } + + rc = hbl_cn_mem_buf_put_handle(hdev, handle); + if (rc < 0) + return rc; + + if (rc == 0) + dev_dbg(hdev->dev, "Handle 0x%llx is destroyed while still in use\n", handle); + return 0; } +static void cn_mem_buf_release(struct kref *kref) +{ + struct hbl_cn_mem_buf *buf = container_of(kref, struct hbl_cn_mem_buf, refcount); + struct hbl_cn_device *hdev = buf->ctx->hdev; + + xa_erase(&hdev->mem_ids, lower_32_bits(buf->handle >> PAGE_SHIFT)); + + cn_mem_buf_destroy(buf); +} + struct hbl_cn_mem_buf *hbl_cn_mem_buf_get(struct hbl_cn_device *hdev, u64 handle) { - return NULL; + struct hbl_cn_mem_buf *buf; + + xa_lock(&hdev->mem_ids); + buf = xa_load(&hdev->mem_ids, lower_32_bits(handle >> PAGE_SHIFT)); + if (!buf) { + xa_unlock(&hdev->mem_ids); + dev_dbg(hdev->dev, "Buff get failed, no match to handle %#llx\n", handle); + return NULL; + } + + kref_get(&buf->refcount); + xa_unlock(&hdev->mem_ids); + + return buf; } int hbl_cn_mem_buf_put(struct hbl_cn_mem_buf *buf) { - return 0; + return kref_put(&buf->refcount, cn_mem_buf_release); +} + +static void cn_mem_buf_remove_xa_locked(struct kref *kref) +{ + struct hbl_cn_mem_buf *buf = container_of(kref, struct hbl_cn_mem_buf, refcount); + + __xa_erase(&buf->ctx->hdev->mem_ids, lower_32_bits(buf->handle >> PAGE_SHIFT)); } int hbl_cn_mem_buf_put_handle(struct hbl_cn_device *hdev, u64 handle) { + struct hbl_cn_mem_buf *buf; + + xa_lock(&hdev->mem_ids); + buf = xa_load(&hdev->mem_ids, lower_32_bits(handle >> PAGE_SHIFT)); + if (!buf) { + xa_unlock(&hdev->mem_ids); + dev_dbg(hdev->dev, "Buff put failed, no match to handle %#llx\n", handle); + return -EINVAL; + } + + if (kref_put(&buf->refcount, cn_mem_buf_remove_xa_locked)) { + xa_unlock(&hdev->mem_ids); + cn_mem_buf_destroy(buf); + return 1; + } + + xa_unlock(&hdev->mem_ids); return 0; } void hbl_cn_mem_init(struct hbl_cn_device *hdev) { + xa_init_flags(&hdev->mem_ids, XA_FLAGS_ALLOC); } void hbl_cn_mem_fini(struct hbl_cn_device *hdev) { + struct xarray *mem_ids; + + mem_ids = &hdev->mem_ids; + + if (!xa_empty(mem_ids)) + dev_crit(hdev->dev, "memory manager is destroyed while not empty!\n"); + + xa_destroy(mem_ids); } -- 2.34.1 ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [PATCH 03/15] net: hbl_cn: physical layer support 2024-06-13 8:21 [PATCH 00/15] Introduce HabanaLabs network drivers Omer Shpigelman 2024-06-13 8:21 ` [PATCH 01/15] net: hbl_cn: add habanalabs Core Network driver Omer Shpigelman 2024-06-13 8:21 ` [PATCH 02/15] net: hbl_cn: memory manager component Omer Shpigelman @ 2024-06-13 8:21 ` Omer Shpigelman 2024-06-13 8:21 ` [PATCH 04/15] net: hbl_cn: QP state machine Omer Shpigelman ` (13 subsequent siblings) 16 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-13 8:21 UTC (permalink / raw) To: linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, oshpigelman, zyehudai Add a common physical (PHY) layer initialization and link notification. An notification is sent on every link up/down change. Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> Co-developed-by: David Meriin <dmeriin@habana.ai> Signed-off-by: David Meriin <dmeriin@habana.ai> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> --- .../ethernet/intel/hbl_cn/common/hbl_cn_phy.c | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c index 0d07cd78221d..6753d54ae2b0 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_phy.c @@ -4,30 +4,231 @@ * All Rights Reserved. */ +#include <linux/firmware.h> #include "hbl_cn.h" +static void port_reset_state(struct hbl_cn_port *cn_port) +{ + cn_port->pcs_link = false; + cn_port->eq_pcs_link = false; + cn_port->auto_neg_resolved = false; + cn_port->auto_neg_skipped = false; + cn_port->phy_fw_tuned = false; + cn_port->retry_cnt = 0; + cn_port->pcs_remote_fault_seq_cnt = 0; + cn_port->pcs_link_restore_cnt = 0; + cn_port->correctable_errors_cnt = 0; + cn_port->uncorrectable_errors_cnt = 0; +} + +static u32 get_data_rate(struct hbl_cn_port *cn_port) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + u32 port, speed, data_rate; + + port = cn_port->port; + speed = cn_port->speed; + + switch (speed) { + case SPEED_10000: + data_rate = NIC_DR_10; + break; + case SPEED_25000: + data_rate = NIC_DR_25; + break; + case SPEED_50000: + data_rate = NIC_DR_50; + break; + case SPEED_100000: + data_rate = NIC_DR_50; + break; + case SPEED_200000: + data_rate = NIC_DR_100; + break; + case SPEED_400000: + data_rate = NIC_DR_100; + break; + default: + data_rate = NIC_DR_50; + dev_err(hdev->dev, "unknown port %d speed, continue with 50 GHz\n", port); + break; + } + + dev_dbg(hdev->dev, "port %d, speed %d data rate %d\n", port, speed, data_rate); + + return data_rate; +} + void hbl_cn_phy_set_port_status(struct hbl_cn_port *cn_port, bool up) { + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_en_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + u32 port = cn_port->port; + bool is_ibdev; + int rc; + + aux_dev = &hdev->en_aux_dev; + aux_ops = aux_dev->aux_ops; + port_funcs = hdev->asic_funcs->port_funcs; + is_ibdev = hbl_cn_is_ibdev(hdev); + + port_funcs->set_port_status(cn_port, up); + + if (cn_port->eth_enable) { + if (aux_ops->set_port_status) + aux_ops->set_port_status(aux_dev, port, up); + } else { + if (hdev->ctx) + dev_info(hdev->dev, "Card %u Port %u: link %s\n", + hdev->card_location, port, up ? "up" : "down"); + else + dev_dbg(hdev->dev, "Card %u Port %u: link %s\n", + hdev->card_location, port, up ? "up" : "down"); + } + + /* IB flow. User polls for IB events. + * - internal ports: Enqueue link event in EQ dispatcher. IB event would be dispatched in + * response. + * - external ports: Do not enqueue. hbl IB driver dispatches IB events from netdev + * notifier chain handler. + * non-IB flow. User polls for EQ events. + * - internal ports: Enqueue link event in EQ dispatcher. + * - external ports: Enqueue link event in EQ dispatcher. + */ + if (!is_ibdev || !cn_port->eth_enable) { + if (hdev->has_eq) { + rc = hbl_cn_eq_dispatcher_enqueue_bcast(cn_port, &cn_port->link_eqe); + if (rc) + dev_dbg_ratelimited(hdev->dev, + "Port %d, failed to dispatch link event %s, %d\n", + port, up ? "up" : "down", rc); + } + } + + cn_port->port_toggle_cnt++; + + /* The FEC counters are relevant during the time that link is UP, hence reset them here */ + if (up) { + cn_port->correctable_errors_cnt = 0; + cn_port->uncorrectable_errors_cnt = 0; + } + + if (hdev->pldm) { + dev_dbg(hdev->dev, "%s: port %u\n", __func__, port); + msleep(1000); + } } int hbl_cn_phy_init(struct hbl_cn_port *cn_port) { + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + int rc; + + port_funcs = hdev->asic_funcs->port_funcs; + + /* If mac_loopback is enabled on this port, move the port status to UP state */ + if (cn_port->mac_loopback) { + cn_port->pcs_link = true; + hbl_cn_phy_set_port_status(cn_port, true); + return 0; + } + + if (!hdev->phy_config_fw) { + /* If EQ is supported, it will take care of setting the port status */ + if (!hdev->has_eq) { + cn_port->pcs_link = true; + hbl_cn_phy_set_port_status(cn_port, true); + } + + return 0; + } + + cn_port->data_rate = get_data_rate(cn_port); + + rc = port_funcs->phy_port_power_up(cn_port); + if (rc) { + dev_err(hdev->dev, "ASIC specific phy port power-up failed, %d\n", rc); + return rc; + } + + port_funcs->phy_port_start_stop(cn_port, true); + + queue_delayed_work(cn_port->wq, &cn_port->link_status_work, msecs_to_jiffies(1)); + return 0; } +/* This function does not change the port link status in order to avoid unnecessary netdev actions + * and prints. Hence it should be done from outside. + */ void hbl_cn_phy_fini(struct hbl_cn_port *cn_port) { + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + + /* This is done before the check because we support setting mac loopback for a specific port + * and this function might be called when cn_port->mac_loopback is true (during the port + * reset after setting mac loopback), but the link status work was scheduled before (when + * the port was opened w/o mac loopback). + */ + cancel_delayed_work_sync(&cn_port->link_status_work); + + port_funcs = hdev->asic_funcs->port_funcs; + + if (!hdev->phy_config_fw || cn_port->mac_loopback) { + cn_port->pcs_link = false; + cn_port->eq_pcs_link = false; + return; + } + + port_reset_state(cn_port); + port_funcs->phy_port_start_stop(cn_port, false); } void hbl_cn_phy_port_reconfig(struct hbl_cn_port *cn_port) { + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + + port_funcs = hdev->asic_funcs->port_funcs; + + port_funcs->phy_port_reconfig(cn_port); + + port_reset_state(cn_port); } int hbl_cn_phy_has_binary_fw(struct hbl_cn_device *hdev) { + struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + const struct firmware *fw; + const char *fw_name; + int rc; + + fw_name = asic_funcs->get_phy_fw_name(); + + rc = request_firmware(&fw, fw_name, hdev->dev); + if (rc) { + dev_err(hdev->dev, "Firmware file %s is not found!\n", fw_name); + return rc; + } + + release_firmware(fw); + return 0; } void hbl_cn_phy_set_fw_polarity(struct hbl_cn_device *hdev) { + struct hbl_cn_cpucp_info *cpucp_info; + + if (hdev->skip_phy_pol_cfg) + return; + + cpucp_info = hdev->cpucp_info; + + hdev->pol_tx_mask = cpucp_info->pol_tx_mask[0]; + hdev->pol_rx_mask = cpucp_info->pol_rx_mask[0]; } -- 2.34.1 ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [PATCH 04/15] net: hbl_cn: QP state machine 2024-06-13 8:21 [PATCH 00/15] Introduce HabanaLabs network drivers Omer Shpigelman ` (2 preceding siblings ...) 2024-06-13 8:21 ` [PATCH 03/15] net: hbl_cn: physical layer support Omer Shpigelman @ 2024-06-13 8:21 ` Omer Shpigelman 2024-06-17 13:18 ` Leon Romanovsky 2024-06-13 8:21 ` [PATCH 05/15] net: hbl_cn: memory trace events Omer Shpigelman ` (12 subsequent siblings) 16 siblings, 1 reply; 107+ messages in thread From: Omer Shpigelman @ 2024-06-13 8:21 UTC (permalink / raw) To: linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, oshpigelman, zyehudai Add a common QP state machine which handles the moving for a QP from one state to another including performing necessary checks, draining in-flight transactions, invalidating caches and error reporting. Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> Co-developed-by: David Meriin <dmeriin@habana.ai> Signed-off-by: David Meriin <dmeriin@habana.ai> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> --- .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 480 +++++++++++++++++- 1 file changed, 479 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c index 9ddc23bf8194..26ebdf448193 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c @@ -6,8 +6,486 @@ #include "hbl_cn.h" +#define OP_RETRY_COUNT 4 +#define OPC_SETTLE_RETRY_COUNT 20 + +/* The following table represents the (valid) operations that can be performed on + * a QP in order to move it from one state to another + * For example: a QP in RTR state can be moved to RTS state using the CN_QP_OP_RTR_2RTS + * operation. + */ +static const enum hbl_cn_qp_state_op qp_valid_state_op[CN_QP_NUM_STATE][CN_QP_NUM_STATE] = { + [CN_QP_STATE_RESET] = { + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, + [CN_QP_STATE_INIT] = CN_QP_OP_RST_2INIT, + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, + }, + [CN_QP_STATE_INIT] = { + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, + [CN_QP_STATE_INIT] = CN_QP_OP_NOP, + [CN_QP_STATE_RTR] = CN_QP_OP_INIT_2RTR, + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, + }, + [CN_QP_STATE_RTR] = { + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, + [CN_QP_STATE_RTR] = CN_QP_OP_RTR_2RTR, + [CN_QP_STATE_RTS] = CN_QP_OP_RTR_2RTS, + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, + [CN_QP_STATE_QPD] = CN_QP_OP_RTR_2QPD, + }, + [CN_QP_STATE_RTS] = { + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, + [CN_QP_STATE_RTS] = CN_QP_OP_RTS_2RTS, + [CN_QP_STATE_SQD] = CN_QP_OP_RTS_2SQD, + [CN_QP_STATE_QPD] = CN_QP_OP_RTS_2QPD, + [CN_QP_STATE_SQERR] = CN_QP_OP_RTS_2SQERR, + }, + [CN_QP_STATE_SQD] = { + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, + [CN_QP_STATE_SQD] = CN_QP_OP_SQD_2SQD, + [CN_QP_STATE_RTS] = CN_QP_OP_SQD_2RTS, + [CN_QP_STATE_QPD] = CN_QP_OP_SQD_2QPD, + [CN_QP_STATE_SQERR] = CN_QP_OP_SQD_2SQ_ERR, + }, + [CN_QP_STATE_QPD] = { + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, + [CN_QP_STATE_RTR] = CN_QP_OP_QPD_2RTR, + }, + [CN_QP_STATE_SQERR] = { + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, + [CN_QP_STATE_SQD] = CN_QP_OP_SQ_ERR_2SQD, + [CN_QP_STATE_SQERR] = CN_QP_OP_NOP, + }, + [CN_QP_STATE_ERR] = { + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, + } +}; + +static char *cn_qp_state_2name(enum hbl_cn_qp_state state) +{ + static char *arr[CN_QP_NUM_STATE] = { + "Reset", + "Init", + "RTR", + "RTS", + "SQD", + "QPD", + "SQERR", + "ERR", + }; + + return arr[state]; +} + +static inline int wait_for_qpc_idle(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, bool is_req) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + struct hbl_cn_qpc_attr qpc_attr; + int i, rc; + + if (!hdev->qp_wait_for_idle) + return 0; + + port_funcs = hdev->asic_funcs->port_funcs; + + for (i = 0; i < OPC_SETTLE_RETRY_COUNT; i++) { + rc = port_funcs->qpc_query(cn_port, qp->qp_id, is_req, &qpc_attr); + + if (rc && (rc != -EBUSY && rc != -ETIMEDOUT)) + return rc; + + if (!(rc || qpc_attr.in_work)) + return 0; + + /* Release lock while we wait before retry. + * Note, we can assert that we are already locked. + */ + port_funcs->cfg_unlock(cn_port); + + msleep(20); + + port_funcs->cfg_lock(cn_port); + } + + rc = port_funcs->qpc_query(cn_port, qp->qp_id, is_req, &qpc_attr); + + if (rc && (rc != -EBUSY && rc != -ETIMEDOUT)) + return rc; + + if (rc || qpc_attr.in_work) + return -ETIMEDOUT; + + return 0; +} + +static int cn_qp_op_reset(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + int rc, rc1; + + asic_funcs = hdev->asic_funcs; + + /* clear the QPCs */ + rc = asic_funcs->port_funcs->qpc_clear(cn_port, qp, false); + if (rc && hbl_cn_comp_device_operational(hdev)) + /* Device might not respond during reset if the reset was due to error */ + dev_err(hdev->dev, "Port %d QP %d: Failed to clear responder QPC\n", + qp->port, qp->qp_id); + else + qp->is_res = false; + + rc1 = asic_funcs->port_funcs->qpc_clear(cn_port, qp, true); + if (rc1) { + rc = rc1; + if (hbl_cn_comp_device_operational(hdev)) + /* Device might not respond during reset if the reset was due to error */ + dev_err(hdev->dev, "Port %d QP %d: Failed to clear requestor QPC\n", + qp->port, qp->qp_id); + } else { + qp->is_req = false; + } + + /* wait for REQ idle, RES idle is already done in cn_qp_op_2qpd */ + rc = wait_for_qpc_idle(cn_port, qp, true); + if (rc) { + dev_err(hdev->dev, "Port %d QP %d, Requestor QPC is not idle (rc %d)\n", + cn_port->port, qp->qp_id, rc); + return rc; + } + + qp->curr_state = CN_QP_STATE_RESET; + + return rc; +} + +static int cn_qp_op_reset_2init(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp) +{ + if (ZERO_OR_NULL_PTR(qp)) + return -EINVAL; + + qp->curr_state = CN_QP_STATE_INIT; + + return 0; +} + +static int cn_qp_op_2rts(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, + struct hbl_cni_req_conn_ctx_in *in) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + int rc; + + asic_funcs = hdev->asic_funcs; + + rc = asic_funcs->set_req_qp_ctx(hdev, in, qp); + if (rc) + return rc; + + qp->curr_state = CN_QP_STATE_RTS; + qp->is_req = true; + + return 0; +} + +static int cn_qp_op_2rtr(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, + struct hbl_cni_res_conn_ctx_in *in) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + int rc; + + asic_funcs = hdev->asic_funcs; + + rc = asic_funcs->set_res_qp_ctx(hdev, in, qp); + if (rc) + return rc; + + qp->curr_state = CN_QP_STATE_RTR; + qp->is_res = true; + + return 0; +} + +static inline int cn_qp_invalidate_qpc(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, + bool is_req) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + int i, rc; + + asic_funcs = hdev->asic_funcs; + + for (i = 0; i < OP_RETRY_COUNT; i++) { + rc = asic_funcs->port_funcs->qpc_invalidate(cn_port, qp, is_req); + if (!rc) + break; + + usleep_range(100, 200); + } + + return rc; +} + +static int cn_qp_invalidate(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, bool is_req, + bool wait_for_idle) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + int rc; + + rc = cn_qp_invalidate_qpc(cn_port, qp, is_req); + if (rc) { + if (hbl_cn_comp_device_operational(hdev)) + dev_err(hdev->dev, "Port %d QP %d, failed to invalidate %s QPC (rc %d)\n", + cn_port->port, qp->qp_id, is_req ? "Requester" : "Responder", rc); + return rc; + } + + if (!wait_for_idle || is_req) + return 0; + + /* check for QP idle in case of responder only */ + rc = wait_for_qpc_idle(cn_port, qp, false); + if (rc) { + dev_err(hdev->dev, "Port %d QP %d, Responder QPC is not idle (rc %d)\n", + cn_port->port, qp->qp_id, rc); + return rc; + } + + return rc; +} + +/* Drain the Requester */ +static int cn_qp_op_rts_2sqd(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, void *attr) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_qpc_drain_attr *drain = attr; + int rc = 0; + + switch (qp->curr_state) { + case CN_QP_STATE_RTS: + cn_qp_invalidate(cn_port, qp, true, drain->wait_for_idle); + if (drain->wait_for_idle) + ssleep(hdev->qp_drain_time); + + break; + default: + rc = -EOPNOTSUPP; + break; + } + + if (!rc) + qp->curr_state = CN_QP_STATE_SQD; + + return rc; +} + +/* Re-drain the Requester. This function is called without holding the cfg lock so it must not + * access the HW or do anything other than just sleeping. + */ +static int cn_qp_op_sqd_2sqd(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, void *attr) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_qpc_drain_attr *drain = attr; + + /* no need to invalidate the QP as it was already invalidated just extend the wait time */ + if (drain->wait_for_idle) + ssleep(hdev->qp_drain_time); + + return 0; +} + +/* Drain the QP (Requester and Responder) */ +static int cn_qp_op_2qpd(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, void *attr) +{ + struct hbl_cn_qpc_drain_attr *drain = attr; + int rc = 0; + + switch (qp->curr_state) { + case CN_QP_STATE_RTR: + /* In RTR only the Resp is working */ + cn_qp_invalidate(cn_port, qp, false, drain->wait_for_idle); + break; + case CN_QP_STATE_RTS: + /* In RTS both the Resp and Req are working */ + cn_qp_op_rts_2sqd(cn_port, qp, attr); + cn_qp_invalidate(cn_port, qp, false, drain->wait_for_idle); + break; + case CN_QP_STATE_SQD: + /* In SQD only the Resp is working */ + cn_qp_invalidate(cn_port, qp, false, drain->wait_for_idle); + break; + case CN_QP_STATE_QPD: + break; + default: + rc = -EOPNOTSUPP; + break; + } + + if (!rc) + qp->curr_state = CN_QP_STATE_QPD; + + return rc; +} + +static int cn_qp_op_2reset(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, + const struct hbl_cn_qpc_reset_attr *attr) +{ + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_qpc_drain_attr drain; + + asic_funcs = hdev->asic_funcs; + + /* brute-force reset when reset mode is Hard */ + if (attr->reset_mode == CN_QP_RESET_MODE_HARD && qp->curr_state != CN_QP_STATE_RESET) { + /* invalidate */ + asic_funcs->port_funcs->qpc_invalidate(cn_port, qp, true); + asic_funcs->port_funcs->qpc_invalidate(cn_port, qp, false); + + /* wait for HW digest the invalidation */ + usleep_range(100, 150); + + cn_qp_op_reset(cn_port, qp); + return 0; + } + + if (attr->reset_mode == CN_QP_RESET_MODE_GRACEFUL) + drain.wait_for_idle = true; + else + drain.wait_for_idle = false; + + switch (qp->curr_state) { + case CN_QP_STATE_RESET: + break; + case CN_QP_STATE_INIT: + cn_qp_op_reset(cn_port, qp); + break; + case CN_QP_STATE_RTR: + case CN_QP_STATE_RTS: + case CN_QP_STATE_SQD: + cn_qp_op_2qpd(cn_port, qp, &drain); + cn_qp_op_reset(cn_port, qp); + break; + case CN_QP_STATE_QPD: + cn_qp_op_reset(cn_port, qp); + break; + case CN_QP_STATE_SQERR: + case CN_QP_STATE_ERR: + cn_qp_op_reset(cn_port, qp); + break; + default: + dev_err(hdev->dev, "Port %d QP %d: Unknown state %d, moving to RESET state\n", + qp->port, qp->qp_id, qp->curr_state); + cn_qp_op_reset(cn_port, qp); + break; + } + + return 0; +} + +/* QP state handling routines */ int hbl_cn_qp_modify(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, enum hbl_cn_qp_state new_state, void *params) { - return 0; + enum hbl_cn_qp_state prev_state = qp->curr_state; + struct hbl_cn_device *hdev = cn_port->hdev; + struct hbl_cn_asic_port_funcs *port_funcs; + enum hbl_cn_qp_state_op op; + int rc; + + port_funcs = hdev->asic_funcs->port_funcs; + + /* only SQD->SQD transition can be executed without holding the configuration lock */ + if (prev_state != CN_QP_STATE_SQD || new_state != CN_QP_STATE_SQD) { + if (!port_funcs->cfg_is_locked(cn_port)) { + dev_err(hdev->dev, + "Configuration lock must be held while moving Port %u QP %u from state %s to %s\n", + qp->port, qp->qp_id, cn_qp_state_2name(prev_state), + cn_qp_state_2name(new_state)); + return -EACCES; + } + } + + if (qp->curr_state >= CN_QP_NUM_STATE || new_state >= CN_QP_NUM_STATE || + qp_valid_state_op[qp->curr_state][new_state] == CN_QP_OP_INVAL) { + dev_err(hdev->dev, + "Invalid QP state transition, Port %u QP %u from state %s to %s\n", + qp->port, qp->qp_id, cn_qp_state_2name(prev_state), + cn_qp_state_2name(new_state)); + return -EINVAL; + } + + if (new_state >= CN_QP_NUM_STATE) { + dev_err(hdev->dev, "Invalid QP state %d\n", new_state); + return -EINVAL; + } + + /* get the operation needed for this state transition */ + op = qp_valid_state_op[qp->curr_state][new_state]; + + switch (op) { + case CN_QP_OP_2RESET: + rc = cn_qp_op_2reset(cn_port, qp, params); + break; + case CN_QP_OP_RST_2INIT: + rc = cn_qp_op_reset_2init(cn_port, qp); + break; + case CN_QP_OP_INIT_2RTR: + rc = cn_qp_op_2rtr(cn_port, qp, params); + break; + case CN_QP_OP_RTR_2RTR: + rc = cn_qp_op_2rtr(cn_port, qp, params); + break; + case CN_QP_OP_RTR_2QPD: + rc = cn_qp_op_2qpd(cn_port, qp, params); + break; + case CN_QP_OP_RTR_2RTS: + rc = cn_qp_op_2rts(cn_port, qp, params); + break; + case CN_QP_OP_RTS_2RTS: + rc = cn_qp_op_2rts(cn_port, qp, params); + break; + case CN_QP_OP_RTS_2SQD: + rc = cn_qp_op_rts_2sqd(cn_port, qp, params); + break; + case CN_QP_OP_SQD_2SQD: + rc = cn_qp_op_sqd_2sqd(cn_port, qp, params); + break; + case CN_QP_OP_RTS_2QPD: + rc = cn_qp_op_2qpd(cn_port, qp, params); + break; + case CN_QP_OP_SQD_2QPD: + rc = cn_qp_op_2qpd(cn_port, qp, params); + break; + case CN_QP_OP_INVAL: + rc = -EINVAL; + break; + case CN_QP_OP_NOP: + rc = 0; + break; + default: + rc = -EOPNOTSUPP; + break; + } + + if (rc) + dev_err(hdev->dev, + "Errors detected while moving Port %u QP %u from state %s to %s, (rc %d)\n", + qp->port, qp->qp_id, cn_qp_state_2name(prev_state), + cn_qp_state_2name(new_state), rc); + + return rc; } -- 2.34.1 ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [PATCH 04/15] net: hbl_cn: QP state machine 2024-06-13 8:21 ` [PATCH 04/15] net: hbl_cn: QP state machine Omer Shpigelman @ 2024-06-17 13:18 ` Leon Romanovsky 2024-06-18 5:50 ` Omer Shpigelman 0 siblings, 1 reply; 107+ messages in thread From: Leon Romanovsky @ 2024-06-17 13:18 UTC (permalink / raw) To: Omer Shpigelman Cc: linux-kernel, linux-rdma, netdev, dri-devel, ogabbay, zyehudai On Thu, Jun 13, 2024 at 11:21:57AM +0300, Omer Shpigelman wrote: > Add a common QP state machine which handles the moving for a QP from one > state to another including performing necessary checks, draining > in-flight transactions, invalidating caches and error reporting. > > Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> > Co-developed-by: Abhilash K V <kvabhilash@habana.ai> > Signed-off-by: Abhilash K V <kvabhilash@habana.ai> > Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> > Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> > Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> > Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> > Co-developed-by: David Meriin <dmeriin@habana.ai> > Signed-off-by: David Meriin <dmeriin@habana.ai> > Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> > Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> > Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> > Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> > --- > .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 480 +++++++++++++++++- > 1 file changed, 479 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > index 9ddc23bf8194..26ebdf448193 100644 > --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > @@ -6,8 +6,486 @@ <...> > +/* The following table represents the (valid) operations that can be performed on > + * a QP in order to move it from one state to another > + * For example: a QP in RTR state can be moved to RTS state using the CN_QP_OP_RTR_2RTS > + * operation. > + */ > +static const enum hbl_cn_qp_state_op qp_valid_state_op[CN_QP_NUM_STATE][CN_QP_NUM_STATE] = { > + [CN_QP_STATE_RESET] = { > + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > + [CN_QP_STATE_INIT] = CN_QP_OP_RST_2INIT, > + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > + }, > + [CN_QP_STATE_INIT] = { > + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > + [CN_QP_STATE_INIT] = CN_QP_OP_NOP, > + [CN_QP_STATE_RTR] = CN_QP_OP_INIT_2RTR, > + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > + }, > + [CN_QP_STATE_RTR] = { > + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > + [CN_QP_STATE_RTR] = CN_QP_OP_RTR_2RTR, > + [CN_QP_STATE_RTS] = CN_QP_OP_RTR_2RTS, > + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > + [CN_QP_STATE_QPD] = CN_QP_OP_RTR_2QPD, > + }, > + [CN_QP_STATE_RTS] = { > + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > + [CN_QP_STATE_RTS] = CN_QP_OP_RTS_2RTS, > + [CN_QP_STATE_SQD] = CN_QP_OP_RTS_2SQD, > + [CN_QP_STATE_QPD] = CN_QP_OP_RTS_2QPD, > + [CN_QP_STATE_SQERR] = CN_QP_OP_RTS_2SQERR, > + }, > + [CN_QP_STATE_SQD] = { > + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > + [CN_QP_STATE_SQD] = CN_QP_OP_SQD_2SQD, > + [CN_QP_STATE_RTS] = CN_QP_OP_SQD_2RTS, > + [CN_QP_STATE_QPD] = CN_QP_OP_SQD_2QPD, > + [CN_QP_STATE_SQERR] = CN_QP_OP_SQD_2SQ_ERR, > + }, > + [CN_QP_STATE_QPD] = { > + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > + [CN_QP_STATE_RTR] = CN_QP_OP_QPD_2RTR, > + }, > + [CN_QP_STATE_SQERR] = { > + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > + [CN_QP_STATE_SQD] = CN_QP_OP_SQ_ERR_2SQD, > + [CN_QP_STATE_SQERR] = CN_QP_OP_NOP, > + }, > + [CN_QP_STATE_ERR] = { > + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > + } > +}; I don't understand why IBTA QP state machine is declared in ETH driver and not in IB driver. > + <...> > + /* Release lock while we wait before retry. > + * Note, we can assert that we are already locked. > + */ > + port_funcs->cfg_unlock(cn_port); > + > + msleep(20); > + > + port_funcs->cfg_lock(cn_port); lock/unlock through ops pointer doesn't look like a good idea. Thanks ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 04/15] net: hbl_cn: QP state machine 2024-06-17 13:18 ` Leon Romanovsky @ 2024-06-18 5:50 ` Omer Shpigelman 2024-06-18 7:08 ` Leon Romanovsky 0 siblings, 1 reply; 107+ messages in thread From: Omer Shpigelman @ 2024-06-18 5:50 UTC (permalink / raw) To: Leon Romanovsky Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On 6/17/24 16:18, Leon Romanovsky wrote: > [Some people who received this message don't often get email from leon@kernel.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > On Thu, Jun 13, 2024 at 11:21:57AM +0300, Omer Shpigelman wrote: >> Add a common QP state machine which handles the moving for a QP from one >> state to another including performing necessary checks, draining >> in-flight transactions, invalidating caches and error reporting. >> >> Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> >> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> >> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> >> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> >> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> >> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> >> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> >> Co-developed-by: David Meriin <dmeriin@habana.ai> >> Signed-off-by: David Meriin <dmeriin@habana.ai> >> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> >> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> >> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> >> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> >> --- >> .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 480 +++++++++++++++++- >> 1 file changed, 479 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >> index 9ddc23bf8194..26ebdf448193 100644 >> --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >> +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >> @@ -6,8 +6,486 @@ > > <...> > >> +/* The following table represents the (valid) operations that can be performed on >> + * a QP in order to move it from one state to another >> + * For example: a QP in RTR state can be moved to RTS state using the CN_QP_OP_RTR_2RTS >> + * operation. >> + */ >> +static const enum hbl_cn_qp_state_op qp_valid_state_op[CN_QP_NUM_STATE][CN_QP_NUM_STATE] = { >> + [CN_QP_STATE_RESET] = { >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >> + [CN_QP_STATE_INIT] = CN_QP_OP_RST_2INIT, >> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >> + }, >> + [CN_QP_STATE_INIT] = { >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >> + [CN_QP_STATE_INIT] = CN_QP_OP_NOP, >> + [CN_QP_STATE_RTR] = CN_QP_OP_INIT_2RTR, >> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >> + }, >> + [CN_QP_STATE_RTR] = { >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >> + [CN_QP_STATE_RTR] = CN_QP_OP_RTR_2RTR, >> + [CN_QP_STATE_RTS] = CN_QP_OP_RTR_2RTS, >> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >> + [CN_QP_STATE_QPD] = CN_QP_OP_RTR_2QPD, >> + }, >> + [CN_QP_STATE_RTS] = { >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >> + [CN_QP_STATE_RTS] = CN_QP_OP_RTS_2RTS, >> + [CN_QP_STATE_SQD] = CN_QP_OP_RTS_2SQD, >> + [CN_QP_STATE_QPD] = CN_QP_OP_RTS_2QPD, >> + [CN_QP_STATE_SQERR] = CN_QP_OP_RTS_2SQERR, >> + }, >> + [CN_QP_STATE_SQD] = { >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >> + [CN_QP_STATE_SQD] = CN_QP_OP_SQD_2SQD, >> + [CN_QP_STATE_RTS] = CN_QP_OP_SQD_2RTS, >> + [CN_QP_STATE_QPD] = CN_QP_OP_SQD_2QPD, >> + [CN_QP_STATE_SQERR] = CN_QP_OP_SQD_2SQ_ERR, >> + }, >> + [CN_QP_STATE_QPD] = { >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >> + [CN_QP_STATE_RTR] = CN_QP_OP_QPD_2RTR, >> + }, >> + [CN_QP_STATE_SQERR] = { >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >> + [CN_QP_STATE_SQD] = CN_QP_OP_SQ_ERR_2SQD, >> + [CN_QP_STATE_SQERR] = CN_QP_OP_NOP, >> + }, >> + [CN_QP_STATE_ERR] = { >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >> + } >> +}; > > I don't understand why IBTA QP state machine is declared in ETH driver > and not in IB driver. > Implementing the actual transitions between the states requires full knowledge of the HW e.g. when to flush, cache invalidation, timeouts. Our IB driver is agnostic to the ASIC type by design. Note that more ASIC generations are planned to be added and the IB driver should not be aware of these additional HWs. Hence we implemeted the QP state machine in the CN driver which is aware of the actual HW. >> + > > <...> > >> + /* Release lock while we wait before retry. >> + * Note, we can assert that we are already locked. >> + */ >> + port_funcs->cfg_unlock(cn_port); >> + >> + msleep(20); >> + >> + port_funcs->cfg_lock(cn_port); > > lock/unlock through ops pointer doesn't look like a good idea. > More ASIC generations will be added once we merge the current Gaudi2 code. On other ASICs the locking granularity is different because some of the HW resources are shared between different logical ports. Hence it is was logical for us to implement it with a function pointer so each ASIC specific code can implemnet the locking properly. > Thanks ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 04/15] net: hbl_cn: QP state machine 2024-06-18 5:50 ` Omer Shpigelman @ 2024-06-18 7:08 ` Leon Romanovsky 2024-06-18 7:58 ` Omer Shpigelman 0 siblings, 1 reply; 107+ messages in thread From: Leon Romanovsky @ 2024-06-18 7:08 UTC (permalink / raw) To: Omer Shpigelman Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On Tue, Jun 18, 2024 at 05:50:15AM +0000, Omer Shpigelman wrote: > On 6/17/24 16:18, Leon Romanovsky wrote: > > [Some people who received this message don't often get email from leon@kernel.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > On Thu, Jun 13, 2024 at 11:21:57AM +0300, Omer Shpigelman wrote: > >> Add a common QP state machine which handles the moving for a QP from one > >> state to another including performing necessary checks, draining > >> in-flight transactions, invalidating caches and error reporting. > >> > >> Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> > >> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> > >> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> > >> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> > >> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> > >> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> > >> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> > >> Co-developed-by: David Meriin <dmeriin@habana.ai> > >> Signed-off-by: David Meriin <dmeriin@habana.ai> > >> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> > >> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> > >> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> > >> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> > >> --- > >> .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 480 +++++++++++++++++- > >> 1 file changed, 479 insertions(+), 1 deletion(-) > >> > >> diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > >> index 9ddc23bf8194..26ebdf448193 100644 > >> --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > >> +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > >> @@ -6,8 +6,486 @@ > > > > <...> > > > >> +/* The following table represents the (valid) operations that can be performed on > >> + * a QP in order to move it from one state to another > >> + * For example: a QP in RTR state can be moved to RTS state using the CN_QP_OP_RTR_2RTS > >> + * operation. > >> + */ > >> +static const enum hbl_cn_qp_state_op qp_valid_state_op[CN_QP_NUM_STATE][CN_QP_NUM_STATE] = { > >> + [CN_QP_STATE_RESET] = { > >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >> + [CN_QP_STATE_INIT] = CN_QP_OP_RST_2INIT, > >> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > >> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > >> + }, > >> + [CN_QP_STATE_INIT] = { > >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >> + [CN_QP_STATE_INIT] = CN_QP_OP_NOP, > >> + [CN_QP_STATE_RTR] = CN_QP_OP_INIT_2RTR, > >> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > >> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > >> + }, > >> + [CN_QP_STATE_RTR] = { > >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >> + [CN_QP_STATE_RTR] = CN_QP_OP_RTR_2RTR, > >> + [CN_QP_STATE_RTS] = CN_QP_OP_RTR_2RTS, > >> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > >> + [CN_QP_STATE_QPD] = CN_QP_OP_RTR_2QPD, > >> + }, > >> + [CN_QP_STATE_RTS] = { > >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >> + [CN_QP_STATE_RTS] = CN_QP_OP_RTS_2RTS, > >> + [CN_QP_STATE_SQD] = CN_QP_OP_RTS_2SQD, > >> + [CN_QP_STATE_QPD] = CN_QP_OP_RTS_2QPD, > >> + [CN_QP_STATE_SQERR] = CN_QP_OP_RTS_2SQERR, > >> + }, > >> + [CN_QP_STATE_SQD] = { > >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >> + [CN_QP_STATE_SQD] = CN_QP_OP_SQD_2SQD, > >> + [CN_QP_STATE_RTS] = CN_QP_OP_SQD_2RTS, > >> + [CN_QP_STATE_QPD] = CN_QP_OP_SQD_2QPD, > >> + [CN_QP_STATE_SQERR] = CN_QP_OP_SQD_2SQ_ERR, > >> + }, > >> + [CN_QP_STATE_QPD] = { > >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > >> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > >> + [CN_QP_STATE_RTR] = CN_QP_OP_QPD_2RTR, > >> + }, > >> + [CN_QP_STATE_SQERR] = { > >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >> + [CN_QP_STATE_SQD] = CN_QP_OP_SQ_ERR_2SQD, > >> + [CN_QP_STATE_SQERR] = CN_QP_OP_NOP, > >> + }, > >> + [CN_QP_STATE_ERR] = { > >> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >> + } > >> +}; > > > > I don't understand why IBTA QP state machine is declared in ETH driver > > and not in IB driver. > > > > Implementing the actual transitions between the states requires full > knowledge of the HW e.g. when to flush, cache invalidation, timeouts. > Our IB driver is agnostic to the ASIC type by design. Note that more ASIC > generations are planned to be added and the IB driver should not be aware > of these additional HWs. > Hence we implemeted the QP state machine in the CN driver which is aware > of the actual HW. Somehow ALL other IB drivers are able to implement this logic in the IB, while supporting multiple ASICs. I don't see a reason why you can't do the same. > > >> + > > > > <...> > > > >> + /* Release lock while we wait before retry. > >> + * Note, we can assert that we are already locked. > >> + */ > >> + port_funcs->cfg_unlock(cn_port); > >> + > >> + msleep(20); > >> + > >> + port_funcs->cfg_lock(cn_port); > > > > lock/unlock through ops pointer doesn't look like a good idea. > > > > More ASIC generations will be added once we merge the current Gaudi2 code. > On other ASICs the locking granularity is different because some of the HW > resources are shared between different logical ports. > Hence it is was logical for us to implement it with a function pointer so > each ASIC specific code can implemnet the locking properly. We are reviewing this code which is for the current ASIC, not for the unknown future ASICs. Please don't over engineer the first submission. You will always be able to improve/change the code once you decide to upstream your future ASICs. Thanks ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 04/15] net: hbl_cn: QP state machine 2024-06-18 7:08 ` Leon Romanovsky @ 2024-06-18 7:58 ` Omer Shpigelman 2024-06-18 9:00 ` Leon Romanovsky 0 siblings, 1 reply; 107+ messages in thread From: Omer Shpigelman @ 2024-06-18 7:58 UTC (permalink / raw) To: Leon Romanovsky Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On 6/18/24 10:08, Leon Romanovsky wrote: > On Tue, Jun 18, 2024 at 05:50:15AM +0000, Omer Shpigelman wrote: >> On 6/17/24 16:18, Leon Romanovsky wrote: >>> [Some people who received this message don't often get email from leon@kernel.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] >>> >>> On Thu, Jun 13, 2024 at 11:21:57AM +0300, Omer Shpigelman wrote: >>>> Add a common QP state machine which handles the moving for a QP from one >>>> state to another including performing necessary checks, draining >>>> in-flight transactions, invalidating caches and error reporting. >>>> >>>> Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> >>>> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> >>>> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> >>>> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> >>>> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> >>>> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> >>>> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> >>>> Co-developed-by: David Meriin <dmeriin@habana.ai> >>>> Signed-off-by: David Meriin <dmeriin@habana.ai> >>>> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> >>>> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> >>>> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> >>>> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> >>>> --- >>>> .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 480 +++++++++++++++++- >>>> 1 file changed, 479 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >>>> index 9ddc23bf8194..26ebdf448193 100644 >>>> --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >>>> +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >>>> @@ -6,8 +6,486 @@ >>> >>> <...> >>> >>>> +/* The following table represents the (valid) operations that can be performed on >>>> + * a QP in order to move it from one state to another >>>> + * For example: a QP in RTR state can be moved to RTS state using the CN_QP_OP_RTR_2RTS >>>> + * operation. >>>> + */ >>>> +static const enum hbl_cn_qp_state_op qp_valid_state_op[CN_QP_NUM_STATE][CN_QP_NUM_STATE] = { >>>> + [CN_QP_STATE_RESET] = { >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>> + [CN_QP_STATE_INIT] = CN_QP_OP_RST_2INIT, >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >>>> + }, >>>> + [CN_QP_STATE_INIT] = { >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>> + [CN_QP_STATE_INIT] = CN_QP_OP_NOP, >>>> + [CN_QP_STATE_RTR] = CN_QP_OP_INIT_2RTR, >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >>>> + }, >>>> + [CN_QP_STATE_RTR] = { >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>> + [CN_QP_STATE_RTR] = CN_QP_OP_RTR_2RTR, >>>> + [CN_QP_STATE_RTS] = CN_QP_OP_RTR_2RTS, >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_RTR_2QPD, >>>> + }, >>>> + [CN_QP_STATE_RTS] = { >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>> + [CN_QP_STATE_RTS] = CN_QP_OP_RTS_2RTS, >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_RTS_2SQD, >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_RTS_2QPD, >>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_RTS_2SQERR, >>>> + }, >>>> + [CN_QP_STATE_SQD] = { >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_SQD_2SQD, >>>> + [CN_QP_STATE_RTS] = CN_QP_OP_SQD_2RTS, >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_SQD_2QPD, >>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_SQD_2SQ_ERR, >>>> + }, >>>> + [CN_QP_STATE_QPD] = { >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >>>> + [CN_QP_STATE_RTR] = CN_QP_OP_QPD_2RTR, >>>> + }, >>>> + [CN_QP_STATE_SQERR] = { >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_SQ_ERR_2SQD, >>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_NOP, >>>> + }, >>>> + [CN_QP_STATE_ERR] = { >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>> + } >>>> +}; >>> >>> I don't understand why IBTA QP state machine is declared in ETH driver >>> and not in IB driver. >>> >> >> Implementing the actual transitions between the states requires full >> knowledge of the HW e.g. when to flush, cache invalidation, timeouts. >> Our IB driver is agnostic to the ASIC type by design. Note that more ASIC >> generations are planned to be added and the IB driver should not be aware >> of these additional HWs. >> Hence we implemeted the QP state machine in the CN driver which is aware >> of the actual HW. > > Somehow ALL other IB drivers are able to implement this logic in the IB, > while supporting multiple ASICs. I don't see a reason why you can't do > the same. > If we are referring to this actual table, then I can move it to the IB driver and the CN driver will fetch the needed opcode via a function pointer. Is that ok? >> >>>> + >>> >>> <...> >>> >>>> + /* Release lock while we wait before retry. >>>> + * Note, we can assert that we are already locked. >>>> + */ >>>> + port_funcs->cfg_unlock(cn_port); >>>> + >>>> + msleep(20); >>>> + >>>> + port_funcs->cfg_lock(cn_port); >>> >>> lock/unlock through ops pointer doesn't look like a good idea. >>> >> >> More ASIC generations will be added once we merge the current Gaudi2 code. >> On other ASICs the locking granularity is different because some of the HW >> resources are shared between different logical ports. >> Hence it is was logical for us to implement it with a function pointer so >> each ASIC specific code can implemnet the locking properly. > > We are reviewing this code which is for the current ASIC, not for the > unknown future ASICs. Please don't over engineer the first submission. > You will always be able to improve/change the code once you decide to > upstream your future ASICs. > I see. I'll refactor the code then. > Thanks ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 04/15] net: hbl_cn: QP state machine 2024-06-18 7:58 ` Omer Shpigelman @ 2024-06-18 9:00 ` Leon Romanovsky 2024-06-24 7:24 ` Omer Shpigelman 0 siblings, 1 reply; 107+ messages in thread From: Leon Romanovsky @ 2024-06-18 9:00 UTC (permalink / raw) To: Omer Shpigelman Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On Tue, Jun 18, 2024 at 07:58:55AM +0000, Omer Shpigelman wrote: > On 6/18/24 10:08, Leon Romanovsky wrote: > > On Tue, Jun 18, 2024 at 05:50:15AM +0000, Omer Shpigelman wrote: > >> On 6/17/24 16:18, Leon Romanovsky wrote: > >>> [Some people who received this message don't often get email from leon@kernel.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > >>> > >>> On Thu, Jun 13, 2024 at 11:21:57AM +0300, Omer Shpigelman wrote: > >>>> Add a common QP state machine which handles the moving for a QP from one > >>>> state to another including performing necessary checks, draining > >>>> in-flight transactions, invalidating caches and error reporting. > >>>> > >>>> Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> > >>>> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> > >>>> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> > >>>> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> > >>>> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> > >>>> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> > >>>> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> > >>>> Co-developed-by: David Meriin <dmeriin@habana.ai> > >>>> Signed-off-by: David Meriin <dmeriin@habana.ai> > >>>> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> > >>>> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> > >>>> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> > >>>> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> > >>>> --- > >>>> .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 480 +++++++++++++++++- > >>>> 1 file changed, 479 insertions(+), 1 deletion(-) > >>>> > >>>> diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > >>>> index 9ddc23bf8194..26ebdf448193 100644 > >>>> --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > >>>> +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c > >>>> @@ -6,8 +6,486 @@ > >>> > >>> <...> > >>> > >>>> +/* The following table represents the (valid) operations that can be performed on > >>>> + * a QP in order to move it from one state to another > >>>> + * For example: a QP in RTR state can be moved to RTS state using the CN_QP_OP_RTR_2RTS > >>>> + * operation. > >>>> + */ > >>>> +static const enum hbl_cn_qp_state_op qp_valid_state_op[CN_QP_NUM_STATE][CN_QP_NUM_STATE] = { > >>>> + [CN_QP_STATE_RESET] = { > >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >>>> + [CN_QP_STATE_INIT] = CN_QP_OP_RST_2INIT, > >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > >>>> + }, > >>>> + [CN_QP_STATE_INIT] = { > >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >>>> + [CN_QP_STATE_INIT] = CN_QP_OP_NOP, > >>>> + [CN_QP_STATE_RTR] = CN_QP_OP_INIT_2RTR, > >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > >>>> + }, > >>>> + [CN_QP_STATE_RTR] = { > >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >>>> + [CN_QP_STATE_RTR] = CN_QP_OP_RTR_2RTR, > >>>> + [CN_QP_STATE_RTS] = CN_QP_OP_RTR_2RTS, > >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_RTR_2QPD, > >>>> + }, > >>>> + [CN_QP_STATE_RTS] = { > >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >>>> + [CN_QP_STATE_RTS] = CN_QP_OP_RTS_2RTS, > >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_RTS_2SQD, > >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_RTS_2QPD, > >>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_RTS_2SQERR, > >>>> + }, > >>>> + [CN_QP_STATE_SQD] = { > >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_SQD_2SQD, > >>>> + [CN_QP_STATE_RTS] = CN_QP_OP_SQD_2RTS, > >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_SQD_2QPD, > >>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_SQD_2SQ_ERR, > >>>> + }, > >>>> + [CN_QP_STATE_QPD] = { > >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, > >>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, > >>>> + [CN_QP_STATE_RTR] = CN_QP_OP_QPD_2RTR, > >>>> + }, > >>>> + [CN_QP_STATE_SQERR] = { > >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >>>> + [CN_QP_STATE_SQD] = CN_QP_OP_SQ_ERR_2SQD, > >>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_NOP, > >>>> + }, > >>>> + [CN_QP_STATE_ERR] = { > >>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, > >>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, > >>>> + } > >>>> +}; > >>> > >>> I don't understand why IBTA QP state machine is declared in ETH driver > >>> and not in IB driver. > >>> > >> > >> Implementing the actual transitions between the states requires full > >> knowledge of the HW e.g. when to flush, cache invalidation, timeouts. > >> Our IB driver is agnostic to the ASIC type by design. Note that more ASIC > >> generations are planned to be added and the IB driver should not be aware > >> of these additional HWs. > >> Hence we implemeted the QP state machine in the CN driver which is aware > >> of the actual HW. > > > > Somehow ALL other IB drivers are able to implement this logic in the IB, > > while supporting multiple ASICs. I don't see a reason why you can't do > > the same. > > > > If we are referring to this actual table, then I can move it to the IB > driver and the CN driver will fetch the needed opcode via a function > pointer. > Is that ok? This table spotted my attention, but right separation shouldn't be limited to only this table. The outcome of this conversation should be: "IB specific logic should be in IB driver, and CN driver should be able to handle only low-level operations". Thanks ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 04/15] net: hbl_cn: QP state machine 2024-06-18 9:00 ` Leon Romanovsky @ 2024-06-24 7:24 ` Omer Shpigelman 0 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-24 7:24 UTC (permalink / raw) To: Leon Romanovsky Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On 6/18/24 12:00, Leon Romanovsky wrote: > On Tue, Jun 18, 2024 at 07:58:55AM +0000, Omer Shpigelman wrote: >> On 6/18/24 10:08, Leon Romanovsky wrote: >>> On Tue, Jun 18, 2024 at 05:50:15AM +0000, Omer Shpigelman wrote: >>>> On 6/17/24 16:18, Leon Romanovsky wrote: >>>>> [Some people who received this message don't often get email from leon@kernel.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] >>>>> >>>>> On Thu, Jun 13, 2024 at 11:21:57AM +0300, Omer Shpigelman wrote: >>>>>> Add a common QP state machine which handles the moving for a QP from one >>>>>> state to another including performing necessary checks, draining >>>>>> in-flight transactions, invalidating caches and error reporting. >>>>>> >>>>>> Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> >>>>>> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> >>>>>> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> >>>>>> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> >>>>>> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> >>>>>> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> >>>>>> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> >>>>>> Co-developed-by: David Meriin <dmeriin@habana.ai> >>>>>> Signed-off-by: David Meriin <dmeriin@habana.ai> >>>>>> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> >>>>>> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> >>>>>> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> >>>>>> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> >>>>>> --- >>>>>> .../ethernet/intel/hbl_cn/common/hbl_cn_qp.c | 480 +++++++++++++++++- >>>>>> 1 file changed, 479 insertions(+), 1 deletion(-) >>>>>> >>>>>> diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >>>>>> index 9ddc23bf8194..26ebdf448193 100644 >>>>>> --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >>>>>> +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_qp.c >>>>>> @@ -6,8 +6,486 @@ >>>>> >>>>> <...> >>>>> >>>>>> +/* The following table represents the (valid) operations that can be performed on >>>>>> + * a QP in order to move it from one state to another >>>>>> + * For example: a QP in RTR state can be moved to RTS state using the CN_QP_OP_RTR_2RTS >>>>>> + * operation. >>>>>> + */ >>>>>> +static const enum hbl_cn_qp_state_op qp_valid_state_op[CN_QP_NUM_STATE][CN_QP_NUM_STATE] = { >>>>>> + [CN_QP_STATE_RESET] = { >>>>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>>>> + [CN_QP_STATE_INIT] = CN_QP_OP_RST_2INIT, >>>>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >>>>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >>>>>> + }, >>>>>> + [CN_QP_STATE_INIT] = { >>>>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>>>> + [CN_QP_STATE_INIT] = CN_QP_OP_NOP, >>>>>> + [CN_QP_STATE_RTR] = CN_QP_OP_INIT_2RTR, >>>>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >>>>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >>>>>> + }, >>>>>> + [CN_QP_STATE_RTR] = { >>>>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>>>> + [CN_QP_STATE_RTR] = CN_QP_OP_RTR_2RTR, >>>>>> + [CN_QP_STATE_RTS] = CN_QP_OP_RTR_2RTS, >>>>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >>>>>> + [CN_QP_STATE_QPD] = CN_QP_OP_RTR_2QPD, >>>>>> + }, >>>>>> + [CN_QP_STATE_RTS] = { >>>>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>>>> + [CN_QP_STATE_RTS] = CN_QP_OP_RTS_2RTS, >>>>>> + [CN_QP_STATE_SQD] = CN_QP_OP_RTS_2SQD, >>>>>> + [CN_QP_STATE_QPD] = CN_QP_OP_RTS_2QPD, >>>>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_RTS_2SQERR, >>>>>> + }, >>>>>> + [CN_QP_STATE_SQD] = { >>>>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>>>> + [CN_QP_STATE_SQD] = CN_QP_OP_SQD_2SQD, >>>>>> + [CN_QP_STATE_RTS] = CN_QP_OP_SQD_2RTS, >>>>>> + [CN_QP_STATE_QPD] = CN_QP_OP_SQD_2QPD, >>>>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_SQD_2SQ_ERR, >>>>>> + }, >>>>>> + [CN_QP_STATE_QPD] = { >>>>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>>>> + [CN_QP_STATE_SQD] = CN_QP_OP_NOP, >>>>>> + [CN_QP_STATE_QPD] = CN_QP_OP_NOP, >>>>>> + [CN_QP_STATE_RTR] = CN_QP_OP_QPD_2RTR, >>>>>> + }, >>>>>> + [CN_QP_STATE_SQERR] = { >>>>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>>>> + [CN_QP_STATE_SQD] = CN_QP_OP_SQ_ERR_2SQD, >>>>>> + [CN_QP_STATE_SQERR] = CN_QP_OP_NOP, >>>>>> + }, >>>>>> + [CN_QP_STATE_ERR] = { >>>>>> + [CN_QP_STATE_RESET] = CN_QP_OP_2RESET, >>>>>> + [CN_QP_STATE_ERR] = CN_QP_OP_2ERR, >>>>>> + } >>>>>> +}; >>>>> >>>>> I don't understand why IBTA QP state machine is declared in ETH driver >>>>> and not in IB driver. >>>>> >>>> >>>> Implementing the actual transitions between the states requires full >>>> knowledge of the HW e.g. when to flush, cache invalidation, timeouts. >>>> Our IB driver is agnostic to the ASIC type by design. Note that more ASIC >>>> generations are planned to be added and the IB driver should not be aware >>>> of these additional HWs. >>>> Hence we implemeted the QP state machine in the CN driver which is aware >>>> of the actual HW. >>> >>> Somehow ALL other IB drivers are able to implement this logic in the IB, >>> while supporting multiple ASICs. I don't see a reason why you can't do >>> the same. >>> >> >> If we are referring to this actual table, then I can move it to the IB >> driver and the CN driver will fetch the needed opcode via a function >> pointer. >> Is that ok? > > This table spotted my attention, but right separation shouldn't be limited > to only this table. The outcome of this conversation should be: > "IB specific logic should be in IB driver, and CN driver should be able to > handle only low-level operations". > > Thanks Ok, I'll check how we can move the IB specific logic to the IB driver. ^ permalink raw reply [flat|nested] 107+ messages in thread
* [PATCH 05/15] net: hbl_cn: memory trace events 2024-06-13 8:21 [PATCH 00/15] Introduce HabanaLabs network drivers Omer Shpigelman ` (3 preceding siblings ...) 2024-06-13 8:21 ` [PATCH 04/15] net: hbl_cn: QP state machine Omer Shpigelman @ 2024-06-13 8:21 ` Omer Shpigelman 2024-06-13 8:21 ` [PATCH 06/15] net: hbl_cn: debugfs support Omer Shpigelman ` (11 subsequent siblings) 16 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-13 8:21 UTC (permalink / raw) To: linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, oshpigelman, zyehudai Add trace events for hbl_cn to track memory allocations. Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> Co-developed-by: David Meriin <dmeriin@habana.ai> Signed-off-by: David Meriin <dmeriin@habana.ai> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> --- .../net/ethernet/intel/hbl_cn/common/hbl_cn.c | 28 ++++- .../ethernet/intel/hbl_cn/common/hbl_cn_drv.c | 3 + .../intel/hbl_cn/common/hbl_cn_memory.c | 9 ++ include/trace/events/habanalabs_cn.h | 116 ++++++++++++++++++ 4 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 include/trace/events/habanalabs_cn.h diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c index 946b11bfa61b..4e910b2cb8ac 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c @@ -12,6 +12,8 @@ #include <linux/pci.h> #include <linux/slab.h> +#include <trace/events/habanalabs_cn.h> + #define NIC_MIN_WQS_PER_PORT 2 #define NIC_SEQ_RESETS_TIMEOUT_MS 15000 /* 15 seconds */ @@ -5892,8 +5894,15 @@ void *__hbl_cn_dma_alloc_coherent(struct hbl_cn_device *hdev, size_t size, dma_a gfp_t flag, const char *caller) { const struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + void *ptr; + + ptr = asic_funcs->dma_alloc_coherent(hdev, size, dma_handle, flag); - return asic_funcs->dma_alloc_coherent(hdev, size, dma_handle, flag); + if (trace_habanalabs_cn_dma_alloc_coherent_enabled()) + trace_habanalabs_cn_dma_alloc_coherent(hdev->dev, (u64)(uintptr_t)ptr, *dma_handle, + size, caller); + + return ptr; } void __hbl_cn_dma_free_coherent(struct hbl_cn_device *hdev, size_t size, void *cpu_addr, @@ -5902,14 +5911,25 @@ void __hbl_cn_dma_free_coherent(struct hbl_cn_device *hdev, size_t size, void *c const struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; asic_funcs->dma_free_coherent(hdev, size, cpu_addr, dma_addr); + + if (trace_habanalabs_cn_dma_free_coherent_enabled()) + trace_habanalabs_cn_dma_free_coherent(hdev->dev, (u64)(uintptr_t)cpu_addr, dma_addr, + size, caller); } void *__hbl_cn_dma_pool_zalloc(struct hbl_cn_device *hdev, size_t size, gfp_t mem_flags, dma_addr_t *dma_handle, const char *caller) { const struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; + void *ptr; - return asic_funcs->dma_pool_zalloc(hdev, size, mem_flags, dma_handle); + ptr = asic_funcs->dma_pool_zalloc(hdev, size, mem_flags, dma_handle); + + if (trace_habanalabs_cn_dma_pool_zalloc_enabled()) + trace_habanalabs_cn_dma_pool_zalloc(hdev->dev, (u64)(uintptr_t)ptr, *dma_handle, + size, caller); + + return ptr; } void __hbl_cn_dma_pool_free(struct hbl_cn_device *hdev, void *vaddr, dma_addr_t dma_addr, @@ -5918,6 +5938,10 @@ void __hbl_cn_dma_pool_free(struct hbl_cn_device *hdev, void *vaddr, dma_addr_t const struct hbl_cn_asic_funcs *asic_funcs = hdev->asic_funcs; asic_funcs->dma_pool_free(hdev, vaddr, dma_addr); + + if (trace_habanalabs_cn_dma_pool_free_enabled()) + trace_habanalabs_cn_dma_pool_free(hdev->dev, (u64)(uintptr_t)vaddr, dma_addr, 0, + caller); } int hbl_cn_get_reg_pcie_addr(struct hbl_cn_device *hdev, u8 bar_id, u32 reg, u64 *pci_addr) diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c index 47eedd27f36e..5ea690509592 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c @@ -12,6 +12,9 @@ #include <linux/auxiliary_bus.h> #include <linux/sched/clock.h> +#define CREATE_TRACE_POINTS +#include <trace/events/habanalabs_cn.h> + #define HBL_DRIVER_AUTHOR "HabanaLabs Kernel Driver Team" #define HBL_DRIVER_DESC "HabanaLabs AI accelerators Core Network driver" diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c index 878ecba66aa3..305b5b85acbe 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_memory.c @@ -6,6 +6,7 @@ #include <linux/vmalloc.h> #include "hbl_cn.h" +#include <trace/events/habanalabs_cn.h> static int hbl_cn_map_vmalloc_range(struct hbl_cn_ctx *ctx, u64 vmalloc_va, u64 device_va, u64 size) @@ -201,12 +202,16 @@ static struct hbl_cn_mem_buf *cn_mem_buf_alloc(struct hbl_cn_ctx *ctx, gfp_t gfp static int cn_mem_alloc(struct hbl_cn_ctx *ctx, struct hbl_cn_mem_data *mem_data) { + struct hbl_cn_device *hdev = ctx->hdev; struct hbl_cn_mem_buf *buf; buf = cn_mem_buf_alloc(ctx, GFP_KERNEL, mem_data); if (!buf) return -ENOMEM; + trace_habanalabs_cn_mem_alloc(hdev->dev, buf->mem_id, buf->handle, (u64)buf->kernel_address, + buf->bus_address, buf->device_va, buf->mappable_size); + mem_data->handle = buf->handle; if (mem_data->mem_id == HBL_CN_DRV_MEM_HOST_DMA_COHERENT) @@ -242,6 +247,10 @@ int hbl_cn_mem_alloc(struct hbl_cn_ctx *ctx, struct hbl_cn_mem_data *mem_data) static void cn_mem_buf_destroy(struct hbl_cn_mem_buf *buf) { + trace_habanalabs_cn_mem_destroy(buf->ctx->hdev->dev, buf->mem_id, buf->handle, + (u64)buf->kernel_address, buf->bus_address, buf->device_va, + buf->mappable_size); + if (buf->device_va) hbl_cn_unmap_vmalloc_range(buf->ctx, buf->device_va, buf->mappable_size); diff --git a/include/trace/events/habanalabs_cn.h b/include/trace/events/habanalabs_cn.h new file mode 100644 index 000000000000..aca962cf3130 --- /dev/null +++ b/include/trace/events/habanalabs_cn.h @@ -0,0 +1,116 @@ +/* SPDX-License-Identifier: GPL-2.0 + * + * Copyright 2023 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + * + */ + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM habanalabs_cn + +#if !defined(_TRACE_HABANALABS_CN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HABANALABS_CN_H + +#include <linux/tracepoint.h> + +DECLARE_EVENT_CLASS(habanalabs_cn_mem_template, + TP_PROTO(struct device *dev, u32 mem_id, u64 handle, u64 kernel_addr, u64 bus_addr, + u64 device_va, size_t size), + + TP_ARGS(dev, mem_id, handle, kernel_addr, bus_addr, device_va, size), + + TP_STRUCT__entry( + __string(dname, dev_name(dev)) + __field(u32, mem_id) + __field(u64, handle) + __field(u64, kernel_addr) + __field(u64, bus_addr) + __field(u64, device_va) + __field(u32, size) + ), + + TP_fast_assign( + __assign_str(dname); + __entry->mem_id = mem_id; + __entry->handle = handle; + __entry->kernel_addr = kernel_addr; + __entry->bus_addr = bus_addr; + __entry->device_va = device_va; + __entry->size = size; + ), + + TP_printk("%s: mem_id: %#x, handle: %#llx, kernel_addr: %#llx, bus_addr: %#llx, device_va: %#llx, size: %#x", + __get_str(dname), + __entry->mem_id, + __entry->handle, + __entry->kernel_addr, + __entry->bus_addr, + __entry->device_va, + __entry->size) +); + +DEFINE_EVENT(habanalabs_cn_mem_template, habanalabs_cn_mem_alloc, + TP_PROTO(struct device *dev, u32 mem_id, u64 handle, u64 kernel_addr, u64 bus_addr, + u64 device_va, size_t size), + TP_ARGS(dev, mem_id, handle, kernel_addr, bus_addr, device_va, size)); + +DEFINE_EVENT(habanalabs_cn_mem_template, habanalabs_cn_mem_destroy, + TP_PROTO(struct device *dev, u32 mem_id, u64 handle, u64 kernel_addr, u64 bus_addr, + u64 device_va, size_t size), + TP_ARGS(dev, mem_id, handle, kernel_addr, bus_addr, device_va, size)); + +DECLARE_EVENT_CLASS(habanalabs_cn_dma_alloc_template, + TP_PROTO(struct device *dev, u64 cpu_addr, u64 dma_addr, size_t size, const char *caller), + + TP_ARGS(dev, cpu_addr, dma_addr, size, caller), + + TP_STRUCT__entry( + __string(dname, dev_name(dev)) + __field(u64, cpu_addr) + __field(u64, dma_addr) + __field(u32, size) + __field(const char *, caller) + ), + + TP_fast_assign( + __assign_str(dname); + __entry->cpu_addr = cpu_addr; + __entry->dma_addr = dma_addr; + __entry->size = size; + __entry->caller = caller; + ), + + TP_printk("%s: cpu_addr: %#llx, dma_addr: %#llx, size: %#x, caller: %s", + __get_str(dname), + __entry->cpu_addr, + __entry->dma_addr, + __entry->size, + __entry->caller + ) +); + +DEFINE_EVENT(habanalabs_cn_dma_alloc_template, habanalabs_cn_dma_alloc_coherent, + TP_PROTO(struct device *dev, u64 cpu_addr, u64 dma_addr, size_t size, + const char *caller), + TP_ARGS(dev, cpu_addr, dma_addr, size, caller)); + +DEFINE_EVENT(habanalabs_cn_dma_alloc_template, habanalabs_cn_dma_free_coherent, + TP_PROTO(struct device *dev, u64 cpu_addr, u64 dma_addr, size_t size, + const char *caller), + TP_ARGS(dev, cpu_addr, dma_addr, size, caller)); + +DEFINE_EVENT(habanalabs_cn_dma_alloc_template, habanalabs_cn_dma_pool_zalloc, + TP_PROTO(struct device *dev, u64 cpu_addr, u64 dma_addr, size_t size, + const char *caller), + TP_ARGS(dev, cpu_addr, dma_addr, size, caller)); + +DEFINE_EVENT(habanalabs_cn_dma_alloc_template, habanalabs_cn_dma_pool_free, + TP_PROTO(struct device *dev, u64 cpu_addr, u64 dma_addr, size_t size, + const char *caller), + TP_ARGS(dev, cpu_addr, dma_addr, size, caller)); + +#endif /* if !defined(_TRACE_HABANALABS_CN_H) || defined(TRACE_HEADER_MULTI_READ) */ + +/* This part must be outside protection */ +#include <trace/define_trace.h> -- 2.34.1 ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-13 8:21 [PATCH 00/15] Introduce HabanaLabs network drivers Omer Shpigelman ` (4 preceding siblings ...) 2024-06-13 8:21 ` [PATCH 05/15] net: hbl_cn: memory trace events Omer Shpigelman @ 2024-06-13 8:21 ` Omer Shpigelman 2024-06-19 18:35 ` Sunil Kovvuri Goutham 2024-06-13 8:22 ` [PATCH 07/15] net: hbl_cn: gaudi2: ASIC register header files Omer Shpigelman ` (10 subsequent siblings) 16 siblings, 1 reply; 107+ messages in thread From: Omer Shpigelman @ 2024-06-13 8:21 UTC (permalink / raw) To: linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, oshpigelman, zyehudai Add debugfs files for advanced settings, debug options and testing. Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> Co-developed-by: David Meriin <dmeriin@habana.ai> Signed-off-by: David Meriin <dmeriin@habana.ai> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> --- .../ABI/testing/debugfs-driver-habanalabs_cn | 195 +++ MAINTAINERS | 1 + drivers/net/ethernet/intel/hbl_cn/Makefile | 2 + .../net/ethernet/intel/hbl_cn/common/hbl_cn.c | 4 + .../net/ethernet/intel/hbl_cn/common/hbl_cn.h | 37 + .../intel/hbl_cn/common/hbl_cn_debugfs.c | 1457 +++++++++++++++++ .../ethernet/intel/hbl_cn/common/hbl_cn_drv.c | 19 +- 7 files changed, 1714 insertions(+), 1 deletion(-) create mode 100644 Documentation/ABI/testing/debugfs-driver-habanalabs_cn create mode 100644 drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_debugfs.c diff --git a/Documentation/ABI/testing/debugfs-driver-habanalabs_cn b/Documentation/ABI/testing/debugfs-driver-habanalabs_cn new file mode 100644 index 000000000000..5de689b0986d --- /dev/null +++ b/Documentation/ABI/testing/debugfs-driver-habanalabs_cn @@ -0,0 +1,195 @@ +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_accumulate_fec_duration +Date: May 2024 +KernelVersion: N/A +Contact: kvabhilash@habana.ai +Description: Time (in ms) to accumulate FEC errors for. This is used as + divisor in calculation of pre & post FEC (Forward Error + Correction) SER (Symbol Error Rate). + Valid values are from 1 to ACCUMULATE_FEC_STATS_DURATION_MS_MAX. + Default value is ACCUMULATE_FEC_STATS_DURATION_MS. + Usage: echo <time_ms> > nic_accumulate_fec_duration + cat nic_accumulate_fec_duration + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_disable_decap +Date: May 2024 +KernelVersion: 6.9 +Contact: gkgurumurthy@habana.ai +Description: Allows the root user to enable/disable the decapsulation logic + on the RX path. + '1' disables the logic, '0' enables the logic. + The typical use case is to disable the decap on rx with encap + enabled on the tx, and run the RDMA traffic. This causes the + packets to be forwarded to ethernet ring which is ultimately + sent to linux kernel. The user can analyze the RDMA packet using + tcpdump and validate the encapsulation header. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_inject_rx_err +Date: May 2024 +KernelVersion: 6.9 +Contact: akishore@habana.ai +Description: Allows the root user to force RX packet drop. + Usage: echo <drop_percent> > nic_inject_rx_err + cat nic_inject_rx_err + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_lane_remap +Date: May 2024 +KernelVersion: 6.9 +Contact: akishore@habana.ai +Description: Allows root user to change MAC to PHY lane mapping. User should + provide space separated bitmap for all lanes on all NIC macros. + Usage: echo macro0 macro1 macro2 ... macroX > nic_mac_lane_remap + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_loopback +Date: May 2024 +KernelVersion: 6.9 +Contact: oshpigelman@habana.ai +Description: Allows the root user to disable/enable MAC loopback for each NIC + port. The ports will function as if a physical loopback + transceiver was connected. A bitmask should be provided where + each bit represents a port. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mmu_bypass +Date: May 2024 +KernelVersion: 6.9 +Contact: zyehudai@habana.ai +Description: Sets the NIC to use MMU bypass for its allocated data structure. + Value of "0" is for disable, otherwise enable. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_nrz_tx_taps +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to set and show the NRZ Tx taps for the + port lanes. The lanes indices are 0-47. + Acceptable input string form: + <lane> <tx_pre2> <tx_pre1> <tx_main> <tx_post1> <tx_post2>. + cat nic_nrz_tx_taps will dump all taps. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_override_port_status +Date: May 2024 +KernelVersion: 6.9 +Contact: aagranovich@habana.ai +Description: Allows the root user to force set ports link status. + Usage: echo <port> <status> > nic_override_port_status + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_pam4_tx_taps +Date: May 2024 +KernelVersion: 6.9 +Contact: oshpigelman@habana.ai +Description: Allows the root user to set and show the PAM4 Tx taps for the + port lanes. The lanes indices are 0-47. + Acceptable input string form: + <lane> <tx_pre2> <tx_pre1> <tx_main> <tx_post1> <tx_post2>. + cat nic_pam4_tx_taps will dump all taps. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_phy_calc_ber +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to enable calculation of PHY BER during the + PHY power_up flow. + value "0" is for disable, otherwise enable. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_phy_calc_ber_wait_sec +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to set the waiting time in seconds before + BER calculating. + Usage: echo <time_in_seconds> > nic_phy_calc_ber_wait_sec + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_phy_dump_serdes_params +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to dump serdes parameters for a given port. + Need to write the port and then read it in order to dump the + parameters. + Usage: echo <port> > nic_phy_dump_serdes_params + cat nic_phy_dump_serdes_params + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_phy_force_first_tx_taps_cfg +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to determine that every PHY power-up will + set the first Tx taps cfg instead of the current one. + Usage: echo 1 > nic_phy_force_first_tx_taps_cfg + cat nic_phy_force_first_tx_taps_cfg + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_phy_regs_print +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to dump all PHY registers reads/writes + during the PHY power_up flow. + value "0" is for disable, otherwise enable. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_phy_set_nrz +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to set/unset NRZ mode (25Gbps speed). + Usage: echo 0/1 > nic_phy_set_nrz + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_polarity +Date: May 2024 +KernelVersion: 6.9 +Contact: oshpigelman@habana.ai +Description: Allows the root user to set the polarity for the port lanes. + The lanes indices are 0-47. + Acceptable input string form: <lane> <pol_tx> <pol_rx>. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_print_fec_stats +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to dump the FEC stats for all NIC ports to + dmesg. + Usage: cat nic_print_fec_stats + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_qp +Date: May 2024 +KernelVersion: 6.9 +Contact: oshpigelman@habana.ai +Description: Read a QP (Queue Pair) HW structure content. Need to write the + QP number, port, type and other flags to the file and then read + it in order to dump the QP content. + Input form: <port> <qpn> <is_req> <is_full_print> <force_read>. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_rand_status +Date: May 2024 +KernelVersion: 6.9 +Contact: oshpigelman@habana.ai +Description: Enable randomization for the values returned in the NIC status + packet. Value of "0" is for disable, otherwise enable. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_reset_cnt +Date: May 2024 +KernelVersion: 6.9 +Contact: oshpigelman@habana.ai +Description: Resets nic counters. Any decimal value is a valid input. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_show_internal_ports_status +Date: May 2024 +KernelVersion: 6.9 +Contact: sozeri@habana.ai +Description: Allows the root user to read the link status of all internal + NIC ports. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_wqe +Date: May 2024 +KernelVersion: 6.9 +Contact: zyehudai@habana.ai +Description: Read a WQE (Work Queue Entry) HW structure content. Need to + write the port, QP number, WQE index and it's type to the file + and then read it in order to dump the WQE content. + Input form: <port> <qpn> <wqe_idx> <is_tx>. + +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_wqe_index_checker +Date: May 2024 +KernelVersion: 6.9 +Contact: dmeriin@habana.ai +Description: Allows the root user to enable/disable the WQE index checker. + value "0" is for disable, otherwise enable. + Usage: echo <enable> > nic_wqe_index_checker diff --git a/MAINTAINERS b/MAINTAINERS index e948e33e990d..906224204aba 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9610,6 +9610,7 @@ L: netdev@vger.kernel.org L: linux-rdma@vger.kernel.org S: Supported W: https://www.habana.ai +F: Documentation/ABI/testing/debugfs-driver-habanalabs_cn F: Documentation/networking/device_drivers/ethernet/intel/hbl.rst F: drivers/net/ethernet/intel/hbl_cn/ F: include/linux/habanalabs/ diff --git a/drivers/net/ethernet/intel/hbl_cn/Makefile b/drivers/net/ethernet/intel/hbl_cn/Makefile index 84ee2a6d7c3b..c2c4142f18a0 100644 --- a/drivers/net/ethernet/intel/hbl_cn/Makefile +++ b/drivers/net/ethernet/intel/hbl_cn/Makefile @@ -7,3 +7,5 @@ obj-$(CONFIG_HABANA_CN) := habanalabs_cn.o include $(src)/common/Makefile habanalabs_cn-y += $(HBL_CN_COMMON_FILES) + +habanalabs_cn-$(CONFIG_DEBUG_FS) += common/hbl_cn_debugfs.o diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c index 4e910b2cb8ac..fc7bd6474404 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.c @@ -1842,6 +1842,8 @@ int hbl_cn_dev_init(struct hbl_cn_device *hdev) hbl_cn_late_init(hdev); + hbl_cn_debugfs_dev_init(hdev); + hdev->is_initialized = true; return 0; @@ -1878,6 +1880,8 @@ void hbl_cn_dev_fini(struct hbl_cn_device *hdev) hbl_cn_stop(hdev->cn_aux_dev); } + hbl_cn_debugfs_dev_fini(hdev); + hbl_cn_late_fini(hdev); hbl_cn_ib_aux_drv_fini(hdev); diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h index 27139e93d990..0b96cd3db719 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn.h @@ -142,6 +142,34 @@ #define hbl_cn_dma_pool_free(hdev, vaddr, dma_addr) \ __hbl_cn_dma_pool_free(hdev, vaddr, dma_addr, __func__) +/* CN debugfs files enum */ +enum hbl_cn_debugfs_files_idx { + NIC_MAC_LOOPBACK = 0, + NIC_PAM4_TX_TAPS, + NIC_NRZ_TX_TAPS, + NIC_POLARITY, + NIC_QP, + NIC_WQE, + NIC_RESET_CNT, + NIC_MAC_LANE_REMAP, + NIC_RAND_STATUS, + NIC_MMU_BYPASS, + NIC_ETH_LOOPBACK, + NIC_PHY_REGS_PRINT, + NIC_SHOW_INTERNAL_PORTS_STATUS, + NIC_PRINT_FEC_STATS, + NIC_DISABLE_DECAP, + NIC_PHY_SET_NRZ, + NIC_PHY_DUMP_SERDES_PARAMS, + NIC_INJECT_RX_ERR, + NIC_PHY_CALC_BER, + NIC_PHY_CALC_BER_WAIT_SEC, + NIC_OVERRIDE_PORT_STATUS, + NIC_WQE_INDEX_CHECKER, + NIC_ACCUMULATE_FEC_DURATION, + NIC_PHY_FORCE_FIRST_TX_TAPS_CFG, +}; + extern struct hbl_cn_stat hbl_cn_mac_fec_stats[]; extern struct hbl_cn_stat hbl_cn_mac_stats_rx[]; extern struct hbl_cn_stat hbl_cn_mac_stats_tx[]; @@ -1312,6 +1340,7 @@ struct hbl_cn_properties { * struct hbl_cn_device - habanalabs CN device structure. * @pdev: pointer to PCI device. * @dev: related kernel basic device structure. + * @cn_dentry: CN debugfs root dentry. * @cpucp_info: FW info. * @asic_funcs: ASIC specific functions that can be called from common code. * @phy_tx_taps: array that holds all PAM4 Tx taps of all lanes. @@ -1341,6 +1370,7 @@ struct hbl_cn_properties { * @mac_loopback: enable MAC loopback on specific ports. * @dram_size: available DRAM size. * @mmap_type_flag: flag to indicate NIC MMAP type. + * @debugfs_supp_mask: mask of supported debugfs files. * @pol_tx_mask: bitmap of tx polarity for all lanes. * @pol_rx_mask: bitmap of rx polarity for all lanes. * @device_timeout: device access timeout in usec. @@ -1411,6 +1441,7 @@ struct hbl_cn_properties { struct hbl_cn_device { struct pci_dev *pdev; struct device *dev; + struct dentry *cn_dentry; struct hbl_cn_cpucp_info *cpucp_info; struct hbl_cn_asic_funcs *asic_funcs; struct hbl_cn_tx_taps *phy_tx_taps; @@ -1441,6 +1472,7 @@ struct hbl_cn_device { u64 mac_loopback; u64 dram_size; u64 mmap_type_flag; + u64 debugfs_supp_mask; u64 pol_tx_mask; u64 pol_rx_mask; u32 device_timeout; @@ -1534,6 +1566,8 @@ void hbl_cn_phy_set_port_status(struct hbl_cn_port *cn_port, bool up); int hbl_cn_read_spmu_counters(struct hbl_cn_port *cn_port, u64 out_data[], u32 *num_out_data); int hbl_cn_qp_modify(struct hbl_cn_port *cn_port, struct hbl_cn_qp *qp, enum hbl_cn_qp_state new_state, void *params); +void hbl_cn_debugfs_dev_init(struct hbl_cn_device *hdev); +void hbl_cn_debugfs_dev_fini(struct hbl_cn_device *hdev); u32 hbl_cn_get_max_qp_id(struct hbl_cn_port *cn_port); bool hbl_cn_is_port_open(struct hbl_cn_port *cn_port); u32 hbl_cn_get_pflags(struct hbl_cn_port *cn_port); @@ -1614,6 +1648,9 @@ int __hbl_cn_ports_reopen(struct hbl_cn_device *hdev); void __hbl_cn_hard_reset_prepare(struct hbl_cn_device *hdev, bool fw_reset, bool in_teardown); void __hbl_cn_stop(struct hbl_cn_device *hdev); +void __init hbl_cn_debugfs_init(void); +void hbl_cn_debugfs_fini(void); + /* DMA memory allocations */ void *__hbl_cn_dma_alloc_coherent(struct hbl_cn_device *hdev, size_t size, dma_addr_t *dma_handle, gfp_t flag, const char *caller); diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_debugfs.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_debugfs.c new file mode 100644 index 000000000000..b13da28fdcb7 --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_debugfs.c @@ -0,0 +1,1457 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + */ + +#include "hbl_cn.h" + +#ifdef CONFIG_DEBUG_FS + +#include <linux/debugfs.h> +#include <linux/module.h> +#include <linux/nospec.h> + +#define POLARITY_KBUF_SIZE 8 +#define TX_TAPS_KBUF_SIZE 25 +#define KBUF_IN_SIZE 18 +#define KBUF_OUT_SIZE BIT(12) +#define KBUF_OUT_BIG_SIZE BIT(14) +#define MAC_LANE_REMAP_READ_SIZE 10 +#define MAX_INT_PORT_STS_KBUF_SIZE 20 +#define HBL_CN_DEBUGFS_CREATE_FILE(op, perm, dir, dev, fops) \ + do { \ + enum hbl_cn_debugfs_files_idx __op = op; \ + if (hdev->debugfs_supp_mask & BIT(__op)) \ + debugfs_create_file(hbl_cn_debugfs_names[__op], perm, dir, dev, fops); \ + } while (0) + +#define HBL_CN_DEBUGFS_CREATE_U8(op, perm, dir, fops) \ + do { \ + enum hbl_cn_debugfs_files_idx __op = op; \ + if (hdev->debugfs_supp_mask & BIT(__op)) \ + debugfs_create_u8(hbl_cn_debugfs_names[__op], perm, dir, fops); \ + } while (0) + +#define HBL_CN_DEBUGFS_CREATE_U16(op, perm, dir, fops) \ + do { \ + enum hbl_cn_debugfs_files_idx __op = op; \ + if (hdev->debugfs_supp_mask & BIT(__op)) \ + debugfs_create_u16(hbl_cn_debugfs_names[__op], perm, dir, fops); \ + } while (0) + +static char hbl_cn_debugfs_names[][NAME_MAX] = { + [NIC_MAC_LOOPBACK] = "nic_mac_loopback", + [NIC_PAM4_TX_TAPS] = "nic_pam4_tx_taps", + [NIC_NRZ_TX_TAPS] = "nic_nrz_tx_taps", + [NIC_POLARITY] = "nic_polarity", + [NIC_QP] = "nic_qp", + [NIC_WQE] = "nic_wqe", + [NIC_RESET_CNT] = "nic_reset_cnt", + [NIC_MAC_LANE_REMAP] = "nic_mac_lane_remap", + [NIC_RAND_STATUS] = "nic_rand_status", + [NIC_MMU_BYPASS] = "nic_mmu_bypass", + [NIC_ETH_LOOPBACK] = "nic_eth_loopback", + [NIC_PHY_REGS_PRINT] = "nic_phy_regs_print", + [NIC_SHOW_INTERNAL_PORTS_STATUS] = "nic_show_internal_ports_status", + [NIC_PRINT_FEC_STATS] = "nic_print_fec_stats", + [NIC_DISABLE_DECAP] = "nic_disable_decap", + [NIC_PHY_SET_NRZ] = "nic_phy_set_nrz", + [NIC_PHY_DUMP_SERDES_PARAMS] = "nic_phy_dump_serdes_params", + [NIC_INJECT_RX_ERR] = "nic_inject_rx_err", + [NIC_PHY_CALC_BER] = "nic_phy_calc_ber", + [NIC_PHY_CALC_BER_WAIT_SEC] = "nic_phy_calc_ber_wait_sec", + [NIC_OVERRIDE_PORT_STATUS] = "nic_override_port_status", + [NIC_WQE_INDEX_CHECKER] = "nic_wqe_index_checker", + [NIC_ACCUMULATE_FEC_DURATION] = "nic_accumulate_fec_duration", + [NIC_PHY_FORCE_FIRST_TX_TAPS_CFG] = "nic_phy_force_first_tx_taps_cfg", +}; + +static struct dentry *hbl_cn_debug_root; + +static int hbl_device_hard_reset_sync(struct hbl_cn_device *hdev) +{ + struct hbl_cn_aux_ops *aux_ops; + struct hbl_aux_dev *aux_dev; + ktime_t timeout; + + aux_dev = hdev->cn_aux_dev; + aux_ops = aux_dev->aux_ops; + + aux_ops->device_reset(aux_dev); + + timeout = ktime_add_ms(ktime_get(), hdev->pending_reset_long_timeout * 1000ull); + while (!hbl_cn_comp_device_operational(hdev) && !READ_ONCE(hdev->in_teardown)) { + ssleep(1); + if (ktime_compare(ktime_get(), timeout) > 0) { + dev_crit(hdev->dev, "Timed out waiting for hard reset to finish\n"); + return -ETIMEDOUT; + } + } + + return 0; +} + +static ssize_t debugfs_print_value_to_buffer(void *buf, size_t count, loff_t *ppos, char *fmt, + u32 val) +{ + size_t fmt_len = strlen(fmt); + char tmp_fmt[32] = {0}; + char tmp[32] = {0}; + + if (*ppos) + return 0; + + if (fmt_len > sizeof(tmp_fmt) - 2) + return -ENOMEM; + + strscpy(tmp_fmt, fmt, sizeof(tmp_fmt)); + + tmp_fmt[fmt_len] = '\n'; + tmp_fmt[fmt_len + 1] = '\0'; + + snprintf(tmp, sizeof(tmp), tmp_fmt, val); + + return simple_read_from_buffer(buf, count, ppos, tmp, strlen(tmp) + 1); +} + +static ssize_t debugfs_pam4_tx_taps_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + s32 tx_pre2, tx_pre1, tx_main, tx_post1, tx_post2, *taps; + struct hbl_cn_device *hdev = file_inode(f)->i_private; + char kbuf[TX_TAPS_KBUF_SIZE] = {0}; + u32 lane, max_num_of_lanes; + char *c1, *c2; + ssize_t rc; + + max_num_of_lanes = hdev->cn_props.max_num_of_lanes; + + if (count > sizeof(kbuf) - 1) + goto err; + if (copy_from_user(kbuf, buf, count)) + goto err; + kbuf[count] = '\0'; + + c1 = kbuf; + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &lane); + if (rc) + goto err; + + if (lane >= max_num_of_lanes) { + dev_err(hdev->dev, "lane max value is %d\n", max_num_of_lanes - 1); + return -EINVAL; + } + + /* Turn off speculation due to Spectre vulnerability */ + lane = array_index_nospec(lane, max_num_of_lanes); + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtos32(c1, 10, &tx_pre2); + if (rc) + goto err; + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtos32(c1, 10, &tx_pre1); + if (rc) + goto err; + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtos32(c1, 10, &tx_main); + if (rc) + goto err; + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtos32(c1, 10, &tx_post1); + if (rc) + goto err; + + c1 = c2 + 1; + + rc = kstrtos32(c1, 10, &tx_post2); + if (rc) + goto err; + + taps = hdev->phy_tx_taps[lane].pam4_taps; + taps[0] = tx_pre2; + taps[1] = tx_pre1; + taps[2] = tx_main; + taps[3] = tx_post1; + taps[4] = tx_post2; + + return count; +err: + dev_err(hdev->dev, + "usage: echo <lane> <tx_pre2> <tx_pre1> <tx_main> <tx_post1> <tx_post2> > nic_pam4_tx_taps\n"); + + return -EINVAL; +} + +static ssize_t debugfs_pam4_tx_taps_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + u32 lane, max_num_of_lanes; + ssize_t rc, len; + char *kbuf; + s32 *taps; + + max_num_of_lanes = hdev->cn_props.max_num_of_lanes; + + if (*ppos) + return 0; + + kbuf = kzalloc(KBUF_OUT_SIZE, GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + sprintf(kbuf + strlen(kbuf), "PAM4 tx taps:\n"); + + for (lane = 0; lane < max_num_of_lanes; lane++) { + taps = hdev->phy_tx_taps[lane].pam4_taps; + len = strlen(kbuf); + if ((KBUF_OUT_SIZE - len) <= 1) { + rc = -EFBIG; + goto out; + } + snprintf(kbuf + len, KBUF_OUT_SIZE - len, "lane %u: %d %d %d %d %d\n", lane, + taps[0], taps[1], taps[2], taps[3], taps[4]); + } + + rc = simple_read_from_buffer(buf, count, ppos, kbuf, strlen(kbuf) + 1); + +out: + kfree(kbuf); + + return rc; +} + +static const struct file_operations debugfs_pam4_tx_taps_fops = { + .owner = THIS_MODULE, + .write = debugfs_pam4_tx_taps_write, + .read = debugfs_pam4_tx_taps_read, +}; + +static ssize_t debugfs_nrz_tx_taps_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + s32 tx_pre2, tx_pre1, tx_main, tx_post1, tx_post2, *taps; + struct hbl_cn_device *hdev = file_inode(f)->i_private; + char kbuf[TX_TAPS_KBUF_SIZE] = {0}; + u32 lane, max_num_of_lanes; + char *c1, *c2; + ssize_t rc; + + max_num_of_lanes = hdev->cn_props.max_num_of_lanes; + + if (count > sizeof(kbuf) - 1) + goto err; + if (copy_from_user(kbuf, buf, count)) + goto err; + kbuf[count] = '\0'; + + c1 = kbuf; + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &lane); + if (rc) + goto err; + + if (lane >= max_num_of_lanes) { + dev_err(hdev->dev, "lane max value is %d\n", max_num_of_lanes - 1); + return -EINVAL; + } + + /* Turn off speculation due to Spectre vulnerability */ + lane = array_index_nospec(lane, max_num_of_lanes); + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtos32(c1, 10, &tx_pre2); + if (rc) + goto err; + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtos32(c1, 10, &tx_pre1); + if (rc) + goto err; + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtos32(c1, 10, &tx_main); + if (rc) + goto err; + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtos32(c1, 10, &tx_post1); + if (rc) + goto err; + + c1 = c2 + 1; + + rc = kstrtos32(c1, 10, &tx_post2); + if (rc) + goto err; + + taps = hdev->phy_tx_taps[lane].nrz_taps; + taps[0] = tx_pre2; + taps[1] = tx_pre1; + taps[2] = tx_main; + taps[3] = tx_post1; + taps[4] = tx_post2; + + return count; +err: + dev_err(hdev->dev, + "usage: echo <lane> <tx_pre2> <tx_pre1> <tx_main> <tx_post1> <tx_post2> > nic_nrz_tx_taps\n"); + + return -EINVAL; +} + +static ssize_t debugfs_nrz_tx_taps_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + u32 lane, max_num_of_lanes; + ssize_t rc, len; + char *kbuf; + s32 *taps; + + max_num_of_lanes = hdev->cn_props.max_num_of_lanes; + + if (*ppos) + return 0; + + kbuf = kzalloc(KBUF_OUT_SIZE, GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + sprintf(kbuf + strlen(kbuf), "NRZ tx taps:\n"); + + for (lane = 0; lane < max_num_of_lanes; lane++) { + taps = hdev->phy_tx_taps[lane].nrz_taps; + len = strlen(kbuf); + if ((KBUF_OUT_SIZE - len) <= 1) { + rc = -EFBIG; + goto out; + } + snprintf(kbuf + len, KBUF_OUT_SIZE - len, "lane %u: %d %d %d %d %d\n", lane, + taps[0], taps[1], taps[2], taps[3], taps[4]); + } + + rc = simple_read_from_buffer(buf, count, ppos, kbuf, strlen(kbuf) + 1); + +out: + kfree(kbuf); + + return rc; +} + +static const struct file_operations debugfs_nrz_tx_taps_fops = { + .owner = THIS_MODULE, + .write = debugfs_nrz_tx_taps_write, + .read = debugfs_nrz_tx_taps_read, +}; + +static ssize_t debugfs_polarity_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + char kbuf[POLARITY_KBUF_SIZE] = {0}; + u32 lane, max_num_of_lanes; + u8 pol_tx, pol_rx; + char *c1, *c2; + ssize_t rc; + u64 val; + + max_num_of_lanes = hdev->cn_props.max_num_of_lanes; + + if (count > sizeof(kbuf) - 1) + goto err; + if (copy_from_user(kbuf, buf, count)) + goto err; + kbuf[count] = '\0'; + + c1 = kbuf; + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &lane); + if (rc) + goto err; + + if (lane >= max_num_of_lanes) { + dev_err(hdev->dev, "lane max value is %d\n", max_num_of_lanes - 1); + return -EINVAL; + } + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou8(c1, 10, &pol_tx); + if (rc) + goto err; + + c1 = c2 + 1; + + rc = kstrtou8(c1, 10, &pol_rx); + if (rc) + goto err; + + if ((pol_tx & ~1) || (pol_rx & ~1)) { + dev_err(hdev->dev, "pol_tx and pol_rx should be 0 or 1\n"); + goto err; + } + + val = hdev->pol_tx_mask; + val &= ~BIT_ULL(lane); + val |= ((u64)pol_tx) << lane; + hdev->pol_tx_mask = val; + + val = hdev->pol_rx_mask; + val &= ~BIT_ULL(lane); + val |= ((u64)pol_rx) << lane; + hdev->pol_rx_mask = val; + + /* This flag is set to prevent overwriting the new values after reset */ + hdev->skip_phy_pol_cfg = true; + + return count; +err: + dev_err(hdev->dev, "usage: echo <lane> <pol_tx> <pol_rx> > nic_polarity\n"); + + return -EINVAL; +} + +static const struct file_operations debugfs_polarity_fops = { + .owner = THIS_MODULE, + .write = debugfs_polarity_write, +}; + +static ssize_t debugfs_qp_read(struct file *f, char __user *buf, size_t count, loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_asic_funcs *asic_funcs; + char *kbuf; + ssize_t rc; + + asic_funcs = hdev->asic_funcs; + + if (*ppos) + return 0; + + kbuf = kzalloc(KBUF_OUT_SIZE, GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + rc = asic_funcs->qp_read(hdev, &hdev->qp_info, kbuf, KBUF_OUT_SIZE); + if (rc) + goto out; + + rc = simple_read_from_buffer(buf, count, ppos, kbuf, strlen(kbuf) + 1); + +out: + kfree(kbuf); + + return rc; +} + +static ssize_t debugfs_qp_write(struct file *f, const char __user *buf, size_t count, loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_qp_info *qp_info = &hdev->qp_info; + u32 port, qpn, max_num_of_ports; + u8 req, full_print, force_read; + char kbuf[KBUF_IN_SIZE] = {0}; + char *c1, *c2; + ssize_t rc; + + max_num_of_ports = hdev->cn_props.max_num_of_ports; + + if (count > sizeof(kbuf) - 1) + goto err; + if (copy_from_user(kbuf, buf, count)) + goto err; + kbuf[count] = '\0'; + + c1 = kbuf; + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &port); + if (rc) + goto err; + + if (port >= max_num_of_ports) { + dev_err(hdev->dev, "port max value is %d\n", max_num_of_ports - 1); + return -EINVAL; + } + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &qpn); + if (rc) + goto err; + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou8(c1, 10, &req); + if (rc) + goto err; + + if (req & ~1) { + dev_err(hdev->dev, "req should be 0 or 1\n"); + goto err; + } + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou8(c1, 10, &full_print); + if (rc) + goto err; + + if (full_print & ~1) { + dev_err(hdev->dev, "full_print should be 0 or 1\n"); + goto err; + } + + c1 = c2 + 1; + + /* may not be the last element due to the optional params */ + c2 = strchr(c1, ' '); + if (c2) + *c2 = '\0'; + + rc = kstrtou8(c1, 10, &force_read); + if (rc) + goto err; + + if (force_read & ~1) { + dev_err(hdev->dev, "force_read should be 0 or 1\n"); + goto err; + } + + qp_info->port = port; + qp_info->qpn = qpn; + qp_info->req = req; + qp_info->full_print = full_print; + qp_info->force_read = force_read; + + return count; +err: + dev_err(hdev->dev, + "usage: echo <port> <qpn> <is_req> <is_full_print> <force_read> [<exts_print>] > nic_qp\n"); + + return -EINVAL; +} + +static const struct file_operations debugfs_qp_fops = { + .owner = THIS_MODULE, + .read = debugfs_qp_read, + .write = debugfs_qp_write +}; + +static ssize_t debugfs_wqe_read(struct file *f, char __user *buf, size_t count, loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_asic_funcs *asic_funcs; + char *kbuf; + ssize_t rc; + + asic_funcs = hdev->asic_funcs; + + if (*ppos) + return 0; + + kbuf = kzalloc(KBUF_OUT_SIZE, GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + rc = asic_funcs->wqe_read(hdev, kbuf, KBUF_OUT_SIZE); + if (rc) + goto out; + + rc = simple_read_from_buffer(buf, count, ppos, kbuf, strlen(kbuf) + 1); + +out: + kfree(kbuf); + + return rc; +} + +static ssize_t debugfs_wqe_write(struct file *f, const char __user *buf, size_t count, loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_wqe_info *wqe_info = &hdev->wqe_info; + u32 port, qpn, wqe_idx, max_num_of_lanes; + char kbuf[KBUF_IN_SIZE] = {0}; + char *c1, *c2; + ssize_t rc; + u8 tx; + + max_num_of_lanes = hdev->cn_props.max_num_of_lanes; + + if (count > sizeof(kbuf) - 1) + goto err; + if (copy_from_user(kbuf, buf, count)) + goto err; + kbuf[count] = '\0'; + + c1 = kbuf; + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &port); + if (rc) + goto err; + + if (port >= max_num_of_lanes) { + dev_err(hdev->dev, "port max value is %d\n", max_num_of_lanes - 1); + return -EINVAL; + } + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &qpn); + if (rc) + goto err; + + c1 = c2 + 1; + + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &wqe_idx); + if (rc) + goto err; + + c1 = c2 + 1; + + rc = kstrtou8(c1, 10, &tx); + if (rc) + goto err; + + if (tx & ~1) { + dev_err(hdev->dev, "tx should be 0 or 1\n"); + goto err; + } + + wqe_info->port = port; + wqe_info->qpn = qpn; + wqe_info->wqe_idx = wqe_idx; + wqe_info->tx = tx; + + return count; +err: + dev_err(hdev->dev, "usage: echo <port> <qpn> <wqe_idx> <is_tx> > nic_wqe\n"); + + return -EINVAL; +} + +static const struct file_operations debugfs_wqe_fops = { + .owner = THIS_MODULE, + .read = debugfs_wqe_read, + .write = debugfs_wqe_write +}; + +static ssize_t debugfs_reset_cnt_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + ssize_t rc; + u32 val; + + rc = kstrtou32_from_user(buf, count, 10, &val); + if (rc) + return rc; + + hbl_cn_reset_ports_toggle_counters(hdev); + hbl_cn_reset_stats_counters(hdev); + + return count; +} + +static const struct file_operations debugfs_reset_cnt_fops = { + .owner = THIS_MODULE, + .write = debugfs_reset_cnt_write +}; + +static int parse_user_mac_lane_remap_data(u32 *dest_arr, int *dest_arr_cnt, char *buf, int count) +{ + int i = 0, j = 0, rc; + int offset; + u32 val; + + while (i < count) { + offset = strcspn(&buf[i], " "); + buf[i + offset] = '\0'; + + rc = kstrtou32(&buf[i], 16, &val); + if (rc) + return rc; + + dest_arr[j++] = val; + i += (offset + 1); + } + + *dest_arr_cnt = j; + + return 0; +} + +static ssize_t debugfs_mac_lane_remap_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_properties *cn_props; + u32 *mac_lane_remap_buf; + int rc, n_parsed = 0; + char *kbuf; + + cn_props = &hdev->cn_props; + + kbuf = kcalloc(count + 1, sizeof(*buf), GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + mac_lane_remap_buf = kcalloc(cn_props->num_of_macros, sizeof(*mac_lane_remap_buf), + GFP_KERNEL); + if (!mac_lane_remap_buf) { + rc = -ENOMEM; + goto err_free_kbuf; + } + + rc = copy_from_user(kbuf, buf, count); + if (rc) + goto err_free_mac_lane_remap_buf; + + /* Add trailing space to simplify parsing user data. */ + kbuf[count] = ' '; + + rc = parse_user_mac_lane_remap_data(mac_lane_remap_buf, &n_parsed, kbuf, count + 1); + if (rc || n_parsed != cn_props->num_of_macros) { + rc = -EINVAL; + goto err_parse; + } + + memcpy(hdev->mac_lane_remap, mac_lane_remap_buf, + sizeof(*mac_lane_remap_buf) * cn_props->num_of_macros); + + rc = hbl_device_hard_reset_sync(hdev); + if (rc) + goto err_free_mac_lane_remap_buf; + + kfree(mac_lane_remap_buf); + kfree(kbuf); + + return count; +err_parse: + dev_err_ratelimited(hdev->dev, + "usage: echo macro0 macro1 macro2 ... macroX > mac_lane_remap\n"); +err_free_mac_lane_remap_buf: + kfree(mac_lane_remap_buf); +err_free_kbuf: + kfree(kbuf); + return -EINVAL; +} + +static ssize_t debugfs_mac_lane_remap_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + char kbuf[MAC_LANE_REMAP_READ_SIZE]; + struct hbl_cn_properties *cn_props; + int i, j; + + cn_props = &hdev->cn_props; + + if (*ppos) + return 0; + + for (i = 0, j = 0; i < cn_props->num_of_macros; i++, j += MAC_LANE_REMAP_READ_SIZE) { + memset(kbuf, 0, MAC_LANE_REMAP_READ_SIZE); + sprintf(kbuf, "0x%x ", hdev->mac_lane_remap[i]); + + if (copy_to_user(&buf[j], kbuf, MAC_LANE_REMAP_READ_SIZE)) { + dev_err(hdev->dev, "error in copying lane info to user\n"); + return -EFAULT; + } + + *ppos += MAC_LANE_REMAP_READ_SIZE; + } + + return j + 1; +} + +static const struct file_operations debugfs_mac_lane_remap_fops = { + .owner = THIS_MODULE, + .write = debugfs_mac_lane_remap_write, + .read = debugfs_mac_lane_remap_read, +}; + +static ssize_t debugfs_eth_loopback_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + u32 val = 0; + int rc; + + rc = kstrtou32_from_user(buf, count, 10, &val); + if (rc) + return rc; + + hdev->eth_loopback = !!val; + + dev_info(hdev->dev, "%s eth_loopback\n", hdev->eth_loopback ? "enable" : "disable"); + + return count; +} + +static ssize_t debugfs_eth_loopback_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + + return debugfs_print_value_to_buffer(buf, count, ppos, "%u", hdev->eth_loopback); +} + +static const struct file_operations debugfs_eth_loopback_fops = { + .owner = THIS_MODULE, + .write = debugfs_eth_loopback_write, + .read = debugfs_eth_loopback_read, +}; + +static ssize_t debugfs_phy_regs_print_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + u32 val = 0; + int rc; + + rc = kstrtou32_from_user(buf, count, 10, &val); + if (rc) + return rc; + + hdev->phy_regs_print = !!val; + + dev_info(hdev->dev, "%s printing PHY registers\n", + hdev->phy_regs_print ? "enable" : "disable"); + + return count; +} + +static ssize_t debugfs_phy_regs_print_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + + return debugfs_print_value_to_buffer(buf, count, ppos, "%u", hdev->phy_regs_print); +} + +static const struct file_operations debugfs_phy_regs_print_fops = { + .owner = THIS_MODULE, + .write = debugfs_phy_regs_print_write, + .read = debugfs_phy_regs_print_read, +}; + +static ssize_t debugfs_show_internal_ports_status_read(struct file *f, char __user *buf, + size_t count, loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + char kbuf[MAX_INT_PORT_STS_KBUF_SIZE]; + struct hbl_cn_port *cn_port; + int i, cnt, total_cnt; + + if (*ppos) + return 0; + + total_cnt = 0; + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i)) || (hdev->ext_ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + memset(kbuf, 0, MAX_INT_PORT_STS_KBUF_SIZE); + cnt = sprintf(kbuf, "Port %-2u: %s\n", + cn_port->port, cn_port->pcs_link ? "UP" : "DOWN"); + + if (copy_to_user(&buf[total_cnt], kbuf, cnt)) { + dev_err(hdev->dev, "error in copying info to user\n"); + return -EFAULT; + } + + total_cnt += cnt; + *ppos += cnt; + } + + if (!total_cnt) { + char *msg = "No internal ports found\n"; + + return simple_read_from_buffer(buf, count, ppos, msg, strlen(msg)); + } + + return total_cnt + 1; +} + +static const struct file_operations debugfs_show_internal_ports_status_fops = { + .owner = THIS_MODULE, + .read = debugfs_show_internal_ports_status_read, +}; + +static ssize_t debugfs_print_fec_stats_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_asic_funcs *asic_funcs; + struct hbl_cn_port *cn_port; + char *kbuf; + int i, rc; + + asic_funcs = hdev->asic_funcs; + + if (*ppos) + return 0; + + kbuf = kzalloc(KBUF_OUT_BIG_SIZE, GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + sprintf(kbuf + strlen(kbuf), "Card %u FEC stats:\n", hdev->card_location); + + for (i = 0; i < hdev->cn_props.max_num_of_ports; i++) { + if (!(hdev->ports_mask & BIT(i))) + continue; + + cn_port = &hdev->cn_ports[i]; + + asic_funcs->port_funcs->collect_fec_stats(cn_port, kbuf, KBUF_OUT_BIG_SIZE); + } + + rc = simple_read_from_buffer(buf, count, ppos, kbuf, strlen(kbuf) + 1); + + kfree(kbuf); + + return rc; +} + +static const struct file_operations debugfs_print_fec_stats_fops = { + .owner = THIS_MODULE, + .read = debugfs_print_fec_stats_read, +}; + +static ssize_t debugfs_phy_set_nrz_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + bool val; + int rc; + + rc = kstrtobool_from_user(buf, count, &val); + if (rc) + return rc; + + if (val == hdev->phy_set_nrz) + return count; + + hdev->phy_set_nrz = val; + hdev->skip_phy_default_tx_taps_cfg = 0; + + dev_info(hdev->dev, "%s NRZ mode\n", hdev->phy_set_nrz ? "Enable" : "Disable"); + + rc = hbl_device_hard_reset_sync(hdev); + if (rc) + return -EINVAL; + + return count; +} + +static const struct file_operations debugfs_phy_set_nrz_fops = { + .owner = THIS_MODULE, + .write = debugfs_phy_set_nrz_write, +}; + +static ssize_t debugfs_phy_dump_serdes_params_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_asic_funcs *asic_funcs; + char *kbuf; + ssize_t rc; + + asic_funcs = hdev->asic_funcs; + + if (*ppos) + return 0; + + /* For ASICs that don't support this feature, return an error */ + if (!asic_funcs->phy_dump_serdes_params) + return -EINVAL; + + kbuf = kzalloc(KBUF_OUT_BIG_SIZE, GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + asic_funcs->phy_dump_serdes_params(hdev, kbuf, KBUF_OUT_BIG_SIZE); + + rc = simple_read_from_buffer(buf, count, ppos, kbuf, strlen(kbuf) + 1); + + kfree(kbuf); + + return rc; +} + +static ssize_t debugfs_phy_dump_serdes_params_write(struct file *f, const char __user *buf, + size_t count, loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_asic_funcs *asic_funcs; + u32 port; + int rc; + + asic_funcs = hdev->asic_funcs; + + /* For ASICs that don't support this feature, return an error */ + if (!asic_funcs->phy_dump_serdes_params) + return -EINVAL; + + rc = kstrtou32_from_user(buf, count, 10, &port); + if (rc) + return rc; + + if (port >= hdev->cn_props.max_num_of_ports) { + dev_err(hdev->dev, "Invalid port number %u\n", port); + return -EINVAL; + } + + hdev->phy_port_to_dump = port; + + return count; +} + +static const struct file_operations debugfs_phy_dump_serdes_params_fops = { + .owner = THIS_MODULE, + .read = debugfs_phy_dump_serdes_params_read, + .write = debugfs_phy_dump_serdes_params_write, +}; + +static ssize_t debugfs_inject_rx_err_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + + return debugfs_print_value_to_buffer(buf, count, ppos, "%u", hdev->rx_drop_percent); +} + +static ssize_t debugfs_inject_rx_err_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_asic_funcs *asic_funcs; + u32 val; + int rc; + + asic_funcs = hdev->asic_funcs; + + if (*ppos) + return 0; + + rc = kstrtou32_from_user(buf, count, 10, &val); + if (rc) + return rc; + + if (val > 100) { + dev_dbg_ratelimited(hdev->dev, "Invalid drop percentage %d\n", val); + return -EINVAL; + } + + asic_funcs->inject_rx_err(hdev, val); + + return count; +} + +static const struct file_operations debugfs_inject_rx_err_fops = { + .owner = THIS_MODULE, + .read = debugfs_inject_rx_err_read, + .write = debugfs_inject_rx_err_write, +}; + +static ssize_t debugfs_override_port_status_write(struct file *f, const char __user *buf, + size_t count, loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + char kbuf[KBUF_IN_SIZE] = {0}; + struct hbl_cn_port *cn_port; + u32 port, max_num_of_ports; + char *c1, *c2; + ssize_t rc; + u8 up; + + max_num_of_ports = hdev->cn_props.max_num_of_ports; + + if (count > sizeof(kbuf) - 1) + goto err; + if (copy_from_user(kbuf, buf, count)) + goto err; + kbuf[count] = '\0'; + + c1 = kbuf; + c2 = strchr(c1, ' '); + if (!c2) + goto err; + *c2 = '\0'; + + rc = kstrtou32(c1, 10, &port); + if (rc) + goto err; + + if (port >= max_num_of_ports) { + dev_err(hdev->dev, "port max value is %d\n", max_num_of_ports - 1); + return -EINVAL; + } + + /* Turn off speculation due to Spectre vulnerability */ + port = array_index_nospec(port, max_num_of_ports); + + c1 = c2 + 1; + + rc = kstrtou8(c1, 10, &up); + if (rc) + goto err; + + if (hdev->ports_mask & BIT(port)) { + cn_port = &hdev->cn_ports[port]; + + cn_port->pcs_link = !!up; + hbl_cn_phy_set_port_status(cn_port, !!up); + } + + return count; +err: + dev_err(hdev->dev, "usage: echo <port> <status> > nic_override_port_status\n"); + + return -EINVAL; +} + +static const struct file_operations debugfs_override_port_status_fops = { + .owner = THIS_MODULE, + .write = debugfs_override_port_status_write, +}; + +static ssize_t debugfs_write_wqe_index_checker(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_asic_funcs *asic_funcs; + u32 val; + int rc; + + asic_funcs = hdev->asic_funcs; + + /* For ASICs that don't support this feature, return an error */ + if (!asic_funcs->set_wqe_index_checker) + return -EINVAL; + + rc = kstrtou32_from_user(buf, count, 10, &val); + if (rc) + return rc; + + rc = asic_funcs->set_wqe_index_checker(hdev, !!val); + if (rc) + return rc; + + return count; +} + +static ssize_t debugfs_read_wqe_index_checker(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + struct hbl_cn_asic_funcs *asic_funcs; + u32 index_checker; + + asic_funcs = hdev->asic_funcs; + + if (!asic_funcs->get_wqe_index_checker) + return -EINVAL; + + index_checker = asic_funcs->get_wqe_index_checker(hdev); + + return debugfs_print_value_to_buffer(buf, count, ppos, "%u", index_checker); +} + +static const struct file_operations debugfs_wqe_index_checker_fops = { + .owner = THIS_MODULE, + .write = debugfs_write_wqe_index_checker, + .read = debugfs_read_wqe_index_checker, +}; + +static ssize_t debugfs_accumulate_fec_duration_write(struct file *f, const char __user *buf, + size_t count, loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + u32 val = 0; + int rc; + + rc = kstrtou32_from_user(buf, count, 10, &val); + if (rc) + return rc; + + if (!val || val > ACCUMULATE_FEC_STATS_DURATION_MS_MAX) + return -EINVAL; + + hdev->accumulate_fec_duration = val; + + return count; +} + +static ssize_t debugfs_accumulate_fec_duration_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + + return debugfs_print_value_to_buffer(buf, count, ppos, "%u", + hdev->accumulate_fec_duration); +} + +static const struct file_operations debugfs_accumulate_fec_duration_fops = { + .owner = THIS_MODULE, + .write = debugfs_accumulate_fec_duration_write, + .read = debugfs_accumulate_fec_duration_read, +}; + +static ssize_t debugfs_mac_loopback_read(struct file *f, char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + + return debugfs_print_value_to_buffer(buf, count, ppos, "0x%llx", hdev->mac_loopback); +} + +static ssize_t debugfs_mac_loopback_write(struct file *f, const char __user *buf, size_t count, + loff_t *ppos) +{ + struct hbl_cn_device *hdev = file_inode(f)->i_private; + ssize_t ret; + u64 val; + int rc; + + ret = kstrtoull_from_user(buf, count, 16, &val); + if (ret) + return ret; + + if (val == hdev->mac_loopback) + return count; + + hdev->mac_loopback = val; + rc = hbl_device_hard_reset_sync(hdev); + if (rc) + return rc; + + return count; +} + +static const struct file_operations debugfs_mac_loopback_fops = { + .owner = THIS_MODULE, + .read = debugfs_mac_loopback_read, + .write = debugfs_mac_loopback_write, +}; + +static void __hbl_cn_debugfs_dev_init(struct hbl_cn_device *hdev, struct dentry *root_dir) +{ + HBL_CN_DEBUGFS_CREATE_FILE(NIC_MAC_LOOPBACK, 0644, root_dir, hdev, + &debugfs_mac_loopback_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_PAM4_TX_TAPS, 0444, root_dir, hdev, + &debugfs_pam4_tx_taps_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_NRZ_TX_TAPS, 0444, root_dir, hdev, + &debugfs_nrz_tx_taps_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_POLARITY, 0444, root_dir, hdev, &debugfs_polarity_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_QP, 0444, root_dir, hdev, &debugfs_qp_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_WQE, 0444, root_dir, hdev, &debugfs_wqe_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_RESET_CNT, 0444, root_dir, hdev, + &debugfs_reset_cnt_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_MAC_LANE_REMAP, 0644, root_dir, hdev, + &debugfs_mac_lane_remap_fops); + + HBL_CN_DEBUGFS_CREATE_U8(NIC_RAND_STATUS, 0644, root_dir, &hdev->rand_status); + + HBL_CN_DEBUGFS_CREATE_U8(NIC_MMU_BYPASS, 0644, root_dir, &hdev->mmu_bypass); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_ETH_LOOPBACK, 0644, root_dir, hdev, + &debugfs_eth_loopback_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_PHY_REGS_PRINT, 0444, root_dir, hdev, + &debugfs_phy_regs_print_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_SHOW_INTERNAL_PORTS_STATUS, 0444, root_dir, hdev, + &debugfs_show_internal_ports_status_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_PRINT_FEC_STATS, 0444, root_dir, hdev, + &debugfs_print_fec_stats_fops); + + HBL_CN_DEBUGFS_CREATE_U8(NIC_DISABLE_DECAP, 0644, root_dir, &hdev->is_decap_disabled); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_PHY_SET_NRZ, 0444, root_dir, hdev, + &debugfs_phy_set_nrz_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_PHY_DUMP_SERDES_PARAMS, 0444, root_dir, hdev, + &debugfs_phy_dump_serdes_params_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_INJECT_RX_ERR, 0444, root_dir, hdev, + &debugfs_inject_rx_err_fops); + + HBL_CN_DEBUGFS_CREATE_U8(NIC_PHY_CALC_BER, 0644, root_dir, &hdev->phy_calc_ber); + + HBL_CN_DEBUGFS_CREATE_U16(NIC_PHY_CALC_BER_WAIT_SEC, 0644, root_dir, + &hdev->phy_calc_ber_wait_sec); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_OVERRIDE_PORT_STATUS, 0200, root_dir, hdev, + &debugfs_override_port_status_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_WQE_INDEX_CHECKER, 0644, root_dir, hdev, + &debugfs_wqe_index_checker_fops); + + HBL_CN_DEBUGFS_CREATE_FILE(NIC_ACCUMULATE_FEC_DURATION, 0644, root_dir, hdev, + &debugfs_accumulate_fec_duration_fops); + + HBL_CN_DEBUGFS_CREATE_U8(NIC_PHY_FORCE_FIRST_TX_TAPS_CFG, 0644, root_dir, + &hdev->phy_force_first_tx_taps_cfg); +} + +void hbl_cn_debugfs_dev_init(struct hbl_cn_device *hdev) +{ + char name[64] = {0}; + + snprintf(name, sizeof(name), "hbl_cn%d", hdev->id); + hdev->cn_dentry = debugfs_create_dir(name, hbl_cn_debug_root); + __hbl_cn_debugfs_dev_init(hdev, hdev->cn_dentry); +} + +void hbl_cn_debugfs_dev_fini(struct hbl_cn_device *hdev) +{ + debugfs_remove_recursive(hdev->cn_dentry); +} + +void __init hbl_cn_debugfs_init(void) +{ + hbl_cn_debug_root = debugfs_create_dir(module_name(THIS_MODULE), NULL); +} + +void hbl_cn_debugfs_fini(void) +{ + debugfs_remove_recursive(hbl_cn_debug_root); +} + +#else + +void hbl_cn_debugfs_dev_init(struct hbl_cn_device *hdev) +{ +} + +void hbl_cn_debugfs_dev_fini(struct hbl_cn_device *hdev) +{ +} + +void __init hbl_cn_debugfs_init(void) +{ +} + +void hbl_cn_debugfs_fini(void) +{ +} + +#endif /* CONFIG_DEBUG_FS */ diff --git a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c index 5ea690509592..1a26d9f3b9a4 100644 --- a/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c +++ b/drivers/net/ethernet/intel/hbl_cn/common/hbl_cn_drv.c @@ -207,15 +207,32 @@ static struct auxiliary_driver hbl_cn_driver = { static int __init hbl_cn_init(void) { + int rc; + pr_info("loading driver\n"); - return auxiliary_driver_register(&hbl_cn_driver); + hbl_cn_debugfs_init(); + + rc = auxiliary_driver_register(&hbl_cn_driver); + if (rc) { + pr_err("Failed to register auxiliary driver\n"); + goto remove_debugfs; + } + + return 0; + +remove_debugfs: + hbl_cn_debugfs_fini(); + + return rc; } static void __exit hbl_cn_exit(void) { auxiliary_driver_unregister(&hbl_cn_driver); + hbl_cn_debugfs_fini(); + pr_info("driver removed\n"); } -- 2.34.1 ^ permalink raw reply related [flat|nested] 107+ messages in thread
* RE: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-13 8:21 ` [PATCH 06/15] net: hbl_cn: debugfs support Omer Shpigelman @ 2024-06-19 18:35 ` Sunil Kovvuri Goutham 2024-06-21 10:17 ` Omer Shpigelman 0 siblings, 1 reply; 107+ messages in thread From: Sunil Kovvuri Goutham @ 2024-06-19 18:35 UTC (permalink / raw) To: Omer Shpigelman, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: ogabbay@kernel.org, zyehudai@habana.ai >+ >+What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_disable_decap >+What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_inject_rx_err >+What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_lane_remap Don't think debugfs is the correct interface for all this configuration. Debugfs should ideally be used for dumping runtime device state info for debug purposes. >+What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_loopback Why not use ethtool ? >+ >+What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mmu_bypass How does this work ? Thanks, Sunil. ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-19 18:35 ` Sunil Kovvuri Goutham @ 2024-06-21 10:17 ` Omer Shpigelman 2024-06-21 10:30 ` Sunil Kovvuri Goutham 2024-06-21 15:33 ` Andrew Lunn 0 siblings, 2 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-21 10:17 UTC (permalink / raw) To: Sunil Kovvuri Goutham, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: ogabbay@kernel.org, Zvika Yehudai On 6/19/24 21:35, Sunil Kovvuri Goutham wrote: > [Some people who received this message don't often get email from sgoutham@marvell.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > >> + >> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_disable_decap >> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_inject_rx_err >> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_lane_remap > > Don't think debugfs is the correct interface for all this configuration. > Debugfs should ideally be used for dumping runtime device state info for debug purposes. > I see other vendors have debugfs entries for debug configurations or settings, not just for dumping debug info. >> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_loopback > > Why not use ethtool ? > We have an ethtool option for that, but we have also internal NIC ports that are not exposed as netdevices and for them the ethtool path is irrelevant. Hence we need this debugfs option as well. >> + >> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mmu_bypass > > How does this work ? > When this option is enabled the RDMA data buffers the user allocated on the host memory are being accessed directly i.e. without MMU. But now after you brought this up I see that it is not fully supported anymore so I'll remove in the next version. > Thanks, > Sunil. ^ permalink raw reply [flat|nested] 107+ messages in thread
* RE: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-21 10:17 ` Omer Shpigelman @ 2024-06-21 10:30 ` Sunil Kovvuri Goutham 2024-06-23 7:25 ` Omer Shpigelman 2024-06-21 15:33 ` Andrew Lunn 1 sibling, 1 reply; 107+ messages in thread From: Sunil Kovvuri Goutham @ 2024-06-21 10:30 UTC (permalink / raw) To: Omer Shpigelman, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: ogabbay@kernel.org, Zvika Yehudai >>> + >>> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_disable_decap >>> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_inject_rx_err >>> +What: >/sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_lane_remap >> >> Don't think debugfs is the correct interface for all this configuration. >> Debugfs should ideally be used for dumping runtime device state info for debug >purposes. >> > >I see other vendors have debugfs entries for debug configurations or settings, not >just for dumping debug info. > But disable_decap / mac_lane_remap seems configuration related which changes the way pkts are processed not debug. Configurations are supported via devlink. Thanks, Sunil. ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-21 10:30 ` Sunil Kovvuri Goutham @ 2024-06-23 7:25 ` Omer Shpigelman 0 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-23 7:25 UTC (permalink / raw) To: Sunil Kovvuri Goutham, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: ogabbay@kernel.org, Zvika Yehudai On 6/21/24 13:30, Sunil Kovvuri Goutham wrote: >>>> + >>>> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_disable_decap >>>> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_inject_rx_err >>>> +What: >> /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_lane_remap >>> >>> Don't think debugfs is the correct interface for all this configuration. >>> Debugfs should ideally be used for dumping runtime device state info for debug >> purposes. >>> >> >> I see other vendors have debugfs entries for debug configurations or settings, not >> just for dumping debug info. >> > > But disable_decap / mac_lane_remap seems configuration related which changes the way pkts are processed not debug. > Configurations are supported via devlink. > As I wrote to Andrew, I'll stick to the debugfs entries that are really necessary for us. BTW the entries you mentioned are not regular configurations but advanced settings to augment debuggability. But yeah, if we can set these via devlink then it is better to use it. Let me revisit this for the next patch set version. > Thanks, > Sunil. ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-21 10:17 ` Omer Shpigelman 2024-06-21 10:30 ` Sunil Kovvuri Goutham @ 2024-06-21 15:33 ` Andrew Lunn 2024-06-23 6:57 ` Omer Shpigelman 1 sibling, 1 reply; 107+ messages in thread From: Andrew Lunn @ 2024-06-21 15:33 UTC (permalink / raw) To: Omer Shpigelman Cc: Sunil Kovvuri Goutham, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai > I see other vendors have debugfs entries for debug configurations or > settings, not just for dumping debug info. Did you see any added in the last few years? This is also something DaveM pushed back on. We want uniform APIs so that all devices look alike. Please consider what you are exporting here, how it should cleanly fit into ethtool, devlink, etc, and expand these APIs to cover your needs. > > >> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_loopback > > > > Why not use ethtool ? > > > > We have an ethtool option for that, but we have also internal NIC ports > that are not exposed as netdevices and for them the ethtool path is > irrelevant. Hence we need this debugfs option as well. If there is no netdev, what is the point of putting it into loopback? How do you send packets which are to be looped back? How do you receive them to see if they were actually looped back? Andrew ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-21 15:33 ` Andrew Lunn @ 2024-06-23 6:57 ` Omer Shpigelman 2024-06-23 15:02 ` Andrew Lunn 0 siblings, 1 reply; 107+ messages in thread From: Omer Shpigelman @ 2024-06-23 6:57 UTC (permalink / raw) To: Andrew Lunn Cc: Sunil Kovvuri Goutham, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On 6/21/24 18:33, Andrew Lunn wrote: >> I see other vendors have debugfs entries for debug configurations or >> settings, not just for dumping debug info. > > Did you see any added in the last few years? This is also something > DaveM pushed back on. We want uniform APIs so that all devices look > alike. Please consider what you are exporting here, how it should > cleanly fit into ethtool, devlink, etc, and expand these APIs to cover > your needs. > If it's problematic then I'll try to stick to the ones which expose debug info and maybe some other necessary debug options e.g. loopback. I'll try to minimize by removing anything that is not mandatory. >> >>>> +What: /sys/kernel/debug/habanalabs_cn/hbl_cn<n>/nic_mac_loopback >>> >>> Why not use ethtool ? >>> >> >> We have an ethtool option for that, but we have also internal NIC ports >> that are not exposed as netdevices and for them the ethtool path is >> irrelevant. Hence we need this debugfs option as well. > > If there is no netdev, what is the point of putting it into loopback? > How do you send packets which are to be looped back? How do you > receive them to see if they were actually looped back? > > Andrew To run RDMA test in loopback. That's how we can pinpoint problems like packet drops or performance degradation. For example, if packet drops were seen on the port then it is crucial to know if these drops are reproducible in loopback mode. If they are, then the root cause is probably some internal HW failure or misconfiguration. If not, then the packet drops might be related to the link quality. We send these packets by setting a loopback bypass in the MAC layer. The packets themselves and the NIC HW logic are agnostic to the loopback setting (except of the packet's MAC address). We receive and validate them and in the same way we receive and validate regular packets - the loopback bypass is in the MAC layer which is in a lower layer than our NIC HW logic. ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-23 6:57 ` Omer Shpigelman @ 2024-06-23 15:02 ` Andrew Lunn 2024-06-24 7:21 ` Omer Shpigelman ` (2 more replies) 0 siblings, 3 replies; 107+ messages in thread From: Andrew Lunn @ 2024-06-23 15:02 UTC (permalink / raw) To: Omer Shpigelman Cc: Sunil Kovvuri Goutham, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai > > If there is no netdev, what is the point of putting it into loopback? > > How do you send packets which are to be looped back? How do you > > receive them to see if they were actually looped back? > > > > Andrew > > To run RDMA test in loopback. What is special about your RDMA? Why do you need something which other vendors don't? Please solve this problem for all RDMA devices, not yours. This all part of the same thing with respect to module parameters. Vendors would add module parameters for something. Other vendors would have the same concept, but give it a different name, different values. It was all poorly documented. You had to read the kernel sources to figure out what kernel module parameters do. Same goes for debugfs, driver values in /proc, /sysfs or /debugfs. So for years we have been pushing back on things like this. If you have something which is unique to your hardware, no other vendor is ever going to have the same, then you can make an argument for something driver specific in /debugfs. But RDMA loopback tests is clearly not specific to your driver. Extend the KAPI and tools to cover this, document the KAPI, write the man page, and let other vendors implement the little bit they need in their driver, so users have a uniform way of doing things over a rather of devices. You will get a lot of pushback on everything in /debugfs, so please review them all with this in mind. Andrew ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-23 15:02 ` Andrew Lunn @ 2024-06-24 7:21 ` Omer Shpigelman 2024-06-24 9:22 ` Leon Romanovsky 2024-12-17 10:00 ` Avri Kehat 2 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-24 7:21 UTC (permalink / raw) To: Andrew Lunn Cc: Sunil Kovvuri Goutham, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On 6/23/24 18:02, Andrew Lunn wrote: >>> If there is no netdev, what is the point of putting it into loopback? >>> How do you send packets which are to be looped back? How do you >>> receive them to see if they were actually looped back? >>> >>> Andrew >> >> To run RDMA test in loopback. > > What is special about your RDMA? Why do you need something which other > vendors don't? Please solve this problem for all RDMA devices, not > yours. > > This all part of the same thing with respect to module > parameters. Vendors would add module parameters for something. Other > vendors would have the same concept, but give it a different name, > different values. It was all poorly documented. You had to read the > kernel sources to figure out what kernel module parameters do. Same > goes for debugfs, driver values in /proc, /sysfs or /debugfs. So for > years we have been pushing back on things like this. > > If you have something which is unique to your hardware, no other > vendor is ever going to have the same, then you can make an argument > for something driver specific in /debugfs. But RDMA loopback tests is > clearly not specific to your driver. Extend the KAPI and tools to > cover this, document the KAPI, write the man page, and let other > vendors implement the little bit they need in their driver, so users > have a uniform way of doing things over a rather of devices. > > You will get a lot of pushback on everything in /debugfs, so please > review them all with this in mind. > > Andrew I see your point and I'll keep that in mind. For these kinds of configurations we can use devlink instead of debugfs. ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-23 15:02 ` Andrew Lunn 2024-06-24 7:21 ` Omer Shpigelman @ 2024-06-24 9:22 ` Leon Romanovsky 2024-12-17 10:00 ` Avri Kehat 2 siblings, 0 replies; 107+ messages in thread From: Leon Romanovsky @ 2024-06-24 9:22 UTC (permalink / raw) To: Andrew Lunn Cc: Omer Shpigelman, Sunil Kovvuri Goutham, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, ogabbay@kernel.org, Zvika Yehudai On Sun, Jun 23, 2024 at 05:02:44PM +0200, Andrew Lunn wrote: > > > If there is no netdev, what is the point of putting it into loopback? > > > How do you send packets which are to be looped back? How do you > > > receive them to see if they were actually looped back? > > > > > > Andrew > > > > To run RDMA test in loopback. > > What is special about your RDMA? Why do you need something which other > vendors don't? Please solve this problem for all RDMA devices, not > yours. I'm not aware of anything special here, which require special treatment. All RDMA devices support loopback natively and can "put" traffic from their TX directly to their RX. This is how we can run RDMA tests, which are part of rdma-core https://github.com/linux-rdma/rdma-core/tree/master/tests. Thanks ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-06-23 15:02 ` Andrew Lunn 2024-06-24 7:21 ` Omer Shpigelman 2024-06-24 9:22 ` Leon Romanovsky @ 2024-12-17 10:00 ` Avri Kehat 2024-12-17 10:52 ` Andrew Lunn 2 siblings, 1 reply; 107+ messages in thread From: Avri Kehat @ 2024-12-17 10:00 UTC (permalink / raw) To: andrew Cc: dri-devel, linux-kernel, linux-rdma, netdev, ogabbay, oshpigelman, sgoutham, zyehudai Revisiting the comments regarding our use of debugfs as an interface for device configurations - A big part of the non-statistics debugfs parameters are HW related debug-only capabilities, and not configurations required by the user. Should these sort of parameters be part of devlink as well? Is there another location where debug related configurations for development can reside in? Avri ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [PATCH 06/15] net: hbl_cn: debugfs support 2024-12-17 10:00 ` Avri Kehat @ 2024-12-17 10:52 ` Andrew Lunn 0 siblings, 0 replies; 107+ messages in thread From: Andrew Lunn @ 2024-12-17 10:52 UTC (permalink / raw) To: Avri Kehat Cc: dri-devel, linux-kernel, linux-rdma, netdev, ogabbay, oshpigelman, sgoutham, zyehudai On Tue, Dec 17, 2024 at 12:00:39PM +0200, Avri Kehat wrote: > Revisiting the comments regarding our use of debugfs as an interface for device configurations - > A big part of the non-statistics debugfs parameters are HW related debug-only capabilities, and not configurations required by the user. > Should these sort of parameters be part of devlink as well? > Is there another location where debug related configurations for development can reside in? There are a few options: If the user does not require them, don't even implement them. If the user is not using them, who is? Implement them in an out of tree patch, which your development team can use, since these are not user configuration options. devlink is a possibility, but developers complain it is slow to get them merged since we want to understand what the configuration option does, why would i want to use it, would any other vendor have the same need, and should it be made generic etc. You could join those asking for fwctl, which is a contentious subject. Andrew ^ permalink raw reply [flat|nested] 107+ messages in thread
* [PATCH 07/15] net: hbl_cn: gaudi2: ASIC register header files 2024-06-13 8:21 [PATCH 00/15] Introduce HabanaLabs network drivers Omer Shpigelman ` (5 preceding siblings ...) 2024-06-13 8:21 ` [PATCH 06/15] net: hbl_cn: debugfs support Omer Shpigelman @ 2024-06-13 8:22 ` Omer Shpigelman 2024-06-13 8:22 ` [PATCH 08/15] net: hbl_cn: gaudi2: ASIC specific support Omer Shpigelman ` (9 subsequent siblings) 16 siblings, 0 replies; 107+ messages in thread From: Omer Shpigelman @ 2024-06-13 8:22 UTC (permalink / raw) To: linux-kernel, linux-rdma, netdev, dri-devel Cc: ogabbay, oshpigelman, zyehudai Add the relevant GAUDI2 ASIC registers header files. These files are generated automatically from a tool maintained by the VLSI engineers. These are required for the upcoming driver logic support. Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> Co-developed-by: Abhilash K V <kvabhilash@habana.ai> Signed-off-by: Abhilash K V <kvabhilash@habana.ai> Co-developed-by: Andrey Agranovich <aagranovich@habana.ai> Signed-off-by: Andrey Agranovich <aagranovich@habana.ai> Co-developed-by: Bharat Jauhari <bjauhari@habana.ai> Signed-off-by: Bharat Jauhari <bjauhari@habana.ai> Co-developed-by: David Meriin <dmeriin@habana.ai> Signed-off-by: David Meriin <dmeriin@habana.ai> Co-developed-by: Sagiv Ozeri <sozeri@habana.ai> Signed-off-by: Sagiv Ozeri <sozeri@habana.ai> Co-developed-by: Zvika Yehudai <zyehudai@habana.ai> Signed-off-by: Zvika Yehudai <zyehudai@habana.ai> --- .../asic_reg/arc_farm_kdma_ctx_axuser_masks.h | 135 + .../asic_reg/dcore0_sync_mngr_objs_regs.h | 43543 +++++++++++++++ .../asic_reg/gaudi2_blocks_linux_driver.h | 45068 ++++++++++++++++ .../hbl_cn/gaudi2/asic_reg/gaudi2_regs.h | 77 + .../asic_reg/nic0_mac_ch0_mac_128_masks.h | 339 + .../asic_reg/nic0_mac_ch0_mac_128_regs.h | 101 + .../asic_reg/nic0_mac_ch0_mac_pcs_masks.h | 713 + .../asic_reg/nic0_mac_ch0_mac_pcs_regs.h | 271 + .../asic_reg/nic0_mac_ch1_mac_pcs_regs.h | 271 + .../asic_reg/nic0_mac_ch2_mac_pcs_regs.h | 271 + .../asic_reg/nic0_mac_ch3_mac_pcs_regs.h | 271 + .../nic0_mac_glob_stat_control_reg_masks.h | 67 + .../nic0_mac_glob_stat_control_reg_regs.h | 37 + .../asic_reg/nic0_mac_glob_stat_rx0_regs.h | 93 + .../asic_reg/nic0_mac_glob_stat_rx2_regs.h | 93 + .../asic_reg/nic0_mac_glob_stat_tx0_regs.h | 75 + .../asic_reg/nic0_mac_glob_stat_tx2_regs.h | 75 + .../gaudi2/asic_reg/nic0_mac_rs_fec_regs.h | 157 + .../hbl_cn/gaudi2/asic_reg/nic0_phy_masks.h | 77 + .../hbl_cn/gaudi2/asic_reg/nic0_phy_regs.h | 59 + .../nic0_qm0_axuser_nonsecured_regs.h | 61 + .../asic_reg/nic0_qpc0_axuser_cong_que_regs.h | 61 + .../asic_reg/nic0_qpc0_axuser_db_fifo_regs.h | 61 + .../asic_reg/nic0_qpc0_axuser_err_fifo_regs.h | 61 + .../nic0_qpc0_axuser_ev_que_lbw_intr_regs.h | 61 + .../asic_reg/nic0_qpc0_axuser_qpc_req_regs.h | 61 + .../asic_reg/nic0_qpc0_axuser_qpc_resp_regs.h | 61 + .../asic_reg/nic0_qpc0_axuser_rxwqe_regs.h | 61 + .../nic0_qpc0_axuser_txwqe_lbw_qman_bp_regs.h | 61 + .../nic0_qpc0_dbfifo0_ci_upd_addr_regs.h | 27 + .../nic0_qpc0_dbfifosecur_ci_upd_addr_regs.h | 27 + .../hbl_cn/gaudi2/asic_reg/nic0_qpc0_masks.h | 963 + .../hbl_cn/gaudi2/asic_reg/nic0_qpc0_regs.h | 905 + .../hbl_cn/gaudi2/asic_reg/nic0_qpc1_regs.h | 905 + .../gaudi2/asic_reg/nic0_rxb_core_masks.h | 459 + .../gaudi2/asic_reg/nic0_rxb_core_regs.h | 665 + .../nic0_rxe0_axuser_axuser_cq0_regs.h | 61 + .../nic0_rxe0_axuser_axuser_cq1_regs.h | 61 + .../hbl_cn/gaudi2/asic_reg/nic0_rxe0_masks.h | 705 + .../hbl_cn/gaudi2/asic_reg/nic0_rxe0_regs.h | 725 + .../asic_reg/nic0_rxe0_wqe_aruser_regs.h | 61 + .../hbl_cn/gaudi2/asic_reg/nic0_rxe1_regs.h | 725 + .../gaudi2/asic_reg/nic0_serdes0_masks.h | 7163 +++ .../gaudi2/asic_reg/nic0_serdes0_regs.h | 1679 + .../gaudi2/asic_reg/nic0_serdes1_regs.h | 1679 + .../asic_reg/nic0_tmr_axuser_tmr_fifo_regs.h | 61 + .../nic0_tmr_axuser_tmr_free_list_regs.h | 61 + .../asic_reg/nic0_tmr_axuser_tmr_fsm_regs.h | 61 + .../hbl_cn/gaudi2/asic_reg/nic0_tmr_masks.h | 361 + .../hbl_cn/gaudi2/asic_reg/nic0_tmr_regs.h | 183 + .../hbl_cn/gaudi2/asic_reg/nic0_txb_regs.h | 167 + .../hbl_cn/gaudi2/asic_reg/nic0_txe0_masks.h | 759 + .../hbl_cn/gaudi2/asic_reg/nic0_txe0_regs.h | 529 + .../hbl_cn/gaudi2/asic_reg/nic0_txs0_masks.h | 555 + .../hbl_cn/gaudi2/asic_reg/nic0_txs0_regs.h | 289 + .../nic0_umr0_0_completion_queue_ci_1_regs.h | 27 + .../nic0_umr0_0_unsecure_doorbell0_regs.h | 31 + .../nic0_umr0_0_unsecure_doorbell1_regs.h | 31 + .../gaudi2/asic_reg/prt0_mac_core_masks.h | 137 + .../gaudi2/asic_reg/prt0_mac_core_regs.h | 67 + 60 files changed, 112471 insertions(+) create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/gaudi2_blocks_linux_driver.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/gaudi2_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch0_mac_128_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch0_mac_128_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch0_mac_pcs_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch0_mac_pcs_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch1_mac_pcs_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch2_mac_pcs_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_ch3_mac_pcs_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_control_reg_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_control_reg_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_rx0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_rx2_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_tx0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_glob_stat_tx2_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_mac_rs_fec_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_phy_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_phy_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qm0_axuser_nonsecured_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_cong_que_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_db_fifo_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_err_fifo_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_ev_que_lbw_intr_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_qpc_req_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_qpc_resp_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_rxwqe_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_axuser_txwqe_lbw_qman_bp_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_dbfifo0_ci_upd_addr_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_dbfifosecur_ci_upd_addr_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_qpc1_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxb_core_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxb_core_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_axuser_axuser_cq0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_axuser_axuser_cq1_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe0_wqe_aruser_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_rxe1_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_serdes0_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_serdes0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_serdes1_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_axuser_tmr_fifo_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_axuser_tmr_free_list_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_axuser_tmr_fsm_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_tmr_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txb_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txe0_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txe0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txs0_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_txs0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_umr0_0_completion_queue_ci_1_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_umr0_0_unsecure_doorbell0_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/nic0_umr0_0_unsecure_doorbell1_regs.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/prt0_mac_core_masks.h create mode 100644 drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/prt0_mac_core_regs.h diff --git a/drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_masks.h b/drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_masks.h new file mode 100644 index 000000000000..ed8a60571392 --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_masks.h @@ -0,0 +1,135 @@ +/* SPDX-License-Identifier: GPL-2.0 + * + * Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + * + */ + +/************************************ + ** This is an auto-generated file ** + ** DO NOT EDIT BELOW ** + ************************************/ + +#ifndef ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_MASKS_H_ +#define ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_MASKS_H_ + +/***************************************** + * ARC_FARM_KDMA_CTX_AXUSER + * (Prototype: AXUSER) + ***************************************** + */ + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_ASID */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_ASID_WR_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_ASID_WR_MASK 0x3FF +#define ARC_FARM_KDMA_CTX_AXUSER_HB_ASID_RD_SHIFT 16 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_ASID_RD_MASK 0x3FF0000 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP_WR_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP_WR_MASK 0x1 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP_RD_SHIFT 4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_MMU_BP_RD_MASK 0x10 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER_WR_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER_WR_MASK 0x1 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER_RD_SHIFT 4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_STRONG_ORDER_RD_MASK 0x10 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP_WR_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP_WR_MASK 0x1 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP_RD_SHIFT 4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_NO_SNOOP_RD_MASK 0x10 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_IND_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_IND_MASK 0x1 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_DTYPE_SHIFT 4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_DTYPE_MASK 0xF0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_OP_SHIFT 8 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_OP_MASK 0x300 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_ROUND_SHIFT 12 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_ROUND_MASK 0x3000 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_MAX_SHIFT 16 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_REDUCTION_MAX_MASK 0x10000 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_IND_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_IND_MASK 0x3 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_ADDITION_SIZE_SHIFT 4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_ADDITION_SIZE_MASK 0xFF0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_MSB_MASK_SHIFT 12 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_ATOMIC_MSB_MASK_MASK 0x1F000 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_QOS */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_QOS_WR_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_QOS_WR_MASK 0xF +#define ARC_FARM_KDMA_CTX_AXUSER_HB_QOS_RD_SHIFT 4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_QOS_RD_MASK 0x70 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_27_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_27_MASK 0x1 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_28_SHIFT 1 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_28_MASK 0x2 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_30_SHIFT 2 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_30_MASK 0x4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_31_SHIFT 3 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RSVD_WR_BIT_31_MASK 0x8 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE_WR_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE_WR_MASK 0x1 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE_RD_SHIFT 4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_EMEM_CPAGE_RD_MASK 0x10 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_CORE */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_CORE_WR_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_CORE_WR_MASK 0x1 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_CORE_RD_SHIFT 4 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_CORE_RD_MASK 0x10 + +/* ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD */ +#define ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD_X_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD_X_MASK 0x1F +#define ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD_Y_SHIFT 8 +#define ARC_FARM_KDMA_CTX_AXUSER_E2E_COORD_Y_MASK 0xF00 + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_LO */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_LO_VAL_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_LO_VAL_MASK 0xFFFFFFFF + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_HI */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_HI_VAL_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_WR_OVRD_HI_VAL_MASK 0x3FF + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_LO */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_LO_VAL_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_LO_VAL_MASK 0xFFFFFFFF + +/* ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_HI */ +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_HI_VAL_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_HB_RD_OVRD_HI_VAL_MASK 0x3FF + +/* ARC_FARM_KDMA_CTX_AXUSER_LB_COORD */ +#define ARC_FARM_KDMA_CTX_AXUSER_LB_COORD_VAL_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_LB_COORD_VAL_MASK 0x3FF + +/* ARC_FARM_KDMA_CTX_AXUSER_LB_LOCK */ +#define ARC_FARM_KDMA_CTX_AXUSER_LB_LOCK_VAL_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_LB_LOCK_VAL_MASK 0x1 + +/* ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD */ +#define ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD_BIT_21_11_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD_BIT_21_11_MASK 0x7FF +#define ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD_BIT_22_SHIFT 12 +#define ARC_FARM_KDMA_CTX_AXUSER_LB_RSVD_BIT_22_MASK 0x1000 + +/* ARC_FARM_KDMA_CTX_AXUSER_LB_OVRD */ +#define ARC_FARM_KDMA_CTX_AXUSER_LB_OVRD_VAL_SHIFT 0 +#define ARC_FARM_KDMA_CTX_AXUSER_LB_OVRD_VAL_MASK 0xFFFFFFFF + +#endif /* ASIC_REG_ARC_FARM_KDMA_CTX_AXUSER_MASKS_H_ */ diff --git a/drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h b/drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h new file mode 100644 index 000000000000..3a361f5abcbc --- /dev/null +++ b/drivers/net/ethernet/intel/hbl_cn/gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h @@ -0,0 +1,43543 @@ +/* SPDX-License-Identifier: GPL-2.0 + * + * Copyright 2020-2024 HabanaLabs, Ltd. + * Copyright (C) 2023-2024, Intel Corporation. + * All Rights Reserved. + * + */ + +/************************************ + ** This is an auto-generated file ** + ** DO NOT EDIT BELOW ** + ************************************/ + +#ifndef ASIC_REG_DCORE0_SYNC_MNGR_OBJS_REGS_H_ +#define ASIC_REG_DCORE0_SYNC_MNGR_OBJS_REGS_H_ + +/***************************************** + * DCORE0_SYNC_MNGR_OBJS + * (Prototype: SOB_OBJS) + ***************************************** + */ + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_0 0x4100000 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1 0x4100004 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2 0x4100008 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3 0x410000C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4 0x4100010 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5 0x4100014 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6 0x4100018 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7 0x410001C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8 0x4100020 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_9 0x4100024 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_10 0x4100028 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_11 0x410002C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_12 0x4100030 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_13 0x4100034 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_14 0x4100038 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_15 0x410003C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_16 0x4100040 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_17 0x4100044 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_18 0x4100048 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_19 0x410004C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_20 0x4100050 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_21 0x4100054 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_22 0x4100058 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_23 0x410005C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_24 0x4100060 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_25 0x4100064 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_26 0x4100068 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_27 0x410006C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_28 0x4100070 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_29 0x4100074 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_30 0x4100078 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_31 0x410007C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_32 0x4100080 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_33 0x4100084 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_34 0x4100088 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_35 0x410008C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_36 0x4100090 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_37 0x4100094 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_38 0x4100098 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_39 0x410009C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_40 0x41000A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_41 0x41000A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_42 0x41000A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_43 0x41000AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_44 0x41000B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_45 0x41000B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_46 0x41000B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_47 0x41000BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_48 0x41000C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_49 0x41000C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_50 0x41000C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_51 0x41000CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_52 0x41000D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_53 0x41000D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_54 0x41000D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_55 0x41000DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_56 0x41000E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_57 0x41000E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_58 0x41000E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_59 0x41000EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_60 0x41000F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_61 0x41000F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_62 0x41000F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_63 0x41000FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_64 0x4100100 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_65 0x4100104 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_66 0x4100108 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_67 0x410010C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_68 0x4100110 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_69 0x4100114 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_70 0x4100118 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_71 0x410011C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_72 0x4100120 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_73 0x4100124 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_74 0x4100128 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_75 0x410012C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_76 0x4100130 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_77 0x4100134 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_78 0x4100138 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_79 0x410013C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_80 0x4100140 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_81 0x4100144 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_82 0x4100148 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_83 0x410014C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_84 0x4100150 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_85 0x4100154 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_86 0x4100158 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_87 0x410015C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_88 0x4100160 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_89 0x4100164 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_90 0x4100168 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_91 0x410016C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_92 0x4100170 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_93 0x4100174 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_94 0x4100178 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_95 0x410017C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_96 0x4100180 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_97 0x4100184 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_98 0x4100188 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_99 0x410018C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_100 0x4100190 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_101 0x4100194 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_102 0x4100198 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_103 0x410019C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_104 0x41001A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_105 0x41001A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_106 0x41001A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_107 0x41001AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_108 0x41001B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_109 0x41001B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_110 0x41001B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_111 0x41001BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_112 0x41001C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_113 0x41001C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_114 0x41001C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_115 0x41001CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_116 0x41001D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_117 0x41001D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_118 0x41001D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_119 0x41001DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_120 0x41001E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_121 0x41001E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_122 0x41001E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_123 0x41001EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_124 0x41001F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_125 0x41001F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_126 0x41001F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_127 0x41001FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_128 0x4100200 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_129 0x4100204 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_130 0x4100208 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_131 0x410020C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_132 0x4100210 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_133 0x4100214 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_134 0x4100218 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_135 0x410021C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_136 0x4100220 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_137 0x4100224 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_138 0x4100228 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_139 0x410022C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_140 0x4100230 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_141 0x4100234 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_142 0x4100238 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_143 0x410023C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_144 0x4100240 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_145 0x4100244 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_146 0x4100248 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_147 0x410024C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_148 0x4100250 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_149 0x4100254 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_150 0x4100258 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_151 0x410025C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_152 0x4100260 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_153 0x4100264 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_154 0x4100268 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_155 0x410026C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_156 0x4100270 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_157 0x4100274 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_158 0x4100278 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_159 0x410027C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_160 0x4100280 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_161 0x4100284 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_162 0x4100288 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_163 0x410028C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_164 0x4100290 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_165 0x4100294 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_166 0x4100298 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_167 0x410029C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_168 0x41002A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_169 0x41002A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_170 0x41002A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_171 0x41002AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_172 0x41002B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_173 0x41002B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_174 0x41002B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_175 0x41002BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_176 0x41002C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_177 0x41002C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_178 0x41002C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_179 0x41002CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_180 0x41002D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_181 0x41002D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_182 0x41002D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_183 0x41002DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_184 0x41002E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_185 0x41002E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_186 0x41002E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_187 0x41002EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_188 0x41002F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_189 0x41002F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_190 0x41002F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_191 0x41002FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_192 0x4100300 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_193 0x4100304 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_194 0x4100308 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_195 0x410030C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_196 0x4100310 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_197 0x4100314 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_198 0x4100318 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_199 0x410031C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_200 0x4100320 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_201 0x4100324 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_202 0x4100328 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_203 0x410032C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_204 0x4100330 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_205 0x4100334 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_206 0x4100338 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_207 0x410033C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_208 0x4100340 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_209 0x4100344 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_210 0x4100348 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_211 0x410034C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_212 0x4100350 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_213 0x4100354 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_214 0x4100358 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_215 0x410035C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_216 0x4100360 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_217 0x4100364 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_218 0x4100368 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_219 0x410036C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_220 0x4100370 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_221 0x4100374 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_222 0x4100378 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_223 0x410037C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_224 0x4100380 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_225 0x4100384 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_226 0x4100388 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_227 0x410038C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_228 0x4100390 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_229 0x4100394 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_230 0x4100398 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_231 0x410039C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_232 0x41003A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_233 0x41003A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_234 0x41003A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_235 0x41003AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_236 0x41003B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_237 0x41003B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_238 0x41003B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_239 0x41003BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_240 0x41003C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_241 0x41003C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_242 0x41003C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_243 0x41003CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_244 0x41003D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_245 0x41003D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_246 0x41003D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_247 0x41003DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_248 0x41003E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_249 0x41003E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_250 0x41003E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_251 0x41003EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_252 0x41003F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_253 0x41003F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_254 0x41003F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_255 0x41003FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_256 0x4100400 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_257 0x4100404 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_258 0x4100408 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_259 0x410040C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_260 0x4100410 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_261 0x4100414 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_262 0x4100418 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_263 0x410041C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_264 0x4100420 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_265 0x4100424 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_266 0x4100428 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_267 0x410042C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_268 0x4100430 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_269 0x4100434 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_270 0x4100438 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_271 0x410043C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_272 0x4100440 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_273 0x4100444 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_274 0x4100448 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_275 0x410044C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_276 0x4100450 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_277 0x4100454 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_278 0x4100458 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_279 0x410045C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_280 0x4100460 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_281 0x4100464 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_282 0x4100468 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_283 0x410046C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_284 0x4100470 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_285 0x4100474 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_286 0x4100478 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_287 0x410047C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_288 0x4100480 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_289 0x4100484 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_290 0x4100488 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_291 0x410048C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_292 0x4100490 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_293 0x4100494 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_294 0x4100498 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_295 0x410049C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_296 0x41004A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_297 0x41004A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_298 0x41004A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_299 0x41004AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_300 0x41004B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_301 0x41004B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_302 0x41004B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_303 0x41004BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_304 0x41004C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_305 0x41004C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_306 0x41004C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_307 0x41004CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_308 0x41004D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_309 0x41004D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_310 0x41004D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_311 0x41004DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_312 0x41004E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_313 0x41004E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_314 0x41004E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_315 0x41004EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_316 0x41004F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_317 0x41004F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_318 0x41004F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_319 0x41004FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_320 0x4100500 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_321 0x4100504 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_322 0x4100508 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_323 0x410050C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_324 0x4100510 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_325 0x4100514 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_326 0x4100518 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_327 0x410051C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_328 0x4100520 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_329 0x4100524 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_330 0x4100528 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_331 0x410052C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_332 0x4100530 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_333 0x4100534 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_334 0x4100538 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_335 0x410053C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_336 0x4100540 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_337 0x4100544 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_338 0x4100548 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_339 0x410054C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_340 0x4100550 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_341 0x4100554 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_342 0x4100558 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_343 0x410055C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_344 0x4100560 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_345 0x4100564 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_346 0x4100568 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_347 0x410056C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_348 0x4100570 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_349 0x4100574 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_350 0x4100578 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_351 0x410057C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_352 0x4100580 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_353 0x4100584 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_354 0x4100588 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_355 0x410058C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_356 0x4100590 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_357 0x4100594 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_358 0x4100598 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_359 0x410059C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_360 0x41005A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_361 0x41005A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_362 0x41005A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_363 0x41005AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_364 0x41005B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_365 0x41005B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_366 0x41005B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_367 0x41005BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_368 0x41005C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_369 0x41005C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_370 0x41005C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_371 0x41005CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_372 0x41005D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_373 0x41005D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_374 0x41005D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_375 0x41005DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_376 0x41005E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_377 0x41005E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_378 0x41005E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_379 0x41005EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_380 0x41005F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_381 0x41005F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_382 0x41005F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_383 0x41005FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_384 0x4100600 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_385 0x4100604 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_386 0x4100608 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_387 0x410060C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_388 0x4100610 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_389 0x4100614 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_390 0x4100618 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_391 0x410061C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_392 0x4100620 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_393 0x4100624 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_394 0x4100628 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_395 0x410062C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_396 0x4100630 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_397 0x4100634 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_398 0x4100638 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_399 0x410063C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_400 0x4100640 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_401 0x4100644 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_402 0x4100648 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_403 0x410064C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_404 0x4100650 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_405 0x4100654 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_406 0x4100658 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_407 0x410065C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_408 0x4100660 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_409 0x4100664 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_410 0x4100668 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_411 0x410066C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_412 0x4100670 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_413 0x4100674 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_414 0x4100678 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_415 0x410067C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_416 0x4100680 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_417 0x4100684 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_418 0x4100688 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_419 0x410068C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_420 0x4100690 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_421 0x4100694 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_422 0x4100698 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_423 0x410069C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_424 0x41006A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_425 0x41006A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_426 0x41006A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_427 0x41006AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_428 0x41006B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_429 0x41006B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_430 0x41006B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_431 0x41006BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_432 0x41006C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_433 0x41006C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_434 0x41006C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_435 0x41006CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_436 0x41006D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_437 0x41006D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_438 0x41006D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_439 0x41006DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_440 0x41006E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_441 0x41006E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_442 0x41006E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_443 0x41006EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_444 0x41006F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_445 0x41006F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_446 0x41006F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_447 0x41006FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_448 0x4100700 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_449 0x4100704 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_450 0x4100708 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_451 0x410070C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_452 0x4100710 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_453 0x4100714 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_454 0x4100718 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_455 0x410071C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_456 0x4100720 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_457 0x4100724 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_458 0x4100728 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_459 0x410072C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_460 0x4100730 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_461 0x4100734 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_462 0x4100738 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_463 0x410073C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_464 0x4100740 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_465 0x4100744 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_466 0x4100748 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_467 0x410074C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_468 0x4100750 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_469 0x4100754 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_470 0x4100758 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_471 0x410075C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_472 0x4100760 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_473 0x4100764 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_474 0x4100768 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_475 0x410076C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_476 0x4100770 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_477 0x4100774 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_478 0x4100778 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_479 0x410077C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_480 0x4100780 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_481 0x4100784 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_482 0x4100788 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_483 0x410078C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_484 0x4100790 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_485 0x4100794 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_486 0x4100798 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_487 0x410079C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_488 0x41007A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_489 0x41007A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_490 0x41007A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_491 0x41007AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_492 0x41007B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_493 0x41007B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_494 0x41007B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_495 0x41007BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_496 0x41007C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_497 0x41007C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_498 0x41007C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_499 0x41007CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_500 0x41007D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_501 0x41007D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_502 0x41007D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_503 0x41007DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_504 0x41007E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_505 0x41007E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_506 0x41007E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_507 0x41007EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_508 0x41007F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_509 0x41007F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_510 0x41007F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_511 0x41007FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_512 0x4100800 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_513 0x4100804 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_514 0x4100808 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_515 0x410080C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_516 0x4100810 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_517 0x4100814 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_518 0x4100818 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_519 0x410081C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_520 0x4100820 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_521 0x4100824 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_522 0x4100828 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_523 0x410082C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_524 0x4100830 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_525 0x4100834 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_526 0x4100838 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_527 0x410083C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_528 0x4100840 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_529 0x4100844 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_530 0x4100848 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_531 0x410084C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_532 0x4100850 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_533 0x4100854 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_534 0x4100858 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_535 0x410085C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_536 0x4100860 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_537 0x4100864 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_538 0x4100868 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_539 0x410086C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_540 0x4100870 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_541 0x4100874 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_542 0x4100878 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_543 0x410087C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_544 0x4100880 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_545 0x4100884 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_546 0x4100888 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_547 0x410088C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_548 0x4100890 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_549 0x4100894 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_550 0x4100898 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_551 0x410089C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_552 0x41008A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_553 0x41008A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_554 0x41008A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_555 0x41008AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_556 0x41008B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_557 0x41008B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_558 0x41008B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_559 0x41008BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_560 0x41008C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_561 0x41008C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_562 0x41008C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_563 0x41008CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_564 0x41008D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_565 0x41008D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_566 0x41008D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_567 0x41008DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_568 0x41008E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_569 0x41008E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_570 0x41008E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_571 0x41008EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_572 0x41008F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_573 0x41008F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_574 0x41008F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_575 0x41008FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_576 0x4100900 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_577 0x4100904 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_578 0x4100908 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_579 0x410090C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_580 0x4100910 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_581 0x4100914 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_582 0x4100918 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_583 0x410091C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_584 0x4100920 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_585 0x4100924 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_586 0x4100928 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_587 0x410092C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_588 0x4100930 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_589 0x4100934 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_590 0x4100938 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_591 0x410093C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_592 0x4100940 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_593 0x4100944 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_594 0x4100948 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_595 0x410094C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_596 0x4100950 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_597 0x4100954 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_598 0x4100958 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_599 0x410095C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_600 0x4100960 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_601 0x4100964 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_602 0x4100968 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_603 0x410096C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_604 0x4100970 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_605 0x4100974 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_606 0x4100978 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_607 0x410097C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_608 0x4100980 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_609 0x4100984 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_610 0x4100988 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_611 0x410098C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_612 0x4100990 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_613 0x4100994 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_614 0x4100998 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_615 0x410099C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_616 0x41009A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_617 0x41009A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_618 0x41009A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_619 0x41009AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_620 0x41009B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_621 0x41009B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_622 0x41009B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_623 0x41009BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_624 0x41009C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_625 0x41009C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_626 0x41009C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_627 0x41009CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_628 0x41009D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_629 0x41009D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_630 0x41009D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_631 0x41009DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_632 0x41009E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_633 0x41009E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_634 0x41009E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_635 0x41009EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_636 0x41009F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_637 0x41009F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_638 0x41009F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_639 0x41009FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_640 0x4100A00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_641 0x4100A04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_642 0x4100A08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_643 0x4100A0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_644 0x4100A10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_645 0x4100A14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_646 0x4100A18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_647 0x4100A1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_648 0x4100A20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_649 0x4100A24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_650 0x4100A28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_651 0x4100A2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_652 0x4100A30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_653 0x4100A34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_654 0x4100A38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_655 0x4100A3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_656 0x4100A40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_657 0x4100A44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_658 0x4100A48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_659 0x4100A4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_660 0x4100A50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_661 0x4100A54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_662 0x4100A58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_663 0x4100A5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_664 0x4100A60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_665 0x4100A64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_666 0x4100A68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_667 0x4100A6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_668 0x4100A70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_669 0x4100A74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_670 0x4100A78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_671 0x4100A7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_672 0x4100A80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_673 0x4100A84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_674 0x4100A88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_675 0x4100A8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_676 0x4100A90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_677 0x4100A94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_678 0x4100A98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_679 0x4100A9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_680 0x4100AA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_681 0x4100AA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_682 0x4100AA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_683 0x4100AAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_684 0x4100AB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_685 0x4100AB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_686 0x4100AB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_687 0x4100ABC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_688 0x4100AC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_689 0x4100AC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_690 0x4100AC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_691 0x4100ACC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_692 0x4100AD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_693 0x4100AD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_694 0x4100AD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_695 0x4100ADC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_696 0x4100AE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_697 0x4100AE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_698 0x4100AE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_699 0x4100AEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_700 0x4100AF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_701 0x4100AF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_702 0x4100AF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_703 0x4100AFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_704 0x4100B00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_705 0x4100B04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_706 0x4100B08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_707 0x4100B0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_708 0x4100B10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_709 0x4100B14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_710 0x4100B18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_711 0x4100B1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_712 0x4100B20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_713 0x4100B24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_714 0x4100B28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_715 0x4100B2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_716 0x4100B30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_717 0x4100B34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_718 0x4100B38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_719 0x4100B3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_720 0x4100B40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_721 0x4100B44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_722 0x4100B48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_723 0x4100B4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_724 0x4100B50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_725 0x4100B54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_726 0x4100B58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_727 0x4100B5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_728 0x4100B60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_729 0x4100B64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_730 0x4100B68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_731 0x4100B6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_732 0x4100B70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_733 0x4100B74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_734 0x4100B78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_735 0x4100B7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_736 0x4100B80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_737 0x4100B84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_738 0x4100B88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_739 0x4100B8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_740 0x4100B90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_741 0x4100B94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_742 0x4100B98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_743 0x4100B9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_744 0x4100BA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_745 0x4100BA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_746 0x4100BA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_747 0x4100BAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_748 0x4100BB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_749 0x4100BB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_750 0x4100BB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_751 0x4100BBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_752 0x4100BC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_753 0x4100BC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_754 0x4100BC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_755 0x4100BCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_756 0x4100BD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_757 0x4100BD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_758 0x4100BD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_759 0x4100BDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_760 0x4100BE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_761 0x4100BE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_762 0x4100BE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_763 0x4100BEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_764 0x4100BF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_765 0x4100BF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_766 0x4100BF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_767 0x4100BFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_768 0x4100C00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_769 0x4100C04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_770 0x4100C08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_771 0x4100C0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_772 0x4100C10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_773 0x4100C14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_774 0x4100C18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_775 0x4100C1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_776 0x4100C20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_777 0x4100C24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_778 0x4100C28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_779 0x4100C2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_780 0x4100C30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_781 0x4100C34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_782 0x4100C38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_783 0x4100C3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_784 0x4100C40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_785 0x4100C44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_786 0x4100C48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_787 0x4100C4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_788 0x4100C50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_789 0x4100C54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_790 0x4100C58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_791 0x4100C5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_792 0x4100C60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_793 0x4100C64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_794 0x4100C68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_795 0x4100C6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_796 0x4100C70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_797 0x4100C74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_798 0x4100C78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_799 0x4100C7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_800 0x4100C80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_801 0x4100C84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_802 0x4100C88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_803 0x4100C8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_804 0x4100C90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_805 0x4100C94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_806 0x4100C98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_807 0x4100C9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_808 0x4100CA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_809 0x4100CA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_810 0x4100CA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_811 0x4100CAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_812 0x4100CB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_813 0x4100CB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_814 0x4100CB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_815 0x4100CBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_816 0x4100CC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_817 0x4100CC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_818 0x4100CC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_819 0x4100CCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_820 0x4100CD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_821 0x4100CD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_822 0x4100CD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_823 0x4100CDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_824 0x4100CE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_825 0x4100CE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_826 0x4100CE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_827 0x4100CEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_828 0x4100CF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_829 0x4100CF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_830 0x4100CF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_831 0x4100CFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_832 0x4100D00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_833 0x4100D04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_834 0x4100D08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_835 0x4100D0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_836 0x4100D10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_837 0x4100D14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_838 0x4100D18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_839 0x4100D1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_840 0x4100D20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_841 0x4100D24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_842 0x4100D28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_843 0x4100D2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_844 0x4100D30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_845 0x4100D34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_846 0x4100D38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_847 0x4100D3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_848 0x4100D40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_849 0x4100D44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_850 0x4100D48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_851 0x4100D4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_852 0x4100D50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_853 0x4100D54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_854 0x4100D58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_855 0x4100D5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_856 0x4100D60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_857 0x4100D64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_858 0x4100D68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_859 0x4100D6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_860 0x4100D70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_861 0x4100D74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_862 0x4100D78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_863 0x4100D7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_864 0x4100D80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_865 0x4100D84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_866 0x4100D88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_867 0x4100D8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_868 0x4100D90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_869 0x4100D94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_870 0x4100D98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_871 0x4100D9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_872 0x4100DA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_873 0x4100DA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_874 0x4100DA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_875 0x4100DAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_876 0x4100DB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_877 0x4100DB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_878 0x4100DB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_879 0x4100DBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_880 0x4100DC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_881 0x4100DC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_882 0x4100DC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_883 0x4100DCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_884 0x4100DD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_885 0x4100DD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_886 0x4100DD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_887 0x4100DDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_888 0x4100DE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_889 0x4100DE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_890 0x4100DE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_891 0x4100DEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_892 0x4100DF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_893 0x4100DF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_894 0x4100DF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_895 0x4100DFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_896 0x4100E00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_897 0x4100E04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_898 0x4100E08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_899 0x4100E0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_900 0x4100E10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_901 0x4100E14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_902 0x4100E18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_903 0x4100E1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_904 0x4100E20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_905 0x4100E24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_906 0x4100E28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_907 0x4100E2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_908 0x4100E30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_909 0x4100E34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_910 0x4100E38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_911 0x4100E3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_912 0x4100E40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_913 0x4100E44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_914 0x4100E48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_915 0x4100E4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_916 0x4100E50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_917 0x4100E54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_918 0x4100E58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_919 0x4100E5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_920 0x4100E60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_921 0x4100E64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_922 0x4100E68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_923 0x4100E6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_924 0x4100E70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_925 0x4100E74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_926 0x4100E78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_927 0x4100E7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_928 0x4100E80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_929 0x4100E84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_930 0x4100E88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_931 0x4100E8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_932 0x4100E90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_933 0x4100E94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_934 0x4100E98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_935 0x4100E9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_936 0x4100EA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_937 0x4100EA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_938 0x4100EA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_939 0x4100EAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_940 0x4100EB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_941 0x4100EB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_942 0x4100EB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_943 0x4100EBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_944 0x4100EC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_945 0x4100EC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_946 0x4100EC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_947 0x4100ECC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_948 0x4100ED0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_949 0x4100ED4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_950 0x4100ED8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_951 0x4100EDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_952 0x4100EE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_953 0x4100EE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_954 0x4100EE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_955 0x4100EEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_956 0x4100EF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_957 0x4100EF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_958 0x4100EF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_959 0x4100EFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_960 0x4100F00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_961 0x4100F04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_962 0x4100F08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_963 0x4100F0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_964 0x4100F10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_965 0x4100F14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_966 0x4100F18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_967 0x4100F1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_968 0x4100F20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_969 0x4100F24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_970 0x4100F28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_971 0x4100F2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_972 0x4100F30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_973 0x4100F34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_974 0x4100F38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_975 0x4100F3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_976 0x4100F40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_977 0x4100F44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_978 0x4100F48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_979 0x4100F4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_980 0x4100F50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_981 0x4100F54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_982 0x4100F58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_983 0x4100F5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_984 0x4100F60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_985 0x4100F64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_986 0x4100F68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_987 0x4100F6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_988 0x4100F70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_989 0x4100F74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_990 0x4100F78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_991 0x4100F7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_992 0x4100F80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_993 0x4100F84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_994 0x4100F88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_995 0x4100F8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_996 0x4100F90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_997 0x4100F94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_998 0x4100F98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_999 0x4100F9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1000 0x4100FA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1001 0x4100FA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1002 0x4100FA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1003 0x4100FAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1004 0x4100FB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1005 0x4100FB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1006 0x4100FB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1007 0x4100FBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1008 0x4100FC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1009 0x4100FC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1010 0x4100FC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1011 0x4100FCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1012 0x4100FD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1013 0x4100FD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1014 0x4100FD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1015 0x4100FDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1016 0x4100FE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1017 0x4100FE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1018 0x4100FE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1019 0x4100FEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1020 0x4100FF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1021 0x4100FF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1022 0x4100FF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1023 0x4100FFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1024 0x4101000 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1025 0x4101004 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1026 0x4101008 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1027 0x410100C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1028 0x4101010 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1029 0x4101014 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1030 0x4101018 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1031 0x410101C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1032 0x4101020 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1033 0x4101024 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1034 0x4101028 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1035 0x410102C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1036 0x4101030 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1037 0x4101034 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1038 0x4101038 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1039 0x410103C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1040 0x4101040 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1041 0x4101044 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1042 0x4101048 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1043 0x410104C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1044 0x4101050 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1045 0x4101054 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1046 0x4101058 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1047 0x410105C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1048 0x4101060 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1049 0x4101064 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1050 0x4101068 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1051 0x410106C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1052 0x4101070 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1053 0x4101074 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1054 0x4101078 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1055 0x410107C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1056 0x4101080 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1057 0x4101084 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1058 0x4101088 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1059 0x410108C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1060 0x4101090 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1061 0x4101094 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1062 0x4101098 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1063 0x410109C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1064 0x41010A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1065 0x41010A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1066 0x41010A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1067 0x41010AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1068 0x41010B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1069 0x41010B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1070 0x41010B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1071 0x41010BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1072 0x41010C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1073 0x41010C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1074 0x41010C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1075 0x41010CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1076 0x41010D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1077 0x41010D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1078 0x41010D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1079 0x41010DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1080 0x41010E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1081 0x41010E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1082 0x41010E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1083 0x41010EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1084 0x41010F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1085 0x41010F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1086 0x41010F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1087 0x41010FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1088 0x4101100 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1089 0x4101104 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1090 0x4101108 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1091 0x410110C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1092 0x4101110 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1093 0x4101114 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1094 0x4101118 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1095 0x410111C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1096 0x4101120 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1097 0x4101124 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1098 0x4101128 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1099 0x410112C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1100 0x4101130 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1101 0x4101134 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1102 0x4101138 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1103 0x410113C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1104 0x4101140 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1105 0x4101144 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1106 0x4101148 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1107 0x410114C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1108 0x4101150 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1109 0x4101154 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1110 0x4101158 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1111 0x410115C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1112 0x4101160 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1113 0x4101164 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1114 0x4101168 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1115 0x410116C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1116 0x4101170 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1117 0x4101174 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1118 0x4101178 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1119 0x410117C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1120 0x4101180 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1121 0x4101184 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1122 0x4101188 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1123 0x410118C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1124 0x4101190 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1125 0x4101194 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1126 0x4101198 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1127 0x410119C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1128 0x41011A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1129 0x41011A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1130 0x41011A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1131 0x41011AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1132 0x41011B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1133 0x41011B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1134 0x41011B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1135 0x41011BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1136 0x41011C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1137 0x41011C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1138 0x41011C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1139 0x41011CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1140 0x41011D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1141 0x41011D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1142 0x41011D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1143 0x41011DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1144 0x41011E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1145 0x41011E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1146 0x41011E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1147 0x41011EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1148 0x41011F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1149 0x41011F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1150 0x41011F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1151 0x41011FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1152 0x4101200 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1153 0x4101204 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1154 0x4101208 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1155 0x410120C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1156 0x4101210 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1157 0x4101214 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1158 0x4101218 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1159 0x410121C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1160 0x4101220 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1161 0x4101224 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1162 0x4101228 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1163 0x410122C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1164 0x4101230 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1165 0x4101234 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1166 0x4101238 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1167 0x410123C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1168 0x4101240 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1169 0x4101244 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1170 0x4101248 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1171 0x410124C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1172 0x4101250 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1173 0x4101254 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1174 0x4101258 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1175 0x410125C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1176 0x4101260 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1177 0x4101264 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1178 0x4101268 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1179 0x410126C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1180 0x4101270 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1181 0x4101274 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1182 0x4101278 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1183 0x410127C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1184 0x4101280 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1185 0x4101284 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1186 0x4101288 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1187 0x410128C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1188 0x4101290 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1189 0x4101294 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1190 0x4101298 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1191 0x410129C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1192 0x41012A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1193 0x41012A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1194 0x41012A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1195 0x41012AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1196 0x41012B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1197 0x41012B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1198 0x41012B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1199 0x41012BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1200 0x41012C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1201 0x41012C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1202 0x41012C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1203 0x41012CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1204 0x41012D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1205 0x41012D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1206 0x41012D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1207 0x41012DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1208 0x41012E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1209 0x41012E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1210 0x41012E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1211 0x41012EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1212 0x41012F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1213 0x41012F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1214 0x41012F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1215 0x41012FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1216 0x4101300 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1217 0x4101304 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1218 0x4101308 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1219 0x410130C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1220 0x4101310 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1221 0x4101314 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1222 0x4101318 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1223 0x410131C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1224 0x4101320 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1225 0x4101324 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1226 0x4101328 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1227 0x410132C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1228 0x4101330 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1229 0x4101334 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1230 0x4101338 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1231 0x410133C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1232 0x4101340 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1233 0x4101344 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1234 0x4101348 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1235 0x410134C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1236 0x4101350 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1237 0x4101354 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1238 0x4101358 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1239 0x410135C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1240 0x4101360 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1241 0x4101364 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1242 0x4101368 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1243 0x410136C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1244 0x4101370 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1245 0x4101374 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1246 0x4101378 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1247 0x410137C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1248 0x4101380 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1249 0x4101384 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1250 0x4101388 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1251 0x410138C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1252 0x4101390 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1253 0x4101394 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1254 0x4101398 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1255 0x410139C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1256 0x41013A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1257 0x41013A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1258 0x41013A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1259 0x41013AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1260 0x41013B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1261 0x41013B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1262 0x41013B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1263 0x41013BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1264 0x41013C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1265 0x41013C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1266 0x41013C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1267 0x41013CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1268 0x41013D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1269 0x41013D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1270 0x41013D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1271 0x41013DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1272 0x41013E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1273 0x41013E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1274 0x41013E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1275 0x41013EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1276 0x41013F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1277 0x41013F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1278 0x41013F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1279 0x41013FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1280 0x4101400 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1281 0x4101404 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1282 0x4101408 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1283 0x410140C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1284 0x4101410 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1285 0x4101414 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1286 0x4101418 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1287 0x410141C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1288 0x4101420 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1289 0x4101424 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1290 0x4101428 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1291 0x410142C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1292 0x4101430 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1293 0x4101434 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1294 0x4101438 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1295 0x410143C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1296 0x4101440 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1297 0x4101444 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1298 0x4101448 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1299 0x410144C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1300 0x4101450 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1301 0x4101454 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1302 0x4101458 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1303 0x410145C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1304 0x4101460 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1305 0x4101464 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1306 0x4101468 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1307 0x410146C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1308 0x4101470 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1309 0x4101474 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1310 0x4101478 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1311 0x410147C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1312 0x4101480 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1313 0x4101484 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1314 0x4101488 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1315 0x410148C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1316 0x4101490 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1317 0x4101494 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1318 0x4101498 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1319 0x410149C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1320 0x41014A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1321 0x41014A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1322 0x41014A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1323 0x41014AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1324 0x41014B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1325 0x41014B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1326 0x41014B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1327 0x41014BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1328 0x41014C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1329 0x41014C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1330 0x41014C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1331 0x41014CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1332 0x41014D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1333 0x41014D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1334 0x41014D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1335 0x41014DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1336 0x41014E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1337 0x41014E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1338 0x41014E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1339 0x41014EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1340 0x41014F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1341 0x41014F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1342 0x41014F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1343 0x41014FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1344 0x4101500 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1345 0x4101504 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1346 0x4101508 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1347 0x410150C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1348 0x4101510 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1349 0x4101514 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1350 0x4101518 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1351 0x410151C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1352 0x4101520 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1353 0x4101524 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1354 0x4101528 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1355 0x410152C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1356 0x4101530 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1357 0x4101534 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1358 0x4101538 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1359 0x410153C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1360 0x4101540 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1361 0x4101544 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1362 0x4101548 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1363 0x410154C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1364 0x4101550 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1365 0x4101554 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1366 0x4101558 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1367 0x410155C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1368 0x4101560 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1369 0x4101564 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1370 0x4101568 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1371 0x410156C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1372 0x4101570 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1373 0x4101574 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1374 0x4101578 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1375 0x410157C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1376 0x4101580 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1377 0x4101584 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1378 0x4101588 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1379 0x410158C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1380 0x4101590 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1381 0x4101594 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1382 0x4101598 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1383 0x410159C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1384 0x41015A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1385 0x41015A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1386 0x41015A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1387 0x41015AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1388 0x41015B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1389 0x41015B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1390 0x41015B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1391 0x41015BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1392 0x41015C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1393 0x41015C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1394 0x41015C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1395 0x41015CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1396 0x41015D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1397 0x41015D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1398 0x41015D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1399 0x41015DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1400 0x41015E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1401 0x41015E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1402 0x41015E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1403 0x41015EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1404 0x41015F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1405 0x41015F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1406 0x41015F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1407 0x41015FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1408 0x4101600 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1409 0x4101604 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1410 0x4101608 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1411 0x410160C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1412 0x4101610 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1413 0x4101614 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1414 0x4101618 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1415 0x410161C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1416 0x4101620 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1417 0x4101624 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1418 0x4101628 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1419 0x410162C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1420 0x4101630 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1421 0x4101634 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1422 0x4101638 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1423 0x410163C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1424 0x4101640 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1425 0x4101644 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1426 0x4101648 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1427 0x410164C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1428 0x4101650 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1429 0x4101654 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1430 0x4101658 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1431 0x410165C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1432 0x4101660 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1433 0x4101664 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1434 0x4101668 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1435 0x410166C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1436 0x4101670 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1437 0x4101674 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1438 0x4101678 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1439 0x410167C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1440 0x4101680 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1441 0x4101684 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1442 0x4101688 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1443 0x410168C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1444 0x4101690 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1445 0x4101694 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1446 0x4101698 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1447 0x410169C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1448 0x41016A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1449 0x41016A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1450 0x41016A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1451 0x41016AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1452 0x41016B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1453 0x41016B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1454 0x41016B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1455 0x41016BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1456 0x41016C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1457 0x41016C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1458 0x41016C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1459 0x41016CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1460 0x41016D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1461 0x41016D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1462 0x41016D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1463 0x41016DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1464 0x41016E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1465 0x41016E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1466 0x41016E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1467 0x41016EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1468 0x41016F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1469 0x41016F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1470 0x41016F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1471 0x41016FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1472 0x4101700 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1473 0x4101704 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1474 0x4101708 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1475 0x410170C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1476 0x4101710 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1477 0x4101714 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1478 0x4101718 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1479 0x410171C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1480 0x4101720 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1481 0x4101724 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1482 0x4101728 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1483 0x410172C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1484 0x4101730 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1485 0x4101734 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1486 0x4101738 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1487 0x410173C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1488 0x4101740 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1489 0x4101744 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1490 0x4101748 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1491 0x410174C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1492 0x4101750 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1493 0x4101754 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1494 0x4101758 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1495 0x410175C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1496 0x4101760 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1497 0x4101764 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1498 0x4101768 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1499 0x410176C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1500 0x4101770 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1501 0x4101774 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1502 0x4101778 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1503 0x410177C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1504 0x4101780 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1505 0x4101784 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1506 0x4101788 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1507 0x410178C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1508 0x4101790 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1509 0x4101794 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1510 0x4101798 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1511 0x410179C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1512 0x41017A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1513 0x41017A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1514 0x41017A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1515 0x41017AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1516 0x41017B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1517 0x41017B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1518 0x41017B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1519 0x41017BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1520 0x41017C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1521 0x41017C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1522 0x41017C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1523 0x41017CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1524 0x41017D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1525 0x41017D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1526 0x41017D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1527 0x41017DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1528 0x41017E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1529 0x41017E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1530 0x41017E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1531 0x41017EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1532 0x41017F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1533 0x41017F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1534 0x41017F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1535 0x41017FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1536 0x4101800 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1537 0x4101804 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1538 0x4101808 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1539 0x410180C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1540 0x4101810 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1541 0x4101814 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1542 0x4101818 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1543 0x410181C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1544 0x4101820 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1545 0x4101824 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1546 0x4101828 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1547 0x410182C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1548 0x4101830 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1549 0x4101834 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1550 0x4101838 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1551 0x410183C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1552 0x4101840 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1553 0x4101844 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1554 0x4101848 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1555 0x410184C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1556 0x4101850 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1557 0x4101854 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1558 0x4101858 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1559 0x410185C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1560 0x4101860 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1561 0x4101864 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1562 0x4101868 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1563 0x410186C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1564 0x4101870 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1565 0x4101874 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1566 0x4101878 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1567 0x410187C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1568 0x4101880 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1569 0x4101884 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1570 0x4101888 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1571 0x410188C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1572 0x4101890 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1573 0x4101894 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1574 0x4101898 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1575 0x410189C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1576 0x41018A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1577 0x41018A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1578 0x41018A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1579 0x41018AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1580 0x41018B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1581 0x41018B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1582 0x41018B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1583 0x41018BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1584 0x41018C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1585 0x41018C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1586 0x41018C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1587 0x41018CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1588 0x41018D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1589 0x41018D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1590 0x41018D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1591 0x41018DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1592 0x41018E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1593 0x41018E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1594 0x41018E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1595 0x41018EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1596 0x41018F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1597 0x41018F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1598 0x41018F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1599 0x41018FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1600 0x4101900 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1601 0x4101904 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1602 0x4101908 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1603 0x410190C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1604 0x4101910 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1605 0x4101914 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1606 0x4101918 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1607 0x410191C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1608 0x4101920 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1609 0x4101924 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1610 0x4101928 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1611 0x410192C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1612 0x4101930 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1613 0x4101934 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1614 0x4101938 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1615 0x410193C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1616 0x4101940 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1617 0x4101944 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1618 0x4101948 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1619 0x410194C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1620 0x4101950 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1621 0x4101954 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1622 0x4101958 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1623 0x410195C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1624 0x4101960 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1625 0x4101964 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1626 0x4101968 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1627 0x410196C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1628 0x4101970 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1629 0x4101974 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1630 0x4101978 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1631 0x410197C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1632 0x4101980 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1633 0x4101984 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1634 0x4101988 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1635 0x410198C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1636 0x4101990 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1637 0x4101994 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1638 0x4101998 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1639 0x410199C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1640 0x41019A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1641 0x41019A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1642 0x41019A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1643 0x41019AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1644 0x41019B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1645 0x41019B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1646 0x41019B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1647 0x41019BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1648 0x41019C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1649 0x41019C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1650 0x41019C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1651 0x41019CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1652 0x41019D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1653 0x41019D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1654 0x41019D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1655 0x41019DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1656 0x41019E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1657 0x41019E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1658 0x41019E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1659 0x41019EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1660 0x41019F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1661 0x41019F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1662 0x41019F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1663 0x41019FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1664 0x4101A00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1665 0x4101A04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1666 0x4101A08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1667 0x4101A0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1668 0x4101A10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1669 0x4101A14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1670 0x4101A18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1671 0x4101A1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1672 0x4101A20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1673 0x4101A24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1674 0x4101A28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1675 0x4101A2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1676 0x4101A30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1677 0x4101A34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1678 0x4101A38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1679 0x4101A3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1680 0x4101A40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1681 0x4101A44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1682 0x4101A48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1683 0x4101A4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1684 0x4101A50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1685 0x4101A54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1686 0x4101A58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1687 0x4101A5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1688 0x4101A60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1689 0x4101A64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1690 0x4101A68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1691 0x4101A6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1692 0x4101A70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1693 0x4101A74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1694 0x4101A78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1695 0x4101A7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1696 0x4101A80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1697 0x4101A84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1698 0x4101A88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1699 0x4101A8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1700 0x4101A90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1701 0x4101A94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1702 0x4101A98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1703 0x4101A9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1704 0x4101AA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1705 0x4101AA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1706 0x4101AA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1707 0x4101AAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1708 0x4101AB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1709 0x4101AB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1710 0x4101AB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1711 0x4101ABC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1712 0x4101AC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1713 0x4101AC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1714 0x4101AC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1715 0x4101ACC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1716 0x4101AD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1717 0x4101AD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1718 0x4101AD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1719 0x4101ADC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1720 0x4101AE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1721 0x4101AE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1722 0x4101AE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1723 0x4101AEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1724 0x4101AF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1725 0x4101AF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1726 0x4101AF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1727 0x4101AFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1728 0x4101B00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1729 0x4101B04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1730 0x4101B08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1731 0x4101B0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1732 0x4101B10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1733 0x4101B14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1734 0x4101B18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1735 0x4101B1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1736 0x4101B20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1737 0x4101B24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1738 0x4101B28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1739 0x4101B2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1740 0x4101B30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1741 0x4101B34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1742 0x4101B38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1743 0x4101B3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1744 0x4101B40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1745 0x4101B44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1746 0x4101B48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1747 0x4101B4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1748 0x4101B50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1749 0x4101B54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1750 0x4101B58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1751 0x4101B5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1752 0x4101B60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1753 0x4101B64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1754 0x4101B68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1755 0x4101B6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1756 0x4101B70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1757 0x4101B74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1758 0x4101B78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1759 0x4101B7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1760 0x4101B80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1761 0x4101B84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1762 0x4101B88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1763 0x4101B8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1764 0x4101B90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1765 0x4101B94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1766 0x4101B98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1767 0x4101B9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1768 0x4101BA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1769 0x4101BA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1770 0x4101BA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1771 0x4101BAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1772 0x4101BB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1773 0x4101BB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1774 0x4101BB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1775 0x4101BBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1776 0x4101BC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1777 0x4101BC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1778 0x4101BC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1779 0x4101BCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1780 0x4101BD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1781 0x4101BD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1782 0x4101BD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1783 0x4101BDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1784 0x4101BE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1785 0x4101BE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1786 0x4101BE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1787 0x4101BEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1788 0x4101BF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1789 0x4101BF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1790 0x4101BF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1791 0x4101BFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1792 0x4101C00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1793 0x4101C04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1794 0x4101C08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1795 0x4101C0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1796 0x4101C10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1797 0x4101C14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1798 0x4101C18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1799 0x4101C1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1800 0x4101C20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1801 0x4101C24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1802 0x4101C28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1803 0x4101C2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1804 0x4101C30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1805 0x4101C34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1806 0x4101C38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1807 0x4101C3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1808 0x4101C40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1809 0x4101C44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1810 0x4101C48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1811 0x4101C4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1812 0x4101C50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1813 0x4101C54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1814 0x4101C58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1815 0x4101C5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1816 0x4101C60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1817 0x4101C64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1818 0x4101C68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1819 0x4101C6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1820 0x4101C70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1821 0x4101C74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1822 0x4101C78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1823 0x4101C7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1824 0x4101C80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1825 0x4101C84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1826 0x4101C88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1827 0x4101C8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1828 0x4101C90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1829 0x4101C94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1830 0x4101C98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1831 0x4101C9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1832 0x4101CA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1833 0x4101CA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1834 0x4101CA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1835 0x4101CAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1836 0x4101CB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1837 0x4101CB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1838 0x4101CB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1839 0x4101CBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1840 0x4101CC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1841 0x4101CC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1842 0x4101CC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1843 0x4101CCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1844 0x4101CD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1845 0x4101CD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1846 0x4101CD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1847 0x4101CDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1848 0x4101CE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1849 0x4101CE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1850 0x4101CE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1851 0x4101CEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1852 0x4101CF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1853 0x4101CF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1854 0x4101CF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1855 0x4101CFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1856 0x4101D00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1857 0x4101D04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1858 0x4101D08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1859 0x4101D0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1860 0x4101D10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1861 0x4101D14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1862 0x4101D18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1863 0x4101D1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1864 0x4101D20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1865 0x4101D24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1866 0x4101D28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1867 0x4101D2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1868 0x4101D30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1869 0x4101D34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1870 0x4101D38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1871 0x4101D3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1872 0x4101D40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1873 0x4101D44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1874 0x4101D48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1875 0x4101D4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1876 0x4101D50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1877 0x4101D54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1878 0x4101D58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1879 0x4101D5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1880 0x4101D60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1881 0x4101D64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1882 0x4101D68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1883 0x4101D6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1884 0x4101D70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1885 0x4101D74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1886 0x4101D78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1887 0x4101D7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1888 0x4101D80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1889 0x4101D84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1890 0x4101D88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1891 0x4101D8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1892 0x4101D90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1893 0x4101D94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1894 0x4101D98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1895 0x4101D9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1896 0x4101DA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1897 0x4101DA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1898 0x4101DA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1899 0x4101DAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1900 0x4101DB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1901 0x4101DB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1902 0x4101DB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1903 0x4101DBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1904 0x4101DC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1905 0x4101DC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1906 0x4101DC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1907 0x4101DCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1908 0x4101DD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1909 0x4101DD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1910 0x4101DD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1911 0x4101DDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1912 0x4101DE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1913 0x4101DE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1914 0x4101DE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1915 0x4101DEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1916 0x4101DF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1917 0x4101DF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1918 0x4101DF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1919 0x4101DFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1920 0x4101E00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1921 0x4101E04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1922 0x4101E08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1923 0x4101E0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1924 0x4101E10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1925 0x4101E14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1926 0x4101E18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1927 0x4101E1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1928 0x4101E20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1929 0x4101E24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1930 0x4101E28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1931 0x4101E2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1932 0x4101E30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1933 0x4101E34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1934 0x4101E38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1935 0x4101E3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1936 0x4101E40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1937 0x4101E44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1938 0x4101E48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1939 0x4101E4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1940 0x4101E50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1941 0x4101E54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1942 0x4101E58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1943 0x4101E5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1944 0x4101E60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1945 0x4101E64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1946 0x4101E68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1947 0x4101E6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1948 0x4101E70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1949 0x4101E74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1950 0x4101E78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1951 0x4101E7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1952 0x4101E80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1953 0x4101E84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1954 0x4101E88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1955 0x4101E8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1956 0x4101E90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1957 0x4101E94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1958 0x4101E98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1959 0x4101E9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1960 0x4101EA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1961 0x4101EA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1962 0x4101EA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1963 0x4101EAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1964 0x4101EB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1965 0x4101EB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1966 0x4101EB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1967 0x4101EBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1968 0x4101EC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1969 0x4101EC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1970 0x4101EC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1971 0x4101ECC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1972 0x4101ED0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1973 0x4101ED4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1974 0x4101ED8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1975 0x4101EDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1976 0x4101EE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1977 0x4101EE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1978 0x4101EE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1979 0x4101EEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1980 0x4101EF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1981 0x4101EF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1982 0x4101EF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1983 0x4101EFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1984 0x4101F00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1985 0x4101F04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1986 0x4101F08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1987 0x4101F0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1988 0x4101F10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1989 0x4101F14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1990 0x4101F18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1991 0x4101F1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1992 0x4101F20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1993 0x4101F24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1994 0x4101F28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1995 0x4101F2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1996 0x4101F30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1997 0x4101F34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1998 0x4101F38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_1999 0x4101F3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2000 0x4101F40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2001 0x4101F44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2002 0x4101F48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2003 0x4101F4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2004 0x4101F50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2005 0x4101F54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2006 0x4101F58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2007 0x4101F5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2008 0x4101F60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2009 0x4101F64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2010 0x4101F68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2011 0x4101F6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2012 0x4101F70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2013 0x4101F74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2014 0x4101F78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2015 0x4101F7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2016 0x4101F80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2017 0x4101F84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2018 0x4101F88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2019 0x4101F8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2020 0x4101F90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2021 0x4101F94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2022 0x4101F98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2023 0x4101F9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2024 0x4101FA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2025 0x4101FA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2026 0x4101FA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2027 0x4101FAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2028 0x4101FB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2029 0x4101FB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2030 0x4101FB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2031 0x4101FBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2032 0x4101FC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2033 0x4101FC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2034 0x4101FC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2035 0x4101FCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2036 0x4101FD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2037 0x4101FD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2038 0x4101FD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2039 0x4101FDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2040 0x4101FE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2041 0x4101FE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2042 0x4101FE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2043 0x4101FEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2044 0x4101FF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2045 0x4101FF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2046 0x4101FF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2047 0x4101FFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2048 0x4102000 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2049 0x4102004 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2050 0x4102008 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2051 0x410200C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2052 0x4102010 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2053 0x4102014 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2054 0x4102018 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2055 0x410201C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2056 0x4102020 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2057 0x4102024 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2058 0x4102028 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2059 0x410202C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2060 0x4102030 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2061 0x4102034 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2062 0x4102038 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2063 0x410203C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2064 0x4102040 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2065 0x4102044 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2066 0x4102048 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2067 0x410204C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2068 0x4102050 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2069 0x4102054 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2070 0x4102058 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2071 0x410205C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2072 0x4102060 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2073 0x4102064 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2074 0x4102068 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2075 0x410206C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2076 0x4102070 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2077 0x4102074 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2078 0x4102078 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2079 0x410207C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2080 0x4102080 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2081 0x4102084 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2082 0x4102088 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2083 0x410208C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2084 0x4102090 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2085 0x4102094 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2086 0x4102098 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2087 0x410209C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2088 0x41020A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2089 0x41020A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2090 0x41020A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2091 0x41020AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2092 0x41020B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2093 0x41020B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2094 0x41020B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2095 0x41020BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2096 0x41020C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2097 0x41020C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2098 0x41020C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2099 0x41020CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2100 0x41020D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2101 0x41020D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2102 0x41020D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2103 0x41020DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2104 0x41020E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2105 0x41020E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2106 0x41020E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2107 0x41020EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2108 0x41020F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2109 0x41020F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2110 0x41020F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2111 0x41020FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2112 0x4102100 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2113 0x4102104 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2114 0x4102108 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2115 0x410210C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2116 0x4102110 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2117 0x4102114 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2118 0x4102118 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2119 0x410211C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2120 0x4102120 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2121 0x4102124 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2122 0x4102128 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2123 0x410212C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2124 0x4102130 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2125 0x4102134 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2126 0x4102138 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2127 0x410213C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2128 0x4102140 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2129 0x4102144 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2130 0x4102148 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2131 0x410214C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2132 0x4102150 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2133 0x4102154 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2134 0x4102158 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2135 0x410215C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2136 0x4102160 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2137 0x4102164 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2138 0x4102168 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2139 0x410216C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2140 0x4102170 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2141 0x4102174 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2142 0x4102178 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2143 0x410217C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2144 0x4102180 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2145 0x4102184 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2146 0x4102188 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2147 0x410218C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2148 0x4102190 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2149 0x4102194 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2150 0x4102198 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2151 0x410219C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2152 0x41021A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2153 0x41021A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2154 0x41021A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2155 0x41021AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2156 0x41021B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2157 0x41021B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2158 0x41021B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2159 0x41021BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2160 0x41021C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2161 0x41021C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2162 0x41021C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2163 0x41021CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2164 0x41021D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2165 0x41021D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2166 0x41021D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2167 0x41021DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2168 0x41021E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2169 0x41021E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2170 0x41021E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2171 0x41021EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2172 0x41021F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2173 0x41021F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2174 0x41021F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2175 0x41021FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2176 0x4102200 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2177 0x4102204 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2178 0x4102208 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2179 0x410220C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2180 0x4102210 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2181 0x4102214 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2182 0x4102218 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2183 0x410221C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2184 0x4102220 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2185 0x4102224 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2186 0x4102228 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2187 0x410222C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2188 0x4102230 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2189 0x4102234 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2190 0x4102238 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2191 0x410223C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2192 0x4102240 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2193 0x4102244 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2194 0x4102248 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2195 0x410224C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2196 0x4102250 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2197 0x4102254 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2198 0x4102258 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2199 0x410225C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2200 0x4102260 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2201 0x4102264 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2202 0x4102268 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2203 0x410226C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2204 0x4102270 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2205 0x4102274 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2206 0x4102278 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2207 0x410227C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2208 0x4102280 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2209 0x4102284 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2210 0x4102288 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2211 0x410228C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2212 0x4102290 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2213 0x4102294 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2214 0x4102298 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2215 0x410229C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2216 0x41022A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2217 0x41022A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2218 0x41022A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2219 0x41022AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2220 0x41022B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2221 0x41022B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2222 0x41022B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2223 0x41022BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2224 0x41022C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2225 0x41022C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2226 0x41022C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2227 0x41022CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2228 0x41022D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2229 0x41022D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2230 0x41022D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2231 0x41022DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2232 0x41022E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2233 0x41022E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2234 0x41022E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2235 0x41022EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2236 0x41022F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2237 0x41022F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2238 0x41022F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2239 0x41022FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2240 0x4102300 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2241 0x4102304 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2242 0x4102308 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2243 0x410230C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2244 0x4102310 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2245 0x4102314 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2246 0x4102318 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2247 0x410231C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2248 0x4102320 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2249 0x4102324 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2250 0x4102328 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2251 0x410232C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2252 0x4102330 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2253 0x4102334 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2254 0x4102338 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2255 0x410233C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2256 0x4102340 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2257 0x4102344 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2258 0x4102348 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2259 0x410234C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2260 0x4102350 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2261 0x4102354 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2262 0x4102358 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2263 0x410235C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2264 0x4102360 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2265 0x4102364 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2266 0x4102368 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2267 0x410236C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2268 0x4102370 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2269 0x4102374 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2270 0x4102378 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2271 0x410237C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2272 0x4102380 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2273 0x4102384 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2274 0x4102388 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2275 0x410238C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2276 0x4102390 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2277 0x4102394 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2278 0x4102398 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2279 0x410239C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2280 0x41023A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2281 0x41023A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2282 0x41023A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2283 0x41023AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2284 0x41023B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2285 0x41023B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2286 0x41023B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2287 0x41023BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2288 0x41023C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2289 0x41023C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2290 0x41023C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2291 0x41023CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2292 0x41023D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2293 0x41023D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2294 0x41023D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2295 0x41023DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2296 0x41023E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2297 0x41023E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2298 0x41023E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2299 0x41023EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2300 0x41023F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2301 0x41023F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2302 0x41023F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2303 0x41023FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2304 0x4102400 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2305 0x4102404 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2306 0x4102408 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2307 0x410240C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2308 0x4102410 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2309 0x4102414 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2310 0x4102418 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2311 0x410241C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2312 0x4102420 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2313 0x4102424 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2314 0x4102428 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2315 0x410242C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2316 0x4102430 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2317 0x4102434 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2318 0x4102438 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2319 0x410243C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2320 0x4102440 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2321 0x4102444 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2322 0x4102448 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2323 0x410244C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2324 0x4102450 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2325 0x4102454 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2326 0x4102458 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2327 0x410245C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2328 0x4102460 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2329 0x4102464 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2330 0x4102468 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2331 0x410246C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2332 0x4102470 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2333 0x4102474 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2334 0x4102478 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2335 0x410247C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2336 0x4102480 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2337 0x4102484 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2338 0x4102488 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2339 0x410248C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2340 0x4102490 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2341 0x4102494 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2342 0x4102498 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2343 0x410249C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2344 0x41024A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2345 0x41024A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2346 0x41024A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2347 0x41024AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2348 0x41024B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2349 0x41024B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2350 0x41024B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2351 0x41024BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2352 0x41024C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2353 0x41024C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2354 0x41024C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2355 0x41024CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2356 0x41024D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2357 0x41024D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2358 0x41024D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2359 0x41024DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2360 0x41024E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2361 0x41024E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2362 0x41024E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2363 0x41024EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2364 0x41024F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2365 0x41024F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2366 0x41024F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2367 0x41024FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2368 0x4102500 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2369 0x4102504 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2370 0x4102508 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2371 0x410250C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2372 0x4102510 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2373 0x4102514 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2374 0x4102518 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2375 0x410251C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2376 0x4102520 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2377 0x4102524 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2378 0x4102528 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2379 0x410252C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2380 0x4102530 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2381 0x4102534 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2382 0x4102538 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2383 0x410253C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2384 0x4102540 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2385 0x4102544 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2386 0x4102548 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2387 0x410254C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2388 0x4102550 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2389 0x4102554 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2390 0x4102558 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2391 0x410255C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2392 0x4102560 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2393 0x4102564 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2394 0x4102568 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2395 0x410256C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2396 0x4102570 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2397 0x4102574 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2398 0x4102578 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2399 0x410257C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2400 0x4102580 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2401 0x4102584 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2402 0x4102588 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2403 0x410258C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2404 0x4102590 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2405 0x4102594 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2406 0x4102598 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2407 0x410259C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2408 0x41025A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2409 0x41025A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2410 0x41025A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2411 0x41025AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2412 0x41025B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2413 0x41025B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2414 0x41025B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2415 0x41025BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2416 0x41025C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2417 0x41025C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2418 0x41025C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2419 0x41025CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2420 0x41025D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2421 0x41025D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2422 0x41025D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2423 0x41025DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2424 0x41025E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2425 0x41025E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2426 0x41025E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2427 0x41025EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2428 0x41025F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2429 0x41025F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2430 0x41025F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2431 0x41025FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2432 0x4102600 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2433 0x4102604 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2434 0x4102608 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2435 0x410260C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2436 0x4102610 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2437 0x4102614 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2438 0x4102618 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2439 0x410261C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2440 0x4102620 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2441 0x4102624 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2442 0x4102628 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2443 0x410262C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2444 0x4102630 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2445 0x4102634 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2446 0x4102638 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2447 0x410263C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2448 0x4102640 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2449 0x4102644 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2450 0x4102648 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2451 0x410264C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2452 0x4102650 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2453 0x4102654 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2454 0x4102658 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2455 0x410265C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2456 0x4102660 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2457 0x4102664 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2458 0x4102668 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2459 0x410266C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2460 0x4102670 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2461 0x4102674 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2462 0x4102678 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2463 0x410267C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2464 0x4102680 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2465 0x4102684 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2466 0x4102688 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2467 0x410268C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2468 0x4102690 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2469 0x4102694 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2470 0x4102698 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2471 0x410269C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2472 0x41026A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2473 0x41026A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2474 0x41026A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2475 0x41026AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2476 0x41026B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2477 0x41026B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2478 0x41026B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2479 0x41026BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2480 0x41026C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2481 0x41026C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2482 0x41026C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2483 0x41026CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2484 0x41026D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2485 0x41026D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2486 0x41026D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2487 0x41026DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2488 0x41026E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2489 0x41026E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2490 0x41026E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2491 0x41026EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2492 0x41026F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2493 0x41026F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2494 0x41026F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2495 0x41026FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2496 0x4102700 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2497 0x4102704 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2498 0x4102708 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2499 0x410270C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2500 0x4102710 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2501 0x4102714 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2502 0x4102718 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2503 0x410271C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2504 0x4102720 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2505 0x4102724 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2506 0x4102728 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2507 0x410272C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2508 0x4102730 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2509 0x4102734 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2510 0x4102738 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2511 0x410273C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2512 0x4102740 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2513 0x4102744 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2514 0x4102748 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2515 0x410274C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2516 0x4102750 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2517 0x4102754 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2518 0x4102758 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2519 0x410275C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2520 0x4102760 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2521 0x4102764 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2522 0x4102768 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2523 0x410276C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2524 0x4102770 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2525 0x4102774 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2526 0x4102778 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2527 0x410277C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2528 0x4102780 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2529 0x4102784 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2530 0x4102788 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2531 0x410278C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2532 0x4102790 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2533 0x4102794 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2534 0x4102798 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2535 0x410279C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2536 0x41027A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2537 0x41027A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2538 0x41027A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2539 0x41027AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2540 0x41027B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2541 0x41027B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2542 0x41027B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2543 0x41027BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2544 0x41027C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2545 0x41027C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2546 0x41027C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2547 0x41027CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2548 0x41027D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2549 0x41027D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2550 0x41027D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2551 0x41027DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2552 0x41027E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2553 0x41027E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2554 0x41027E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2555 0x41027EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2556 0x41027F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2557 0x41027F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2558 0x41027F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2559 0x41027FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2560 0x4102800 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2561 0x4102804 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2562 0x4102808 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2563 0x410280C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2564 0x4102810 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2565 0x4102814 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2566 0x4102818 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2567 0x410281C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2568 0x4102820 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2569 0x4102824 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2570 0x4102828 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2571 0x410282C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2572 0x4102830 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2573 0x4102834 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2574 0x4102838 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2575 0x410283C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2576 0x4102840 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2577 0x4102844 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2578 0x4102848 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2579 0x410284C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2580 0x4102850 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2581 0x4102854 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2582 0x4102858 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2583 0x410285C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2584 0x4102860 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2585 0x4102864 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2586 0x4102868 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2587 0x410286C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2588 0x4102870 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2589 0x4102874 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2590 0x4102878 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2591 0x410287C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2592 0x4102880 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2593 0x4102884 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2594 0x4102888 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2595 0x410288C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2596 0x4102890 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2597 0x4102894 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2598 0x4102898 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2599 0x410289C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2600 0x41028A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2601 0x41028A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2602 0x41028A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2603 0x41028AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2604 0x41028B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2605 0x41028B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2606 0x41028B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2607 0x41028BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2608 0x41028C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2609 0x41028C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2610 0x41028C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2611 0x41028CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2612 0x41028D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2613 0x41028D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2614 0x41028D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2615 0x41028DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2616 0x41028E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2617 0x41028E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2618 0x41028E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2619 0x41028EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2620 0x41028F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2621 0x41028F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2622 0x41028F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2623 0x41028FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2624 0x4102900 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2625 0x4102904 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2626 0x4102908 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2627 0x410290C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2628 0x4102910 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2629 0x4102914 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2630 0x4102918 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2631 0x410291C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2632 0x4102920 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2633 0x4102924 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2634 0x4102928 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2635 0x410292C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2636 0x4102930 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2637 0x4102934 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2638 0x4102938 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2639 0x410293C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2640 0x4102940 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2641 0x4102944 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2642 0x4102948 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2643 0x410294C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2644 0x4102950 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2645 0x4102954 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2646 0x4102958 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2647 0x410295C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2648 0x4102960 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2649 0x4102964 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2650 0x4102968 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2651 0x410296C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2652 0x4102970 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2653 0x4102974 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2654 0x4102978 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2655 0x410297C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2656 0x4102980 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2657 0x4102984 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2658 0x4102988 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2659 0x410298C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2660 0x4102990 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2661 0x4102994 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2662 0x4102998 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2663 0x410299C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2664 0x41029A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2665 0x41029A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2666 0x41029A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2667 0x41029AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2668 0x41029B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2669 0x41029B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2670 0x41029B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2671 0x41029BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2672 0x41029C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2673 0x41029C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2674 0x41029C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2675 0x41029CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2676 0x41029D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2677 0x41029D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2678 0x41029D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2679 0x41029DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2680 0x41029E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2681 0x41029E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2682 0x41029E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2683 0x41029EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2684 0x41029F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2685 0x41029F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2686 0x41029F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2687 0x41029FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2688 0x4102A00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2689 0x4102A04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2690 0x4102A08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2691 0x4102A0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2692 0x4102A10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2693 0x4102A14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2694 0x4102A18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2695 0x4102A1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2696 0x4102A20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2697 0x4102A24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2698 0x4102A28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2699 0x4102A2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2700 0x4102A30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2701 0x4102A34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2702 0x4102A38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2703 0x4102A3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2704 0x4102A40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2705 0x4102A44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2706 0x4102A48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2707 0x4102A4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2708 0x4102A50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2709 0x4102A54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2710 0x4102A58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2711 0x4102A5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2712 0x4102A60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2713 0x4102A64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2714 0x4102A68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2715 0x4102A6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2716 0x4102A70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2717 0x4102A74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2718 0x4102A78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2719 0x4102A7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2720 0x4102A80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2721 0x4102A84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2722 0x4102A88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2723 0x4102A8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2724 0x4102A90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2725 0x4102A94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2726 0x4102A98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2727 0x4102A9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2728 0x4102AA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2729 0x4102AA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2730 0x4102AA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2731 0x4102AAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2732 0x4102AB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2733 0x4102AB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2734 0x4102AB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2735 0x4102ABC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2736 0x4102AC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2737 0x4102AC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2738 0x4102AC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2739 0x4102ACC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2740 0x4102AD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2741 0x4102AD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2742 0x4102AD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2743 0x4102ADC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2744 0x4102AE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2745 0x4102AE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2746 0x4102AE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2747 0x4102AEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2748 0x4102AF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2749 0x4102AF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2750 0x4102AF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2751 0x4102AFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2752 0x4102B00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2753 0x4102B04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2754 0x4102B08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2755 0x4102B0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2756 0x4102B10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2757 0x4102B14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2758 0x4102B18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2759 0x4102B1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2760 0x4102B20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2761 0x4102B24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2762 0x4102B28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2763 0x4102B2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2764 0x4102B30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2765 0x4102B34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2766 0x4102B38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2767 0x4102B3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2768 0x4102B40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2769 0x4102B44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2770 0x4102B48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2771 0x4102B4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2772 0x4102B50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2773 0x4102B54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2774 0x4102B58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2775 0x4102B5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2776 0x4102B60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2777 0x4102B64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2778 0x4102B68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2779 0x4102B6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2780 0x4102B70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2781 0x4102B74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2782 0x4102B78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2783 0x4102B7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2784 0x4102B80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2785 0x4102B84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2786 0x4102B88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2787 0x4102B8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2788 0x4102B90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2789 0x4102B94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2790 0x4102B98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2791 0x4102B9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2792 0x4102BA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2793 0x4102BA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2794 0x4102BA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2795 0x4102BAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2796 0x4102BB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2797 0x4102BB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2798 0x4102BB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2799 0x4102BBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2800 0x4102BC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2801 0x4102BC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2802 0x4102BC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2803 0x4102BCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2804 0x4102BD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2805 0x4102BD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2806 0x4102BD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2807 0x4102BDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2808 0x4102BE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2809 0x4102BE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2810 0x4102BE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2811 0x4102BEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2812 0x4102BF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2813 0x4102BF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2814 0x4102BF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2815 0x4102BFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2816 0x4102C00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2817 0x4102C04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2818 0x4102C08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2819 0x4102C0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2820 0x4102C10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2821 0x4102C14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2822 0x4102C18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2823 0x4102C1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2824 0x4102C20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2825 0x4102C24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2826 0x4102C28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2827 0x4102C2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2828 0x4102C30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2829 0x4102C34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2830 0x4102C38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2831 0x4102C3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2832 0x4102C40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2833 0x4102C44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2834 0x4102C48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2835 0x4102C4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2836 0x4102C50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2837 0x4102C54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2838 0x4102C58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2839 0x4102C5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2840 0x4102C60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2841 0x4102C64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2842 0x4102C68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2843 0x4102C6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2844 0x4102C70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2845 0x4102C74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2846 0x4102C78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2847 0x4102C7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2848 0x4102C80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2849 0x4102C84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2850 0x4102C88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2851 0x4102C8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2852 0x4102C90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2853 0x4102C94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2854 0x4102C98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2855 0x4102C9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2856 0x4102CA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2857 0x4102CA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2858 0x4102CA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2859 0x4102CAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2860 0x4102CB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2861 0x4102CB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2862 0x4102CB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2863 0x4102CBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2864 0x4102CC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2865 0x4102CC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2866 0x4102CC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2867 0x4102CCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2868 0x4102CD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2869 0x4102CD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2870 0x4102CD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2871 0x4102CDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2872 0x4102CE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2873 0x4102CE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2874 0x4102CE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2875 0x4102CEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2876 0x4102CF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2877 0x4102CF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2878 0x4102CF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2879 0x4102CFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2880 0x4102D00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2881 0x4102D04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2882 0x4102D08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2883 0x4102D0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2884 0x4102D10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2885 0x4102D14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2886 0x4102D18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2887 0x4102D1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2888 0x4102D20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2889 0x4102D24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2890 0x4102D28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2891 0x4102D2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2892 0x4102D30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2893 0x4102D34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2894 0x4102D38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2895 0x4102D3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2896 0x4102D40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2897 0x4102D44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2898 0x4102D48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2899 0x4102D4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2900 0x4102D50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2901 0x4102D54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2902 0x4102D58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2903 0x4102D5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2904 0x4102D60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2905 0x4102D64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2906 0x4102D68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2907 0x4102D6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2908 0x4102D70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2909 0x4102D74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2910 0x4102D78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2911 0x4102D7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2912 0x4102D80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2913 0x4102D84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2914 0x4102D88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2915 0x4102D8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2916 0x4102D90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2917 0x4102D94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2918 0x4102D98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2919 0x4102D9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2920 0x4102DA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2921 0x4102DA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2922 0x4102DA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2923 0x4102DAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2924 0x4102DB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2925 0x4102DB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2926 0x4102DB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2927 0x4102DBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2928 0x4102DC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2929 0x4102DC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2930 0x4102DC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2931 0x4102DCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2932 0x4102DD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2933 0x4102DD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2934 0x4102DD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2935 0x4102DDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2936 0x4102DE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2937 0x4102DE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2938 0x4102DE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2939 0x4102DEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2940 0x4102DF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2941 0x4102DF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2942 0x4102DF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2943 0x4102DFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2944 0x4102E00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2945 0x4102E04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2946 0x4102E08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2947 0x4102E0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2948 0x4102E10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2949 0x4102E14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2950 0x4102E18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2951 0x4102E1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2952 0x4102E20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2953 0x4102E24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2954 0x4102E28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2955 0x4102E2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2956 0x4102E30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2957 0x4102E34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2958 0x4102E38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2959 0x4102E3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2960 0x4102E40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2961 0x4102E44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2962 0x4102E48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2963 0x4102E4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2964 0x4102E50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2965 0x4102E54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2966 0x4102E58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2967 0x4102E5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2968 0x4102E60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2969 0x4102E64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2970 0x4102E68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2971 0x4102E6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2972 0x4102E70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2973 0x4102E74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2974 0x4102E78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2975 0x4102E7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2976 0x4102E80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2977 0x4102E84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2978 0x4102E88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2979 0x4102E8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2980 0x4102E90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2981 0x4102E94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2982 0x4102E98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2983 0x4102E9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2984 0x4102EA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2985 0x4102EA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2986 0x4102EA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2987 0x4102EAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2988 0x4102EB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2989 0x4102EB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2990 0x4102EB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2991 0x4102EBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2992 0x4102EC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2993 0x4102EC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2994 0x4102EC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2995 0x4102ECC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2996 0x4102ED0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2997 0x4102ED4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2998 0x4102ED8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_2999 0x4102EDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3000 0x4102EE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3001 0x4102EE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3002 0x4102EE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3003 0x4102EEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3004 0x4102EF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3005 0x4102EF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3006 0x4102EF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3007 0x4102EFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3008 0x4102F00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3009 0x4102F04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3010 0x4102F08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3011 0x4102F0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3012 0x4102F10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3013 0x4102F14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3014 0x4102F18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3015 0x4102F1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3016 0x4102F20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3017 0x4102F24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3018 0x4102F28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3019 0x4102F2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3020 0x4102F30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3021 0x4102F34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3022 0x4102F38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3023 0x4102F3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3024 0x4102F40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3025 0x4102F44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3026 0x4102F48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3027 0x4102F4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3028 0x4102F50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3029 0x4102F54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3030 0x4102F58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3031 0x4102F5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3032 0x4102F60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3033 0x4102F64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3034 0x4102F68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3035 0x4102F6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3036 0x4102F70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3037 0x4102F74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3038 0x4102F78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3039 0x4102F7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3040 0x4102F80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3041 0x4102F84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3042 0x4102F88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3043 0x4102F8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3044 0x4102F90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3045 0x4102F94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3046 0x4102F98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3047 0x4102F9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3048 0x4102FA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3049 0x4102FA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3050 0x4102FA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3051 0x4102FAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3052 0x4102FB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3053 0x4102FB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3054 0x4102FB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3055 0x4102FBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3056 0x4102FC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3057 0x4102FC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3058 0x4102FC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3059 0x4102FCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3060 0x4102FD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3061 0x4102FD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3062 0x4102FD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3063 0x4102FDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3064 0x4102FE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3065 0x4102FE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3066 0x4102FE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3067 0x4102FEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3068 0x4102FF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3069 0x4102FF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3070 0x4102FF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3071 0x4102FFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3072 0x4103000 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3073 0x4103004 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3074 0x4103008 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3075 0x410300C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3076 0x4103010 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3077 0x4103014 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3078 0x4103018 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3079 0x410301C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3080 0x4103020 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3081 0x4103024 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3082 0x4103028 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3083 0x410302C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3084 0x4103030 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3085 0x4103034 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3086 0x4103038 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3087 0x410303C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3088 0x4103040 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3089 0x4103044 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3090 0x4103048 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3091 0x410304C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3092 0x4103050 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3093 0x4103054 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3094 0x4103058 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3095 0x410305C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3096 0x4103060 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3097 0x4103064 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3098 0x4103068 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3099 0x410306C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3100 0x4103070 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3101 0x4103074 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3102 0x4103078 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3103 0x410307C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3104 0x4103080 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3105 0x4103084 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3106 0x4103088 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3107 0x410308C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3108 0x4103090 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3109 0x4103094 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3110 0x4103098 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3111 0x410309C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3112 0x41030A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3113 0x41030A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3114 0x41030A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3115 0x41030AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3116 0x41030B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3117 0x41030B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3118 0x41030B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3119 0x41030BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3120 0x41030C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3121 0x41030C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3122 0x41030C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3123 0x41030CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3124 0x41030D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3125 0x41030D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3126 0x41030D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3127 0x41030DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3128 0x41030E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3129 0x41030E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3130 0x41030E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3131 0x41030EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3132 0x41030F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3133 0x41030F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3134 0x41030F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3135 0x41030FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3136 0x4103100 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3137 0x4103104 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3138 0x4103108 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3139 0x410310C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3140 0x4103110 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3141 0x4103114 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3142 0x4103118 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3143 0x410311C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3144 0x4103120 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3145 0x4103124 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3146 0x4103128 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3147 0x410312C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3148 0x4103130 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3149 0x4103134 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3150 0x4103138 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3151 0x410313C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3152 0x4103140 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3153 0x4103144 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3154 0x4103148 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3155 0x410314C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3156 0x4103150 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3157 0x4103154 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3158 0x4103158 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3159 0x410315C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3160 0x4103160 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3161 0x4103164 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3162 0x4103168 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3163 0x410316C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3164 0x4103170 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3165 0x4103174 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3166 0x4103178 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3167 0x410317C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3168 0x4103180 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3169 0x4103184 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3170 0x4103188 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3171 0x410318C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3172 0x4103190 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3173 0x4103194 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3174 0x4103198 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3175 0x410319C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3176 0x41031A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3177 0x41031A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3178 0x41031A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3179 0x41031AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3180 0x41031B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3181 0x41031B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3182 0x41031B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3183 0x41031BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3184 0x41031C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3185 0x41031C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3186 0x41031C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3187 0x41031CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3188 0x41031D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3189 0x41031D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3190 0x41031D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3191 0x41031DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3192 0x41031E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3193 0x41031E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3194 0x41031E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3195 0x41031EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3196 0x41031F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3197 0x41031F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3198 0x41031F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3199 0x41031FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3200 0x4103200 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3201 0x4103204 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3202 0x4103208 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3203 0x410320C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3204 0x4103210 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3205 0x4103214 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3206 0x4103218 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3207 0x410321C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3208 0x4103220 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3209 0x4103224 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3210 0x4103228 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3211 0x410322C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3212 0x4103230 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3213 0x4103234 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3214 0x4103238 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3215 0x410323C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3216 0x4103240 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3217 0x4103244 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3218 0x4103248 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3219 0x410324C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3220 0x4103250 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3221 0x4103254 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3222 0x4103258 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3223 0x410325C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3224 0x4103260 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3225 0x4103264 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3226 0x4103268 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3227 0x410326C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3228 0x4103270 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3229 0x4103274 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3230 0x4103278 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3231 0x410327C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3232 0x4103280 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3233 0x4103284 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3234 0x4103288 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3235 0x410328C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3236 0x4103290 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3237 0x4103294 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3238 0x4103298 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3239 0x410329C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3240 0x41032A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3241 0x41032A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3242 0x41032A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3243 0x41032AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3244 0x41032B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3245 0x41032B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3246 0x41032B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3247 0x41032BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3248 0x41032C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3249 0x41032C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3250 0x41032C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3251 0x41032CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3252 0x41032D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3253 0x41032D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3254 0x41032D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3255 0x41032DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3256 0x41032E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3257 0x41032E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3258 0x41032E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3259 0x41032EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3260 0x41032F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3261 0x41032F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3262 0x41032F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3263 0x41032FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3264 0x4103300 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3265 0x4103304 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3266 0x4103308 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3267 0x410330C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3268 0x4103310 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3269 0x4103314 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3270 0x4103318 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3271 0x410331C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3272 0x4103320 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3273 0x4103324 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3274 0x4103328 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3275 0x410332C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3276 0x4103330 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3277 0x4103334 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3278 0x4103338 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3279 0x410333C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3280 0x4103340 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3281 0x4103344 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3282 0x4103348 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3283 0x410334C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3284 0x4103350 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3285 0x4103354 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3286 0x4103358 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3287 0x410335C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3288 0x4103360 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3289 0x4103364 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3290 0x4103368 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3291 0x410336C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3292 0x4103370 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3293 0x4103374 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3294 0x4103378 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3295 0x410337C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3296 0x4103380 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3297 0x4103384 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3298 0x4103388 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3299 0x410338C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3300 0x4103390 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3301 0x4103394 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3302 0x4103398 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3303 0x410339C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3304 0x41033A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3305 0x41033A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3306 0x41033A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3307 0x41033AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3308 0x41033B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3309 0x41033B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3310 0x41033B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3311 0x41033BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3312 0x41033C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3313 0x41033C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3314 0x41033C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3315 0x41033CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3316 0x41033D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3317 0x41033D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3318 0x41033D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3319 0x41033DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3320 0x41033E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3321 0x41033E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3322 0x41033E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3323 0x41033EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3324 0x41033F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3325 0x41033F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3326 0x41033F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3327 0x41033FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3328 0x4103400 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3329 0x4103404 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3330 0x4103408 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3331 0x410340C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3332 0x4103410 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3333 0x4103414 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3334 0x4103418 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3335 0x410341C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3336 0x4103420 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3337 0x4103424 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3338 0x4103428 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3339 0x410342C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3340 0x4103430 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3341 0x4103434 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3342 0x4103438 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3343 0x410343C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3344 0x4103440 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3345 0x4103444 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3346 0x4103448 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3347 0x410344C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3348 0x4103450 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3349 0x4103454 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3350 0x4103458 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3351 0x410345C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3352 0x4103460 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3353 0x4103464 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3354 0x4103468 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3355 0x410346C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3356 0x4103470 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3357 0x4103474 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3358 0x4103478 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3359 0x410347C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3360 0x4103480 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3361 0x4103484 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3362 0x4103488 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3363 0x410348C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3364 0x4103490 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3365 0x4103494 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3366 0x4103498 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3367 0x410349C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3368 0x41034A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3369 0x41034A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3370 0x41034A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3371 0x41034AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3372 0x41034B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3373 0x41034B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3374 0x41034B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3375 0x41034BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3376 0x41034C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3377 0x41034C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3378 0x41034C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3379 0x41034CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3380 0x41034D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3381 0x41034D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3382 0x41034D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3383 0x41034DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3384 0x41034E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3385 0x41034E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3386 0x41034E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3387 0x41034EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3388 0x41034F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3389 0x41034F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3390 0x41034F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3391 0x41034FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3392 0x4103500 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3393 0x4103504 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3394 0x4103508 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3395 0x410350C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3396 0x4103510 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3397 0x4103514 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3398 0x4103518 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3399 0x410351C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3400 0x4103520 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3401 0x4103524 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3402 0x4103528 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3403 0x410352C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3404 0x4103530 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3405 0x4103534 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3406 0x4103538 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3407 0x410353C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3408 0x4103540 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3409 0x4103544 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3410 0x4103548 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3411 0x410354C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3412 0x4103550 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3413 0x4103554 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3414 0x4103558 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3415 0x410355C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3416 0x4103560 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3417 0x4103564 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3418 0x4103568 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3419 0x410356C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3420 0x4103570 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3421 0x4103574 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3422 0x4103578 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3423 0x410357C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3424 0x4103580 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3425 0x4103584 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3426 0x4103588 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3427 0x410358C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3428 0x4103590 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3429 0x4103594 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3430 0x4103598 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3431 0x410359C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3432 0x41035A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3433 0x41035A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3434 0x41035A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3435 0x41035AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3436 0x41035B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3437 0x41035B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3438 0x41035B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3439 0x41035BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3440 0x41035C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3441 0x41035C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3442 0x41035C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3443 0x41035CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3444 0x41035D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3445 0x41035D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3446 0x41035D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3447 0x41035DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3448 0x41035E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3449 0x41035E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3450 0x41035E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3451 0x41035EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3452 0x41035F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3453 0x41035F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3454 0x41035F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3455 0x41035FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3456 0x4103600 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3457 0x4103604 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3458 0x4103608 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3459 0x410360C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3460 0x4103610 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3461 0x4103614 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3462 0x4103618 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3463 0x410361C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3464 0x4103620 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3465 0x4103624 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3466 0x4103628 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3467 0x410362C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3468 0x4103630 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3469 0x4103634 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3470 0x4103638 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3471 0x410363C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3472 0x4103640 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3473 0x4103644 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3474 0x4103648 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3475 0x410364C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3476 0x4103650 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3477 0x4103654 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3478 0x4103658 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3479 0x410365C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3480 0x4103660 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3481 0x4103664 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3482 0x4103668 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3483 0x410366C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3484 0x4103670 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3485 0x4103674 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3486 0x4103678 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3487 0x410367C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3488 0x4103680 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3489 0x4103684 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3490 0x4103688 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3491 0x410368C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3492 0x4103690 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3493 0x4103694 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3494 0x4103698 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3495 0x410369C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3496 0x41036A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3497 0x41036A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3498 0x41036A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3499 0x41036AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3500 0x41036B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3501 0x41036B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3502 0x41036B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3503 0x41036BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3504 0x41036C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3505 0x41036C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3506 0x41036C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3507 0x41036CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3508 0x41036D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3509 0x41036D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3510 0x41036D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3511 0x41036DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3512 0x41036E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3513 0x41036E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3514 0x41036E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3515 0x41036EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3516 0x41036F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3517 0x41036F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3518 0x41036F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3519 0x41036FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3520 0x4103700 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3521 0x4103704 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3522 0x4103708 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3523 0x410370C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3524 0x4103710 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3525 0x4103714 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3526 0x4103718 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3527 0x410371C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3528 0x4103720 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3529 0x4103724 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3530 0x4103728 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3531 0x410372C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3532 0x4103730 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3533 0x4103734 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3534 0x4103738 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3535 0x410373C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3536 0x4103740 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3537 0x4103744 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3538 0x4103748 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3539 0x410374C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3540 0x4103750 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3541 0x4103754 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3542 0x4103758 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3543 0x410375C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3544 0x4103760 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3545 0x4103764 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3546 0x4103768 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3547 0x410376C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3548 0x4103770 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3549 0x4103774 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3550 0x4103778 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3551 0x410377C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3552 0x4103780 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3553 0x4103784 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3554 0x4103788 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3555 0x410378C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3556 0x4103790 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3557 0x4103794 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3558 0x4103798 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3559 0x410379C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3560 0x41037A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3561 0x41037A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3562 0x41037A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3563 0x41037AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3564 0x41037B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3565 0x41037B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3566 0x41037B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3567 0x41037BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3568 0x41037C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3569 0x41037C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3570 0x41037C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3571 0x41037CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3572 0x41037D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3573 0x41037D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3574 0x41037D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3575 0x41037DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3576 0x41037E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3577 0x41037E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3578 0x41037E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3579 0x41037EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3580 0x41037F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3581 0x41037F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3582 0x41037F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3583 0x41037FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3584 0x4103800 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3585 0x4103804 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3586 0x4103808 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3587 0x410380C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3588 0x4103810 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3589 0x4103814 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3590 0x4103818 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3591 0x410381C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3592 0x4103820 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3593 0x4103824 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3594 0x4103828 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3595 0x410382C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3596 0x4103830 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3597 0x4103834 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3598 0x4103838 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3599 0x410383C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3600 0x4103840 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3601 0x4103844 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3602 0x4103848 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3603 0x410384C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3604 0x4103850 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3605 0x4103854 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3606 0x4103858 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3607 0x410385C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3608 0x4103860 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3609 0x4103864 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3610 0x4103868 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3611 0x410386C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3612 0x4103870 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3613 0x4103874 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3614 0x4103878 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3615 0x410387C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3616 0x4103880 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3617 0x4103884 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3618 0x4103888 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3619 0x410388C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3620 0x4103890 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3621 0x4103894 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3622 0x4103898 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3623 0x410389C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3624 0x41038A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3625 0x41038A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3626 0x41038A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3627 0x41038AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3628 0x41038B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3629 0x41038B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3630 0x41038B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3631 0x41038BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3632 0x41038C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3633 0x41038C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3634 0x41038C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3635 0x41038CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3636 0x41038D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3637 0x41038D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3638 0x41038D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3639 0x41038DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3640 0x41038E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3641 0x41038E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3642 0x41038E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3643 0x41038EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3644 0x41038F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3645 0x41038F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3646 0x41038F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3647 0x41038FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3648 0x4103900 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3649 0x4103904 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3650 0x4103908 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3651 0x410390C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3652 0x4103910 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3653 0x4103914 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3654 0x4103918 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3655 0x410391C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3656 0x4103920 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3657 0x4103924 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3658 0x4103928 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3659 0x410392C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3660 0x4103930 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3661 0x4103934 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3662 0x4103938 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3663 0x410393C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3664 0x4103940 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3665 0x4103944 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3666 0x4103948 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3667 0x410394C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3668 0x4103950 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3669 0x4103954 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3670 0x4103958 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3671 0x410395C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3672 0x4103960 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3673 0x4103964 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3674 0x4103968 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3675 0x410396C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3676 0x4103970 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3677 0x4103974 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3678 0x4103978 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3679 0x410397C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3680 0x4103980 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3681 0x4103984 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3682 0x4103988 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3683 0x410398C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3684 0x4103990 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3685 0x4103994 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3686 0x4103998 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3687 0x410399C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3688 0x41039A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3689 0x41039A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3690 0x41039A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3691 0x41039AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3692 0x41039B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3693 0x41039B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3694 0x41039B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3695 0x41039BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3696 0x41039C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3697 0x41039C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3698 0x41039C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3699 0x41039CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3700 0x41039D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3701 0x41039D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3702 0x41039D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3703 0x41039DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3704 0x41039E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3705 0x41039E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3706 0x41039E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3707 0x41039EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3708 0x41039F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3709 0x41039F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3710 0x41039F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3711 0x41039FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3712 0x4103A00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3713 0x4103A04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3714 0x4103A08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3715 0x4103A0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3716 0x4103A10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3717 0x4103A14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3718 0x4103A18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3719 0x4103A1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3720 0x4103A20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3721 0x4103A24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3722 0x4103A28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3723 0x4103A2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3724 0x4103A30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3725 0x4103A34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3726 0x4103A38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3727 0x4103A3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3728 0x4103A40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3729 0x4103A44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3730 0x4103A48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3731 0x4103A4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3732 0x4103A50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3733 0x4103A54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3734 0x4103A58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3735 0x4103A5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3736 0x4103A60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3737 0x4103A64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3738 0x4103A68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3739 0x4103A6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3740 0x4103A70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3741 0x4103A74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3742 0x4103A78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3743 0x4103A7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3744 0x4103A80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3745 0x4103A84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3746 0x4103A88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3747 0x4103A8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3748 0x4103A90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3749 0x4103A94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3750 0x4103A98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3751 0x4103A9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3752 0x4103AA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3753 0x4103AA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3754 0x4103AA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3755 0x4103AAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3756 0x4103AB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3757 0x4103AB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3758 0x4103AB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3759 0x4103ABC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3760 0x4103AC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3761 0x4103AC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3762 0x4103AC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3763 0x4103ACC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3764 0x4103AD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3765 0x4103AD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3766 0x4103AD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3767 0x4103ADC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3768 0x4103AE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3769 0x4103AE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3770 0x4103AE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3771 0x4103AEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3772 0x4103AF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3773 0x4103AF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3774 0x4103AF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3775 0x4103AFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3776 0x4103B00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3777 0x4103B04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3778 0x4103B08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3779 0x4103B0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3780 0x4103B10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3781 0x4103B14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3782 0x4103B18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3783 0x4103B1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3784 0x4103B20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3785 0x4103B24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3786 0x4103B28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3787 0x4103B2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3788 0x4103B30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3789 0x4103B34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3790 0x4103B38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3791 0x4103B3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3792 0x4103B40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3793 0x4103B44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3794 0x4103B48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3795 0x4103B4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3796 0x4103B50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3797 0x4103B54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3798 0x4103B58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3799 0x4103B5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3800 0x4103B60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3801 0x4103B64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3802 0x4103B68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3803 0x4103B6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3804 0x4103B70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3805 0x4103B74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3806 0x4103B78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3807 0x4103B7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3808 0x4103B80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3809 0x4103B84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3810 0x4103B88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3811 0x4103B8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3812 0x4103B90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3813 0x4103B94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3814 0x4103B98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3815 0x4103B9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3816 0x4103BA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3817 0x4103BA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3818 0x4103BA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3819 0x4103BAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3820 0x4103BB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3821 0x4103BB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3822 0x4103BB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3823 0x4103BBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3824 0x4103BC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3825 0x4103BC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3826 0x4103BC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3827 0x4103BCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3828 0x4103BD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3829 0x4103BD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3830 0x4103BD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3831 0x4103BDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3832 0x4103BE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3833 0x4103BE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3834 0x4103BE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3835 0x4103BEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3836 0x4103BF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3837 0x4103BF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3838 0x4103BF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3839 0x4103BFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3840 0x4103C00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3841 0x4103C04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3842 0x4103C08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3843 0x4103C0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3844 0x4103C10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3845 0x4103C14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3846 0x4103C18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3847 0x4103C1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3848 0x4103C20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3849 0x4103C24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3850 0x4103C28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3851 0x4103C2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3852 0x4103C30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3853 0x4103C34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3854 0x4103C38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3855 0x4103C3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3856 0x4103C40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3857 0x4103C44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3858 0x4103C48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3859 0x4103C4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3860 0x4103C50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3861 0x4103C54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3862 0x4103C58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3863 0x4103C5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3864 0x4103C60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3865 0x4103C64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3866 0x4103C68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3867 0x4103C6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3868 0x4103C70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3869 0x4103C74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3870 0x4103C78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3871 0x4103C7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3872 0x4103C80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3873 0x4103C84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3874 0x4103C88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3875 0x4103C8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3876 0x4103C90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3877 0x4103C94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3878 0x4103C98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3879 0x4103C9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3880 0x4103CA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3881 0x4103CA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3882 0x4103CA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3883 0x4103CAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3884 0x4103CB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3885 0x4103CB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3886 0x4103CB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3887 0x4103CBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3888 0x4103CC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3889 0x4103CC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3890 0x4103CC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3891 0x4103CCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3892 0x4103CD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3893 0x4103CD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3894 0x4103CD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3895 0x4103CDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3896 0x4103CE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3897 0x4103CE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3898 0x4103CE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3899 0x4103CEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3900 0x4103CF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3901 0x4103CF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3902 0x4103CF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3903 0x4103CFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3904 0x4103D00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3905 0x4103D04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3906 0x4103D08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3907 0x4103D0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3908 0x4103D10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3909 0x4103D14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3910 0x4103D18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3911 0x4103D1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3912 0x4103D20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3913 0x4103D24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3914 0x4103D28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3915 0x4103D2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3916 0x4103D30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3917 0x4103D34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3918 0x4103D38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3919 0x4103D3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3920 0x4103D40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3921 0x4103D44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3922 0x4103D48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3923 0x4103D4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3924 0x4103D50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3925 0x4103D54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3926 0x4103D58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3927 0x4103D5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3928 0x4103D60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3929 0x4103D64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3930 0x4103D68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3931 0x4103D6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3932 0x4103D70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3933 0x4103D74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3934 0x4103D78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3935 0x4103D7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3936 0x4103D80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3937 0x4103D84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3938 0x4103D88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3939 0x4103D8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3940 0x4103D90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3941 0x4103D94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3942 0x4103D98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3943 0x4103D9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3944 0x4103DA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3945 0x4103DA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3946 0x4103DA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3947 0x4103DAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3948 0x4103DB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3949 0x4103DB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3950 0x4103DB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3951 0x4103DBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3952 0x4103DC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3953 0x4103DC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3954 0x4103DC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3955 0x4103DCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3956 0x4103DD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3957 0x4103DD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3958 0x4103DD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3959 0x4103DDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3960 0x4103DE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3961 0x4103DE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3962 0x4103DE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3963 0x4103DEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3964 0x4103DF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3965 0x4103DF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3966 0x4103DF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3967 0x4103DFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3968 0x4103E00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3969 0x4103E04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3970 0x4103E08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3971 0x4103E0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3972 0x4103E10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3973 0x4103E14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3974 0x4103E18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3975 0x4103E1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3976 0x4103E20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3977 0x4103E24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3978 0x4103E28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3979 0x4103E2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3980 0x4103E30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3981 0x4103E34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3982 0x4103E38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3983 0x4103E3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3984 0x4103E40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3985 0x4103E44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3986 0x4103E48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3987 0x4103E4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3988 0x4103E50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3989 0x4103E54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3990 0x4103E58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3991 0x4103E5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3992 0x4103E60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3993 0x4103E64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3994 0x4103E68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3995 0x4103E6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3996 0x4103E70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3997 0x4103E74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3998 0x4103E78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_3999 0x4103E7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4000 0x4103E80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4001 0x4103E84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4002 0x4103E88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4003 0x4103E8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4004 0x4103E90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4005 0x4103E94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4006 0x4103E98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4007 0x4103E9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4008 0x4103EA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4009 0x4103EA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4010 0x4103EA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4011 0x4103EAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4012 0x4103EB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4013 0x4103EB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4014 0x4103EB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4015 0x4103EBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4016 0x4103EC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4017 0x4103EC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4018 0x4103EC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4019 0x4103ECC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4020 0x4103ED0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4021 0x4103ED4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4022 0x4103ED8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4023 0x4103EDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4024 0x4103EE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4025 0x4103EE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4026 0x4103EE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4027 0x4103EEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4028 0x4103EF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4029 0x4103EF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4030 0x4103EF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4031 0x4103EFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4032 0x4103F00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4033 0x4103F04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4034 0x4103F08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4035 0x4103F0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4036 0x4103F10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4037 0x4103F14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4038 0x4103F18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4039 0x4103F1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4040 0x4103F20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4041 0x4103F24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4042 0x4103F28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4043 0x4103F2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4044 0x4103F30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4045 0x4103F34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4046 0x4103F38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4047 0x4103F3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4048 0x4103F40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4049 0x4103F44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4050 0x4103F48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4051 0x4103F4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4052 0x4103F50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4053 0x4103F54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4054 0x4103F58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4055 0x4103F5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4056 0x4103F60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4057 0x4103F64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4058 0x4103F68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4059 0x4103F6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4060 0x4103F70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4061 0x4103F74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4062 0x4103F78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4063 0x4103F7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4064 0x4103F80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4065 0x4103F84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4066 0x4103F88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4067 0x4103F8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4068 0x4103F90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4069 0x4103F94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4070 0x4103F98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4071 0x4103F9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4072 0x4103FA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4073 0x4103FA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4074 0x4103FA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4075 0x4103FAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4076 0x4103FB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4077 0x4103FB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4078 0x4103FB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4079 0x4103FBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4080 0x4103FC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4081 0x4103FC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4082 0x4103FC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4083 0x4103FCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4084 0x4103FD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4085 0x4103FD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4086 0x4103FD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4087 0x4103FDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4088 0x4103FE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4089 0x4103FE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4090 0x4103FE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4091 0x4103FEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4092 0x4103FF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4093 0x4103FF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4094 0x4103FF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4095 0x4103FFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4096 0x4104000 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4097 0x4104004 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4098 0x4104008 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4099 0x410400C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4100 0x4104010 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4101 0x4104014 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4102 0x4104018 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4103 0x410401C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4104 0x4104020 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4105 0x4104024 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4106 0x4104028 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4107 0x410402C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4108 0x4104030 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4109 0x4104034 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4110 0x4104038 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4111 0x410403C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4112 0x4104040 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4113 0x4104044 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4114 0x4104048 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4115 0x410404C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4116 0x4104050 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4117 0x4104054 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4118 0x4104058 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4119 0x410405C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4120 0x4104060 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4121 0x4104064 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4122 0x4104068 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4123 0x410406C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4124 0x4104070 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4125 0x4104074 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4126 0x4104078 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4127 0x410407C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4128 0x4104080 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4129 0x4104084 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4130 0x4104088 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4131 0x410408C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4132 0x4104090 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4133 0x4104094 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4134 0x4104098 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4135 0x410409C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4136 0x41040A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4137 0x41040A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4138 0x41040A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4139 0x41040AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4140 0x41040B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4141 0x41040B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4142 0x41040B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4143 0x41040BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4144 0x41040C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4145 0x41040C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4146 0x41040C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4147 0x41040CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4148 0x41040D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4149 0x41040D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4150 0x41040D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4151 0x41040DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4152 0x41040E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4153 0x41040E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4154 0x41040E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4155 0x41040EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4156 0x41040F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4157 0x41040F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4158 0x41040F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4159 0x41040FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4160 0x4104100 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4161 0x4104104 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4162 0x4104108 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4163 0x410410C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4164 0x4104110 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4165 0x4104114 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4166 0x4104118 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4167 0x410411C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4168 0x4104120 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4169 0x4104124 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4170 0x4104128 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4171 0x410412C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4172 0x4104130 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4173 0x4104134 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4174 0x4104138 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4175 0x410413C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4176 0x4104140 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4177 0x4104144 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4178 0x4104148 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4179 0x410414C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4180 0x4104150 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4181 0x4104154 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4182 0x4104158 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4183 0x410415C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4184 0x4104160 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4185 0x4104164 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4186 0x4104168 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4187 0x410416C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4188 0x4104170 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4189 0x4104174 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4190 0x4104178 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4191 0x410417C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4192 0x4104180 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4193 0x4104184 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4194 0x4104188 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4195 0x410418C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4196 0x4104190 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4197 0x4104194 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4198 0x4104198 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4199 0x410419C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4200 0x41041A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4201 0x41041A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4202 0x41041A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4203 0x41041AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4204 0x41041B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4205 0x41041B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4206 0x41041B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4207 0x41041BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4208 0x41041C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4209 0x41041C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4210 0x41041C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4211 0x41041CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4212 0x41041D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4213 0x41041D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4214 0x41041D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4215 0x41041DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4216 0x41041E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4217 0x41041E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4218 0x41041E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4219 0x41041EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4220 0x41041F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4221 0x41041F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4222 0x41041F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4223 0x41041FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4224 0x4104200 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4225 0x4104204 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4226 0x4104208 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4227 0x410420C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4228 0x4104210 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4229 0x4104214 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4230 0x4104218 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4231 0x410421C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4232 0x4104220 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4233 0x4104224 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4234 0x4104228 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4235 0x410422C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4236 0x4104230 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4237 0x4104234 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4238 0x4104238 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4239 0x410423C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4240 0x4104240 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4241 0x4104244 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4242 0x4104248 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4243 0x410424C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4244 0x4104250 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4245 0x4104254 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4246 0x4104258 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4247 0x410425C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4248 0x4104260 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4249 0x4104264 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4250 0x4104268 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4251 0x410426C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4252 0x4104270 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4253 0x4104274 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4254 0x4104278 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4255 0x410427C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4256 0x4104280 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4257 0x4104284 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4258 0x4104288 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4259 0x410428C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4260 0x4104290 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4261 0x4104294 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4262 0x4104298 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4263 0x410429C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4264 0x41042A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4265 0x41042A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4266 0x41042A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4267 0x41042AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4268 0x41042B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4269 0x41042B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4270 0x41042B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4271 0x41042BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4272 0x41042C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4273 0x41042C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4274 0x41042C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4275 0x41042CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4276 0x41042D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4277 0x41042D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4278 0x41042D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4279 0x41042DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4280 0x41042E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4281 0x41042E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4282 0x41042E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4283 0x41042EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4284 0x41042F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4285 0x41042F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4286 0x41042F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4287 0x41042FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4288 0x4104300 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4289 0x4104304 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4290 0x4104308 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4291 0x410430C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4292 0x4104310 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4293 0x4104314 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4294 0x4104318 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4295 0x410431C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4296 0x4104320 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4297 0x4104324 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4298 0x4104328 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4299 0x410432C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4300 0x4104330 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4301 0x4104334 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4302 0x4104338 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4303 0x410433C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4304 0x4104340 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4305 0x4104344 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4306 0x4104348 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4307 0x410434C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4308 0x4104350 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4309 0x4104354 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4310 0x4104358 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4311 0x410435C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4312 0x4104360 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4313 0x4104364 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4314 0x4104368 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4315 0x410436C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4316 0x4104370 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4317 0x4104374 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4318 0x4104378 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4319 0x410437C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4320 0x4104380 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4321 0x4104384 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4322 0x4104388 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4323 0x410438C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4324 0x4104390 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4325 0x4104394 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4326 0x4104398 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4327 0x410439C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4328 0x41043A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4329 0x41043A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4330 0x41043A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4331 0x41043AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4332 0x41043B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4333 0x41043B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4334 0x41043B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4335 0x41043BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4336 0x41043C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4337 0x41043C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4338 0x41043C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4339 0x41043CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4340 0x41043D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4341 0x41043D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4342 0x41043D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4343 0x41043DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4344 0x41043E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4345 0x41043E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4346 0x41043E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4347 0x41043EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4348 0x41043F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4349 0x41043F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4350 0x41043F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4351 0x41043FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4352 0x4104400 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4353 0x4104404 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4354 0x4104408 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4355 0x410440C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4356 0x4104410 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4357 0x4104414 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4358 0x4104418 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4359 0x410441C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4360 0x4104420 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4361 0x4104424 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4362 0x4104428 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4363 0x410442C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4364 0x4104430 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4365 0x4104434 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4366 0x4104438 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4367 0x410443C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4368 0x4104440 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4369 0x4104444 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4370 0x4104448 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4371 0x410444C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4372 0x4104450 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4373 0x4104454 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4374 0x4104458 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4375 0x410445C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4376 0x4104460 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4377 0x4104464 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4378 0x4104468 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4379 0x410446C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4380 0x4104470 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4381 0x4104474 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4382 0x4104478 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4383 0x410447C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4384 0x4104480 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4385 0x4104484 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4386 0x4104488 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4387 0x410448C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4388 0x4104490 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4389 0x4104494 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4390 0x4104498 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4391 0x410449C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4392 0x41044A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4393 0x41044A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4394 0x41044A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4395 0x41044AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4396 0x41044B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4397 0x41044B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4398 0x41044B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4399 0x41044BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4400 0x41044C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4401 0x41044C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4402 0x41044C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4403 0x41044CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4404 0x41044D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4405 0x41044D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4406 0x41044D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4407 0x41044DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4408 0x41044E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4409 0x41044E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4410 0x41044E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4411 0x41044EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4412 0x41044F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4413 0x41044F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4414 0x41044F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4415 0x41044FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4416 0x4104500 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4417 0x4104504 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4418 0x4104508 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4419 0x410450C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4420 0x4104510 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4421 0x4104514 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4422 0x4104518 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4423 0x410451C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4424 0x4104520 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4425 0x4104524 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4426 0x4104528 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4427 0x410452C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4428 0x4104530 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4429 0x4104534 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4430 0x4104538 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4431 0x410453C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4432 0x4104540 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4433 0x4104544 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4434 0x4104548 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4435 0x410454C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4436 0x4104550 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4437 0x4104554 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4438 0x4104558 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4439 0x410455C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4440 0x4104560 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4441 0x4104564 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4442 0x4104568 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4443 0x410456C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4444 0x4104570 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4445 0x4104574 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4446 0x4104578 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4447 0x410457C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4448 0x4104580 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4449 0x4104584 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4450 0x4104588 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4451 0x410458C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4452 0x4104590 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4453 0x4104594 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4454 0x4104598 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4455 0x410459C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4456 0x41045A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4457 0x41045A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4458 0x41045A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4459 0x41045AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4460 0x41045B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4461 0x41045B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4462 0x41045B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4463 0x41045BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4464 0x41045C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4465 0x41045C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4466 0x41045C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4467 0x41045CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4468 0x41045D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4469 0x41045D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4470 0x41045D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4471 0x41045DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4472 0x41045E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4473 0x41045E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4474 0x41045E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4475 0x41045EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4476 0x41045F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4477 0x41045F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4478 0x41045F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4479 0x41045FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4480 0x4104600 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4481 0x4104604 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4482 0x4104608 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4483 0x410460C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4484 0x4104610 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4485 0x4104614 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4486 0x4104618 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4487 0x410461C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4488 0x4104620 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4489 0x4104624 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4490 0x4104628 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4491 0x410462C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4492 0x4104630 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4493 0x4104634 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4494 0x4104638 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4495 0x410463C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4496 0x4104640 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4497 0x4104644 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4498 0x4104648 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4499 0x410464C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4500 0x4104650 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4501 0x4104654 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4502 0x4104658 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4503 0x410465C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4504 0x4104660 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4505 0x4104664 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4506 0x4104668 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4507 0x410466C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4508 0x4104670 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4509 0x4104674 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4510 0x4104678 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4511 0x410467C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4512 0x4104680 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4513 0x4104684 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4514 0x4104688 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4515 0x410468C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4516 0x4104690 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4517 0x4104694 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4518 0x4104698 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4519 0x410469C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4520 0x41046A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4521 0x41046A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4522 0x41046A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4523 0x41046AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4524 0x41046B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4525 0x41046B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4526 0x41046B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4527 0x41046BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4528 0x41046C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4529 0x41046C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4530 0x41046C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4531 0x41046CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4532 0x41046D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4533 0x41046D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4534 0x41046D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4535 0x41046DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4536 0x41046E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4537 0x41046E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4538 0x41046E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4539 0x41046EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4540 0x41046F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4541 0x41046F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4542 0x41046F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4543 0x41046FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4544 0x4104700 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4545 0x4104704 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4546 0x4104708 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4547 0x410470C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4548 0x4104710 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4549 0x4104714 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4550 0x4104718 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4551 0x410471C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4552 0x4104720 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4553 0x4104724 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4554 0x4104728 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4555 0x410472C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4556 0x4104730 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4557 0x4104734 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4558 0x4104738 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4559 0x410473C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4560 0x4104740 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4561 0x4104744 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4562 0x4104748 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4563 0x410474C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4564 0x4104750 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4565 0x4104754 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4566 0x4104758 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4567 0x410475C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4568 0x4104760 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4569 0x4104764 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4570 0x4104768 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4571 0x410476C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4572 0x4104770 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4573 0x4104774 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4574 0x4104778 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4575 0x410477C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4576 0x4104780 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4577 0x4104784 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4578 0x4104788 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4579 0x410478C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4580 0x4104790 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4581 0x4104794 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4582 0x4104798 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4583 0x410479C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4584 0x41047A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4585 0x41047A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4586 0x41047A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4587 0x41047AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4588 0x41047B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4589 0x41047B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4590 0x41047B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4591 0x41047BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4592 0x41047C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4593 0x41047C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4594 0x41047C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4595 0x41047CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4596 0x41047D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4597 0x41047D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4598 0x41047D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4599 0x41047DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4600 0x41047E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4601 0x41047E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4602 0x41047E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4603 0x41047EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4604 0x41047F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4605 0x41047F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4606 0x41047F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4607 0x41047FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4608 0x4104800 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4609 0x4104804 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4610 0x4104808 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4611 0x410480C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4612 0x4104810 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4613 0x4104814 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4614 0x4104818 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4615 0x410481C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4616 0x4104820 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4617 0x4104824 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4618 0x4104828 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4619 0x410482C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4620 0x4104830 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4621 0x4104834 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4622 0x4104838 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4623 0x410483C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4624 0x4104840 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4625 0x4104844 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4626 0x4104848 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4627 0x410484C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4628 0x4104850 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4629 0x4104854 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4630 0x4104858 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4631 0x410485C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4632 0x4104860 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4633 0x4104864 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4634 0x4104868 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4635 0x410486C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4636 0x4104870 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4637 0x4104874 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4638 0x4104878 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4639 0x410487C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4640 0x4104880 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4641 0x4104884 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4642 0x4104888 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4643 0x410488C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4644 0x4104890 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4645 0x4104894 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4646 0x4104898 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4647 0x410489C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4648 0x41048A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4649 0x41048A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4650 0x41048A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4651 0x41048AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4652 0x41048B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4653 0x41048B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4654 0x41048B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4655 0x41048BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4656 0x41048C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4657 0x41048C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4658 0x41048C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4659 0x41048CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4660 0x41048D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4661 0x41048D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4662 0x41048D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4663 0x41048DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4664 0x41048E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4665 0x41048E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4666 0x41048E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4667 0x41048EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4668 0x41048F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4669 0x41048F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4670 0x41048F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4671 0x41048FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4672 0x4104900 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4673 0x4104904 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4674 0x4104908 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4675 0x410490C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4676 0x4104910 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4677 0x4104914 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4678 0x4104918 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4679 0x410491C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4680 0x4104920 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4681 0x4104924 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4682 0x4104928 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4683 0x410492C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4684 0x4104930 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4685 0x4104934 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4686 0x4104938 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4687 0x410493C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4688 0x4104940 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4689 0x4104944 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4690 0x4104948 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4691 0x410494C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4692 0x4104950 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4693 0x4104954 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4694 0x4104958 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4695 0x410495C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4696 0x4104960 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4697 0x4104964 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4698 0x4104968 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4699 0x410496C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4700 0x4104970 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4701 0x4104974 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4702 0x4104978 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4703 0x410497C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4704 0x4104980 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4705 0x4104984 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4706 0x4104988 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4707 0x410498C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4708 0x4104990 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4709 0x4104994 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4710 0x4104998 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4711 0x410499C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4712 0x41049A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4713 0x41049A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4714 0x41049A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4715 0x41049AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4716 0x41049B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4717 0x41049B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4718 0x41049B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4719 0x41049BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4720 0x41049C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4721 0x41049C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4722 0x41049C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4723 0x41049CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4724 0x41049D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4725 0x41049D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4726 0x41049D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4727 0x41049DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4728 0x41049E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4729 0x41049E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4730 0x41049E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4731 0x41049EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4732 0x41049F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4733 0x41049F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4734 0x41049F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4735 0x41049FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4736 0x4104A00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4737 0x4104A04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4738 0x4104A08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4739 0x4104A0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4740 0x4104A10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4741 0x4104A14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4742 0x4104A18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4743 0x4104A1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4744 0x4104A20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4745 0x4104A24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4746 0x4104A28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4747 0x4104A2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4748 0x4104A30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4749 0x4104A34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4750 0x4104A38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4751 0x4104A3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4752 0x4104A40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4753 0x4104A44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4754 0x4104A48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4755 0x4104A4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4756 0x4104A50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4757 0x4104A54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4758 0x4104A58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4759 0x4104A5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4760 0x4104A60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4761 0x4104A64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4762 0x4104A68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4763 0x4104A6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4764 0x4104A70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4765 0x4104A74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4766 0x4104A78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4767 0x4104A7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4768 0x4104A80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4769 0x4104A84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4770 0x4104A88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4771 0x4104A8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4772 0x4104A90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4773 0x4104A94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4774 0x4104A98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4775 0x4104A9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4776 0x4104AA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4777 0x4104AA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4778 0x4104AA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4779 0x4104AAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4780 0x4104AB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4781 0x4104AB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4782 0x4104AB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4783 0x4104ABC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4784 0x4104AC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4785 0x4104AC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4786 0x4104AC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4787 0x4104ACC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4788 0x4104AD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4789 0x4104AD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4790 0x4104AD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4791 0x4104ADC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4792 0x4104AE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4793 0x4104AE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4794 0x4104AE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4795 0x4104AEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4796 0x4104AF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4797 0x4104AF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4798 0x4104AF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4799 0x4104AFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4800 0x4104B00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4801 0x4104B04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4802 0x4104B08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4803 0x4104B0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4804 0x4104B10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4805 0x4104B14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4806 0x4104B18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4807 0x4104B1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4808 0x4104B20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4809 0x4104B24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4810 0x4104B28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4811 0x4104B2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4812 0x4104B30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4813 0x4104B34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4814 0x4104B38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4815 0x4104B3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4816 0x4104B40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4817 0x4104B44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4818 0x4104B48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4819 0x4104B4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4820 0x4104B50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4821 0x4104B54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4822 0x4104B58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4823 0x4104B5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4824 0x4104B60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4825 0x4104B64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4826 0x4104B68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4827 0x4104B6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4828 0x4104B70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4829 0x4104B74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4830 0x4104B78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4831 0x4104B7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4832 0x4104B80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4833 0x4104B84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4834 0x4104B88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4835 0x4104B8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4836 0x4104B90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4837 0x4104B94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4838 0x4104B98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4839 0x4104B9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4840 0x4104BA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4841 0x4104BA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4842 0x4104BA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4843 0x4104BAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4844 0x4104BB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4845 0x4104BB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4846 0x4104BB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4847 0x4104BBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4848 0x4104BC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4849 0x4104BC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4850 0x4104BC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4851 0x4104BCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4852 0x4104BD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4853 0x4104BD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4854 0x4104BD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4855 0x4104BDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4856 0x4104BE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4857 0x4104BE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4858 0x4104BE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4859 0x4104BEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4860 0x4104BF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4861 0x4104BF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4862 0x4104BF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4863 0x4104BFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4864 0x4104C00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4865 0x4104C04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4866 0x4104C08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4867 0x4104C0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4868 0x4104C10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4869 0x4104C14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4870 0x4104C18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4871 0x4104C1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4872 0x4104C20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4873 0x4104C24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4874 0x4104C28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4875 0x4104C2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4876 0x4104C30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4877 0x4104C34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4878 0x4104C38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4879 0x4104C3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4880 0x4104C40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4881 0x4104C44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4882 0x4104C48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4883 0x4104C4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4884 0x4104C50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4885 0x4104C54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4886 0x4104C58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4887 0x4104C5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4888 0x4104C60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4889 0x4104C64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4890 0x4104C68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4891 0x4104C6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4892 0x4104C70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4893 0x4104C74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4894 0x4104C78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4895 0x4104C7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4896 0x4104C80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4897 0x4104C84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4898 0x4104C88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4899 0x4104C8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4900 0x4104C90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4901 0x4104C94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4902 0x4104C98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4903 0x4104C9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4904 0x4104CA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4905 0x4104CA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4906 0x4104CA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4907 0x4104CAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4908 0x4104CB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4909 0x4104CB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4910 0x4104CB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4911 0x4104CBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4912 0x4104CC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4913 0x4104CC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4914 0x4104CC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4915 0x4104CCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4916 0x4104CD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4917 0x4104CD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4918 0x4104CD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4919 0x4104CDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4920 0x4104CE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4921 0x4104CE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4922 0x4104CE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4923 0x4104CEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4924 0x4104CF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4925 0x4104CF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4926 0x4104CF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4927 0x4104CFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4928 0x4104D00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4929 0x4104D04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4930 0x4104D08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4931 0x4104D0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4932 0x4104D10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4933 0x4104D14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4934 0x4104D18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4935 0x4104D1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4936 0x4104D20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4937 0x4104D24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4938 0x4104D28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4939 0x4104D2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4940 0x4104D30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4941 0x4104D34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4942 0x4104D38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4943 0x4104D3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4944 0x4104D40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4945 0x4104D44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4946 0x4104D48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4947 0x4104D4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4948 0x4104D50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4949 0x4104D54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4950 0x4104D58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4951 0x4104D5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4952 0x4104D60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4953 0x4104D64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4954 0x4104D68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4955 0x4104D6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4956 0x4104D70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4957 0x4104D74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4958 0x4104D78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4959 0x4104D7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4960 0x4104D80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4961 0x4104D84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4962 0x4104D88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4963 0x4104D8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4964 0x4104D90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4965 0x4104D94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4966 0x4104D98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4967 0x4104D9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4968 0x4104DA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4969 0x4104DA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4970 0x4104DA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4971 0x4104DAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4972 0x4104DB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4973 0x4104DB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4974 0x4104DB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4975 0x4104DBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4976 0x4104DC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4977 0x4104DC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4978 0x4104DC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4979 0x4104DCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4980 0x4104DD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4981 0x4104DD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4982 0x4104DD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4983 0x4104DDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4984 0x4104DE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4985 0x4104DE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4986 0x4104DE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4987 0x4104DEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4988 0x4104DF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4989 0x4104DF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4990 0x4104DF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4991 0x4104DFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4992 0x4104E00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4993 0x4104E04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4994 0x4104E08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4995 0x4104E0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4996 0x4104E10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4997 0x4104E14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4998 0x4104E18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_4999 0x4104E1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5000 0x4104E20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5001 0x4104E24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5002 0x4104E28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5003 0x4104E2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5004 0x4104E30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5005 0x4104E34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5006 0x4104E38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5007 0x4104E3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5008 0x4104E40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5009 0x4104E44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5010 0x4104E48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5011 0x4104E4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5012 0x4104E50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5013 0x4104E54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5014 0x4104E58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5015 0x4104E5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5016 0x4104E60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5017 0x4104E64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5018 0x4104E68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5019 0x4104E6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5020 0x4104E70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5021 0x4104E74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5022 0x4104E78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5023 0x4104E7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5024 0x4104E80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5025 0x4104E84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5026 0x4104E88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5027 0x4104E8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5028 0x4104E90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5029 0x4104E94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5030 0x4104E98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5031 0x4104E9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5032 0x4104EA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5033 0x4104EA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5034 0x4104EA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5035 0x4104EAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5036 0x4104EB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5037 0x4104EB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5038 0x4104EB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5039 0x4104EBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5040 0x4104EC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5041 0x4104EC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5042 0x4104EC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5043 0x4104ECC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5044 0x4104ED0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5045 0x4104ED4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5046 0x4104ED8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5047 0x4104EDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5048 0x4104EE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5049 0x4104EE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5050 0x4104EE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5051 0x4104EEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5052 0x4104EF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5053 0x4104EF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5054 0x4104EF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5055 0x4104EFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5056 0x4104F00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5057 0x4104F04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5058 0x4104F08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5059 0x4104F0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5060 0x4104F10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5061 0x4104F14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5062 0x4104F18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5063 0x4104F1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5064 0x4104F20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5065 0x4104F24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5066 0x4104F28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5067 0x4104F2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5068 0x4104F30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5069 0x4104F34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5070 0x4104F38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5071 0x4104F3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5072 0x4104F40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5073 0x4104F44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5074 0x4104F48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5075 0x4104F4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5076 0x4104F50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5077 0x4104F54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5078 0x4104F58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5079 0x4104F5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5080 0x4104F60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5081 0x4104F64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5082 0x4104F68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5083 0x4104F6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5084 0x4104F70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5085 0x4104F74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5086 0x4104F78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5087 0x4104F7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5088 0x4104F80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5089 0x4104F84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5090 0x4104F88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5091 0x4104F8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5092 0x4104F90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5093 0x4104F94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5094 0x4104F98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5095 0x4104F9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5096 0x4104FA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5097 0x4104FA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5098 0x4104FA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5099 0x4104FAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5100 0x4104FB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5101 0x4104FB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5102 0x4104FB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5103 0x4104FBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5104 0x4104FC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5105 0x4104FC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5106 0x4104FC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5107 0x4104FCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5108 0x4104FD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5109 0x4104FD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5110 0x4104FD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5111 0x4104FDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5112 0x4104FE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5113 0x4104FE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5114 0x4104FE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5115 0x4104FEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5116 0x4104FF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5117 0x4104FF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5118 0x4104FF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5119 0x4104FFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5120 0x4105000 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5121 0x4105004 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5122 0x4105008 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5123 0x410500C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5124 0x4105010 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5125 0x4105014 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5126 0x4105018 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5127 0x410501C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5128 0x4105020 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5129 0x4105024 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5130 0x4105028 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5131 0x410502C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5132 0x4105030 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5133 0x4105034 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5134 0x4105038 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5135 0x410503C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5136 0x4105040 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5137 0x4105044 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5138 0x4105048 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5139 0x410504C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5140 0x4105050 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5141 0x4105054 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5142 0x4105058 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5143 0x410505C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5144 0x4105060 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5145 0x4105064 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5146 0x4105068 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5147 0x410506C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5148 0x4105070 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5149 0x4105074 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5150 0x4105078 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5151 0x410507C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5152 0x4105080 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5153 0x4105084 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5154 0x4105088 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5155 0x410508C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5156 0x4105090 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5157 0x4105094 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5158 0x4105098 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5159 0x410509C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5160 0x41050A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5161 0x41050A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5162 0x41050A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5163 0x41050AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5164 0x41050B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5165 0x41050B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5166 0x41050B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5167 0x41050BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5168 0x41050C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5169 0x41050C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5170 0x41050C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5171 0x41050CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5172 0x41050D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5173 0x41050D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5174 0x41050D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5175 0x41050DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5176 0x41050E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5177 0x41050E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5178 0x41050E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5179 0x41050EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5180 0x41050F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5181 0x41050F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5182 0x41050F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5183 0x41050FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5184 0x4105100 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5185 0x4105104 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5186 0x4105108 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5187 0x410510C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5188 0x4105110 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5189 0x4105114 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5190 0x4105118 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5191 0x410511C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5192 0x4105120 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5193 0x4105124 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5194 0x4105128 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5195 0x410512C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5196 0x4105130 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5197 0x4105134 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5198 0x4105138 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5199 0x410513C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5200 0x4105140 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5201 0x4105144 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5202 0x4105148 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5203 0x410514C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5204 0x4105150 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5205 0x4105154 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5206 0x4105158 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5207 0x410515C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5208 0x4105160 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5209 0x4105164 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5210 0x4105168 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5211 0x410516C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5212 0x4105170 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5213 0x4105174 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5214 0x4105178 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5215 0x410517C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5216 0x4105180 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5217 0x4105184 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5218 0x4105188 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5219 0x410518C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5220 0x4105190 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5221 0x4105194 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5222 0x4105198 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5223 0x410519C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5224 0x41051A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5225 0x41051A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5226 0x41051A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5227 0x41051AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5228 0x41051B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5229 0x41051B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5230 0x41051B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5231 0x41051BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5232 0x41051C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5233 0x41051C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5234 0x41051C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5235 0x41051CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5236 0x41051D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5237 0x41051D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5238 0x41051D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5239 0x41051DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5240 0x41051E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5241 0x41051E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5242 0x41051E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5243 0x41051EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5244 0x41051F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5245 0x41051F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5246 0x41051F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5247 0x41051FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5248 0x4105200 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5249 0x4105204 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5250 0x4105208 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5251 0x410520C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5252 0x4105210 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5253 0x4105214 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5254 0x4105218 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5255 0x410521C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5256 0x4105220 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5257 0x4105224 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5258 0x4105228 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5259 0x410522C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5260 0x4105230 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5261 0x4105234 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5262 0x4105238 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5263 0x410523C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5264 0x4105240 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5265 0x4105244 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5266 0x4105248 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5267 0x410524C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5268 0x4105250 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5269 0x4105254 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5270 0x4105258 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5271 0x410525C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5272 0x4105260 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5273 0x4105264 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5274 0x4105268 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5275 0x410526C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5276 0x4105270 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5277 0x4105274 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5278 0x4105278 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5279 0x410527C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5280 0x4105280 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5281 0x4105284 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5282 0x4105288 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5283 0x410528C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5284 0x4105290 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5285 0x4105294 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5286 0x4105298 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5287 0x410529C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5288 0x41052A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5289 0x41052A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5290 0x41052A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5291 0x41052AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5292 0x41052B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5293 0x41052B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5294 0x41052B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5295 0x41052BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5296 0x41052C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5297 0x41052C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5298 0x41052C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5299 0x41052CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5300 0x41052D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5301 0x41052D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5302 0x41052D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5303 0x41052DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5304 0x41052E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5305 0x41052E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5306 0x41052E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5307 0x41052EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5308 0x41052F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5309 0x41052F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5310 0x41052F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5311 0x41052FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5312 0x4105300 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5313 0x4105304 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5314 0x4105308 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5315 0x410530C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5316 0x4105310 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5317 0x4105314 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5318 0x4105318 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5319 0x410531C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5320 0x4105320 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5321 0x4105324 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5322 0x4105328 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5323 0x410532C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5324 0x4105330 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5325 0x4105334 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5326 0x4105338 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5327 0x410533C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5328 0x4105340 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5329 0x4105344 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5330 0x4105348 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5331 0x410534C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5332 0x4105350 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5333 0x4105354 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5334 0x4105358 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5335 0x410535C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5336 0x4105360 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5337 0x4105364 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5338 0x4105368 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5339 0x410536C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5340 0x4105370 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5341 0x4105374 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5342 0x4105378 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5343 0x410537C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5344 0x4105380 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5345 0x4105384 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5346 0x4105388 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5347 0x410538C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5348 0x4105390 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5349 0x4105394 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5350 0x4105398 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5351 0x410539C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5352 0x41053A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5353 0x41053A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5354 0x41053A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5355 0x41053AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5356 0x41053B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5357 0x41053B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5358 0x41053B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5359 0x41053BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5360 0x41053C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5361 0x41053C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5362 0x41053C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5363 0x41053CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5364 0x41053D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5365 0x41053D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5366 0x41053D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5367 0x41053DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5368 0x41053E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5369 0x41053E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5370 0x41053E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5371 0x41053EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5372 0x41053F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5373 0x41053F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5374 0x41053F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5375 0x41053FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5376 0x4105400 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5377 0x4105404 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5378 0x4105408 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5379 0x410540C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5380 0x4105410 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5381 0x4105414 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5382 0x4105418 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5383 0x410541C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5384 0x4105420 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5385 0x4105424 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5386 0x4105428 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5387 0x410542C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5388 0x4105430 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5389 0x4105434 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5390 0x4105438 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5391 0x410543C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5392 0x4105440 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5393 0x4105444 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5394 0x4105448 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5395 0x410544C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5396 0x4105450 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5397 0x4105454 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5398 0x4105458 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5399 0x410545C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5400 0x4105460 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5401 0x4105464 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5402 0x4105468 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5403 0x410546C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5404 0x4105470 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5405 0x4105474 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5406 0x4105478 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5407 0x410547C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5408 0x4105480 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5409 0x4105484 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5410 0x4105488 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5411 0x410548C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5412 0x4105490 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5413 0x4105494 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5414 0x4105498 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5415 0x410549C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5416 0x41054A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5417 0x41054A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5418 0x41054A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5419 0x41054AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5420 0x41054B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5421 0x41054B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5422 0x41054B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5423 0x41054BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5424 0x41054C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5425 0x41054C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5426 0x41054C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5427 0x41054CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5428 0x41054D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5429 0x41054D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5430 0x41054D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5431 0x41054DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5432 0x41054E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5433 0x41054E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5434 0x41054E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5435 0x41054EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5436 0x41054F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5437 0x41054F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5438 0x41054F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5439 0x41054FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5440 0x4105500 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5441 0x4105504 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5442 0x4105508 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5443 0x410550C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5444 0x4105510 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5445 0x4105514 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5446 0x4105518 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5447 0x410551C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5448 0x4105520 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5449 0x4105524 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5450 0x4105528 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5451 0x410552C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5452 0x4105530 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5453 0x4105534 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5454 0x4105538 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5455 0x410553C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5456 0x4105540 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5457 0x4105544 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5458 0x4105548 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5459 0x410554C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5460 0x4105550 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5461 0x4105554 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5462 0x4105558 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5463 0x410555C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5464 0x4105560 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5465 0x4105564 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5466 0x4105568 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5467 0x410556C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5468 0x4105570 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5469 0x4105574 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5470 0x4105578 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5471 0x410557C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5472 0x4105580 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5473 0x4105584 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5474 0x4105588 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5475 0x410558C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5476 0x4105590 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5477 0x4105594 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5478 0x4105598 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5479 0x410559C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5480 0x41055A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5481 0x41055A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5482 0x41055A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5483 0x41055AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5484 0x41055B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5485 0x41055B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5486 0x41055B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5487 0x41055BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5488 0x41055C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5489 0x41055C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5490 0x41055C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5491 0x41055CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5492 0x41055D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5493 0x41055D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5494 0x41055D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5495 0x41055DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5496 0x41055E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5497 0x41055E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5498 0x41055E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5499 0x41055EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5500 0x41055F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5501 0x41055F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5502 0x41055F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5503 0x41055FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5504 0x4105600 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5505 0x4105604 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5506 0x4105608 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5507 0x410560C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5508 0x4105610 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5509 0x4105614 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5510 0x4105618 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5511 0x410561C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5512 0x4105620 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5513 0x4105624 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5514 0x4105628 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5515 0x410562C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5516 0x4105630 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5517 0x4105634 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5518 0x4105638 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5519 0x410563C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5520 0x4105640 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5521 0x4105644 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5522 0x4105648 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5523 0x410564C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5524 0x4105650 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5525 0x4105654 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5526 0x4105658 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5527 0x410565C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5528 0x4105660 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5529 0x4105664 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5530 0x4105668 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5531 0x410566C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5532 0x4105670 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5533 0x4105674 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5534 0x4105678 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5535 0x410567C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5536 0x4105680 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5537 0x4105684 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5538 0x4105688 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5539 0x410568C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5540 0x4105690 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5541 0x4105694 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5542 0x4105698 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5543 0x410569C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5544 0x41056A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5545 0x41056A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5546 0x41056A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5547 0x41056AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5548 0x41056B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5549 0x41056B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5550 0x41056B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5551 0x41056BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5552 0x41056C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5553 0x41056C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5554 0x41056C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5555 0x41056CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5556 0x41056D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5557 0x41056D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5558 0x41056D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5559 0x41056DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5560 0x41056E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5561 0x41056E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5562 0x41056E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5563 0x41056EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5564 0x41056F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5565 0x41056F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5566 0x41056F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5567 0x41056FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5568 0x4105700 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5569 0x4105704 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5570 0x4105708 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5571 0x410570C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5572 0x4105710 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5573 0x4105714 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5574 0x4105718 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5575 0x410571C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5576 0x4105720 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5577 0x4105724 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5578 0x4105728 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5579 0x410572C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5580 0x4105730 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5581 0x4105734 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5582 0x4105738 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5583 0x410573C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5584 0x4105740 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5585 0x4105744 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5586 0x4105748 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5587 0x410574C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5588 0x4105750 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5589 0x4105754 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5590 0x4105758 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5591 0x410575C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5592 0x4105760 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5593 0x4105764 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5594 0x4105768 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5595 0x410576C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5596 0x4105770 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5597 0x4105774 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5598 0x4105778 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5599 0x410577C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5600 0x4105780 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5601 0x4105784 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5602 0x4105788 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5603 0x410578C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5604 0x4105790 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5605 0x4105794 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5606 0x4105798 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5607 0x410579C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5608 0x41057A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5609 0x41057A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5610 0x41057A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5611 0x41057AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5612 0x41057B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5613 0x41057B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5614 0x41057B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5615 0x41057BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5616 0x41057C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5617 0x41057C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5618 0x41057C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5619 0x41057CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5620 0x41057D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5621 0x41057D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5622 0x41057D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5623 0x41057DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5624 0x41057E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5625 0x41057E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5626 0x41057E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5627 0x41057EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5628 0x41057F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5629 0x41057F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5630 0x41057F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5631 0x41057FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5632 0x4105800 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5633 0x4105804 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5634 0x4105808 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5635 0x410580C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5636 0x4105810 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5637 0x4105814 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5638 0x4105818 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5639 0x410581C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5640 0x4105820 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5641 0x4105824 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5642 0x4105828 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5643 0x410582C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5644 0x4105830 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5645 0x4105834 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5646 0x4105838 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5647 0x410583C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5648 0x4105840 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5649 0x4105844 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5650 0x4105848 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5651 0x410584C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5652 0x4105850 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5653 0x4105854 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5654 0x4105858 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5655 0x410585C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5656 0x4105860 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5657 0x4105864 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5658 0x4105868 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5659 0x410586C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5660 0x4105870 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5661 0x4105874 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5662 0x4105878 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5663 0x410587C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5664 0x4105880 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5665 0x4105884 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5666 0x4105888 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5667 0x410588C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5668 0x4105890 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5669 0x4105894 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5670 0x4105898 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5671 0x410589C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5672 0x41058A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5673 0x41058A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5674 0x41058A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5675 0x41058AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5676 0x41058B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5677 0x41058B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5678 0x41058B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5679 0x41058BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5680 0x41058C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5681 0x41058C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5682 0x41058C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5683 0x41058CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5684 0x41058D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5685 0x41058D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5686 0x41058D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5687 0x41058DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5688 0x41058E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5689 0x41058E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5690 0x41058E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5691 0x41058EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5692 0x41058F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5693 0x41058F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5694 0x41058F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5695 0x41058FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5696 0x4105900 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5697 0x4105904 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5698 0x4105908 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5699 0x410590C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5700 0x4105910 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5701 0x4105914 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5702 0x4105918 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5703 0x410591C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5704 0x4105920 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5705 0x4105924 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5706 0x4105928 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5707 0x410592C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5708 0x4105930 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5709 0x4105934 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5710 0x4105938 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5711 0x410593C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5712 0x4105940 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5713 0x4105944 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5714 0x4105948 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5715 0x410594C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5716 0x4105950 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5717 0x4105954 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5718 0x4105958 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5719 0x410595C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5720 0x4105960 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5721 0x4105964 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5722 0x4105968 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5723 0x410596C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5724 0x4105970 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5725 0x4105974 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5726 0x4105978 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5727 0x410597C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5728 0x4105980 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5729 0x4105984 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5730 0x4105988 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5731 0x410598C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5732 0x4105990 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5733 0x4105994 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5734 0x4105998 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5735 0x410599C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5736 0x41059A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5737 0x41059A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5738 0x41059A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5739 0x41059AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5740 0x41059B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5741 0x41059B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5742 0x41059B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5743 0x41059BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5744 0x41059C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5745 0x41059C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5746 0x41059C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5747 0x41059CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5748 0x41059D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5749 0x41059D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5750 0x41059D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5751 0x41059DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5752 0x41059E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5753 0x41059E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5754 0x41059E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5755 0x41059EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5756 0x41059F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5757 0x41059F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5758 0x41059F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5759 0x41059FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5760 0x4105A00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5761 0x4105A04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5762 0x4105A08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5763 0x4105A0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5764 0x4105A10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5765 0x4105A14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5766 0x4105A18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5767 0x4105A1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5768 0x4105A20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5769 0x4105A24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5770 0x4105A28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5771 0x4105A2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5772 0x4105A30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5773 0x4105A34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5774 0x4105A38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5775 0x4105A3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5776 0x4105A40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5777 0x4105A44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5778 0x4105A48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5779 0x4105A4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5780 0x4105A50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5781 0x4105A54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5782 0x4105A58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5783 0x4105A5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5784 0x4105A60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5785 0x4105A64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5786 0x4105A68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5787 0x4105A6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5788 0x4105A70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5789 0x4105A74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5790 0x4105A78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5791 0x4105A7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5792 0x4105A80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5793 0x4105A84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5794 0x4105A88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5795 0x4105A8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5796 0x4105A90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5797 0x4105A94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5798 0x4105A98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5799 0x4105A9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5800 0x4105AA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5801 0x4105AA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5802 0x4105AA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5803 0x4105AAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5804 0x4105AB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5805 0x4105AB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5806 0x4105AB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5807 0x4105ABC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5808 0x4105AC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5809 0x4105AC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5810 0x4105AC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5811 0x4105ACC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5812 0x4105AD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5813 0x4105AD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5814 0x4105AD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5815 0x4105ADC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5816 0x4105AE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5817 0x4105AE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5818 0x4105AE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5819 0x4105AEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5820 0x4105AF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5821 0x4105AF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5822 0x4105AF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5823 0x4105AFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5824 0x4105B00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5825 0x4105B04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5826 0x4105B08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5827 0x4105B0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5828 0x4105B10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5829 0x4105B14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5830 0x4105B18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5831 0x4105B1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5832 0x4105B20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5833 0x4105B24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5834 0x4105B28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5835 0x4105B2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5836 0x4105B30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5837 0x4105B34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5838 0x4105B38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5839 0x4105B3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5840 0x4105B40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5841 0x4105B44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5842 0x4105B48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5843 0x4105B4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5844 0x4105B50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5845 0x4105B54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5846 0x4105B58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5847 0x4105B5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5848 0x4105B60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5849 0x4105B64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5850 0x4105B68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5851 0x4105B6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5852 0x4105B70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5853 0x4105B74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5854 0x4105B78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5855 0x4105B7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5856 0x4105B80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5857 0x4105B84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5858 0x4105B88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5859 0x4105B8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5860 0x4105B90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5861 0x4105B94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5862 0x4105B98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5863 0x4105B9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5864 0x4105BA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5865 0x4105BA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5866 0x4105BA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5867 0x4105BAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5868 0x4105BB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5869 0x4105BB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5870 0x4105BB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5871 0x4105BBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5872 0x4105BC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5873 0x4105BC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5874 0x4105BC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5875 0x4105BCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5876 0x4105BD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5877 0x4105BD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5878 0x4105BD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5879 0x4105BDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5880 0x4105BE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5881 0x4105BE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5882 0x4105BE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5883 0x4105BEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5884 0x4105BF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5885 0x4105BF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5886 0x4105BF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5887 0x4105BFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5888 0x4105C00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5889 0x4105C04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5890 0x4105C08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5891 0x4105C0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5892 0x4105C10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5893 0x4105C14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5894 0x4105C18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5895 0x4105C1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5896 0x4105C20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5897 0x4105C24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5898 0x4105C28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5899 0x4105C2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5900 0x4105C30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5901 0x4105C34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5902 0x4105C38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5903 0x4105C3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5904 0x4105C40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5905 0x4105C44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5906 0x4105C48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5907 0x4105C4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5908 0x4105C50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5909 0x4105C54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5910 0x4105C58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5911 0x4105C5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5912 0x4105C60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5913 0x4105C64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5914 0x4105C68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5915 0x4105C6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5916 0x4105C70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5917 0x4105C74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5918 0x4105C78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5919 0x4105C7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5920 0x4105C80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5921 0x4105C84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5922 0x4105C88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5923 0x4105C8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5924 0x4105C90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5925 0x4105C94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5926 0x4105C98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5927 0x4105C9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5928 0x4105CA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5929 0x4105CA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5930 0x4105CA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5931 0x4105CAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5932 0x4105CB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5933 0x4105CB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5934 0x4105CB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5935 0x4105CBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5936 0x4105CC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5937 0x4105CC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5938 0x4105CC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5939 0x4105CCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5940 0x4105CD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5941 0x4105CD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5942 0x4105CD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5943 0x4105CDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5944 0x4105CE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5945 0x4105CE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5946 0x4105CE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5947 0x4105CEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5948 0x4105CF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5949 0x4105CF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5950 0x4105CF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5951 0x4105CFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5952 0x4105D00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5953 0x4105D04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5954 0x4105D08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5955 0x4105D0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5956 0x4105D10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5957 0x4105D14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5958 0x4105D18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5959 0x4105D1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5960 0x4105D20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5961 0x4105D24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5962 0x4105D28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5963 0x4105D2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5964 0x4105D30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5965 0x4105D34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5966 0x4105D38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5967 0x4105D3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5968 0x4105D40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5969 0x4105D44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5970 0x4105D48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5971 0x4105D4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5972 0x4105D50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5973 0x4105D54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5974 0x4105D58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5975 0x4105D5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5976 0x4105D60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5977 0x4105D64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5978 0x4105D68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5979 0x4105D6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5980 0x4105D70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5981 0x4105D74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5982 0x4105D78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5983 0x4105D7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5984 0x4105D80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5985 0x4105D84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5986 0x4105D88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5987 0x4105D8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5988 0x4105D90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5989 0x4105D94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5990 0x4105D98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5991 0x4105D9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5992 0x4105DA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5993 0x4105DA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5994 0x4105DA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5995 0x4105DAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5996 0x4105DB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5997 0x4105DB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5998 0x4105DB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_5999 0x4105DBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6000 0x4105DC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6001 0x4105DC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6002 0x4105DC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6003 0x4105DCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6004 0x4105DD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6005 0x4105DD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6006 0x4105DD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6007 0x4105DDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6008 0x4105DE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6009 0x4105DE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6010 0x4105DE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6011 0x4105DEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6012 0x4105DF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6013 0x4105DF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6014 0x4105DF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6015 0x4105DFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6016 0x4105E00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6017 0x4105E04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6018 0x4105E08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6019 0x4105E0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6020 0x4105E10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6021 0x4105E14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6022 0x4105E18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6023 0x4105E1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6024 0x4105E20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6025 0x4105E24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6026 0x4105E28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6027 0x4105E2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6028 0x4105E30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6029 0x4105E34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6030 0x4105E38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6031 0x4105E3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6032 0x4105E40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6033 0x4105E44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6034 0x4105E48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6035 0x4105E4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6036 0x4105E50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6037 0x4105E54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6038 0x4105E58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6039 0x4105E5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6040 0x4105E60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6041 0x4105E64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6042 0x4105E68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6043 0x4105E6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6044 0x4105E70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6045 0x4105E74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6046 0x4105E78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6047 0x4105E7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6048 0x4105E80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6049 0x4105E84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6050 0x4105E88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6051 0x4105E8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6052 0x4105E90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6053 0x4105E94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6054 0x4105E98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6055 0x4105E9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6056 0x4105EA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6057 0x4105EA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6058 0x4105EA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6059 0x4105EAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6060 0x4105EB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6061 0x4105EB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6062 0x4105EB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6063 0x4105EBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6064 0x4105EC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6065 0x4105EC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6066 0x4105EC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6067 0x4105ECC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6068 0x4105ED0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6069 0x4105ED4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6070 0x4105ED8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6071 0x4105EDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6072 0x4105EE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6073 0x4105EE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6074 0x4105EE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6075 0x4105EEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6076 0x4105EF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6077 0x4105EF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6078 0x4105EF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6079 0x4105EFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6080 0x4105F00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6081 0x4105F04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6082 0x4105F08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6083 0x4105F0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6084 0x4105F10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6085 0x4105F14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6086 0x4105F18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6087 0x4105F1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6088 0x4105F20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6089 0x4105F24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6090 0x4105F28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6091 0x4105F2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6092 0x4105F30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6093 0x4105F34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6094 0x4105F38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6095 0x4105F3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6096 0x4105F40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6097 0x4105F44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6098 0x4105F48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6099 0x4105F4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6100 0x4105F50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6101 0x4105F54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6102 0x4105F58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6103 0x4105F5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6104 0x4105F60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6105 0x4105F64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6106 0x4105F68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6107 0x4105F6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6108 0x4105F70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6109 0x4105F74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6110 0x4105F78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6111 0x4105F7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6112 0x4105F80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6113 0x4105F84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6114 0x4105F88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6115 0x4105F8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6116 0x4105F90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6117 0x4105F94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6118 0x4105F98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6119 0x4105F9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6120 0x4105FA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6121 0x4105FA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6122 0x4105FA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6123 0x4105FAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6124 0x4105FB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6125 0x4105FB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6126 0x4105FB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6127 0x4105FBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6128 0x4105FC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6129 0x4105FC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6130 0x4105FC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6131 0x4105FCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6132 0x4105FD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6133 0x4105FD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6134 0x4105FD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6135 0x4105FDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6136 0x4105FE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6137 0x4105FE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6138 0x4105FE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6139 0x4105FEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6140 0x4105FF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6141 0x4105FF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6142 0x4105FF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6143 0x4105FFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6144 0x4106000 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6145 0x4106004 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6146 0x4106008 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6147 0x410600C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6148 0x4106010 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6149 0x4106014 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6150 0x4106018 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6151 0x410601C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6152 0x4106020 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6153 0x4106024 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6154 0x4106028 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6155 0x410602C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6156 0x4106030 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6157 0x4106034 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6158 0x4106038 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6159 0x410603C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6160 0x4106040 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6161 0x4106044 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6162 0x4106048 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6163 0x410604C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6164 0x4106050 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6165 0x4106054 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6166 0x4106058 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6167 0x410605C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6168 0x4106060 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6169 0x4106064 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6170 0x4106068 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6171 0x410606C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6172 0x4106070 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6173 0x4106074 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6174 0x4106078 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6175 0x410607C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6176 0x4106080 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6177 0x4106084 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6178 0x4106088 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6179 0x410608C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6180 0x4106090 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6181 0x4106094 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6182 0x4106098 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6183 0x410609C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6184 0x41060A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6185 0x41060A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6186 0x41060A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6187 0x41060AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6188 0x41060B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6189 0x41060B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6190 0x41060B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6191 0x41060BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6192 0x41060C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6193 0x41060C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6194 0x41060C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6195 0x41060CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6196 0x41060D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6197 0x41060D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6198 0x41060D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6199 0x41060DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6200 0x41060E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6201 0x41060E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6202 0x41060E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6203 0x41060EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6204 0x41060F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6205 0x41060F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6206 0x41060F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6207 0x41060FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6208 0x4106100 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6209 0x4106104 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6210 0x4106108 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6211 0x410610C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6212 0x4106110 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6213 0x4106114 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6214 0x4106118 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6215 0x410611C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6216 0x4106120 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6217 0x4106124 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6218 0x4106128 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6219 0x410612C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6220 0x4106130 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6221 0x4106134 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6222 0x4106138 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6223 0x410613C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6224 0x4106140 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6225 0x4106144 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6226 0x4106148 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6227 0x410614C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6228 0x4106150 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6229 0x4106154 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6230 0x4106158 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6231 0x410615C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6232 0x4106160 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6233 0x4106164 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6234 0x4106168 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6235 0x410616C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6236 0x4106170 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6237 0x4106174 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6238 0x4106178 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6239 0x410617C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6240 0x4106180 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6241 0x4106184 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6242 0x4106188 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6243 0x410618C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6244 0x4106190 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6245 0x4106194 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6246 0x4106198 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6247 0x410619C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6248 0x41061A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6249 0x41061A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6250 0x41061A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6251 0x41061AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6252 0x41061B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6253 0x41061B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6254 0x41061B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6255 0x41061BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6256 0x41061C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6257 0x41061C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6258 0x41061C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6259 0x41061CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6260 0x41061D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6261 0x41061D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6262 0x41061D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6263 0x41061DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6264 0x41061E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6265 0x41061E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6266 0x41061E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6267 0x41061EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6268 0x41061F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6269 0x41061F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6270 0x41061F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6271 0x41061FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6272 0x4106200 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6273 0x4106204 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6274 0x4106208 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6275 0x410620C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6276 0x4106210 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6277 0x4106214 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6278 0x4106218 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6279 0x410621C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6280 0x4106220 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6281 0x4106224 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6282 0x4106228 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6283 0x410622C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6284 0x4106230 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6285 0x4106234 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6286 0x4106238 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6287 0x410623C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6288 0x4106240 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6289 0x4106244 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6290 0x4106248 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6291 0x410624C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6292 0x4106250 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6293 0x4106254 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6294 0x4106258 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6295 0x410625C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6296 0x4106260 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6297 0x4106264 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6298 0x4106268 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6299 0x410626C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6300 0x4106270 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6301 0x4106274 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6302 0x4106278 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6303 0x410627C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6304 0x4106280 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6305 0x4106284 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6306 0x4106288 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6307 0x410628C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6308 0x4106290 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6309 0x4106294 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6310 0x4106298 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6311 0x410629C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6312 0x41062A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6313 0x41062A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6314 0x41062A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6315 0x41062AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6316 0x41062B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6317 0x41062B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6318 0x41062B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6319 0x41062BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6320 0x41062C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6321 0x41062C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6322 0x41062C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6323 0x41062CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6324 0x41062D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6325 0x41062D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6326 0x41062D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6327 0x41062DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6328 0x41062E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6329 0x41062E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6330 0x41062E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6331 0x41062EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6332 0x41062F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6333 0x41062F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6334 0x41062F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6335 0x41062FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6336 0x4106300 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6337 0x4106304 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6338 0x4106308 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6339 0x410630C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6340 0x4106310 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6341 0x4106314 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6342 0x4106318 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6343 0x410631C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6344 0x4106320 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6345 0x4106324 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6346 0x4106328 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6347 0x410632C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6348 0x4106330 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6349 0x4106334 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6350 0x4106338 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6351 0x410633C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6352 0x4106340 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6353 0x4106344 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6354 0x4106348 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6355 0x410634C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6356 0x4106350 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6357 0x4106354 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6358 0x4106358 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6359 0x410635C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6360 0x4106360 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6361 0x4106364 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6362 0x4106368 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6363 0x410636C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6364 0x4106370 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6365 0x4106374 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6366 0x4106378 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6367 0x410637C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6368 0x4106380 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6369 0x4106384 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6370 0x4106388 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6371 0x410638C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6372 0x4106390 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6373 0x4106394 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6374 0x4106398 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6375 0x410639C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6376 0x41063A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6377 0x41063A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6378 0x41063A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6379 0x41063AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6380 0x41063B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6381 0x41063B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6382 0x41063B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6383 0x41063BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6384 0x41063C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6385 0x41063C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6386 0x41063C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6387 0x41063CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6388 0x41063D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6389 0x41063D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6390 0x41063D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6391 0x41063DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6392 0x41063E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6393 0x41063E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6394 0x41063E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6395 0x41063EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6396 0x41063F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6397 0x41063F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6398 0x41063F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6399 0x41063FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6400 0x4106400 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6401 0x4106404 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6402 0x4106408 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6403 0x410640C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6404 0x4106410 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6405 0x4106414 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6406 0x4106418 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6407 0x410641C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6408 0x4106420 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6409 0x4106424 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6410 0x4106428 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6411 0x410642C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6412 0x4106430 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6413 0x4106434 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6414 0x4106438 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6415 0x410643C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6416 0x4106440 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6417 0x4106444 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6418 0x4106448 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6419 0x410644C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6420 0x4106450 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6421 0x4106454 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6422 0x4106458 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6423 0x410645C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6424 0x4106460 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6425 0x4106464 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6426 0x4106468 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6427 0x410646C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6428 0x4106470 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6429 0x4106474 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6430 0x4106478 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6431 0x410647C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6432 0x4106480 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6433 0x4106484 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6434 0x4106488 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6435 0x410648C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6436 0x4106490 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6437 0x4106494 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6438 0x4106498 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6439 0x410649C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6440 0x41064A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6441 0x41064A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6442 0x41064A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6443 0x41064AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6444 0x41064B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6445 0x41064B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6446 0x41064B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6447 0x41064BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6448 0x41064C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6449 0x41064C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6450 0x41064C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6451 0x41064CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6452 0x41064D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6453 0x41064D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6454 0x41064D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6455 0x41064DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6456 0x41064E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6457 0x41064E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6458 0x41064E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6459 0x41064EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6460 0x41064F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6461 0x41064F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6462 0x41064F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6463 0x41064FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6464 0x4106500 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6465 0x4106504 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6466 0x4106508 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6467 0x410650C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6468 0x4106510 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6469 0x4106514 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6470 0x4106518 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6471 0x410651C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6472 0x4106520 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6473 0x4106524 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6474 0x4106528 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6475 0x410652C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6476 0x4106530 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6477 0x4106534 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6478 0x4106538 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6479 0x410653C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6480 0x4106540 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6481 0x4106544 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6482 0x4106548 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6483 0x410654C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6484 0x4106550 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6485 0x4106554 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6486 0x4106558 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6487 0x410655C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6488 0x4106560 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6489 0x4106564 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6490 0x4106568 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6491 0x410656C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6492 0x4106570 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6493 0x4106574 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6494 0x4106578 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6495 0x410657C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6496 0x4106580 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6497 0x4106584 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6498 0x4106588 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6499 0x410658C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6500 0x4106590 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6501 0x4106594 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6502 0x4106598 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6503 0x410659C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6504 0x41065A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6505 0x41065A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6506 0x41065A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6507 0x41065AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6508 0x41065B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6509 0x41065B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6510 0x41065B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6511 0x41065BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6512 0x41065C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6513 0x41065C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6514 0x41065C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6515 0x41065CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6516 0x41065D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6517 0x41065D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6518 0x41065D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6519 0x41065DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6520 0x41065E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6521 0x41065E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6522 0x41065E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6523 0x41065EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6524 0x41065F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6525 0x41065F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6526 0x41065F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6527 0x41065FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6528 0x4106600 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6529 0x4106604 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6530 0x4106608 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6531 0x410660C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6532 0x4106610 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6533 0x4106614 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6534 0x4106618 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6535 0x410661C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6536 0x4106620 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6537 0x4106624 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6538 0x4106628 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6539 0x410662C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6540 0x4106630 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6541 0x4106634 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6542 0x4106638 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6543 0x410663C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6544 0x4106640 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6545 0x4106644 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6546 0x4106648 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6547 0x410664C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6548 0x4106650 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6549 0x4106654 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6550 0x4106658 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6551 0x410665C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6552 0x4106660 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6553 0x4106664 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6554 0x4106668 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6555 0x410666C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6556 0x4106670 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6557 0x4106674 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6558 0x4106678 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6559 0x410667C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6560 0x4106680 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6561 0x4106684 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6562 0x4106688 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6563 0x410668C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6564 0x4106690 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6565 0x4106694 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6566 0x4106698 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6567 0x410669C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6568 0x41066A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6569 0x41066A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6570 0x41066A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6571 0x41066AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6572 0x41066B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6573 0x41066B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6574 0x41066B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6575 0x41066BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6576 0x41066C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6577 0x41066C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6578 0x41066C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6579 0x41066CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6580 0x41066D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6581 0x41066D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6582 0x41066D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6583 0x41066DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6584 0x41066E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6585 0x41066E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6586 0x41066E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6587 0x41066EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6588 0x41066F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6589 0x41066F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6590 0x41066F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6591 0x41066FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6592 0x4106700 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6593 0x4106704 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6594 0x4106708 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6595 0x410670C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6596 0x4106710 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6597 0x4106714 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6598 0x4106718 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6599 0x410671C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6600 0x4106720 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6601 0x4106724 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6602 0x4106728 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6603 0x410672C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6604 0x4106730 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6605 0x4106734 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6606 0x4106738 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6607 0x410673C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6608 0x4106740 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6609 0x4106744 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6610 0x4106748 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6611 0x410674C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6612 0x4106750 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6613 0x4106754 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6614 0x4106758 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6615 0x410675C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6616 0x4106760 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6617 0x4106764 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6618 0x4106768 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6619 0x410676C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6620 0x4106770 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6621 0x4106774 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6622 0x4106778 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6623 0x410677C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6624 0x4106780 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6625 0x4106784 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6626 0x4106788 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6627 0x410678C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6628 0x4106790 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6629 0x4106794 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6630 0x4106798 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6631 0x410679C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6632 0x41067A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6633 0x41067A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6634 0x41067A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6635 0x41067AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6636 0x41067B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6637 0x41067B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6638 0x41067B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6639 0x41067BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6640 0x41067C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6641 0x41067C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6642 0x41067C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6643 0x41067CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6644 0x41067D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6645 0x41067D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6646 0x41067D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6647 0x41067DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6648 0x41067E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6649 0x41067E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6650 0x41067E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6651 0x41067EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6652 0x41067F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6653 0x41067F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6654 0x41067F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6655 0x41067FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6656 0x4106800 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6657 0x4106804 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6658 0x4106808 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6659 0x410680C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6660 0x4106810 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6661 0x4106814 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6662 0x4106818 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6663 0x410681C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6664 0x4106820 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6665 0x4106824 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6666 0x4106828 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6667 0x410682C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6668 0x4106830 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6669 0x4106834 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6670 0x4106838 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6671 0x410683C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6672 0x4106840 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6673 0x4106844 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6674 0x4106848 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6675 0x410684C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6676 0x4106850 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6677 0x4106854 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6678 0x4106858 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6679 0x410685C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6680 0x4106860 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6681 0x4106864 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6682 0x4106868 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6683 0x410686C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6684 0x4106870 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6685 0x4106874 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6686 0x4106878 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6687 0x410687C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6688 0x4106880 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6689 0x4106884 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6690 0x4106888 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6691 0x410688C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6692 0x4106890 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6693 0x4106894 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6694 0x4106898 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6695 0x410689C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6696 0x41068A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6697 0x41068A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6698 0x41068A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6699 0x41068AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6700 0x41068B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6701 0x41068B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6702 0x41068B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6703 0x41068BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6704 0x41068C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6705 0x41068C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6706 0x41068C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6707 0x41068CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6708 0x41068D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6709 0x41068D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6710 0x41068D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6711 0x41068DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6712 0x41068E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6713 0x41068E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6714 0x41068E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6715 0x41068EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6716 0x41068F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6717 0x41068F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6718 0x41068F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6719 0x41068FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6720 0x4106900 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6721 0x4106904 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6722 0x4106908 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6723 0x410690C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6724 0x4106910 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6725 0x4106914 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6726 0x4106918 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6727 0x410691C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6728 0x4106920 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6729 0x4106924 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6730 0x4106928 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6731 0x410692C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6732 0x4106930 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6733 0x4106934 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6734 0x4106938 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6735 0x410693C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6736 0x4106940 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6737 0x4106944 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6738 0x4106948 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6739 0x410694C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6740 0x4106950 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6741 0x4106954 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6742 0x4106958 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6743 0x410695C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6744 0x4106960 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6745 0x4106964 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6746 0x4106968 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6747 0x410696C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6748 0x4106970 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6749 0x4106974 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6750 0x4106978 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6751 0x410697C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6752 0x4106980 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6753 0x4106984 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6754 0x4106988 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6755 0x410698C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6756 0x4106990 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6757 0x4106994 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6758 0x4106998 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6759 0x410699C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6760 0x41069A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6761 0x41069A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6762 0x41069A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6763 0x41069AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6764 0x41069B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6765 0x41069B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6766 0x41069B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6767 0x41069BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6768 0x41069C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6769 0x41069C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6770 0x41069C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6771 0x41069CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6772 0x41069D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6773 0x41069D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6774 0x41069D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6775 0x41069DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6776 0x41069E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6777 0x41069E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6778 0x41069E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6779 0x41069EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6780 0x41069F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6781 0x41069F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6782 0x41069F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6783 0x41069FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6784 0x4106A00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6785 0x4106A04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6786 0x4106A08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6787 0x4106A0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6788 0x4106A10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6789 0x4106A14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6790 0x4106A18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6791 0x4106A1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6792 0x4106A20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6793 0x4106A24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6794 0x4106A28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6795 0x4106A2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6796 0x4106A30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6797 0x4106A34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6798 0x4106A38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6799 0x4106A3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6800 0x4106A40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6801 0x4106A44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6802 0x4106A48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6803 0x4106A4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6804 0x4106A50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6805 0x4106A54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6806 0x4106A58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6807 0x4106A5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6808 0x4106A60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6809 0x4106A64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6810 0x4106A68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6811 0x4106A6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6812 0x4106A70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6813 0x4106A74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6814 0x4106A78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6815 0x4106A7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6816 0x4106A80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6817 0x4106A84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6818 0x4106A88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6819 0x4106A8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6820 0x4106A90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6821 0x4106A94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6822 0x4106A98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6823 0x4106A9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6824 0x4106AA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6825 0x4106AA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6826 0x4106AA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6827 0x4106AAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6828 0x4106AB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6829 0x4106AB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6830 0x4106AB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6831 0x4106ABC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6832 0x4106AC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6833 0x4106AC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6834 0x4106AC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6835 0x4106ACC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6836 0x4106AD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6837 0x4106AD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6838 0x4106AD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6839 0x4106ADC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6840 0x4106AE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6841 0x4106AE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6842 0x4106AE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6843 0x4106AEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6844 0x4106AF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6845 0x4106AF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6846 0x4106AF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6847 0x4106AFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6848 0x4106B00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6849 0x4106B04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6850 0x4106B08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6851 0x4106B0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6852 0x4106B10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6853 0x4106B14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6854 0x4106B18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6855 0x4106B1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6856 0x4106B20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6857 0x4106B24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6858 0x4106B28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6859 0x4106B2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6860 0x4106B30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6861 0x4106B34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6862 0x4106B38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6863 0x4106B3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6864 0x4106B40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6865 0x4106B44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6866 0x4106B48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6867 0x4106B4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6868 0x4106B50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6869 0x4106B54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6870 0x4106B58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6871 0x4106B5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6872 0x4106B60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6873 0x4106B64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6874 0x4106B68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6875 0x4106B6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6876 0x4106B70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6877 0x4106B74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6878 0x4106B78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6879 0x4106B7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6880 0x4106B80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6881 0x4106B84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6882 0x4106B88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6883 0x4106B8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6884 0x4106B90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6885 0x4106B94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6886 0x4106B98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6887 0x4106B9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6888 0x4106BA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6889 0x4106BA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6890 0x4106BA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6891 0x4106BAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6892 0x4106BB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6893 0x4106BB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6894 0x4106BB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6895 0x4106BBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6896 0x4106BC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6897 0x4106BC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6898 0x4106BC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6899 0x4106BCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6900 0x4106BD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6901 0x4106BD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6902 0x4106BD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6903 0x4106BDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6904 0x4106BE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6905 0x4106BE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6906 0x4106BE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6907 0x4106BEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6908 0x4106BF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6909 0x4106BF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6910 0x4106BF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6911 0x4106BFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6912 0x4106C00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6913 0x4106C04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6914 0x4106C08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6915 0x4106C0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6916 0x4106C10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6917 0x4106C14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6918 0x4106C18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6919 0x4106C1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6920 0x4106C20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6921 0x4106C24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6922 0x4106C28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6923 0x4106C2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6924 0x4106C30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6925 0x4106C34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6926 0x4106C38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6927 0x4106C3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6928 0x4106C40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6929 0x4106C44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6930 0x4106C48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6931 0x4106C4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6932 0x4106C50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6933 0x4106C54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6934 0x4106C58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6935 0x4106C5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6936 0x4106C60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6937 0x4106C64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6938 0x4106C68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6939 0x4106C6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6940 0x4106C70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6941 0x4106C74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6942 0x4106C78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6943 0x4106C7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6944 0x4106C80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6945 0x4106C84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6946 0x4106C88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6947 0x4106C8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6948 0x4106C90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6949 0x4106C94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6950 0x4106C98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6951 0x4106C9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6952 0x4106CA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6953 0x4106CA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6954 0x4106CA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6955 0x4106CAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6956 0x4106CB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6957 0x4106CB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6958 0x4106CB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6959 0x4106CBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6960 0x4106CC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6961 0x4106CC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6962 0x4106CC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6963 0x4106CCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6964 0x4106CD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6965 0x4106CD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6966 0x4106CD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6967 0x4106CDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6968 0x4106CE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6969 0x4106CE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6970 0x4106CE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6971 0x4106CEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6972 0x4106CF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6973 0x4106CF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6974 0x4106CF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6975 0x4106CFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6976 0x4106D00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6977 0x4106D04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6978 0x4106D08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6979 0x4106D0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6980 0x4106D10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6981 0x4106D14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6982 0x4106D18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6983 0x4106D1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6984 0x4106D20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6985 0x4106D24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6986 0x4106D28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6987 0x4106D2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6988 0x4106D30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6989 0x4106D34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6990 0x4106D38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6991 0x4106D3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6992 0x4106D40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6993 0x4106D44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6994 0x4106D48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6995 0x4106D4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6996 0x4106D50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6997 0x4106D54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6998 0x4106D58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_6999 0x4106D5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7000 0x4106D60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7001 0x4106D64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7002 0x4106D68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7003 0x4106D6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7004 0x4106D70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7005 0x4106D74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7006 0x4106D78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7007 0x4106D7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7008 0x4106D80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7009 0x4106D84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7010 0x4106D88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7011 0x4106D8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7012 0x4106D90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7013 0x4106D94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7014 0x4106D98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7015 0x4106D9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7016 0x4106DA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7017 0x4106DA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7018 0x4106DA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7019 0x4106DAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7020 0x4106DB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7021 0x4106DB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7022 0x4106DB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7023 0x4106DBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7024 0x4106DC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7025 0x4106DC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7026 0x4106DC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7027 0x4106DCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7028 0x4106DD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7029 0x4106DD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7030 0x4106DD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7031 0x4106DDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7032 0x4106DE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7033 0x4106DE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7034 0x4106DE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7035 0x4106DEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7036 0x4106DF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7037 0x4106DF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7038 0x4106DF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7039 0x4106DFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7040 0x4106E00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7041 0x4106E04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7042 0x4106E08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7043 0x4106E0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7044 0x4106E10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7045 0x4106E14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7046 0x4106E18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7047 0x4106E1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7048 0x4106E20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7049 0x4106E24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7050 0x4106E28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7051 0x4106E2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7052 0x4106E30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7053 0x4106E34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7054 0x4106E38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7055 0x4106E3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7056 0x4106E40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7057 0x4106E44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7058 0x4106E48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7059 0x4106E4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7060 0x4106E50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7061 0x4106E54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7062 0x4106E58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7063 0x4106E5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7064 0x4106E60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7065 0x4106E64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7066 0x4106E68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7067 0x4106E6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7068 0x4106E70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7069 0x4106E74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7070 0x4106E78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7071 0x4106E7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7072 0x4106E80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7073 0x4106E84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7074 0x4106E88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7075 0x4106E8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7076 0x4106E90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7077 0x4106E94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7078 0x4106E98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7079 0x4106E9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7080 0x4106EA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7081 0x4106EA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7082 0x4106EA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7083 0x4106EAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7084 0x4106EB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7085 0x4106EB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7086 0x4106EB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7087 0x4106EBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7088 0x4106EC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7089 0x4106EC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7090 0x4106EC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7091 0x4106ECC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7092 0x4106ED0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7093 0x4106ED4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7094 0x4106ED8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7095 0x4106EDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7096 0x4106EE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7097 0x4106EE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7098 0x4106EE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7099 0x4106EEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7100 0x4106EF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7101 0x4106EF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7102 0x4106EF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7103 0x4106EFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7104 0x4106F00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7105 0x4106F04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7106 0x4106F08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7107 0x4106F0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7108 0x4106F10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7109 0x4106F14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7110 0x4106F18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7111 0x4106F1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7112 0x4106F20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7113 0x4106F24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7114 0x4106F28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7115 0x4106F2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7116 0x4106F30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7117 0x4106F34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7118 0x4106F38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7119 0x4106F3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7120 0x4106F40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7121 0x4106F44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7122 0x4106F48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7123 0x4106F4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7124 0x4106F50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7125 0x4106F54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7126 0x4106F58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7127 0x4106F5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7128 0x4106F60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7129 0x4106F64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7130 0x4106F68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7131 0x4106F6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7132 0x4106F70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7133 0x4106F74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7134 0x4106F78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7135 0x4106F7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7136 0x4106F80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7137 0x4106F84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7138 0x4106F88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7139 0x4106F8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7140 0x4106F90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7141 0x4106F94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7142 0x4106F98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7143 0x4106F9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7144 0x4106FA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7145 0x4106FA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7146 0x4106FA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7147 0x4106FAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7148 0x4106FB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7149 0x4106FB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7150 0x4106FB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7151 0x4106FBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7152 0x4106FC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7153 0x4106FC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7154 0x4106FC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7155 0x4106FCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7156 0x4106FD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7157 0x4106FD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7158 0x4106FD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7159 0x4106FDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7160 0x4106FE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7161 0x4106FE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7162 0x4106FE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7163 0x4106FEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7164 0x4106FF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7165 0x4106FF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7166 0x4106FF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7167 0x4106FFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7168 0x4107000 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7169 0x4107004 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7170 0x4107008 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7171 0x410700C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7172 0x4107010 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7173 0x4107014 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7174 0x4107018 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7175 0x410701C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7176 0x4107020 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7177 0x4107024 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7178 0x4107028 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7179 0x410702C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7180 0x4107030 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7181 0x4107034 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7182 0x4107038 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7183 0x410703C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7184 0x4107040 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7185 0x4107044 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7186 0x4107048 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7187 0x410704C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7188 0x4107050 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7189 0x4107054 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7190 0x4107058 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7191 0x410705C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7192 0x4107060 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7193 0x4107064 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7194 0x4107068 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7195 0x410706C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7196 0x4107070 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7197 0x4107074 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7198 0x4107078 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7199 0x410707C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7200 0x4107080 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7201 0x4107084 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7202 0x4107088 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7203 0x410708C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7204 0x4107090 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7205 0x4107094 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7206 0x4107098 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7207 0x410709C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7208 0x41070A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7209 0x41070A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7210 0x41070A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7211 0x41070AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7212 0x41070B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7213 0x41070B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7214 0x41070B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7215 0x41070BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7216 0x41070C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7217 0x41070C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7218 0x41070C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7219 0x41070CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7220 0x41070D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7221 0x41070D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7222 0x41070D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7223 0x41070DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7224 0x41070E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7225 0x41070E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7226 0x41070E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7227 0x41070EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7228 0x41070F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7229 0x41070F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7230 0x41070F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7231 0x41070FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7232 0x4107100 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7233 0x4107104 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7234 0x4107108 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7235 0x410710C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7236 0x4107110 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7237 0x4107114 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7238 0x4107118 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7239 0x410711C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7240 0x4107120 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7241 0x4107124 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7242 0x4107128 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7243 0x410712C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7244 0x4107130 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7245 0x4107134 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7246 0x4107138 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7247 0x410713C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7248 0x4107140 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7249 0x4107144 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7250 0x4107148 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7251 0x410714C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7252 0x4107150 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7253 0x4107154 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7254 0x4107158 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7255 0x410715C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7256 0x4107160 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7257 0x4107164 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7258 0x4107168 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7259 0x410716C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7260 0x4107170 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7261 0x4107174 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7262 0x4107178 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7263 0x410717C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7264 0x4107180 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7265 0x4107184 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7266 0x4107188 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7267 0x410718C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7268 0x4107190 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7269 0x4107194 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7270 0x4107198 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7271 0x410719C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7272 0x41071A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7273 0x41071A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7274 0x41071A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7275 0x41071AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7276 0x41071B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7277 0x41071B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7278 0x41071B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7279 0x41071BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7280 0x41071C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7281 0x41071C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7282 0x41071C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7283 0x41071CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7284 0x41071D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7285 0x41071D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7286 0x41071D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7287 0x41071DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7288 0x41071E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7289 0x41071E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7290 0x41071E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7291 0x41071EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7292 0x41071F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7293 0x41071F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7294 0x41071F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7295 0x41071FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7296 0x4107200 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7297 0x4107204 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7298 0x4107208 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7299 0x410720C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7300 0x4107210 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7301 0x4107214 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7302 0x4107218 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7303 0x410721C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7304 0x4107220 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7305 0x4107224 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7306 0x4107228 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7307 0x410722C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7308 0x4107230 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7309 0x4107234 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7310 0x4107238 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7311 0x410723C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7312 0x4107240 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7313 0x4107244 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7314 0x4107248 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7315 0x410724C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7316 0x4107250 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7317 0x4107254 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7318 0x4107258 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7319 0x410725C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7320 0x4107260 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7321 0x4107264 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7322 0x4107268 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7323 0x410726C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7324 0x4107270 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7325 0x4107274 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7326 0x4107278 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7327 0x410727C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7328 0x4107280 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7329 0x4107284 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7330 0x4107288 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7331 0x410728C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7332 0x4107290 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7333 0x4107294 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7334 0x4107298 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7335 0x410729C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7336 0x41072A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7337 0x41072A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7338 0x41072A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7339 0x41072AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7340 0x41072B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7341 0x41072B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7342 0x41072B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7343 0x41072BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7344 0x41072C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7345 0x41072C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7346 0x41072C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7347 0x41072CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7348 0x41072D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7349 0x41072D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7350 0x41072D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7351 0x41072DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7352 0x41072E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7353 0x41072E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7354 0x41072E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7355 0x41072EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7356 0x41072F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7357 0x41072F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7358 0x41072F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7359 0x41072FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7360 0x4107300 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7361 0x4107304 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7362 0x4107308 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7363 0x410730C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7364 0x4107310 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7365 0x4107314 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7366 0x4107318 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7367 0x410731C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7368 0x4107320 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7369 0x4107324 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7370 0x4107328 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7371 0x410732C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7372 0x4107330 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7373 0x4107334 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7374 0x4107338 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7375 0x410733C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7376 0x4107340 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7377 0x4107344 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7378 0x4107348 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7379 0x410734C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7380 0x4107350 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7381 0x4107354 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7382 0x4107358 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7383 0x410735C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7384 0x4107360 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7385 0x4107364 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7386 0x4107368 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7387 0x410736C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7388 0x4107370 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7389 0x4107374 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7390 0x4107378 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7391 0x410737C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7392 0x4107380 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7393 0x4107384 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7394 0x4107388 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7395 0x410738C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7396 0x4107390 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7397 0x4107394 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7398 0x4107398 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7399 0x410739C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7400 0x41073A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7401 0x41073A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7402 0x41073A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7403 0x41073AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7404 0x41073B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7405 0x41073B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7406 0x41073B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7407 0x41073BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7408 0x41073C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7409 0x41073C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7410 0x41073C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7411 0x41073CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7412 0x41073D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7413 0x41073D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7414 0x41073D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7415 0x41073DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7416 0x41073E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7417 0x41073E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7418 0x41073E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7419 0x41073EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7420 0x41073F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7421 0x41073F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7422 0x41073F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7423 0x41073FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7424 0x4107400 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7425 0x4107404 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7426 0x4107408 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7427 0x410740C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7428 0x4107410 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7429 0x4107414 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7430 0x4107418 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7431 0x410741C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7432 0x4107420 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7433 0x4107424 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7434 0x4107428 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7435 0x410742C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7436 0x4107430 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7437 0x4107434 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7438 0x4107438 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7439 0x410743C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7440 0x4107440 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7441 0x4107444 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7442 0x4107448 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7443 0x410744C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7444 0x4107450 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7445 0x4107454 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7446 0x4107458 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7447 0x410745C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7448 0x4107460 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7449 0x4107464 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7450 0x4107468 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7451 0x410746C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7452 0x4107470 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7453 0x4107474 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7454 0x4107478 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7455 0x410747C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7456 0x4107480 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7457 0x4107484 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7458 0x4107488 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7459 0x410748C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7460 0x4107490 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7461 0x4107494 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7462 0x4107498 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7463 0x410749C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7464 0x41074A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7465 0x41074A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7466 0x41074A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7467 0x41074AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7468 0x41074B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7469 0x41074B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7470 0x41074B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7471 0x41074BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7472 0x41074C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7473 0x41074C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7474 0x41074C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7475 0x41074CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7476 0x41074D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7477 0x41074D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7478 0x41074D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7479 0x41074DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7480 0x41074E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7481 0x41074E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7482 0x41074E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7483 0x41074EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7484 0x41074F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7485 0x41074F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7486 0x41074F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7487 0x41074FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7488 0x4107500 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7489 0x4107504 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7490 0x4107508 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7491 0x410750C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7492 0x4107510 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7493 0x4107514 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7494 0x4107518 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7495 0x410751C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7496 0x4107520 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7497 0x4107524 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7498 0x4107528 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7499 0x410752C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7500 0x4107530 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7501 0x4107534 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7502 0x4107538 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7503 0x410753C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7504 0x4107540 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7505 0x4107544 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7506 0x4107548 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7507 0x410754C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7508 0x4107550 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7509 0x4107554 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7510 0x4107558 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7511 0x410755C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7512 0x4107560 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7513 0x4107564 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7514 0x4107568 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7515 0x410756C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7516 0x4107570 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7517 0x4107574 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7518 0x4107578 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7519 0x410757C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7520 0x4107580 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7521 0x4107584 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7522 0x4107588 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7523 0x410758C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7524 0x4107590 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7525 0x4107594 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7526 0x4107598 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7527 0x410759C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7528 0x41075A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7529 0x41075A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7530 0x41075A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7531 0x41075AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7532 0x41075B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7533 0x41075B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7534 0x41075B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7535 0x41075BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7536 0x41075C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7537 0x41075C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7538 0x41075C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7539 0x41075CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7540 0x41075D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7541 0x41075D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7542 0x41075D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7543 0x41075DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7544 0x41075E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7545 0x41075E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7546 0x41075E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7547 0x41075EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7548 0x41075F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7549 0x41075F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7550 0x41075F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7551 0x41075FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7552 0x4107600 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7553 0x4107604 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7554 0x4107608 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7555 0x410760C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7556 0x4107610 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7557 0x4107614 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7558 0x4107618 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7559 0x410761C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7560 0x4107620 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7561 0x4107624 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7562 0x4107628 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7563 0x410762C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7564 0x4107630 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7565 0x4107634 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7566 0x4107638 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7567 0x410763C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7568 0x4107640 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7569 0x4107644 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7570 0x4107648 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7571 0x410764C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7572 0x4107650 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7573 0x4107654 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7574 0x4107658 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7575 0x410765C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7576 0x4107660 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7577 0x4107664 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7578 0x4107668 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7579 0x410766C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7580 0x4107670 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7581 0x4107674 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7582 0x4107678 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7583 0x410767C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7584 0x4107680 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7585 0x4107684 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7586 0x4107688 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7587 0x410768C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7588 0x4107690 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7589 0x4107694 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7590 0x4107698 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7591 0x410769C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7592 0x41076A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7593 0x41076A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7594 0x41076A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7595 0x41076AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7596 0x41076B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7597 0x41076B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7598 0x41076B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7599 0x41076BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7600 0x41076C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7601 0x41076C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7602 0x41076C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7603 0x41076CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7604 0x41076D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7605 0x41076D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7606 0x41076D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7607 0x41076DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7608 0x41076E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7609 0x41076E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7610 0x41076E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7611 0x41076EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7612 0x41076F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7613 0x41076F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7614 0x41076F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7615 0x41076FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7616 0x4107700 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7617 0x4107704 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7618 0x4107708 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7619 0x410770C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7620 0x4107710 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7621 0x4107714 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7622 0x4107718 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7623 0x410771C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7624 0x4107720 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7625 0x4107724 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7626 0x4107728 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7627 0x410772C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7628 0x4107730 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7629 0x4107734 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7630 0x4107738 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7631 0x410773C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7632 0x4107740 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7633 0x4107744 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7634 0x4107748 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7635 0x410774C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7636 0x4107750 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7637 0x4107754 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7638 0x4107758 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7639 0x410775C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7640 0x4107760 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7641 0x4107764 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7642 0x4107768 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7643 0x410776C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7644 0x4107770 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7645 0x4107774 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7646 0x4107778 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7647 0x410777C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7648 0x4107780 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7649 0x4107784 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7650 0x4107788 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7651 0x410778C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7652 0x4107790 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7653 0x4107794 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7654 0x4107798 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7655 0x410779C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7656 0x41077A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7657 0x41077A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7658 0x41077A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7659 0x41077AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7660 0x41077B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7661 0x41077B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7662 0x41077B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7663 0x41077BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7664 0x41077C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7665 0x41077C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7666 0x41077C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7667 0x41077CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7668 0x41077D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7669 0x41077D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7670 0x41077D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7671 0x41077DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7672 0x41077E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7673 0x41077E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7674 0x41077E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7675 0x41077EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7676 0x41077F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7677 0x41077F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7678 0x41077F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7679 0x41077FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7680 0x4107800 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7681 0x4107804 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7682 0x4107808 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7683 0x410780C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7684 0x4107810 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7685 0x4107814 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7686 0x4107818 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7687 0x410781C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7688 0x4107820 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7689 0x4107824 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7690 0x4107828 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7691 0x410782C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7692 0x4107830 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7693 0x4107834 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7694 0x4107838 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7695 0x410783C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7696 0x4107840 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7697 0x4107844 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7698 0x4107848 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7699 0x410784C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7700 0x4107850 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7701 0x4107854 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7702 0x4107858 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7703 0x410785C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7704 0x4107860 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7705 0x4107864 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7706 0x4107868 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7707 0x410786C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7708 0x4107870 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7709 0x4107874 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7710 0x4107878 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7711 0x410787C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7712 0x4107880 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7713 0x4107884 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7714 0x4107888 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7715 0x410788C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7716 0x4107890 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7717 0x4107894 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7718 0x4107898 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7719 0x410789C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7720 0x41078A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7721 0x41078A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7722 0x41078A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7723 0x41078AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7724 0x41078B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7725 0x41078B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7726 0x41078B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7727 0x41078BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7728 0x41078C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7729 0x41078C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7730 0x41078C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7731 0x41078CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7732 0x41078D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7733 0x41078D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7734 0x41078D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7735 0x41078DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7736 0x41078E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7737 0x41078E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7738 0x41078E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7739 0x41078EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7740 0x41078F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7741 0x41078F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7742 0x41078F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7743 0x41078FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7744 0x4107900 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7745 0x4107904 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7746 0x4107908 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7747 0x410790C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7748 0x4107910 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7749 0x4107914 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7750 0x4107918 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7751 0x410791C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7752 0x4107920 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7753 0x4107924 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7754 0x4107928 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7755 0x410792C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7756 0x4107930 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7757 0x4107934 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7758 0x4107938 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7759 0x410793C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7760 0x4107940 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7761 0x4107944 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7762 0x4107948 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7763 0x410794C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7764 0x4107950 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7765 0x4107954 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7766 0x4107958 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7767 0x410795C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7768 0x4107960 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7769 0x4107964 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7770 0x4107968 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7771 0x410796C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7772 0x4107970 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7773 0x4107974 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7774 0x4107978 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7775 0x410797C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7776 0x4107980 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7777 0x4107984 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7778 0x4107988 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7779 0x410798C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7780 0x4107990 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7781 0x4107994 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7782 0x4107998 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7783 0x410799C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7784 0x41079A0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7785 0x41079A4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7786 0x41079A8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7787 0x41079AC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7788 0x41079B0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7789 0x41079B4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7790 0x41079B8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7791 0x41079BC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7792 0x41079C0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7793 0x41079C4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7794 0x41079C8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7795 0x41079CC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7796 0x41079D0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7797 0x41079D4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7798 0x41079D8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7799 0x41079DC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7800 0x41079E0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7801 0x41079E4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7802 0x41079E8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7803 0x41079EC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7804 0x41079F0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7805 0x41079F4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7806 0x41079F8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7807 0x41079FC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7808 0x4107A00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7809 0x4107A04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7810 0x4107A08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7811 0x4107A0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7812 0x4107A10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7813 0x4107A14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7814 0x4107A18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7815 0x4107A1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7816 0x4107A20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7817 0x4107A24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7818 0x4107A28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7819 0x4107A2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7820 0x4107A30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7821 0x4107A34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7822 0x4107A38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7823 0x4107A3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7824 0x4107A40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7825 0x4107A44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7826 0x4107A48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7827 0x4107A4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7828 0x4107A50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7829 0x4107A54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7830 0x4107A58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7831 0x4107A5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7832 0x4107A60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7833 0x4107A64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7834 0x4107A68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7835 0x4107A6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7836 0x4107A70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7837 0x4107A74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7838 0x4107A78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7839 0x4107A7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7840 0x4107A80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7841 0x4107A84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7842 0x4107A88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7843 0x4107A8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7844 0x4107A90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7845 0x4107A94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7846 0x4107A98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7847 0x4107A9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7848 0x4107AA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7849 0x4107AA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7850 0x4107AA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7851 0x4107AAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7852 0x4107AB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7853 0x4107AB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7854 0x4107AB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7855 0x4107ABC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7856 0x4107AC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7857 0x4107AC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7858 0x4107AC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7859 0x4107ACC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7860 0x4107AD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7861 0x4107AD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7862 0x4107AD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7863 0x4107ADC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7864 0x4107AE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7865 0x4107AE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7866 0x4107AE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7867 0x4107AEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7868 0x4107AF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7869 0x4107AF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7870 0x4107AF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7871 0x4107AFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7872 0x4107B00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7873 0x4107B04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7874 0x4107B08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7875 0x4107B0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7876 0x4107B10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7877 0x4107B14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7878 0x4107B18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7879 0x4107B1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7880 0x4107B20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7881 0x4107B24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7882 0x4107B28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7883 0x4107B2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7884 0x4107B30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7885 0x4107B34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7886 0x4107B38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7887 0x4107B3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7888 0x4107B40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7889 0x4107B44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7890 0x4107B48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7891 0x4107B4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7892 0x4107B50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7893 0x4107B54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7894 0x4107B58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7895 0x4107B5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7896 0x4107B60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7897 0x4107B64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7898 0x4107B68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7899 0x4107B6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7900 0x4107B70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7901 0x4107B74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7902 0x4107B78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7903 0x4107B7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7904 0x4107B80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7905 0x4107B84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7906 0x4107B88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7907 0x4107B8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7908 0x4107B90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7909 0x4107B94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7910 0x4107B98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7911 0x4107B9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7912 0x4107BA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7913 0x4107BA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7914 0x4107BA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7915 0x4107BAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7916 0x4107BB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7917 0x4107BB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7918 0x4107BB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7919 0x4107BBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7920 0x4107BC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7921 0x4107BC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7922 0x4107BC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7923 0x4107BCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7924 0x4107BD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7925 0x4107BD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7926 0x4107BD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7927 0x4107BDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7928 0x4107BE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7929 0x4107BE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7930 0x4107BE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7931 0x4107BEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7932 0x4107BF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7933 0x4107BF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7934 0x4107BF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7935 0x4107BFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7936 0x4107C00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7937 0x4107C04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7938 0x4107C08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7939 0x4107C0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7940 0x4107C10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7941 0x4107C14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7942 0x4107C18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7943 0x4107C1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7944 0x4107C20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7945 0x4107C24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7946 0x4107C28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7947 0x4107C2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7948 0x4107C30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7949 0x4107C34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7950 0x4107C38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7951 0x4107C3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7952 0x4107C40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7953 0x4107C44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7954 0x4107C48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7955 0x4107C4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7956 0x4107C50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7957 0x4107C54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7958 0x4107C58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7959 0x4107C5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7960 0x4107C60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7961 0x4107C64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7962 0x4107C68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7963 0x4107C6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7964 0x4107C70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7965 0x4107C74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7966 0x4107C78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7967 0x4107C7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7968 0x4107C80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7969 0x4107C84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7970 0x4107C88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7971 0x4107C8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7972 0x4107C90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7973 0x4107C94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7974 0x4107C98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7975 0x4107C9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7976 0x4107CA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7977 0x4107CA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7978 0x4107CA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7979 0x4107CAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7980 0x4107CB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7981 0x4107CB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7982 0x4107CB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7983 0x4107CBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7984 0x4107CC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7985 0x4107CC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7986 0x4107CC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7987 0x4107CCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7988 0x4107CD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7989 0x4107CD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7990 0x4107CD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7991 0x4107CDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7992 0x4107CE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7993 0x4107CE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7994 0x4107CE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7995 0x4107CEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7996 0x4107CF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7997 0x4107CF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7998 0x4107CF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_7999 0x4107CFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8000 0x4107D00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8001 0x4107D04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8002 0x4107D08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8003 0x4107D0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8004 0x4107D10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8005 0x4107D14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8006 0x4107D18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8007 0x4107D1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8008 0x4107D20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8009 0x4107D24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8010 0x4107D28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8011 0x4107D2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8012 0x4107D30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8013 0x4107D34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8014 0x4107D38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8015 0x4107D3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8016 0x4107D40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8017 0x4107D44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8018 0x4107D48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8019 0x4107D4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8020 0x4107D50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8021 0x4107D54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8022 0x4107D58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8023 0x4107D5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8024 0x4107D60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8025 0x4107D64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8026 0x4107D68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8027 0x4107D6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8028 0x4107D70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8029 0x4107D74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8030 0x4107D78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8031 0x4107D7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8032 0x4107D80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8033 0x4107D84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8034 0x4107D88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8035 0x4107D8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8036 0x4107D90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8037 0x4107D94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8038 0x4107D98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8039 0x4107D9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8040 0x4107DA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8041 0x4107DA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8042 0x4107DA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8043 0x4107DAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8044 0x4107DB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8045 0x4107DB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8046 0x4107DB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8047 0x4107DBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8048 0x4107DC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8049 0x4107DC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8050 0x4107DC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8051 0x4107DCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8052 0x4107DD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8053 0x4107DD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8054 0x4107DD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8055 0x4107DDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8056 0x4107DE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8057 0x4107DE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8058 0x4107DE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8059 0x4107DEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8060 0x4107DF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8061 0x4107DF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8062 0x4107DF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8063 0x4107DFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8064 0x4107E00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8065 0x4107E04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8066 0x4107E08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8067 0x4107E0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8068 0x4107E10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8069 0x4107E14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8070 0x4107E18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8071 0x4107E1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8072 0x4107E20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8073 0x4107E24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8074 0x4107E28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8075 0x4107E2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8076 0x4107E30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8077 0x4107E34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8078 0x4107E38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8079 0x4107E3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8080 0x4107E40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8081 0x4107E44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8082 0x4107E48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8083 0x4107E4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8084 0x4107E50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8085 0x4107E54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8086 0x4107E58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8087 0x4107E5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8088 0x4107E60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8089 0x4107E64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8090 0x4107E68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8091 0x4107E6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8092 0x4107E70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8093 0x4107E74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8094 0x4107E78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8095 0x4107E7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8096 0x4107E80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8097 0x4107E84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8098 0x4107E88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8099 0x4107E8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8100 0x4107E90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8101 0x4107E94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8102 0x4107E98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8103 0x4107E9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8104 0x4107EA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8105 0x4107EA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8106 0x4107EA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8107 0x4107EAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8108 0x4107EB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8109 0x4107EB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8110 0x4107EB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8111 0x4107EBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8112 0x4107EC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8113 0x4107EC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8114 0x4107EC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8115 0x4107ECC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8116 0x4107ED0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8117 0x4107ED4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8118 0x4107ED8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8119 0x4107EDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8120 0x4107EE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8121 0x4107EE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8122 0x4107EE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8123 0x4107EEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8124 0x4107EF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8125 0x4107EF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8126 0x4107EF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8127 0x4107EFC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8128 0x4107F00 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8129 0x4107F04 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8130 0x4107F08 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8131 0x4107F0C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8132 0x4107F10 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8133 0x4107F14 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8134 0x4107F18 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8135 0x4107F1C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8136 0x4107F20 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8137 0x4107F24 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8138 0x4107F28 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8139 0x4107F2C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8140 0x4107F30 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8141 0x4107F34 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8142 0x4107F38 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8143 0x4107F3C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8144 0x4107F40 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8145 0x4107F44 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8146 0x4107F48 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8147 0x4107F4C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8148 0x4107F50 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8149 0x4107F54 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8150 0x4107F58 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8151 0x4107F5C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8152 0x4107F60 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8153 0x4107F64 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8154 0x4107F68 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8155 0x4107F6C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8156 0x4107F70 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8157 0x4107F74 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8158 0x4107F78 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8159 0x4107F7C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8160 0x4107F80 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8161 0x4107F84 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8162 0x4107F88 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8163 0x4107F8C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8164 0x4107F90 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8165 0x4107F94 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8166 0x4107F98 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8167 0x4107F9C + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8168 0x4107FA0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8169 0x4107FA4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8170 0x4107FA8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8171 0x4107FAC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8172 0x4107FB0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8173 0x4107FB4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8174 0x4107FB8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8175 0x4107FBC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8176 0x4107FC0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8177 0x4107FC4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8178 0x4107FC8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8179 0x4107FCC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8180 0x4107FD0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8181 0x4107FD4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8182 0x4107FD8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8183 0x4107FDC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8184 0x4107FE0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8185 0x4107FE4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8186 0x4107FE8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8187 0x4107FEC + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8188 0x4107FF0 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8189 0x4107FF4 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8190 0x4107FF8 + +#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_8191 0x4107FFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_0 0x4108000 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1 0x4108004 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2 0x4108008 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_3 0x410800C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_4 0x4108010 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_5 0x4108014 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_6 0x4108018 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_7 0x410801C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_8 0x4108020 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_9 0x4108024 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_10 0x4108028 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_11 0x410802C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_12 0x4108030 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_13 0x4108034 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_14 0x4108038 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_15 0x410803C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_16 0x4108040 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_17 0x4108044 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_18 0x4108048 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_19 0x410804C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_20 0x4108050 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_21 0x4108054 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_22 0x4108058 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_23 0x410805C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_24 0x4108060 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_25 0x4108064 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_26 0x4108068 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_27 0x410806C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_28 0x4108070 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_29 0x4108074 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_30 0x4108078 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_31 0x410807C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_32 0x4108080 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_33 0x4108084 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_34 0x4108088 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_35 0x410808C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_36 0x4108090 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_37 0x4108094 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_38 0x4108098 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_39 0x410809C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_40 0x41080A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_41 0x41080A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_42 0x41080A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_43 0x41080AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_44 0x41080B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_45 0x41080B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_46 0x41080B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_47 0x41080BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_48 0x41080C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_49 0x41080C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_50 0x41080C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_51 0x41080CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_52 0x41080D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_53 0x41080D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_54 0x41080D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_55 0x41080DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_56 0x41080E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_57 0x41080E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_58 0x41080E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_59 0x41080EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_60 0x41080F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_61 0x41080F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_62 0x41080F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_63 0x41080FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_64 0x4108100 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_65 0x4108104 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_66 0x4108108 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_67 0x410810C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_68 0x4108110 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_69 0x4108114 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_70 0x4108118 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_71 0x410811C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_72 0x4108120 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_73 0x4108124 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_74 0x4108128 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_75 0x410812C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_76 0x4108130 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_77 0x4108134 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_78 0x4108138 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_79 0x410813C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_80 0x4108140 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_81 0x4108144 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_82 0x4108148 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_83 0x410814C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_84 0x4108150 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_85 0x4108154 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_86 0x4108158 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_87 0x410815C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_88 0x4108160 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_89 0x4108164 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_90 0x4108168 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_91 0x410816C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_92 0x4108170 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_93 0x4108174 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_94 0x4108178 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_95 0x410817C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_96 0x4108180 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_97 0x4108184 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_98 0x4108188 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_99 0x410818C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_100 0x4108190 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_101 0x4108194 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_102 0x4108198 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_103 0x410819C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_104 0x41081A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_105 0x41081A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_106 0x41081A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_107 0x41081AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_108 0x41081B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_109 0x41081B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_110 0x41081B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_111 0x41081BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_112 0x41081C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_113 0x41081C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_114 0x41081C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_115 0x41081CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_116 0x41081D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_117 0x41081D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_118 0x41081D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_119 0x41081DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_120 0x41081E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_121 0x41081E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_122 0x41081E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_123 0x41081EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_124 0x41081F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_125 0x41081F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_126 0x41081F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_127 0x41081FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_128 0x4108200 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_129 0x4108204 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_130 0x4108208 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_131 0x410820C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_132 0x4108210 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_133 0x4108214 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_134 0x4108218 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_135 0x410821C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_136 0x4108220 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_137 0x4108224 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_138 0x4108228 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_139 0x410822C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_140 0x4108230 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_141 0x4108234 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_142 0x4108238 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_143 0x410823C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_144 0x4108240 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_145 0x4108244 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_146 0x4108248 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_147 0x410824C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_148 0x4108250 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_149 0x4108254 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_150 0x4108258 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_151 0x410825C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_152 0x4108260 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_153 0x4108264 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_154 0x4108268 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_155 0x410826C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_156 0x4108270 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_157 0x4108274 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_158 0x4108278 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_159 0x410827C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_160 0x4108280 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_161 0x4108284 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_162 0x4108288 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_163 0x410828C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_164 0x4108290 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_165 0x4108294 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_166 0x4108298 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_167 0x410829C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_168 0x41082A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_169 0x41082A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_170 0x41082A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_171 0x41082AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_172 0x41082B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_173 0x41082B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_174 0x41082B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_175 0x41082BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_176 0x41082C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_177 0x41082C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_178 0x41082C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_179 0x41082CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_180 0x41082D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_181 0x41082D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_182 0x41082D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_183 0x41082DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_184 0x41082E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_185 0x41082E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_186 0x41082E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_187 0x41082EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_188 0x41082F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_189 0x41082F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_190 0x41082F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_191 0x41082FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_192 0x4108300 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_193 0x4108304 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_194 0x4108308 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_195 0x410830C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_196 0x4108310 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_197 0x4108314 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_198 0x4108318 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_199 0x410831C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_200 0x4108320 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_201 0x4108324 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_202 0x4108328 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_203 0x410832C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_204 0x4108330 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_205 0x4108334 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_206 0x4108338 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_207 0x410833C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_208 0x4108340 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_209 0x4108344 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_210 0x4108348 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_211 0x410834C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_212 0x4108350 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_213 0x4108354 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_214 0x4108358 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_215 0x410835C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_216 0x4108360 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_217 0x4108364 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_218 0x4108368 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_219 0x410836C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_220 0x4108370 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_221 0x4108374 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_222 0x4108378 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_223 0x410837C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_224 0x4108380 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_225 0x4108384 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_226 0x4108388 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_227 0x410838C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_228 0x4108390 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_229 0x4108394 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_230 0x4108398 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_231 0x410839C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_232 0x41083A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_233 0x41083A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_234 0x41083A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_235 0x41083AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_236 0x41083B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_237 0x41083B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_238 0x41083B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_239 0x41083BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_240 0x41083C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_241 0x41083C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_242 0x41083C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_243 0x41083CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_244 0x41083D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_245 0x41083D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_246 0x41083D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_247 0x41083DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_248 0x41083E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_249 0x41083E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_250 0x41083E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_251 0x41083EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_252 0x41083F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_253 0x41083F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_254 0x41083F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_255 0x41083FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_256 0x4108400 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_257 0x4108404 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_258 0x4108408 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_259 0x410840C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_260 0x4108410 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_261 0x4108414 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_262 0x4108418 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_263 0x410841C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_264 0x4108420 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_265 0x4108424 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_266 0x4108428 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_267 0x410842C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_268 0x4108430 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_269 0x4108434 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_270 0x4108438 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_271 0x410843C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_272 0x4108440 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_273 0x4108444 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_274 0x4108448 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_275 0x410844C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_276 0x4108450 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_277 0x4108454 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_278 0x4108458 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_279 0x410845C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_280 0x4108460 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_281 0x4108464 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_282 0x4108468 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_283 0x410846C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_284 0x4108470 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_285 0x4108474 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_286 0x4108478 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_287 0x410847C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_288 0x4108480 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_289 0x4108484 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_290 0x4108488 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_291 0x410848C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_292 0x4108490 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_293 0x4108494 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_294 0x4108498 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_295 0x410849C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_296 0x41084A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_297 0x41084A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_298 0x41084A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_299 0x41084AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_300 0x41084B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_301 0x41084B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_302 0x41084B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_303 0x41084BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_304 0x41084C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_305 0x41084C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_306 0x41084C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_307 0x41084CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_308 0x41084D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_309 0x41084D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_310 0x41084D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_311 0x41084DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_312 0x41084E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_313 0x41084E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_314 0x41084E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_315 0x41084EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_316 0x41084F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_317 0x41084F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_318 0x41084F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_319 0x41084FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_320 0x4108500 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_321 0x4108504 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_322 0x4108508 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_323 0x410850C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_324 0x4108510 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_325 0x4108514 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_326 0x4108518 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_327 0x410851C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_328 0x4108520 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_329 0x4108524 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_330 0x4108528 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_331 0x410852C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_332 0x4108530 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_333 0x4108534 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_334 0x4108538 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_335 0x410853C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_336 0x4108540 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_337 0x4108544 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_338 0x4108548 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_339 0x410854C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_340 0x4108550 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_341 0x4108554 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_342 0x4108558 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_343 0x410855C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_344 0x4108560 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_345 0x4108564 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_346 0x4108568 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_347 0x410856C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_348 0x4108570 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_349 0x4108574 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_350 0x4108578 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_351 0x410857C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_352 0x4108580 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_353 0x4108584 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_354 0x4108588 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_355 0x410858C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_356 0x4108590 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_357 0x4108594 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_358 0x4108598 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_359 0x410859C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_360 0x41085A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_361 0x41085A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_362 0x41085A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_363 0x41085AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_364 0x41085B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_365 0x41085B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_366 0x41085B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_367 0x41085BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_368 0x41085C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_369 0x41085C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_370 0x41085C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_371 0x41085CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_372 0x41085D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_373 0x41085D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_374 0x41085D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_375 0x41085DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_376 0x41085E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_377 0x41085E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_378 0x41085E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_379 0x41085EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_380 0x41085F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_381 0x41085F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_382 0x41085F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_383 0x41085FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_384 0x4108600 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_385 0x4108604 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_386 0x4108608 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_387 0x410860C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_388 0x4108610 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_389 0x4108614 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_390 0x4108618 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_391 0x410861C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_392 0x4108620 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_393 0x4108624 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_394 0x4108628 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_395 0x410862C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_396 0x4108630 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_397 0x4108634 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_398 0x4108638 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_399 0x410863C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_400 0x4108640 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_401 0x4108644 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_402 0x4108648 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_403 0x410864C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_404 0x4108650 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_405 0x4108654 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_406 0x4108658 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_407 0x410865C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_408 0x4108660 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_409 0x4108664 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_410 0x4108668 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_411 0x410866C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_412 0x4108670 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_413 0x4108674 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_414 0x4108678 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_415 0x410867C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_416 0x4108680 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_417 0x4108684 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_418 0x4108688 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_419 0x410868C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_420 0x4108690 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_421 0x4108694 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_422 0x4108698 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_423 0x410869C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_424 0x41086A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_425 0x41086A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_426 0x41086A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_427 0x41086AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_428 0x41086B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_429 0x41086B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_430 0x41086B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_431 0x41086BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_432 0x41086C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_433 0x41086C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_434 0x41086C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_435 0x41086CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_436 0x41086D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_437 0x41086D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_438 0x41086D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_439 0x41086DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_440 0x41086E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_441 0x41086E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_442 0x41086E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_443 0x41086EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_444 0x41086F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_445 0x41086F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_446 0x41086F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_447 0x41086FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_448 0x4108700 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_449 0x4108704 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_450 0x4108708 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_451 0x410870C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_452 0x4108710 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_453 0x4108714 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_454 0x4108718 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_455 0x410871C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_456 0x4108720 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_457 0x4108724 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_458 0x4108728 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_459 0x410872C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_460 0x4108730 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_461 0x4108734 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_462 0x4108738 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_463 0x410873C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_464 0x4108740 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_465 0x4108744 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_466 0x4108748 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_467 0x410874C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_468 0x4108750 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_469 0x4108754 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_470 0x4108758 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_471 0x410875C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_472 0x4108760 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_473 0x4108764 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_474 0x4108768 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_475 0x410876C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_476 0x4108770 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_477 0x4108774 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_478 0x4108778 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_479 0x410877C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_480 0x4108780 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_481 0x4108784 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_482 0x4108788 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_483 0x410878C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_484 0x4108790 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_485 0x4108794 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_486 0x4108798 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_487 0x410879C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_488 0x41087A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_489 0x41087A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_490 0x41087A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_491 0x41087AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_492 0x41087B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_493 0x41087B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_494 0x41087B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_495 0x41087BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_496 0x41087C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_497 0x41087C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_498 0x41087C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_499 0x41087CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_500 0x41087D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_501 0x41087D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_502 0x41087D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_503 0x41087DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_504 0x41087E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_505 0x41087E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_506 0x41087E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_507 0x41087EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_508 0x41087F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_509 0x41087F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_510 0x41087F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_511 0x41087FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_512 0x4108800 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_513 0x4108804 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_514 0x4108808 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_515 0x410880C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_516 0x4108810 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_517 0x4108814 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_518 0x4108818 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_519 0x410881C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_520 0x4108820 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_521 0x4108824 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_522 0x4108828 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_523 0x410882C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_524 0x4108830 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_525 0x4108834 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_526 0x4108838 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_527 0x410883C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_528 0x4108840 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_529 0x4108844 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_530 0x4108848 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_531 0x410884C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_532 0x4108850 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_533 0x4108854 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_534 0x4108858 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_535 0x410885C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_536 0x4108860 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_537 0x4108864 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_538 0x4108868 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_539 0x410886C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_540 0x4108870 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_541 0x4108874 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_542 0x4108878 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_543 0x410887C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_544 0x4108880 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_545 0x4108884 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_546 0x4108888 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_547 0x410888C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_548 0x4108890 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_549 0x4108894 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_550 0x4108898 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_551 0x410889C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_552 0x41088A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_553 0x41088A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_554 0x41088A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_555 0x41088AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_556 0x41088B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_557 0x41088B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_558 0x41088B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_559 0x41088BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_560 0x41088C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_561 0x41088C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_562 0x41088C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_563 0x41088CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_564 0x41088D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_565 0x41088D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_566 0x41088D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_567 0x41088DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_568 0x41088E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_569 0x41088E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_570 0x41088E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_571 0x41088EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_572 0x41088F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_573 0x41088F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_574 0x41088F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_575 0x41088FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_576 0x4108900 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_577 0x4108904 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_578 0x4108908 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_579 0x410890C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_580 0x4108910 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_581 0x4108914 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_582 0x4108918 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_583 0x410891C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_584 0x4108920 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_585 0x4108924 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_586 0x4108928 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_587 0x410892C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_588 0x4108930 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_589 0x4108934 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_590 0x4108938 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_591 0x410893C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_592 0x4108940 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_593 0x4108944 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_594 0x4108948 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_595 0x410894C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_596 0x4108950 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_597 0x4108954 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_598 0x4108958 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_599 0x410895C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_600 0x4108960 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_601 0x4108964 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_602 0x4108968 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_603 0x410896C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_604 0x4108970 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_605 0x4108974 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_606 0x4108978 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_607 0x410897C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_608 0x4108980 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_609 0x4108984 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_610 0x4108988 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_611 0x410898C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_612 0x4108990 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_613 0x4108994 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_614 0x4108998 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_615 0x410899C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_616 0x41089A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_617 0x41089A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_618 0x41089A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_619 0x41089AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_620 0x41089B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_621 0x41089B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_622 0x41089B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_623 0x41089BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_624 0x41089C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_625 0x41089C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_626 0x41089C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_627 0x41089CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_628 0x41089D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_629 0x41089D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_630 0x41089D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_631 0x41089DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_632 0x41089E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_633 0x41089E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_634 0x41089E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_635 0x41089EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_636 0x41089F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_637 0x41089F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_638 0x41089F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_639 0x41089FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_640 0x4108A00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_641 0x4108A04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_642 0x4108A08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_643 0x4108A0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_644 0x4108A10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_645 0x4108A14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_646 0x4108A18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_647 0x4108A1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_648 0x4108A20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_649 0x4108A24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_650 0x4108A28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_651 0x4108A2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_652 0x4108A30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_653 0x4108A34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_654 0x4108A38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_655 0x4108A3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_656 0x4108A40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_657 0x4108A44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_658 0x4108A48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_659 0x4108A4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_660 0x4108A50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_661 0x4108A54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_662 0x4108A58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_663 0x4108A5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_664 0x4108A60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_665 0x4108A64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_666 0x4108A68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_667 0x4108A6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_668 0x4108A70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_669 0x4108A74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_670 0x4108A78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_671 0x4108A7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_672 0x4108A80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_673 0x4108A84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_674 0x4108A88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_675 0x4108A8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_676 0x4108A90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_677 0x4108A94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_678 0x4108A98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_679 0x4108A9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_680 0x4108AA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_681 0x4108AA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_682 0x4108AA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_683 0x4108AAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_684 0x4108AB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_685 0x4108AB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_686 0x4108AB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_687 0x4108ABC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_688 0x4108AC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_689 0x4108AC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_690 0x4108AC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_691 0x4108ACC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_692 0x4108AD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_693 0x4108AD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_694 0x4108AD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_695 0x4108ADC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_696 0x4108AE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_697 0x4108AE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_698 0x4108AE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_699 0x4108AEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_700 0x4108AF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_701 0x4108AF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_702 0x4108AF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_703 0x4108AFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_704 0x4108B00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_705 0x4108B04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_706 0x4108B08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_707 0x4108B0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_708 0x4108B10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_709 0x4108B14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_710 0x4108B18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_711 0x4108B1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_712 0x4108B20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_713 0x4108B24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_714 0x4108B28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_715 0x4108B2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_716 0x4108B30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_717 0x4108B34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_718 0x4108B38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_719 0x4108B3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_720 0x4108B40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_721 0x4108B44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_722 0x4108B48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_723 0x4108B4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_724 0x4108B50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_725 0x4108B54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_726 0x4108B58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_727 0x4108B5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_728 0x4108B60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_729 0x4108B64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_730 0x4108B68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_731 0x4108B6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_732 0x4108B70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_733 0x4108B74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_734 0x4108B78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_735 0x4108B7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_736 0x4108B80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_737 0x4108B84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_738 0x4108B88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_739 0x4108B8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_740 0x4108B90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_741 0x4108B94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_742 0x4108B98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_743 0x4108B9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_744 0x4108BA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_745 0x4108BA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_746 0x4108BA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_747 0x4108BAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_748 0x4108BB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_749 0x4108BB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_750 0x4108BB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_751 0x4108BBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_752 0x4108BC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_753 0x4108BC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_754 0x4108BC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_755 0x4108BCC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_756 0x4108BD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_757 0x4108BD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_758 0x4108BD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_759 0x4108BDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_760 0x4108BE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_761 0x4108BE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_762 0x4108BE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_763 0x4108BEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_764 0x4108BF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_765 0x4108BF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_766 0x4108BF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_767 0x4108BFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_768 0x4108C00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_769 0x4108C04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_770 0x4108C08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_771 0x4108C0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_772 0x4108C10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_773 0x4108C14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_774 0x4108C18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_775 0x4108C1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_776 0x4108C20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_777 0x4108C24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_778 0x4108C28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_779 0x4108C2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_780 0x4108C30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_781 0x4108C34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_782 0x4108C38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_783 0x4108C3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_784 0x4108C40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_785 0x4108C44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_786 0x4108C48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_787 0x4108C4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_788 0x4108C50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_789 0x4108C54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_790 0x4108C58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_791 0x4108C5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_792 0x4108C60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_793 0x4108C64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_794 0x4108C68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_795 0x4108C6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_796 0x4108C70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_797 0x4108C74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_798 0x4108C78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_799 0x4108C7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_800 0x4108C80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_801 0x4108C84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_802 0x4108C88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_803 0x4108C8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_804 0x4108C90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_805 0x4108C94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_806 0x4108C98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_807 0x4108C9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_808 0x4108CA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_809 0x4108CA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_810 0x4108CA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_811 0x4108CAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_812 0x4108CB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_813 0x4108CB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_814 0x4108CB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_815 0x4108CBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_816 0x4108CC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_817 0x4108CC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_818 0x4108CC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_819 0x4108CCC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_820 0x4108CD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_821 0x4108CD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_822 0x4108CD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_823 0x4108CDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_824 0x4108CE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_825 0x4108CE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_826 0x4108CE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_827 0x4108CEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_828 0x4108CF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_829 0x4108CF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_830 0x4108CF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_831 0x4108CFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_832 0x4108D00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_833 0x4108D04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_834 0x4108D08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_835 0x4108D0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_836 0x4108D10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_837 0x4108D14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_838 0x4108D18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_839 0x4108D1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_840 0x4108D20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_841 0x4108D24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_842 0x4108D28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_843 0x4108D2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_844 0x4108D30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_845 0x4108D34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_846 0x4108D38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_847 0x4108D3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_848 0x4108D40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_849 0x4108D44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_850 0x4108D48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_851 0x4108D4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_852 0x4108D50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_853 0x4108D54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_854 0x4108D58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_855 0x4108D5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_856 0x4108D60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_857 0x4108D64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_858 0x4108D68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_859 0x4108D6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_860 0x4108D70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_861 0x4108D74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_862 0x4108D78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_863 0x4108D7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_864 0x4108D80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_865 0x4108D84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_866 0x4108D88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_867 0x4108D8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_868 0x4108D90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_869 0x4108D94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_870 0x4108D98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_871 0x4108D9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_872 0x4108DA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_873 0x4108DA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_874 0x4108DA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_875 0x4108DAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_876 0x4108DB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_877 0x4108DB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_878 0x4108DB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_879 0x4108DBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_880 0x4108DC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_881 0x4108DC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_882 0x4108DC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_883 0x4108DCC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_884 0x4108DD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_885 0x4108DD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_886 0x4108DD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_887 0x4108DDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_888 0x4108DE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_889 0x4108DE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_890 0x4108DE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_891 0x4108DEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_892 0x4108DF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_893 0x4108DF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_894 0x4108DF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_895 0x4108DFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_896 0x4108E00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_897 0x4108E04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_898 0x4108E08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_899 0x4108E0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_900 0x4108E10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_901 0x4108E14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_902 0x4108E18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_903 0x4108E1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_904 0x4108E20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_905 0x4108E24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_906 0x4108E28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_907 0x4108E2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_908 0x4108E30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_909 0x4108E34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_910 0x4108E38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_911 0x4108E3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_912 0x4108E40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_913 0x4108E44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_914 0x4108E48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_915 0x4108E4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_916 0x4108E50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_917 0x4108E54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_918 0x4108E58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_919 0x4108E5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_920 0x4108E60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_921 0x4108E64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_922 0x4108E68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_923 0x4108E6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_924 0x4108E70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_925 0x4108E74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_926 0x4108E78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_927 0x4108E7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_928 0x4108E80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_929 0x4108E84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_930 0x4108E88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_931 0x4108E8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_932 0x4108E90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_933 0x4108E94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_934 0x4108E98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_935 0x4108E9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_936 0x4108EA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_937 0x4108EA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_938 0x4108EA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_939 0x4108EAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_940 0x4108EB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_941 0x4108EB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_942 0x4108EB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_943 0x4108EBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_944 0x4108EC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_945 0x4108EC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_946 0x4108EC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_947 0x4108ECC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_948 0x4108ED0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_949 0x4108ED4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_950 0x4108ED8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_951 0x4108EDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_952 0x4108EE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_953 0x4108EE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_954 0x4108EE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_955 0x4108EEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_956 0x4108EF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_957 0x4108EF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_958 0x4108EF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_959 0x4108EFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_960 0x4108F00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_961 0x4108F04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_962 0x4108F08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_963 0x4108F0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_964 0x4108F10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_965 0x4108F14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_966 0x4108F18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_967 0x4108F1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_968 0x4108F20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_969 0x4108F24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_970 0x4108F28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_971 0x4108F2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_972 0x4108F30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_973 0x4108F34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_974 0x4108F38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_975 0x4108F3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_976 0x4108F40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_977 0x4108F44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_978 0x4108F48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_979 0x4108F4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_980 0x4108F50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_981 0x4108F54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_982 0x4108F58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_983 0x4108F5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_984 0x4108F60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_985 0x4108F64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_986 0x4108F68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_987 0x4108F6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_988 0x4108F70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_989 0x4108F74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_990 0x4108F78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_991 0x4108F7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_992 0x4108F80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_993 0x4108F84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_994 0x4108F88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_995 0x4108F8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_996 0x4108F90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_997 0x4108F94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_998 0x4108F98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_999 0x4108F9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1000 0x4108FA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1001 0x4108FA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1002 0x4108FA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1003 0x4108FAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1004 0x4108FB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1005 0x4108FB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1006 0x4108FB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1007 0x4108FBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1008 0x4108FC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1009 0x4108FC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1010 0x4108FC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1011 0x4108FCC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1012 0x4108FD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1013 0x4108FD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1014 0x4108FD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1015 0x4108FDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1016 0x4108FE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1017 0x4108FE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1018 0x4108FE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1019 0x4108FEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1020 0x4108FF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1021 0x4108FF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1022 0x4108FF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1023 0x4108FFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1024 0x4109000 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1025 0x4109004 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1026 0x4109008 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1027 0x410900C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1028 0x4109010 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1029 0x4109014 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1030 0x4109018 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1031 0x410901C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1032 0x4109020 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1033 0x4109024 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1034 0x4109028 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1035 0x410902C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1036 0x4109030 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1037 0x4109034 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1038 0x4109038 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1039 0x410903C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1040 0x4109040 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1041 0x4109044 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1042 0x4109048 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1043 0x410904C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1044 0x4109050 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1045 0x4109054 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1046 0x4109058 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1047 0x410905C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1048 0x4109060 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1049 0x4109064 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1050 0x4109068 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1051 0x410906C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1052 0x4109070 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1053 0x4109074 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1054 0x4109078 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1055 0x410907C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1056 0x4109080 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1057 0x4109084 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1058 0x4109088 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1059 0x410908C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1060 0x4109090 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1061 0x4109094 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1062 0x4109098 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1063 0x410909C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1064 0x41090A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1065 0x41090A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1066 0x41090A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1067 0x41090AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1068 0x41090B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1069 0x41090B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1070 0x41090B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1071 0x41090BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1072 0x41090C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1073 0x41090C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1074 0x41090C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1075 0x41090CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1076 0x41090D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1077 0x41090D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1078 0x41090D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1079 0x41090DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1080 0x41090E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1081 0x41090E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1082 0x41090E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1083 0x41090EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1084 0x41090F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1085 0x41090F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1086 0x41090F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1087 0x41090FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1088 0x4109100 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1089 0x4109104 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1090 0x4109108 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1091 0x410910C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1092 0x4109110 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1093 0x4109114 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1094 0x4109118 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1095 0x410911C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1096 0x4109120 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1097 0x4109124 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1098 0x4109128 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1099 0x410912C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1100 0x4109130 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1101 0x4109134 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1102 0x4109138 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1103 0x410913C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1104 0x4109140 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1105 0x4109144 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1106 0x4109148 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1107 0x410914C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1108 0x4109150 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1109 0x4109154 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1110 0x4109158 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1111 0x410915C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1112 0x4109160 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1113 0x4109164 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1114 0x4109168 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1115 0x410916C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1116 0x4109170 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1117 0x4109174 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1118 0x4109178 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1119 0x410917C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1120 0x4109180 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1121 0x4109184 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1122 0x4109188 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1123 0x410918C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1124 0x4109190 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1125 0x4109194 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1126 0x4109198 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1127 0x410919C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1128 0x41091A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1129 0x41091A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1130 0x41091A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1131 0x41091AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1132 0x41091B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1133 0x41091B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1134 0x41091B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1135 0x41091BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1136 0x41091C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1137 0x41091C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1138 0x41091C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1139 0x41091CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1140 0x41091D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1141 0x41091D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1142 0x41091D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1143 0x41091DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1144 0x41091E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1145 0x41091E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1146 0x41091E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1147 0x41091EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1148 0x41091F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1149 0x41091F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1150 0x41091F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1151 0x41091FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1152 0x4109200 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1153 0x4109204 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1154 0x4109208 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1155 0x410920C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1156 0x4109210 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1157 0x4109214 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1158 0x4109218 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1159 0x410921C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1160 0x4109220 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1161 0x4109224 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1162 0x4109228 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1163 0x410922C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1164 0x4109230 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1165 0x4109234 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1166 0x4109238 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1167 0x410923C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1168 0x4109240 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1169 0x4109244 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1170 0x4109248 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1171 0x410924C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1172 0x4109250 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1173 0x4109254 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1174 0x4109258 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1175 0x410925C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1176 0x4109260 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1177 0x4109264 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1178 0x4109268 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1179 0x410926C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1180 0x4109270 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1181 0x4109274 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1182 0x4109278 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1183 0x410927C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1184 0x4109280 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1185 0x4109284 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1186 0x4109288 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1187 0x410928C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1188 0x4109290 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1189 0x4109294 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1190 0x4109298 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1191 0x410929C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1192 0x41092A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1193 0x41092A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1194 0x41092A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1195 0x41092AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1196 0x41092B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1197 0x41092B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1198 0x41092B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1199 0x41092BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1200 0x41092C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1201 0x41092C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1202 0x41092C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1203 0x41092CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1204 0x41092D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1205 0x41092D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1206 0x41092D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1207 0x41092DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1208 0x41092E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1209 0x41092E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1210 0x41092E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1211 0x41092EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1212 0x41092F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1213 0x41092F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1214 0x41092F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1215 0x41092FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1216 0x4109300 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1217 0x4109304 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1218 0x4109308 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1219 0x410930C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1220 0x4109310 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1221 0x4109314 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1222 0x4109318 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1223 0x410931C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1224 0x4109320 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1225 0x4109324 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1226 0x4109328 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1227 0x410932C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1228 0x4109330 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1229 0x4109334 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1230 0x4109338 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1231 0x410933C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1232 0x4109340 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1233 0x4109344 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1234 0x4109348 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1235 0x410934C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1236 0x4109350 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1237 0x4109354 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1238 0x4109358 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1239 0x410935C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1240 0x4109360 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1241 0x4109364 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1242 0x4109368 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1243 0x410936C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1244 0x4109370 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1245 0x4109374 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1246 0x4109378 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1247 0x410937C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1248 0x4109380 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1249 0x4109384 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1250 0x4109388 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1251 0x410938C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1252 0x4109390 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1253 0x4109394 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1254 0x4109398 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1255 0x410939C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1256 0x41093A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1257 0x41093A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1258 0x41093A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1259 0x41093AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1260 0x41093B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1261 0x41093B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1262 0x41093B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1263 0x41093BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1264 0x41093C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1265 0x41093C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1266 0x41093C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1267 0x41093CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1268 0x41093D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1269 0x41093D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1270 0x41093D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1271 0x41093DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1272 0x41093E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1273 0x41093E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1274 0x41093E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1275 0x41093EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1276 0x41093F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1277 0x41093F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1278 0x41093F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1279 0x41093FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1280 0x4109400 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1281 0x4109404 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1282 0x4109408 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1283 0x410940C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1284 0x4109410 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1285 0x4109414 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1286 0x4109418 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1287 0x410941C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1288 0x4109420 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1289 0x4109424 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1290 0x4109428 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1291 0x410942C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1292 0x4109430 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1293 0x4109434 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1294 0x4109438 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1295 0x410943C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1296 0x4109440 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1297 0x4109444 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1298 0x4109448 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1299 0x410944C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1300 0x4109450 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1301 0x4109454 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1302 0x4109458 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1303 0x410945C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1304 0x4109460 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1305 0x4109464 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1306 0x4109468 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1307 0x410946C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1308 0x4109470 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1309 0x4109474 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1310 0x4109478 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1311 0x410947C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1312 0x4109480 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1313 0x4109484 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1314 0x4109488 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1315 0x410948C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1316 0x4109490 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1317 0x4109494 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1318 0x4109498 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1319 0x410949C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1320 0x41094A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1321 0x41094A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1322 0x41094A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1323 0x41094AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1324 0x41094B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1325 0x41094B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1326 0x41094B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1327 0x41094BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1328 0x41094C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1329 0x41094C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1330 0x41094C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1331 0x41094CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1332 0x41094D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1333 0x41094D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1334 0x41094D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1335 0x41094DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1336 0x41094E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1337 0x41094E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1338 0x41094E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1339 0x41094EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1340 0x41094F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1341 0x41094F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1342 0x41094F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1343 0x41094FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1344 0x4109500 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1345 0x4109504 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1346 0x4109508 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1347 0x410950C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1348 0x4109510 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1349 0x4109514 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1350 0x4109518 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1351 0x410951C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1352 0x4109520 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1353 0x4109524 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1354 0x4109528 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1355 0x410952C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1356 0x4109530 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1357 0x4109534 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1358 0x4109538 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1359 0x410953C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1360 0x4109540 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1361 0x4109544 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1362 0x4109548 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1363 0x410954C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1364 0x4109550 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1365 0x4109554 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1366 0x4109558 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1367 0x410955C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1368 0x4109560 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1369 0x4109564 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1370 0x4109568 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1371 0x410956C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1372 0x4109570 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1373 0x4109574 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1374 0x4109578 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1375 0x410957C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1376 0x4109580 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1377 0x4109584 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1378 0x4109588 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1379 0x410958C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1380 0x4109590 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1381 0x4109594 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1382 0x4109598 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1383 0x410959C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1384 0x41095A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1385 0x41095A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1386 0x41095A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1387 0x41095AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1388 0x41095B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1389 0x41095B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1390 0x41095B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1391 0x41095BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1392 0x41095C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1393 0x41095C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1394 0x41095C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1395 0x41095CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1396 0x41095D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1397 0x41095D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1398 0x41095D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1399 0x41095DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1400 0x41095E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1401 0x41095E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1402 0x41095E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1403 0x41095EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1404 0x41095F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1405 0x41095F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1406 0x41095F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1407 0x41095FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1408 0x4109600 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1409 0x4109604 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1410 0x4109608 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1411 0x410960C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1412 0x4109610 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1413 0x4109614 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1414 0x4109618 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1415 0x410961C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1416 0x4109620 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1417 0x4109624 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1418 0x4109628 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1419 0x410962C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1420 0x4109630 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1421 0x4109634 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1422 0x4109638 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1423 0x410963C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1424 0x4109640 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1425 0x4109644 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1426 0x4109648 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1427 0x410964C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1428 0x4109650 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1429 0x4109654 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1430 0x4109658 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1431 0x410965C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1432 0x4109660 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1433 0x4109664 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1434 0x4109668 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1435 0x410966C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1436 0x4109670 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1437 0x4109674 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1438 0x4109678 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1439 0x410967C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1440 0x4109680 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1441 0x4109684 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1442 0x4109688 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1443 0x410968C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1444 0x4109690 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1445 0x4109694 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1446 0x4109698 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1447 0x410969C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1448 0x41096A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1449 0x41096A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1450 0x41096A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1451 0x41096AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1452 0x41096B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1453 0x41096B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1454 0x41096B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1455 0x41096BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1456 0x41096C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1457 0x41096C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1458 0x41096C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1459 0x41096CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1460 0x41096D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1461 0x41096D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1462 0x41096D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1463 0x41096DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1464 0x41096E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1465 0x41096E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1466 0x41096E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1467 0x41096EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1468 0x41096F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1469 0x41096F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1470 0x41096F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1471 0x41096FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1472 0x4109700 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1473 0x4109704 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1474 0x4109708 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1475 0x410970C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1476 0x4109710 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1477 0x4109714 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1478 0x4109718 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1479 0x410971C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1480 0x4109720 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1481 0x4109724 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1482 0x4109728 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1483 0x410972C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1484 0x4109730 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1485 0x4109734 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1486 0x4109738 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1487 0x410973C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1488 0x4109740 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1489 0x4109744 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1490 0x4109748 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1491 0x410974C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1492 0x4109750 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1493 0x4109754 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1494 0x4109758 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1495 0x410975C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1496 0x4109760 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1497 0x4109764 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1498 0x4109768 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1499 0x410976C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1500 0x4109770 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1501 0x4109774 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1502 0x4109778 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1503 0x410977C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1504 0x4109780 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1505 0x4109784 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1506 0x4109788 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1507 0x410978C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1508 0x4109790 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1509 0x4109794 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1510 0x4109798 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1511 0x410979C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1512 0x41097A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1513 0x41097A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1514 0x41097A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1515 0x41097AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1516 0x41097B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1517 0x41097B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1518 0x41097B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1519 0x41097BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1520 0x41097C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1521 0x41097C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1522 0x41097C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1523 0x41097CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1524 0x41097D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1525 0x41097D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1526 0x41097D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1527 0x41097DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1528 0x41097E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1529 0x41097E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1530 0x41097E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1531 0x41097EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1532 0x41097F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1533 0x41097F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1534 0x41097F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1535 0x41097FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1536 0x4109800 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1537 0x4109804 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1538 0x4109808 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1539 0x410980C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1540 0x4109810 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1541 0x4109814 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1542 0x4109818 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1543 0x410981C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1544 0x4109820 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1545 0x4109824 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1546 0x4109828 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1547 0x410982C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1548 0x4109830 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1549 0x4109834 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1550 0x4109838 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1551 0x410983C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1552 0x4109840 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1553 0x4109844 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1554 0x4109848 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1555 0x410984C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1556 0x4109850 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1557 0x4109854 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1558 0x4109858 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1559 0x410985C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1560 0x4109860 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1561 0x4109864 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1562 0x4109868 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1563 0x410986C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1564 0x4109870 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1565 0x4109874 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1566 0x4109878 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1567 0x410987C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1568 0x4109880 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1569 0x4109884 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1570 0x4109888 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1571 0x410988C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1572 0x4109890 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1573 0x4109894 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1574 0x4109898 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1575 0x410989C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1576 0x41098A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1577 0x41098A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1578 0x41098A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1579 0x41098AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1580 0x41098B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1581 0x41098B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1582 0x41098B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1583 0x41098BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1584 0x41098C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1585 0x41098C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1586 0x41098C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1587 0x41098CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1588 0x41098D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1589 0x41098D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1590 0x41098D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1591 0x41098DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1592 0x41098E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1593 0x41098E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1594 0x41098E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1595 0x41098EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1596 0x41098F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1597 0x41098F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1598 0x41098F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1599 0x41098FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1600 0x4109900 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1601 0x4109904 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1602 0x4109908 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1603 0x410990C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1604 0x4109910 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1605 0x4109914 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1606 0x4109918 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1607 0x410991C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1608 0x4109920 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1609 0x4109924 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1610 0x4109928 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1611 0x410992C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1612 0x4109930 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1613 0x4109934 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1614 0x4109938 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1615 0x410993C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1616 0x4109940 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1617 0x4109944 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1618 0x4109948 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1619 0x410994C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1620 0x4109950 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1621 0x4109954 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1622 0x4109958 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1623 0x410995C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1624 0x4109960 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1625 0x4109964 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1626 0x4109968 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1627 0x410996C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1628 0x4109970 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1629 0x4109974 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1630 0x4109978 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1631 0x410997C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1632 0x4109980 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1633 0x4109984 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1634 0x4109988 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1635 0x410998C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1636 0x4109990 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1637 0x4109994 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1638 0x4109998 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1639 0x410999C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1640 0x41099A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1641 0x41099A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1642 0x41099A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1643 0x41099AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1644 0x41099B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1645 0x41099B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1646 0x41099B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1647 0x41099BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1648 0x41099C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1649 0x41099C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1650 0x41099C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1651 0x41099CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1652 0x41099D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1653 0x41099D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1654 0x41099D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1655 0x41099DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1656 0x41099E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1657 0x41099E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1658 0x41099E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1659 0x41099EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1660 0x41099F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1661 0x41099F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1662 0x41099F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1663 0x41099FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1664 0x4109A00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1665 0x4109A04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1666 0x4109A08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1667 0x4109A0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1668 0x4109A10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1669 0x4109A14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1670 0x4109A18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1671 0x4109A1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1672 0x4109A20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1673 0x4109A24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1674 0x4109A28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1675 0x4109A2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1676 0x4109A30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1677 0x4109A34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1678 0x4109A38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1679 0x4109A3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1680 0x4109A40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1681 0x4109A44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1682 0x4109A48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1683 0x4109A4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1684 0x4109A50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1685 0x4109A54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1686 0x4109A58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1687 0x4109A5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1688 0x4109A60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1689 0x4109A64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1690 0x4109A68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1691 0x4109A6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1692 0x4109A70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1693 0x4109A74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1694 0x4109A78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1695 0x4109A7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1696 0x4109A80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1697 0x4109A84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1698 0x4109A88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1699 0x4109A8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1700 0x4109A90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1701 0x4109A94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1702 0x4109A98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1703 0x4109A9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1704 0x4109AA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1705 0x4109AA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1706 0x4109AA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1707 0x4109AAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1708 0x4109AB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1709 0x4109AB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1710 0x4109AB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1711 0x4109ABC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1712 0x4109AC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1713 0x4109AC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1714 0x4109AC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1715 0x4109ACC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1716 0x4109AD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1717 0x4109AD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1718 0x4109AD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1719 0x4109ADC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1720 0x4109AE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1721 0x4109AE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1722 0x4109AE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1723 0x4109AEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1724 0x4109AF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1725 0x4109AF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1726 0x4109AF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1727 0x4109AFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1728 0x4109B00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1729 0x4109B04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1730 0x4109B08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1731 0x4109B0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1732 0x4109B10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1733 0x4109B14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1734 0x4109B18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1735 0x4109B1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1736 0x4109B20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1737 0x4109B24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1738 0x4109B28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1739 0x4109B2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1740 0x4109B30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1741 0x4109B34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1742 0x4109B38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1743 0x4109B3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1744 0x4109B40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1745 0x4109B44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1746 0x4109B48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1747 0x4109B4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1748 0x4109B50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1749 0x4109B54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1750 0x4109B58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1751 0x4109B5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1752 0x4109B60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1753 0x4109B64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1754 0x4109B68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1755 0x4109B6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1756 0x4109B70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1757 0x4109B74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1758 0x4109B78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1759 0x4109B7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1760 0x4109B80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1761 0x4109B84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1762 0x4109B88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1763 0x4109B8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1764 0x4109B90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1765 0x4109B94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1766 0x4109B98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1767 0x4109B9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1768 0x4109BA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1769 0x4109BA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1770 0x4109BA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1771 0x4109BAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1772 0x4109BB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1773 0x4109BB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1774 0x4109BB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1775 0x4109BBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1776 0x4109BC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1777 0x4109BC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1778 0x4109BC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1779 0x4109BCC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1780 0x4109BD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1781 0x4109BD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1782 0x4109BD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1783 0x4109BDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1784 0x4109BE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1785 0x4109BE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1786 0x4109BE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1787 0x4109BEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1788 0x4109BF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1789 0x4109BF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1790 0x4109BF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1791 0x4109BFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1792 0x4109C00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1793 0x4109C04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1794 0x4109C08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1795 0x4109C0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1796 0x4109C10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1797 0x4109C14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1798 0x4109C18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1799 0x4109C1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1800 0x4109C20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1801 0x4109C24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1802 0x4109C28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1803 0x4109C2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1804 0x4109C30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1805 0x4109C34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1806 0x4109C38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1807 0x4109C3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1808 0x4109C40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1809 0x4109C44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1810 0x4109C48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1811 0x4109C4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1812 0x4109C50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1813 0x4109C54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1814 0x4109C58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1815 0x4109C5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1816 0x4109C60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1817 0x4109C64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1818 0x4109C68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1819 0x4109C6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1820 0x4109C70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1821 0x4109C74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1822 0x4109C78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1823 0x4109C7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1824 0x4109C80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1825 0x4109C84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1826 0x4109C88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1827 0x4109C8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1828 0x4109C90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1829 0x4109C94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1830 0x4109C98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1831 0x4109C9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1832 0x4109CA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1833 0x4109CA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1834 0x4109CA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1835 0x4109CAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1836 0x4109CB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1837 0x4109CB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1838 0x4109CB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1839 0x4109CBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1840 0x4109CC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1841 0x4109CC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1842 0x4109CC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1843 0x4109CCC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1844 0x4109CD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1845 0x4109CD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1846 0x4109CD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1847 0x4109CDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1848 0x4109CE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1849 0x4109CE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1850 0x4109CE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1851 0x4109CEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1852 0x4109CF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1853 0x4109CF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1854 0x4109CF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1855 0x4109CFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1856 0x4109D00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1857 0x4109D04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1858 0x4109D08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1859 0x4109D0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1860 0x4109D10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1861 0x4109D14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1862 0x4109D18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1863 0x4109D1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1864 0x4109D20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1865 0x4109D24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1866 0x4109D28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1867 0x4109D2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1868 0x4109D30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1869 0x4109D34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1870 0x4109D38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1871 0x4109D3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1872 0x4109D40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1873 0x4109D44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1874 0x4109D48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1875 0x4109D4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1876 0x4109D50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1877 0x4109D54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1878 0x4109D58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1879 0x4109D5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1880 0x4109D60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1881 0x4109D64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1882 0x4109D68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1883 0x4109D6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1884 0x4109D70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1885 0x4109D74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1886 0x4109D78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1887 0x4109D7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1888 0x4109D80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1889 0x4109D84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1890 0x4109D88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1891 0x4109D8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1892 0x4109D90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1893 0x4109D94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1894 0x4109D98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1895 0x4109D9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1896 0x4109DA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1897 0x4109DA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1898 0x4109DA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1899 0x4109DAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1900 0x4109DB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1901 0x4109DB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1902 0x4109DB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1903 0x4109DBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1904 0x4109DC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1905 0x4109DC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1906 0x4109DC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1907 0x4109DCC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1908 0x4109DD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1909 0x4109DD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1910 0x4109DD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1911 0x4109DDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1912 0x4109DE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1913 0x4109DE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1914 0x4109DE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1915 0x4109DEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1916 0x4109DF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1917 0x4109DF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1918 0x4109DF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1919 0x4109DFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1920 0x4109E00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1921 0x4109E04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1922 0x4109E08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1923 0x4109E0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1924 0x4109E10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1925 0x4109E14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1926 0x4109E18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1927 0x4109E1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1928 0x4109E20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1929 0x4109E24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1930 0x4109E28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1931 0x4109E2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1932 0x4109E30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1933 0x4109E34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1934 0x4109E38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1935 0x4109E3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1936 0x4109E40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1937 0x4109E44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1938 0x4109E48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1939 0x4109E4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1940 0x4109E50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1941 0x4109E54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1942 0x4109E58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1943 0x4109E5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1944 0x4109E60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1945 0x4109E64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1946 0x4109E68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1947 0x4109E6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1948 0x4109E70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1949 0x4109E74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1950 0x4109E78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1951 0x4109E7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1952 0x4109E80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1953 0x4109E84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1954 0x4109E88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1955 0x4109E8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1956 0x4109E90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1957 0x4109E94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1958 0x4109E98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1959 0x4109E9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1960 0x4109EA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1961 0x4109EA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1962 0x4109EA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1963 0x4109EAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1964 0x4109EB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1965 0x4109EB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1966 0x4109EB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1967 0x4109EBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1968 0x4109EC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1969 0x4109EC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1970 0x4109EC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1971 0x4109ECC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1972 0x4109ED0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1973 0x4109ED4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1974 0x4109ED8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1975 0x4109EDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1976 0x4109EE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1977 0x4109EE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1978 0x4109EE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1979 0x4109EEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1980 0x4109EF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1981 0x4109EF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1982 0x4109EF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1983 0x4109EFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1984 0x4109F00 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1985 0x4109F04 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1986 0x4109F08 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1987 0x4109F0C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1988 0x4109F10 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1989 0x4109F14 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1990 0x4109F18 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1991 0x4109F1C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1992 0x4109F20 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1993 0x4109F24 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1994 0x4109F28 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1995 0x4109F2C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1996 0x4109F30 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1997 0x4109F34 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1998 0x4109F38 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_1999 0x4109F3C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2000 0x4109F40 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2001 0x4109F44 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2002 0x4109F48 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2003 0x4109F4C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2004 0x4109F50 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2005 0x4109F54 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2006 0x4109F58 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2007 0x4109F5C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2008 0x4109F60 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2009 0x4109F64 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2010 0x4109F68 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2011 0x4109F6C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2012 0x4109F70 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2013 0x4109F74 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2014 0x4109F78 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2015 0x4109F7C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2016 0x4109F80 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2017 0x4109F84 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2018 0x4109F88 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2019 0x4109F8C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2020 0x4109F90 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2021 0x4109F94 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2022 0x4109F98 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2023 0x4109F9C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2024 0x4109FA0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2025 0x4109FA4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2026 0x4109FA8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2027 0x4109FAC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2028 0x4109FB0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2029 0x4109FB4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2030 0x4109FB8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2031 0x4109FBC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2032 0x4109FC0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2033 0x4109FC4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2034 0x4109FC8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2035 0x4109FCC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2036 0x4109FD0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2037 0x4109FD4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2038 0x4109FD8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2039 0x4109FDC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2040 0x4109FE0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2041 0x4109FE4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2042 0x4109FE8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2043 0x4109FEC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2044 0x4109FF0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2045 0x4109FF4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2046 0x4109FF8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRL_2047 0x4109FFC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_0 0x410A000 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_1 0x410A004 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_2 0x410A008 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_3 0x410A00C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_4 0x410A010 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_5 0x410A014 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_6 0x410A018 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_7 0x410A01C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_8 0x410A020 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_9 0x410A024 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_10 0x410A028 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_11 0x410A02C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_12 0x410A030 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_13 0x410A034 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_14 0x410A038 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_15 0x410A03C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_16 0x410A040 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_17 0x410A044 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_18 0x410A048 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_19 0x410A04C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_20 0x410A050 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_21 0x410A054 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_22 0x410A058 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_23 0x410A05C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_24 0x410A060 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_25 0x410A064 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_26 0x410A068 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_27 0x410A06C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_28 0x410A070 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_29 0x410A074 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_30 0x410A078 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_31 0x410A07C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_32 0x410A080 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_33 0x410A084 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_34 0x410A088 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_35 0x410A08C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_36 0x410A090 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_37 0x410A094 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_38 0x410A098 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_39 0x410A09C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_40 0x410A0A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_41 0x410A0A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_42 0x410A0A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_43 0x410A0AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_44 0x410A0B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_45 0x410A0B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_46 0x410A0B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_47 0x410A0BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_48 0x410A0C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_49 0x410A0C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_50 0x410A0C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_51 0x410A0CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_52 0x410A0D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_53 0x410A0D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_54 0x410A0D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_55 0x410A0DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_56 0x410A0E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_57 0x410A0E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_58 0x410A0E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_59 0x410A0EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_60 0x410A0F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_61 0x410A0F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_62 0x410A0F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_63 0x410A0FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_64 0x410A100 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_65 0x410A104 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_66 0x410A108 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_67 0x410A10C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_68 0x410A110 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_69 0x410A114 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_70 0x410A118 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_71 0x410A11C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_72 0x410A120 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_73 0x410A124 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_74 0x410A128 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_75 0x410A12C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_76 0x410A130 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_77 0x410A134 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_78 0x410A138 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_79 0x410A13C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_80 0x410A140 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_81 0x410A144 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_82 0x410A148 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_83 0x410A14C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_84 0x410A150 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_85 0x410A154 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_86 0x410A158 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_87 0x410A15C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_88 0x410A160 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_89 0x410A164 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_90 0x410A168 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_91 0x410A16C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_92 0x410A170 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_93 0x410A174 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_94 0x410A178 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_95 0x410A17C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_96 0x410A180 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_97 0x410A184 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_98 0x410A188 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_99 0x410A18C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_100 0x410A190 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_101 0x410A194 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_102 0x410A198 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_103 0x410A19C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_104 0x410A1A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_105 0x410A1A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_106 0x410A1A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_107 0x410A1AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_108 0x410A1B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_109 0x410A1B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_110 0x410A1B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_111 0x410A1BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_112 0x410A1C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_113 0x410A1C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_114 0x410A1C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_115 0x410A1CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_116 0x410A1D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_117 0x410A1D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_118 0x410A1D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_119 0x410A1DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_120 0x410A1E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_121 0x410A1E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_122 0x410A1E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_123 0x410A1EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_124 0x410A1F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_125 0x410A1F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_126 0x410A1F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_127 0x410A1FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_128 0x410A200 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_129 0x410A204 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_130 0x410A208 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_131 0x410A20C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_132 0x410A210 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_133 0x410A214 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_134 0x410A218 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_135 0x410A21C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_136 0x410A220 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_137 0x410A224 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_138 0x410A228 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_139 0x410A22C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_140 0x410A230 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_141 0x410A234 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_142 0x410A238 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_143 0x410A23C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_144 0x410A240 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_145 0x410A244 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_146 0x410A248 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_147 0x410A24C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_148 0x410A250 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_149 0x410A254 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_150 0x410A258 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_151 0x410A25C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_152 0x410A260 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_153 0x410A264 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_154 0x410A268 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_155 0x410A26C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_156 0x410A270 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_157 0x410A274 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_158 0x410A278 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_159 0x410A27C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_160 0x410A280 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_161 0x410A284 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_162 0x410A288 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_163 0x410A28C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_164 0x410A290 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_165 0x410A294 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_166 0x410A298 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_167 0x410A29C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_168 0x410A2A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_169 0x410A2A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_170 0x410A2A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_171 0x410A2AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_172 0x410A2B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_173 0x410A2B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_174 0x410A2B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_175 0x410A2BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_176 0x410A2C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_177 0x410A2C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_178 0x410A2C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_179 0x410A2CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_180 0x410A2D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_181 0x410A2D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_182 0x410A2D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_183 0x410A2DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_184 0x410A2E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_185 0x410A2E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_186 0x410A2E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_187 0x410A2EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_188 0x410A2F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_189 0x410A2F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_190 0x410A2F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_191 0x410A2FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_192 0x410A300 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_193 0x410A304 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_194 0x410A308 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_195 0x410A30C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_196 0x410A310 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_197 0x410A314 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_198 0x410A318 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_199 0x410A31C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_200 0x410A320 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_201 0x410A324 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_202 0x410A328 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_203 0x410A32C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_204 0x410A330 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_205 0x410A334 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_206 0x410A338 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_207 0x410A33C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_208 0x410A340 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_209 0x410A344 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_210 0x410A348 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_211 0x410A34C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_212 0x410A350 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_213 0x410A354 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_214 0x410A358 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_215 0x410A35C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_216 0x410A360 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_217 0x410A364 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_218 0x410A368 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_219 0x410A36C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_220 0x410A370 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_221 0x410A374 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_222 0x410A378 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_223 0x410A37C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_224 0x410A380 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_225 0x410A384 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_226 0x410A388 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_227 0x410A38C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_228 0x410A390 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_229 0x410A394 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_230 0x410A398 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_231 0x410A39C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_232 0x410A3A0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_233 0x410A3A4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_234 0x410A3A8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_235 0x410A3AC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_236 0x410A3B0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_237 0x410A3B4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_238 0x410A3B8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_239 0x410A3BC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_240 0x410A3C0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_241 0x410A3C4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_242 0x410A3C8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_243 0x410A3CC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_244 0x410A3D0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_245 0x410A3D4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_246 0x410A3D8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_247 0x410A3DC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_248 0x410A3E0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_249 0x410A3E4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_250 0x410A3E8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_251 0x410A3EC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_252 0x410A3F0 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_253 0x410A3F4 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_254 0x410A3F8 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_255 0x410A3FC + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_256 0x410A400 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_257 0x410A404 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_258 0x410A408 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_259 0x410A40C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_260 0x410A410 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_261 0x410A414 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_262 0x410A418 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_263 0x410A41C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_264 0x410A420 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_265 0x410A424 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_266 0x410A428 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_267 0x410A42C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_268 0x410A430 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_269 0x410A434 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_270 0x410A438 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_271 0x410A43C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_272 0x410A440 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_273 0x410A444 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_274 0x410A448 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_275 0x410A44C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_276 0x410A450 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_277 0x410A454 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_278 0x410A458 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_279 0x410A45C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_280 0x410A460 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_281 0x410A464 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_282 0x410A468 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_283 0x410A46C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_284 0x410A470 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_285 0x410A474 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_286 0x410A478 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_287 0x410A47C + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_288 0x410A480 + +#define DCORE0_SYNC_MNGR_OBJS_MON_PAY_ADDRH_2