Changeset View
Changeset View
Standalone View
Standalone View
head/usr.sbin/bhyve/pci_nvme.c
Show First 20 Lines • Show All 245 Lines • ▼ Show 20 Lines | |||||
/* Completion Queue status word utils */ | /* Completion Queue status word utils */ | ||||
#define NVME_STATUS_P (1 << NVME_STATUS_P_SHIFT) | #define NVME_STATUS_P (1 << NVME_STATUS_P_SHIFT) | ||||
#define NVME_STATUS_MASK \ | #define NVME_STATUS_MASK \ | ||||
((NVME_STATUS_SCT_MASK << NVME_STATUS_SCT_SHIFT) |\ | ((NVME_STATUS_SCT_MASK << NVME_STATUS_SCT_SHIFT) |\ | ||||
(NVME_STATUS_SC_MASK << NVME_STATUS_SC_SHIFT)) | (NVME_STATUS_SC_MASK << NVME_STATUS_SC_SHIFT)) | ||||
static __inline void | static __inline void | ||||
cpywithpad(char *dst, int dst_size, const char *src, char pad) | cpywithpad(char *dst, size_t dst_size, const char *src, char pad) | ||||
{ | { | ||||
int len = strnlen(src, dst_size); | size_t len; | ||||
len = strnlen(src, dst_size); | |||||
memset(dst, pad, dst_size); | |||||
memcpy(dst, src, len); | memcpy(dst, src, len); | ||||
memset(dst + len, pad, dst_size - len); | |||||
} | } | ||||
static __inline void | static __inline void | ||||
pci_nvme_status_tc(uint16_t *status, uint16_t type, uint16_t code) | pci_nvme_status_tc(uint16_t *status, uint16_t type, uint16_t code) | ||||
{ | { | ||||
*status &= ~NVME_STATUS_MASK; | *status &= ~NVME_STATUS_MASK; | ||||
*status |= (type & NVME_STATUS_SCT_MASK) << NVME_STATUS_SCT_SHIFT | | *status |= (type & NVME_STATUS_SCT_MASK) << NVME_STATUS_SCT_SHIFT | | ||||
▲ Show 20 Lines • Show All 1,583 Lines • Show Last 20 Lines |