Lines Matching defs:dma_buffers
179 struct mpi3mr_ioctl_mpt_dma_buffer *dma_buffers, U8 bufcnt)
187 struct mpi3mr_ioctl_mpt_dma_buffer *dma_buff = dma_buffers;
263 struct mpi3mr_ioctl_mpt_dma_buffer *dma_buffers, U8 bufcnt)
273 struct mpi3mr_ioctl_mpt_dma_buffer *dma_buff = dma_buffers;
541 struct mpi3mr_ioctl_mpt_dma_buffer *dma_buffers,
544 U16 i, needed_desc = (dma_buffers->kern_buf_len / MPI3MR_IOCTL_SGE_SIZE);
545 U32 buf_len = dma_buffers->kern_buf_len, copied_len = 0;
548 if (dma_buffers->kern_buf_len % MPI3MR_IOCTL_SGE_SIZE)
557 dma_buffers->dma_desc = malloc(sizeof(*dma_buffers->dma_desc) * needed_desc,
559 if (!dma_buffers->dma_desc)
565 dma_buffers->dma_desc[i].addr = sc->ioctl_sge[desc_count].addr;
566 dma_buffers->dma_desc[i].dma_addr = sc->ioctl_sge[desc_count].dma_addr;
569 dma_buffers->dma_desc[i].size = buf_len;
571 dma_buffers->dma_desc[i].size = sc->ioctl_sge[desc_count].size;
573 buf_len -= dma_buffers->dma_desc[i].size;
574 memset(dma_buffers->dma_desc[i].addr, 0, sc->ioctl_sge[desc_count].size);
576 if (dma_buffers->data_dir == MPI3MR_APP_DDO) {
577 error = copyin(((U8 *)dma_buffers->user_buf + copied_len),
578 dma_buffers->dma_desc[i].addr,
579 dma_buffers->dma_desc[i].size);
582 copied_len += dma_buffers->dma_desc[i].size;
587 free(dma_buffers->dma_desc, M_MPI3MR);
591 dma_buffers->num_dma_desc = needed_desc;
605 static inline U16 mpi3mr_total_num_ioctl_sges(struct mpi3mr_ioctl_mpt_dma_buffer *dma_buffers,
609 for (i=0; i < bufcnt; i++, dma_buffers++) {
610 if ((dma_buffers->data_dir == MPI3MR_APP_DDN) ||
611 dma_buffers->kern_buf)
613 sge_count += dma_buffers->num_dma_desc;
614 if (!dma_buffers->num_dma_desc)
622 struct mpi3mr_ioctl_mpt_dma_buffer *dma_buffers,
629 struct mpi3mr_ioctl_mpt_dma_buffer *dma_buff = dma_buffers;
642 sges_needed = mpi3mr_total_num_ioctl_sges(dma_buffers, bufcnt);
797 struct mpi3mr_ioctl_mpt_dma_buffer *dma_buffers = NULL, *dma_buff = NULL;
861 dma_buffers = malloc((sizeof(*dma_buffers) * bufcnt), M_MPI3MR, M_NOWAIT | M_ZERO);
862 if (!dma_buffers) {
863 printf(IOCNAME "%s: memory allocation failed for dma_buffers\n", sc->name,
869 dma_buff = dma_buffers;
955 dma_buff = dma_buffers;
1031 if (mpi3mr_app_construct_sgl(sc, mpi_request, (karg->mpi_msg_size * 4), dma_buffers,
1044 dma_buffers, bufcnt)) {
1051 dma_buffers, bufcnt)) {
1106 dma_buffers[mpirep_offset].user_buf_len) {
1107 dma_buff = &dma_buffers[mpirep_offset];
1141 dma_buff = &dma_buffers[erb_offset];
1151 dma_buff = dma_buffers;
1191 if (dma_buffers) {
1192 dma_buff = dma_buffers;
1196 free(dma_buffers, M_MPI3MR);