/titanic_41/usr/src/uts/sun4v/io/ |
H A D | ldc.c | 71 void i_ldc_reset(ldc_chan_t *ldcp, boolean_t force_reset); 73 static int i_ldc_txq_reconf(ldc_chan_t *ldcp); 74 static int i_ldc_rxq_reconf(ldc_chan_t *ldcp, boolean_t force_reset); 75 static void i_ldc_rxq_drain(ldc_chan_t *ldcp); 76 static void i_ldc_reset_state(ldc_chan_t *ldcp); 79 static int i_ldc_get_tx_tail(ldc_chan_t *ldcp, uint64_t *tail); 80 static void i_ldc_get_tx_head(ldc_chan_t *ldcp, uint64_t *head); 81 static int i_ldc_set_tx_tail(ldc_chan_t *ldcp, uint64_t tail); 82 static int i_ldc_set_rx_head(ldc_chan_t *ldcp, uint64_t head); 83 static int i_ldc_send_pkt(ldc_chan_t *ldcp, uint8_t pkttype, uint8_t subtype, [all …]
|
H A D | vnet_rxdring.c | 61 int vgen_create_rx_dring(vgen_ldc_t *ldcp); 62 void vgen_destroy_rx_dring(vgen_ldc_t *ldcp); 63 int vgen_map_tx_dring(vgen_ldc_t *ldcp, void *pkt); 64 void vgen_unmap_tx_dring(vgen_ldc_t *ldcp); 65 int vgen_map_data(vgen_ldc_t *ldcp, void *pkt); 68 mblk_t *vgen_poll_rcv_shm(vgen_ldc_t *ldcp, int bytes_to_pickup); 69 int vgen_send_dringack_shm(vgen_ldc_t *ldcp, vio_msg_tag_t *tagp, 73 static int vgen_handle_dringdata_info_shm(vgen_ldc_t *ldcp, vio_msg_tag_t *tp); 74 static int vgen_handle_dringdata_ack_shm(vgen_ldc_t *ldcp, vio_msg_tag_t *tagp); 75 static int vgen_handle_dringdata_nack_shm(vgen_ldc_t *ldcp, vio_msg_tag_t *tp); [all …]
|
H A D | vnet_txdring.c | 59 int vgen_create_tx_dring(vgen_ldc_t *ldcp); 60 void vgen_destroy_tx_dring(vgen_ldc_t *ldcp); 61 int vgen_map_rx_dring(vgen_ldc_t *ldcp, void *pkt); 62 void vgen_unmap_rx_dring(vgen_ldc_t *ldcp); 65 void vgen_stop_msg_thread(vgen_ldc_t *ldcp); 67 mblk_t *vgen_poll_rcv(vgen_ldc_t *ldcp, int bytes_to_pickup); 68 int vgen_check_datamsg_seq(vgen_ldc_t *ldcp, vio_msg_tag_t *tagp); 69 int vgen_sendmsg(vgen_ldc_t *ldcp, caddr_t msg, size_t msglen, 73 static int vgen_init_multipools(vgen_ldc_t *ldcp); 74 static int vgen_handle_dringdata_info(vgen_ldc_t *ldcp, vio_msg_tag_t *tagp); [all …]
|
H A D | vsw_ldc.c | 76 static void vsw_ldc_detach(vsw_ldc_t *ldcp); 77 static int vsw_ldc_init(vsw_ldc_t *ldcp); 78 static void vsw_ldc_uninit(vsw_ldc_t *ldcp); 79 static void vsw_ldc_drain(vsw_ldc_t *ldcp); 106 static void vsw_set_vnet_proto_ops(vsw_ldc_t *ldcp); 107 static void vsw_reset_vnet_proto_ops(vsw_ldc_t *ldcp); 127 static void vsw_process_evt_read(vsw_ldc_t *ldcp); 128 static void vsw_ldc_rcv(vsw_ldc_t *ldcp); 132 static void vsw_ldcsend_pkt(vsw_ldc_t *ldcp, mblk_t *mp); 133 static int vsw_ldcsend(vsw_ldc_t *ldcp, mblk_t *mp, uint32_t retries); [all …]
|
H A D | vnet_gen.c | 122 static int vgen_ldc_reset(vgen_ldc_t *ldcp, vgen_caller_t caller); 123 static void vgen_ldc_up(vgen_ldc_t *ldcp); 125 static void vgen_ldc_detach(vgen_ldc_t *ldcp); 128 static int vgen_ldc_init(vgen_ldc_t *ldcp); 129 static void vgen_ldc_uninit(vgen_ldc_t *ldcp); 130 static uint64_t vgen_ldc_stat(vgen_ldc_t *ldcp, uint_t stat); 140 static int vgen_create_dring(vgen_ldc_t *ldcp); 141 static void vgen_destroy_dring(vgen_ldc_t *ldcp); 142 static int vgen_map_dring(vgen_ldc_t *ldcp, void *pkt); 143 static void vgen_unmap_dring(vgen_ldc_t *ldcp); [all …]
|
H A D | vsw_txdring.c | 59 int vsw_setup_tx_dring(vsw_ldc_t *ldcp, dring_info_t *dp); 60 void vsw_destroy_tx_dring(vsw_ldc_t *ldcp); 61 dring_info_t *vsw_map_rx_dring(vsw_ldc_t *ldcp, void *pkt); 62 void vsw_unmap_rx_dring(vsw_ldc_t *ldcp); 65 void vsw_stop_msg_thread(vsw_ldc_t *ldcp); 72 static int vsw_init_multipools(vsw_ldc_t *ldcp, vsw_t *vswp); 78 extern dring_info_t *vsw_map_dring_cmn(vsw_ldc_t *ldcp, 101 #define SND_DRING_NACK(ldcp, pkt) \ argument 103 pkt->tag.vio_sid = ldcp->local_session; \ 104 (void) vsw_send_msg(ldcp, (void *)pkt, \ [all …]
|
H A D | vsw_rxdring.c | 61 void vsw_destroy_rx_dring(vsw_ldc_t *ldcp); 62 dring_info_t *vsw_map_tx_dring(vsw_ldc_t *ldcp, void *pkt); 63 void vsw_unmap_tx_dring(vsw_ldc_t *ldcp); 66 void vsw_stop_rcv_thread(vsw_ldc_t *ldcp); 71 static int vsw_setup_rx_dring(vsw_ldc_t *ldcp, dring_info_t *dp); 72 static void vsw_process_dringdata_info_shm(vsw_ldc_t *ldcp, 74 static void vsw_process_dringdata_ack_shm(vsw_ldc_t *ldcp, 76 static void vsw_ldc_rcv_shm(vsw_ldc_t *ldcp); 77 static int vsw_receive_packet(vsw_ldc_t *ldcp, mblk_t **bp); 78 static int vsw_send_msg_shm(vsw_ldc_t *ldcp, void *msgp, int size, [all …]
|
H A D | ldc_shm.c | 60 extern void i_ldc_reset(ldc_chan_t *ldcp, boolean_t force_reset); 194 ldc_chan_t *ldcp; in ldc_mem_alloc_handle() local 202 ldcp = (ldc_chan_t *)handle; in ldc_mem_alloc_handle() 204 mutex_enter(&ldcp->lock); in ldc_mem_alloc_handle() 207 if ((ldcp->tstate & ~TS_IN_RESET) < TS_INIT) { in ldc_mem_alloc_handle() 208 DWARN(ldcp->id, in ldc_mem_alloc_handle() 210 ldcp->id); in ldc_mem_alloc_handle() 211 mutex_exit(&ldcp->lock); in ldc_mem_alloc_handle() 223 mhdl->ldcp = ldcp; in ldc_mem_alloc_handle() 227 if (ldcp->mhdl_list == NULL) { in ldc_mem_alloc_handle() [all …]
|
H A D | vsw_hio.c | 90 void vsw_hio_start(vsw_t *vswp, vsw_ldc_t *ldcp); 91 void vsw_hio_stop(vsw_t *vswp, vsw_ldc_t *ldcp); 92 void vsw_process_dds_msg(vsw_t *vswp, vsw_ldc_t *ldcp, void *msg); 98 static vsw_share_t *vsw_hio_alloc_share(vsw_t *vswp, vsw_ldc_t *ldcp); 103 static int vsw_send_dds_msg(vsw_ldc_t *ldcp, uint8_t dds_subclass, 105 static int vsw_send_dds_resp_msg(vsw_ldc_t *ldcp, vio_dds_msg_t *dmsg, int ack); 191 vsw_hio_alloc_share(vsw_t *vswp, vsw_ldc_t *ldcp) in vsw_hio_alloc_share() argument 194 vsw_port_t *portp = ldcp->ldc_port; in vsw_hio_alloc_share() 195 uint64_t ldc_id = ldcp->ldc_id; in vsw_hio_alloc_share() 213 vsharep->vs_ldcid = ldcp->ldc_id; in vsw_hio_alloc_share() [all …]
|
H A D | vsw.c | 411 #define LDC_ENTER_LOCK(ldcp) \ argument 412 mutex_enter(&((ldcp)->ldc_cblock));\ 413 mutex_enter(&((ldcp)->ldc_rxlock));\ 414 mutex_enter(&((ldcp)->ldc_txlock)); 415 #define LDC_EXIT_LOCK(ldcp) \ argument 416 mutex_exit(&((ldcp)->ldc_txlock));\ 417 mutex_exit(&((ldcp)->ldc_rxlock));\ 418 mutex_exit(&((ldcp)->ldc_cblock));
|
/titanic_41/usr/src/cmd/mdb/sun4v/modules/ldc/ |
H A D | ldc.c | 155 ldc_chan_t ldcp; in ldcinfo() local 171 if (mdb_vread(&ldcp, sizeof (ldcp), addr) != sizeof (ldcp)) { in ldcinfo() 189 ldcp.id, addr, ldcp.mode, ldc_mode_bits, in ldcinfo() 190 ldcp.devclass, ldc_class_bits, in ldcinfo() 191 ldcp.status, ldc_status_bits, ldcp.tstate, ldcp.hstate, in ldcinfo() 192 ldcp.link_state, ldc_linkstate_bits); in ldcinfo() 195 mdb_printf("Link State: %b\n", ldcp.tstate, ldc_tstate_bits); in ldcinfo() 196 mdb_printf("Hshake State: %b\n", ldcp.hstate, ldc_hstate_bits); in ldcinfo() 198 ldcp.cb, ldcp.cb_arg, in ldcinfo() 199 (ldcp.cb_enabled == 1) ? "enabled" : "disabled"); in ldcinfo() [all …]
|
/titanic_41/usr/src/uts/sun4v/sys/ |
H A D | vnet_gen.h | 68 #define LDC_TO_VNET(ldcp) ((ldcp)->portp->vgenp->vnetp) argument 69 #define LDC_TO_VGEN(ldcp) ((ldcp)->portp->vgenp) argument 165 #define NEXTTBUF(ldcp, tbufp) (((tbufp) + 1) == (ldcp)->tbufendp \ argument 166 ? (ldcp)->tbufp : ((tbufp) + 1)) 169 #define INCR_RXI(i, ldcp) \ argument 170 ((i) = (((i) + 1) & ((ldcp)->num_rxds - 1))) 173 #define DECR_RXI(i, ldcp) \ argument 174 ((i) = (((i) - 1) & ((ldcp)->num_rxds - 1))) 177 #define INCR_TXI(i, ldcp) \ argument 178 ((i) = (((i) + 1) & ((ldcp)->num_txds - 1))) [all …]
|
H A D | ldc_impl.h | 381 ldc_chan_t *ldcp; /* Pointer to channel struct */ member 399 ldc_chan_t *ldcp; /* Pointer to bound channel */ member 480 int (*read_p)(ldc_chan_t *ldcp, caddr_t bufferp, 482 int (*write_p)(ldc_chan_t *ldcp, caddr_t bufferp, 485 uint64_t (*readq_get_state)(ldc_chan_t *ldcp, uint64_t *head, 488 int (*readq_set_head)(ldc_chan_t *ldcp, uint64_t head);
|
H A D | vsw_ldc.h | 405 vsw_ldc_t *ldcp; /* ldc for this port */ member 452 vsw_ldc_t *ldcp; member 470 vsw_ldc_t *ldcp; member
|