Lines Matching defs:ib_device_ops
2339 struct ib_device_ops { struct
2340 struct module *owner;
2341 enum rdma_driver_id driver_id;
2342 u32 uverbs_abi_ver;
2343 unsigned int uverbs_no_driver_id_binding:1;
2350 const struct attribute_group *device_group;
2351 const struct attribute_group **port_groups;
2353 int (*post_send)(struct ib_qp *qp, const struct ib_send_wr *send_wr,
2355 int (*post_recv)(struct ib_qp *qp, const struct ib_recv_wr *recv_wr,
2357 void (*drain_rq)(struct ib_qp *qp);
2358 void (*drain_sq)(struct ib_qp *qp);
2359 int (*poll_cq)(struct ib_cq *cq, int num_entries, struct ib_wc *wc);
2360 int (*peek_cq)(struct ib_cq *cq, int wc_cnt);
2361 int (*req_notify_cq)(struct ib_cq *cq, enum ib_cq_notify_flags flags);
2362 int (*post_srq_recv)(struct ib_srq *srq,
2365 int (*process_mad)(struct ib_device *device, int process_mad_flags,
2370 int (*query_device)(struct ib_device *device,
2373 int (*modify_device)(struct ib_device *device, int device_modify_mask,
2375 void (*get_dev_fw_str)(struct ib_device *device, char *str);
2376 const struct cpumask *(*get_vector_affinity)(struct ib_device *ibdev,
2378 int (*query_port)(struct ib_device *device, u32 port_num,
2380 int (*modify_port)(struct ib_device *device, u32 port_num,
2389 int (*get_port_immutable)(struct ib_device *device, u32 port_num,
2391 enum rdma_link_layer (*get_link_layer)(struct ib_device *device,
2401 struct net_device *(*get_netdev)(struct ib_device *device,
2409 struct net_device *(*alloc_rdma_netdev)(
2414 int (*rdma_netdev_get_params)(struct ib_device *device, u32 port_num,
2422 int (*query_gid)(struct ib_device *device, u32 port_num, int index,
2437 int (*add_gid)(const struct ib_gid_attr *attr, void **context);
2446 int (*del_gid)(const struct ib_gid_attr *attr, void **context);
2447 int (*query_pkey)(struct ib_device *device, u32 port_num, u16 index,
2449 int (*alloc_ucontext)(struct ib_ucontext *context,
2451 void (*dealloc_ucontext)(struct ib_ucontext *context);
2452 int (*mmap)(struct ib_ucontext *context, struct vm_area_struct *vma);
2459 void (*mmap_free)(struct rdma_user_mmap_entry *entry);
2460 void (*disassociate_ucontext)(struct ib_ucontext *ibcontext);
2461 int (*alloc_pd)(struct ib_pd *pd, struct ib_udata *udata);
2462 int (*dealloc_pd)(struct ib_pd *pd, struct ib_udata *udata);
2463 int (*create_ah)(struct ib_ah *ah, struct rdma_ah_init_attr *attr,
2465 int (*create_user_ah)(struct ib_ah *ah, struct rdma_ah_init_attr *attr,
2467 int (*modify_ah)(struct ib_ah *ah, struct rdma_ah_attr *ah_attr);
2468 int (*query_ah)(struct ib_ah *ah, struct rdma_ah_attr *ah_attr);
2469 int (*destroy_ah)(struct ib_ah *ah, u32 flags);
2470 int (*create_srq)(struct ib_srq *srq,
2473 int (*modify_srq)(struct ib_srq *srq, struct ib_srq_attr *srq_attr,
2476 int (*query_srq)(struct ib_srq *srq, struct ib_srq_attr *srq_attr);
2477 int (*destroy_srq)(struct ib_srq *srq, struct ib_udata *udata);
2478 int (*create_qp)(struct ib_qp *qp, struct ib_qp_init_attr *qp_init_attr,
2480 int (*modify_qp)(struct ib_qp *qp, struct ib_qp_attr *qp_attr,
2482 int (*query_qp)(struct ib_qp *qp, struct ib_qp_attr *qp_attr,
2484 int (*destroy_qp)(struct ib_qp *qp, struct ib_udata *udata);
2485 int (*create_cq)(struct ib_cq *cq, const struct ib_cq_init_attr *attr,
2487 int (*modify_cq)(struct ib_cq *cq, u16 cq_count, u16 cq_period);
2488 int (*destroy_cq)(struct ib_cq *cq, struct ib_udata *udata);
2489 int (*resize_cq)(struct ib_cq *cq, int cqe, struct ib_udata *udata);
2490 struct ib_mr *(*get_dma_mr)(struct ib_pd *pd, int mr_access_flags);
2491 struct ib_mr *(*reg_user_mr)(struct ib_pd *pd, u64 start, u64 length,
2494 struct ib_mr *(*reg_user_mr_dmabuf)(struct ib_pd *pd, u64 offset,
2498 struct ib_mr *(*rereg_user_mr)(struct ib_mr *mr, int flags, u64 start,
2502 int (*dereg_mr)(struct ib_mr *mr, struct ib_udata *udata);
2503 struct ib_mr *(*alloc_mr)(struct ib_pd *pd, enum ib_mr_type mr_type,
2505 struct ib_mr *(*alloc_mr_integrity)(struct ib_pd *pd,
2508 int (*advise_mr)(struct ib_pd *pd,
2520 int (*map_mr_sg)(struct ib_mr *mr, struct scatterlist *sg, int sg_nents,
2522 int (*check_mr_status)(struct ib_mr *mr, u32 check_mask,
2524 int (*alloc_mw)(struct ib_mw *mw, struct ib_udata *udata);
2525 int (*dealloc_mw)(struct ib_mw *mw);
2526 int (*attach_mcast)(struct ib_qp *qp, union ib_gid *gid, u16 lid);
2527 int (*detach_mcast)(struct ib_qp *qp, union ib_gid *gid, u16 lid);
2528 int (*alloc_xrcd)(struct ib_xrcd *xrcd, struct ib_udata *udata);
2529 int (*dealloc_xrcd)(struct ib_xrcd *xrcd, struct ib_udata *udata);
2530 struct ib_flow *(*create_flow)(struct ib_qp *qp,
2533 int (*destroy_flow)(struct ib_flow *flow_id);
2534 int (*destroy_flow_action)(struct ib_flow_action *action);
2535 int (*set_vf_link_state)(struct ib_device *device, int vf, u32 port,
2537 int (*get_vf_config)(struct ib_device *device, int vf, u32 port,
2539 int (*get_vf_stats)(struct ib_device *device, int vf, u32 port,
2541 int (*get_vf_guid)(struct ib_device *device, int vf, u32 port,
2544 int (*set_vf_guid)(struct ib_device *device, int vf, u32 port, u64 guid,
2546 struct ib_wq *(*create_wq)(struct ib_pd *pd,
2549 int (*destroy_wq)(struct ib_wq *wq, struct ib_udata *udata);
2550 int (*modify_wq)(struct ib_wq *wq, struct ib_wq_attr *attr,
2552 int (*create_rwq_ind_table)(struct ib_rwq_ind_table *ib_rwq_ind_table,
2555 int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *wq_ind_table);
2556 struct ib_dm *(*alloc_dm)(struct ib_device *device,
2560 int (*dealloc_dm)(struct ib_dm *dm, struct uverbs_attr_bundle *attrs);
2561 struct ib_mr *(*reg_dm_mr)(struct ib_pd *pd, struct ib_dm *dm,
2564 int (*create_counters)(struct ib_counters *counters,
2566 int (*destroy_counters)(struct ib_counters *counters);
2567 int (*read_counters)(struct ib_counters *counters,
2570 int (*map_mr_sg_pi)(struct ib_mr *mr, struct scatterlist *data_sg,
2581 struct rdma_hw_stats *(*alloc_hw_device_stats)(struct ib_device *device);
2582 struct rdma_hw_stats *(*alloc_hw_port_stats)(struct ib_device *device,
2596 int (*get_hw_stats)(struct ib_device *device,
2604 int (*modify_hw_stat)(struct ib_device *device, u32 port,
2609 int (*fill_res_mr_entry)(struct sk_buff *msg, struct ib_mr *ibmr);
2610 int (*fill_res_mr_entry_raw)(struct sk_buff *msg, struct ib_mr *ibmr);
2611 int (*fill_res_cq_entry)(struct sk_buff *msg, struct ib_cq *ibcq);
2612 int (*fill_res_cq_entry_raw)(struct sk_buff *msg, struct ib_cq *ibcq);
2613 int (*fill_res_qp_entry)(struct sk_buff *msg, struct ib_qp *ibqp);
2614 int (*fill_res_qp_entry_raw)(struct sk_buff *msg, struct ib_qp *ibqp);
2615 int (*fill_res_cm_id_entry)(struct sk_buff *msg, struct rdma_cm_id *id);
2616 int (*fill_res_srq_entry)(struct sk_buff *msg, struct ib_srq *ib_srq);
2617 int (*fill_res_srq_entry_raw)(struct sk_buff *msg, struct ib_srq *ib_srq);
2624 int (*enable_driver)(struct ib_device *dev);
2628 void (*dealloc_driver)(struct ib_device *dev);
2631 void (*iw_add_ref)(struct ib_qp *qp);
2632 void (*iw_rem_ref)(struct ib_qp *qp);
2633 struct ib_qp *(*iw_get_qp)(struct ib_device *device, int qpn);
2634 int (*iw_connect)(struct iw_cm_id *cm_id,
2636 int (*iw_accept)(struct iw_cm_id *cm_id,
2638 int (*iw_reject)(struct iw_cm_id *cm_id, const void *pdata,
2640 int (*iw_create_listen)(struct iw_cm_id *cm_id, int backlog);
2641 int (*iw_destroy_listen)(struct iw_cm_id *cm_id);
2647 int (*counter_bind_qp)(struct rdma_counter *counter, struct ib_qp *qp,
2653 int (*counter_unbind_qp)(struct ib_qp *qp, u32 port);
2657 int (*counter_dealloc)(struct rdma_counter *counter);
2662 struct rdma_hw_stats *(*counter_alloc_stats)(
2667 int (*counter_update_stats)(struct rdma_counter *counter);
2672 void (*counter_init)(struct rdma_counter *counter);
2678 int (*fill_stat_mr_entry)(struct sk_buff *msg, struct ib_mr *ibmr);
2681 int (*query_ucontext)(struct ib_ucontext *context,
2688 int (*get_numa_node)(struct ib_device *dev);
2693 struct ib_device *(*add_sub_dev)(struct ib_device *parent,
2700 void (*del_sub_dev)(struct ib_device *sub_dev);
2706 void (*ufile_hw_cleanup)(struct ib_uverbs_file *ufile);
2712 void (*report_port_event)(struct ib_device *ibdev,