Home
last modified time | relevance | path

Searched refs:IXGBE_WRITE_REG (Results 1 – 22 of 22) sorted by relevance

/Linux-v4.19/drivers/net/ethernet/intel/ixgbe/
Dixgbe_dcb_82599.c37 IXGBE_WRITE_REG(hw, IXGBE_RTRPCS, reg); in ixgbe_dcb_config_rx_arbiter_82599()
43 IXGBE_WRITE_REG(hw, IXGBE_RTRUP2TC, reg); in ixgbe_dcb_config_rx_arbiter_82599()
56 IXGBE_WRITE_REG(hw, IXGBE_RTRPT4C(i), reg); in ixgbe_dcb_config_rx_arbiter_82599()
64 IXGBE_WRITE_REG(hw, IXGBE_RTRPCS, reg); in ixgbe_dcb_config_rx_arbiter_82599()
90 IXGBE_WRITE_REG(hw, IXGBE_RTTDQSEL, i); in ixgbe_dcb_config_tx_desc_arbiter_82599()
91 IXGBE_WRITE_REG(hw, IXGBE_RTTDT1C, 0); in ixgbe_dcb_config_tx_desc_arbiter_82599()
107 IXGBE_WRITE_REG(hw, IXGBE_RTTDT2C(i), reg); in ixgbe_dcb_config_tx_desc_arbiter_82599()
115 IXGBE_WRITE_REG(hw, IXGBE_RTTDCS, reg); in ixgbe_dcb_config_tx_desc_arbiter_82599()
148 IXGBE_WRITE_REG(hw, IXGBE_RTTPCS, reg); in ixgbe_dcb_config_tx_data_arbiter_82599()
154 IXGBE_WRITE_REG(hw, IXGBE_RTTUP2TC, reg); in ixgbe_dcb_config_tx_data_arbiter_82599()
[all …]
Dixgbe_dcb_82598.c29 IXGBE_WRITE_REG(hw, IXGBE_RUPPBMR, reg); in ixgbe_dcb_config_rx_arbiter_82598()
39 IXGBE_WRITE_REG(hw, IXGBE_RMCS, reg); in ixgbe_dcb_config_rx_arbiter_82598()
51 IXGBE_WRITE_REG(hw, IXGBE_RT2CR(i), reg); in ixgbe_dcb_config_rx_arbiter_82598()
58 IXGBE_WRITE_REG(hw, IXGBE_RDRXCTL, reg); in ixgbe_dcb_config_rx_arbiter_82598()
63 IXGBE_WRITE_REG(hw, IXGBE_RXCTRL, reg); in ixgbe_dcb_config_rx_arbiter_82598()
96 IXGBE_WRITE_REG(hw, IXGBE_DPMCS, reg); in ixgbe_dcb_config_tx_desc_arbiter_82598()
111 IXGBE_WRITE_REG(hw, IXGBE_TDTQ2TCCR(i), reg); in ixgbe_dcb_config_tx_desc_arbiter_82598()
142 IXGBE_WRITE_REG(hw, IXGBE_PDPMCS, reg); in ixgbe_dcb_config_tx_data_arbiter_82598()
156 IXGBE_WRITE_REG(hw, IXGBE_TDPT2TCCR(i), reg); in ixgbe_dcb_config_tx_data_arbiter_82598()
162 IXGBE_WRITE_REG(hw, IXGBE_DTXCTL, reg); in ixgbe_dcb_config_tx_data_arbiter_82598()
[all …]
Dixgbe_fcoe.c73 IXGBE_WRITE_REG(hw, IXGBE_FCDFC(0, xid), 0); in ixgbe_fcoe_ddp_put()
74 IXGBE_WRITE_REG(hw, IXGBE_FCDFC(3, xid), in ixgbe_fcoe_ddp_put()
78 IXGBE_WRITE_REG(hw, IXGBE_FCDDC(2, xid), 0); in ixgbe_fcoe_ddp_put()
81 IXGBE_WRITE_REG(hw, IXGBE_FCDDC(3, xid), in ixgbe_fcoe_ddp_put()
85 IXGBE_WRITE_REG(hw, IXGBE_FCDDC(3, xid), in ixgbe_fcoe_ddp_put()
91 IXGBE_WRITE_REG(hw, IXGBE_FCFLT, 0); in ixgbe_fcoe_ddp_put()
92 IXGBE_WRITE_REG(hw, IXGBE_FCFLTRW, in ixgbe_fcoe_ddp_put()
94 IXGBE_WRITE_REG(hw, IXGBE_FCBUFF, 0); in ixgbe_fcoe_ddp_put()
95 IXGBE_WRITE_REG(hw, IXGBE_FCDMARW, in ixgbe_fcoe_ddp_put()
99 IXGBE_WRITE_REG(hw, IXGBE_FCDMARW, in ixgbe_fcoe_ddp_put()
[all …]
Dixgbe_ipsec.c22 IXGBE_WRITE_REG(hw, IXGBE_IPSTXKEY(i), in ixgbe_ipsec_set_tx_sa()
24 IXGBE_WRITE_REG(hw, IXGBE_IPSTXSALT, (__force u32)cpu_to_be32(salt)); in ixgbe_ipsec_set_tx_sa()
30 IXGBE_WRITE_REG(hw, IXGBE_IPSTXIDX, reg); in ixgbe_ipsec_set_tx_sa()
53 IXGBE_WRITE_REG(hw, IXGBE_IPSRXIDX, reg); in ixgbe_ipsec_set_rx_item()
73 IXGBE_WRITE_REG(hw, IXGBE_IPSRXSPI, in ixgbe_ipsec_set_rx_sa()
75 IXGBE_WRITE_REG(hw, IXGBE_IPSRXIPIDX, ip_idx); in ixgbe_ipsec_set_rx_sa()
82 IXGBE_WRITE_REG(hw, IXGBE_IPSRXKEY(i), in ixgbe_ipsec_set_rx_sa()
84 IXGBE_WRITE_REG(hw, IXGBE_IPSRXSALT, (__force u32)cpu_to_be32(salt)); in ixgbe_ipsec_set_rx_sa()
85 IXGBE_WRITE_REG(hw, IXGBE_IPSRXMOD, mode); in ixgbe_ipsec_set_rx_sa()
103 IXGBE_WRITE_REG(hw, IXGBE_IPSRXIPADDR(i), in ixgbe_ipsec_set_rx_ip()
[all …]
Dixgbe_common.c226 IXGBE_WRITE_REG(hw, IXGBE_PCS1GANA, reg); in ixgbe_setup_fc_generic()
233 IXGBE_WRITE_REG(hw, IXGBE_PCS1GLCTL, reg); in ixgbe_setup_fc_generic()
291 IXGBE_WRITE_REG(hw, IXGBE_CTRL_EXT, ctrl_ext); in ixgbe_start_hw_generic()
339 IXGBE_WRITE_REG(hw, IXGBE_RTTDQSEL, i); in ixgbe_start_hw_gen2()
340 IXGBE_WRITE_REG(hw, IXGBE_RTTBCNRC, 0); in ixgbe_start_hw_gen2()
727 IXGBE_WRITE_REG(hw, IXGBE_EIMC, IXGBE_IRQ_CLEAR_MASK); in ixgbe_stop_adapter_generic()
734 IXGBE_WRITE_REG(hw, IXGBE_TXDCTL(i), IXGBE_TXDCTL_SWFLSH); in ixgbe_stop_adapter_generic()
741 IXGBE_WRITE_REG(hw, IXGBE_RXDCTL(i), reg_val); in ixgbe_stop_adapter_generic()
813 IXGBE_WRITE_REG(hw, IXGBE_LEDCTL, led_reg); in ixgbe_led_on_generic()
834 IXGBE_WRITE_REG(hw, IXGBE_LEDCTL, led_reg); in ixgbe_led_off_generic()
[all …]
Dixgbe_82598.c66 IXGBE_WRITE_REG(hw, IXGBE_GCR, gcr); in ixgbe_set_pcie_completion_timeout()
377 IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl_reg); in ixgbe_fc_enable_82598()
378 IXGBE_WRITE_REG(hw, IXGBE_RMCS, rmcs_reg); in ixgbe_fc_enable_82598()
386 IXGBE_WRITE_REG(hw, IXGBE_FCRTL(i), fcrtl); in ixgbe_fc_enable_82598()
387 IXGBE_WRITE_REG(hw, IXGBE_FCRTH(i), fcrth); in ixgbe_fc_enable_82598()
389 IXGBE_WRITE_REG(hw, IXGBE_FCRTL(i), 0); in ixgbe_fc_enable_82598()
390 IXGBE_WRITE_REG(hw, IXGBE_FCRTH(i), 0); in ixgbe_fc_enable_82598()
398 IXGBE_WRITE_REG(hw, IXGBE_FCTTV(i), reg); in ixgbe_fc_enable_82598()
401 IXGBE_WRITE_REG(hw, IXGBE_FCRTV, hw->fc.pause_time / 2); in ixgbe_fc_enable_82598()
425 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc_reg); in ixgbe_start_mac_link_82598()
[all …]
Dixgbe_ptp.c163 IXGBE_WRITE_REG(hw, IXGBE_TSAUXC, 0x0); in ixgbe_ptp_setup_sdp_x540()
203 IXGBE_WRITE_REG(hw, IXGBE_CLKTIML, clktiml); in ixgbe_ptp_setup_sdp_x540()
204 IXGBE_WRITE_REG(hw, IXGBE_CLKTIMH, clktimh); in ixgbe_ptp_setup_sdp_x540()
205 IXGBE_WRITE_REG(hw, IXGBE_TRGTTIML0, trgttiml); in ixgbe_ptp_setup_sdp_x540()
206 IXGBE_WRITE_REG(hw, IXGBE_TRGTTIMH0, trgttimh); in ixgbe_ptp_setup_sdp_x540()
208 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp); in ixgbe_ptp_setup_sdp_x540()
209 IXGBE_WRITE_REG(hw, IXGBE_TSAUXC, tsauxc); in ixgbe_ptp_setup_sdp_x540()
369 IXGBE_WRITE_REG(hw, IXGBE_TIMINCA, (u32)incval); in ixgbe_ptp_adjfreq_82599()
374 IXGBE_WRITE_REG(hw, IXGBE_TIMINCA, in ixgbe_ptp_adjfreq_82599()
417 IXGBE_WRITE_REG(hw, IXGBE_TIMINCA, inca); in ixgbe_ptp_adjfreq_X550()
[all …]
Dixgbe_82599.c125 IXGBE_WRITE_REG(hw, IXGBE_CORECTL, data_value); in ixgbe_setup_sfp_modules_82599()
227 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc); in prot_autoc_write_82599()
284 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp); in ixgbe_init_phy_ops_82599()
491 IXGBE_WRITE_REG(hw, IXGBE_AUTOC2, autoc2_reg); in ixgbe_stop_mac_link_on_d3_82599()
574 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg); in ixgbe_disable_tx_laser_multispeed_fiber()
593 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg); in ixgbe_enable_tx_laser_multispeed_fiber()
648 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg); in ixgbe_set_hard_rate_select_speed()
964 IXGBE_WRITE_REG(hw, IXGBE_CTRL, ctrl); in ixgbe_reset_hw_82599()
1004 IXGBE_WRITE_REG(hw, IXGBE_AUTOC2, autoc2); in ixgbe_reset_hw_82599()
1039 IXGBE_WRITE_REG(hw, IXGBE_AUTOC2, autoc2); in ixgbe_reset_hw_82599()
[all …]
Dixgbe_sriov.c77 IXGBE_WRITE_REG(hw, IXGBE_PFDTXGSWC, IXGBE_PFDTXGSWC_VT_LBEN); in __ixgbe_enable_sriov()
395 IXGBE_WRITE_REG(hw, IXGBE_MTA(vector_reg), mta_reg); in ixgbe_set_vf_multicasts()
398 IXGBE_WRITE_REG(hw, IXGBE_VMOLR(vf), vmolr); in ixgbe_set_vf_multicasts()
422 IXGBE_WRITE_REG(hw, IXGBE_MTA(vector_reg), mta_reg); in ixgbe_restore_vf_multicasts()
429 IXGBE_WRITE_REG(hw, IXGBE_VMOLR(i), vmolr); in ixgbe_restore_vf_multicasts()
527 IXGBE_WRITE_REG(hw, IXGBE_VFRE(reg_offset), vfre); in ixgbe_set_vf_lpe()
548 IXGBE_WRITE_REG(hw, IXGBE_MAXFRS, max_frs); in ixgbe_set_vf_lpe()
564 IXGBE_WRITE_REG(hw, IXGBE_VMOLR(vf), vmolr); in ixgbe_set_vmolr()
571 IXGBE_WRITE_REG(hw, IXGBE_VMVIR(vf), 0); in ixgbe_clear_vmvir()
622 IXGBE_WRITE_REG(hw, IXGBE_VFTA(vid / 32), vfta ^ mask); in ixgbe_clear_vf_vlans()
[all …]
Dixgbe_x540.c92 IXGBE_WRITE_REG(hw, IXGBE_CTRL, ctrl); in ixgbe_reset_hw_X540()
122 IXGBE_WRITE_REG(hw, IXGBE_RXPBSIZE(0), 384 << IXGBE_RXPBSIZE_SHIFT); in ixgbe_reset_hw_X540()
500 IXGBE_WRITE_REG(hw, IXGBE_EEC(hw), flup); in ixgbe_update_flash_X540()
513 IXGBE_WRITE_REG(hw, IXGBE_EEC(hw), flup); in ixgbe_update_flash_X540()
584 IXGBE_WRITE_REG(hw, IXGBE_SWFW_SYNC(hw), swfw_sync); in ixgbe_acquire_swfw_sync_X540()
607 IXGBE_WRITE_REG(hw, IXGBE_SWFW_SYNC(hw), swfw_sync); in ixgbe_acquire_swfw_sync_X540()
652 IXGBE_WRITE_REG(hw, IXGBE_SWFW_SYNC(hw), swfw_sync); in ixgbe_release_swfw_sync_X540()
718 IXGBE_WRITE_REG(hw, IXGBE_SWFW_SYNC(hw), swsm); in ixgbe_release_swfw_sync_semaphore()
722 IXGBE_WRITE_REG(hw, IXGBE_SWSM(hw), swsm); in ixgbe_release_swfw_sync_semaphore()
782 IXGBE_WRITE_REG(hw, IXGBE_MACC, macc_reg); in ixgbe_blink_led_start_X540()
[all …]
Dixgbe_main.c829 IXGBE_WRITE_REG(&adapter->hw, IXGBE_CTRL_EXT, in ixgbe_release_hw_control()
839 IXGBE_WRITE_REG(&adapter->hw, IXGBE_CTRL_EXT, in ixgbe_get_hw_control()
865 IXGBE_WRITE_REG(hw, IXGBE_IVAR(index), ivar); in ixgbe_set_ivar()
879 IXGBE_WRITE_REG(&adapter->hw, IXGBE_IVAR_MISC, ivar); in ixgbe_set_ivar()
888 IXGBE_WRITE_REG(hw, IXGBE_IVAR(queue >> 1), ivar); in ixgbe_set_ivar()
904 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, mask); in ixgbe_irq_rearm_queues()
912 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS_EX(0), mask); in ixgbe_irq_rearm_queues()
914 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS_EX(1), mask); in ixgbe_irq_rearm_queues()
1095 IXGBE_WRITE_REG(hw, IXGBE_RTTDQSEL, queue_index); in ixgbe_tx_maxrate()
1096 IXGBE_WRITE_REG(hw, IXGBE_RTTBCNRC, bcnrc_val); in ixgbe_tx_maxrate()
[all …]
Dixgbe_mbx.c216 IXGBE_WRITE_REG(hw, IXGBE_MBVFICR(index), mask); in ixgbe_check_for_bit_pf()
293 IXGBE_WRITE_REG(hw, IXGBE_VFLREC(reg_offset), BIT(vf_shift)); in ixgbe_check_for_rst_pf()
313 IXGBE_WRITE_REG(hw, IXGBE_PFMAILBOX(vf_number), IXGBE_PFMAILBOX_PFU); in ixgbe_obtain_mbx_lock_pf()
352 IXGBE_WRITE_REG(hw, IXGBE_PFMAILBOX(vf_number), IXGBE_PFMAILBOX_STS); in ixgbe_write_mbx_pf()
387 IXGBE_WRITE_REG(hw, IXGBE_PFMAILBOX(vf_number), IXGBE_PFMAILBOX_ACK); in ixgbe_read_mbx_pf()
Dixgbe_phy.c481 IXGBE_WRITE_REG(hw, IXGBE_MSCA, command); in ixgbe_read_phy_reg_mdi()
509 IXGBE_WRITE_REG(hw, IXGBE_MSCA, command); in ixgbe_read_phy_reg_mdi()
577 IXGBE_WRITE_REG(hw, IXGBE_MSRWD, (u32)phy_data); in ixgbe_write_phy_reg_mdi()
585 IXGBE_WRITE_REG(hw, IXGBE_MSCA, command); in ixgbe_write_phy_reg_mdi()
614 IXGBE_WRITE_REG(hw, IXGBE_MSCA, command); in ixgbe_write_phy_reg_mdi()
1983 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL(hw), i2cctl); in ixgbe_i2c_stop()
2035 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL(hw), i2cctl); in ixgbe_clock_out_i2c_byte()
2059 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL(hw), i2cctl); in ixgbe_get_i2c_ack()
2106 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL(hw), i2cctl); in ixgbe_clock_in_i2c_bit()
2174 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL(hw), *i2cctl); in ixgbe_raise_i2c_clk()
[all …]
Dixgbe_sriov.h47 IXGBE_WRITE_REG(hw, IXGBE_VMVIR(vf), vmvir); in ixgbe_set_vmvir()
Dixgbe_ethtool.c1617 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFFFFFF); in ixgbe_intr_test()
1635 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, in ixgbe_intr_test()
1637 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, in ixgbe_intr_test()
1655 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMS, mask); in ixgbe_intr_test()
1656 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, mask); in ixgbe_intr_test()
1674 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, in ixgbe_intr_test()
1676 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, in ixgbe_intr_test()
1689 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFFFFFF); in ixgbe_intr_test()
1747 IXGBE_WRITE_REG(&adapter->hw, IXGBE_DMATXCTL, reg_data); in ixgbe_setup_desc_rings()
1774 IXGBE_WRITE_REG(&adapter->hw, IXGBE_RXCTRL, rctl); in ixgbe_setup_desc_rings()
[all …]
Dixgbe_x550.c82 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp); in ixgbe_setup_mux_ctl()
710 IXGBE_WRITE_REG(hw, IXGBE_SB_IOSF_INDIRECT_CTRL, command); in ixgbe_read_iosf_sb_reg_x550()
1265 IXGBE_WRITE_REG(hw, IXGBE_PFDTXGSWC, pfdtxgswc); in ixgbe_disable_rx_x550()
1285 IXGBE_WRITE_REG(hw, IXGBE_RXCTRL, rxctrl); in ixgbe_disable_rx_x550()
1393 IXGBE_WRITE_REG(hw, IXGBE_SB_IOSF_INDIRECT_CTRL, command); in ixgbe_write_iosf_sb_reg_x550()
1396 IXGBE_WRITE_REG(hw, IXGBE_SB_IOSF_INDIRECT_DATA, data); in ixgbe_write_iosf_sb_reg_x550()
3354 IXGBE_WRITE_REG(hw, IXGBE_HLREG0, hlreg0); in ixgbe_set_mdio_speed()
3361 IXGBE_WRITE_REG(hw, IXGBE_HLREG0, hlreg0); in ixgbe_set_mdio_speed()
3439 IXGBE_WRITE_REG(hw, IXGBE_CTRL, ctrl); in ixgbe_reset_hw_X550em()
3505 IXGBE_WRITE_REG(hw, IXGBE_PFVFSPOOF(vf_target_reg), pfvfspoof); in ixgbe_set_ethertype_anti_spoofing_X550()
[all …]
Dixgbe_debugfs.c90 IXGBE_WRITE_REG(&adapter->hw, reg, value); in ixgbe_dbg_reg_ops_write()
Dixgbe_common.h152 #define IXGBE_WRITE_REG(a, reg, value) ixgbe_write_reg((a), (reg), (value)) macro
/Linux-v4.19/drivers/net/ethernet/intel/ixgbevf/
Dixgbevf_main.c180 IXGBE_WRITE_REG(hw, IXGBE_VTIVAR_MISC, ivar); in ixgbevf_set_ivar()
188 IXGBE_WRITE_REG(hw, IXGBE_VTIVAR(queue >> 1), ivar); in ixgbevf_set_ivar()
922 IXGBE_WRITE_REG(hw, IXGBE_VTEIMS, qmask); in ixgbevf_irq_enable_queues()
1318 IXGBE_WRITE_REG(hw, IXGBE_VTEITR(v_idx), itr_reg); in ixgbevf_write_eitr()
1488 IXGBE_WRITE_REG(hw, IXGBE_VTEIMS, adapter->eims_other); in ixgbevf_msix_other()
1631 IXGBE_WRITE_REG(hw, IXGBE_VTEIAM, 0); in ixgbevf_irq_disable()
1632 IXGBE_WRITE_REG(hw, IXGBE_VTEIMC, ~0); in ixgbevf_irq_disable()
1633 IXGBE_WRITE_REG(hw, IXGBE_VTEIAC, 0); in ixgbevf_irq_disable()
1649 IXGBE_WRITE_REG(hw, IXGBE_VTEIAM, adapter->eims_enable_mask); in ixgbevf_irq_enable()
1650 IXGBE_WRITE_REG(hw, IXGBE_VTEIAC, adapter->eims_enable_mask); in ixgbevf_irq_enable()
[all …]
Dmbx.c211 IXGBE_WRITE_REG(hw, IXGBE_VFMAILBOX, IXGBE_VFMAILBOX_VFU); in ixgbevf_obtain_mbx_lock_vf()
250 IXGBE_WRITE_REG(hw, IXGBE_VFMAILBOX, IXGBE_VFMAILBOX_REQ); in ixgbevf_write_mbx_vf()
279 IXGBE_WRITE_REG(hw, IXGBE_VFMAILBOX, IXGBE_VFMAILBOX_ACK); in ixgbevf_read_mbx_vf()
Dvf.c79 IXGBE_WRITE_REG(hw, IXGBE_VFCTRL, IXGBE_CTRL_RST); in ixgbevf_reset_hw_vf()
171 IXGBE_WRITE_REG(hw, IXGBE_VFRXDCTL(i), reg_val); in ixgbevf_stop_hw_vf()
178 IXGBE_WRITE_REG(hw, IXGBE_VTEIMC, IXGBE_VF_IRQ_CLEAR_MASK); in ixgbevf_stop_hw_vf()
189 IXGBE_WRITE_REG(hw, IXGBE_VFTXDCTL(i), reg_val); in ixgbevf_stop_hw_vf()
831 IXGBE_WRITE_REG(hw, IXGBE_VFRXDCTL(0), reg); in ixgbevf_hv_set_rlpml_vf()
Dvf.h169 #define IXGBE_WRITE_REG(h, r, v) ixgbe_write_reg(h, r, v) macro