Lines Matching refs:mcmd

86 ocs_process_sli_config (ocs_t *ocs, ocs_ioctl_elxu_mbox_t *mcmd, ocs_dma_t *dma)  in ocs_process_sli_config()  argument
88 sli4_cmd_sli_config_t *sli_config = (sli4_cmd_sli_config_t *)mcmd->payload; in ocs_process_sli_config()
96 if (mcmd->out_bytes) { in ocs_process_sli_config()
100 if (ocs_dma_alloc(ocs, dma, mcmd->out_bytes, 4096)) { in ocs_process_sli_config()
102 __func__, (unsigned long long)mcmd->out_bytes); in ocs_process_sli_config()
106 memset(dma->virt, 0, mcmd->out_bytes); in ocs_process_sli_config()
109 rdobj->host_buffer_descriptor[0].buffer_length = mcmd->out_bytes; in ocs_process_sli_config()
131 error = copyin((void *)(uintptr_t)mcmd->in_addr, dma->virt, mcmd->in_bytes); in ocs_process_sli_config()
143 if (mcmd->out_bytes) { in ocs_process_sli_config()
147 if (ocs_dma_alloc(ocs, dma, mcmd->out_bytes, 4096)) { in ocs_process_sli_config()
149 __func__,(unsigned long long) mcmd->out_bytes); in ocs_process_sli_config()
153 memset(dma->virt, 0, mcmd->out_bytes); in ocs_process_sli_config()
156 rdobj->host_buffer_descriptor[0].buffer_length = mcmd->out_bytes; in ocs_process_sli_config()
165 (void *)(uintptr_t)mcmd->in_addr, (unsigned long long)mcmd->in_bytes, in ocs_process_sli_config()
166 (void *)(uintptr_t)mcmd->out_addr, (unsigned long long)mcmd->out_bytes); in ocs_process_sli_config()
169 hexdump(mcmd, mcmd->size, NULL, 0); in ocs_process_sli_config()
173 uint32_t max_bytes = max(mcmd->in_bytes, mcmd->out_bytes); in ocs_process_sli_config()
180 error = copyin((void *)(uintptr_t)mcmd->in_addr, dma->virt, mcmd->in_bytes); in ocs_process_sli_config()
197 ocs_process_mbx_ioctl(ocs_t *ocs, ocs_ioctl_elxu_mbox_t *mcmd) in ocs_process_mbx_ioctl() argument
204 if ((ELXU_BSD_MAGIC != mcmd->magic) || in ocs_process_mbx_ioctl()
205 (sizeof(ocs_ioctl_elxu_mbox_t) != mcmd->size)) { in ocs_process_mbx_ioctl()
207 __func__, mcmd->magic, mcmd->size); in ocs_process_mbx_ioctl()
211 switch(((sli4_mbox_command_header_t *)mcmd->payload)->command) { in ocs_process_mbx_ioctl()
213 if (ENXIO == ocs_process_sli_config(ocs, mcmd, &dma)) in ocs_process_mbx_ioctl()
223 device_printf(ocs->dev, "command %d\n",((sli4_mbox_command_header_t *)mcmd->payload)->command); in ocs_process_mbx_ioctl()
247 if (ocs_hw_command(&ocs->hw, mcmd->payload, OCS_CMD_NOWAIT, in ocs_process_mbx_ioctl()
250 ((sli4_mbox_command_header_t *)mcmd->payload)->command); in ocs_process_mbx_ioctl()
255 if( SLI4_MBOX_COMMAND_SLI_CONFIG == ((sli4_mbox_command_header_t *)mcmd->payload)->command in ocs_process_mbx_ioctl()
256 && mcmd->out_bytes && dma.virt) { in ocs_process_mbx_ioctl()
257 error = copyout(dma.virt, (void *)(uintptr_t)mcmd->out_addr, mcmd->out_bytes); in ocs_process_mbx_ioctl()
365 ocs_ioctl_elxu_mbox_t *mcmd = (void *)addr; in ocs_ioctl() local
366 status = ocs_process_mbx_ioctl(ocs, mcmd); in ocs_ioctl()