DMSGF_DELETE
((state->txcmd & DMSGF_DELETE) ? "D" : ""),
((state->rxcmd & DMSGF_DELETE) ? "D" : "")
if (msg->any.head.cmd & (DMSGF_CREATE | DMSGF_DELETE |
if (msg->any.head.cmd & DMSGF_DELETE)
if (cmd & DMSGF_DELETE)
if (msg->any.head.cmd & (DMSGF_CREATE | DMSGF_DELETE)) {
DMSGF_DELETE |
case DMSG_BLK_READ | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_BLK_WRITE | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_BLK_READ | DMSGF_CREATE | DMSGF_DELETE | DMSGF_REPLY:
case DMSG_BLK_WRITE | DMSGF_CREATE | DMSGF_DELETE | DMSGF_REPLY:
if ((state->parent->txcmd & DMSGF_DELETE) ||
(state->parent->rxcmd & DMSGF_DELETE)) {
state->txcmd = msg->any.head.cmd & ~DMSGF_DELETE;
state->txcmd = msg->any.head.cmd & ~DMSGF_DELETE;
if (state && (state->txcmd & DMSGF_DELETE)) {
if ((state->parent->txcmd & DMSGF_DELETE) ||
if ((state->rxcmd & DMSGF_DELETE) == 0) {
msg->any.head.cmd |= DMSGF_DELETE |
if (state->txcmd & DMSGF_DELETE)
cmd |= DMSGF_DELETE;
if (state->txcmd & DMSGF_DELETE)
uint32_t cmd = DMSG_LNK_ERROR | DMSGF_DELETE;
if (state->txcmd & DMSGF_DELETE)
if (state->txcmd & DMSGF_DELETE)
switch(msg->any.head.cmd & (DMSGF_CREATE | DMSGF_DELETE |
case DMSGF_CREATE | DMSGF_DELETE:
state->rxcmd = msg->any.head.cmd & ~DMSGF_DELETE;
case DMSGF_DELETE:
case DMSGF_REPLY | DMSGF_CREATE | DMSGF_DELETE:
state->rxcmd = msg->any.head.cmd & ~DMSGF_DELETE;
case DMSGF_REPLY | DMSGF_DELETE:
if (msg->any.head.cmd & (DMSGF_CREATE | DMSGF_DELETE)) {
DMSGF_DELETE |
case DMSG_BLK_READ | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_BLK_WRITE | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_BLK_READ | DMSGF_CREATE | DMSGF_DELETE | DMSGF_REPLY:
case DMSG_BLK_WRITE | DMSGF_CREATE | DMSGF_DELETE | DMSGF_REPLY:
} else if (msg->any.head.cmd & DMSGF_DELETE) {
assert((state->rxcmd & DMSGF_DELETE) == 0);
state->rxcmd |= DMSGF_DELETE;
if (state->txcmd & DMSGF_DELETE) {
case DMSG_BLK_OPEN | DMSGF_DELETE:
case DMSG_BLK_READ | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_BLK_WRITE | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_BLK_READ | DMSGF_CREATE | DMSGF_DELETE | DMSGF_REPLY:
case DMSG_BLK_WRITE | DMSGF_CREATE | DMSGF_DELETE | DMSGF_REPLY:
assert((rstate->txcmd & DMSGF_DELETE) == 0);
(state->rxcmd & DMSGF_DELETE) &&
(state->txcmd & DMSGF_DELETE)) {
} else if (msg->any.head.cmd & DMSGF_DELETE) {
if ((state->txcmd & DMSGF_DELETE) == 0 &&
(state->rxcmd & DMSGF_DELETE)) {
state->txcmd |= DMSGF_DELETE;
} else if ((state->txcmd & DMSGF_DELETE) == 0) {
state->txcmd |= DMSGF_DELETE;
(state->rxcmd & DMSGF_DELETE) == 0) {
state->txcmd = cmd & ~(DMSGF_CREATE | DMSGF_DELETE);
if (msg->any.head.cmd & DMSGF_DELETE) {
case DMSG_LNK_CONN | DMSGF_CREATE | DMSGF_DELETE:
if ((msg->any.head.cmd & DMSGF_DELETE) == 0) {
case DMSG_LNK_CONN | DMSGF_DELETE:
case DMSG_LNK_ERROR | DMSGF_DELETE:
if (msg->any.head.cmd & DMSGF_DELETE)
if (msg->any.head.cmd & DMSGF_DELETE) {
if (msg->any.head.cmd & DMSGF_DELETE)
case DMSG_LNK_ERROR | DMSGF_DELETE:
case DMSG_LNK_CONN | DMSGF_DELETE:
if (msg->any.head.cmd & DMSGF_DELETE)
case DMSG_LNK_CONN | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_LNK_CONN | DMSGF_DELETE:
case DMSG_LNK_ERROR | DMSGF_DELETE:
if (msg->any.head.cmd & DMSGF_DELETE) {
(msg->any.head.cmd & DMSGF_DELETE) && sc->opencnt) {
if (msg->any.head.cmd & DMSGF_DELETE) {
if ((state->txcmd & DMSGF_DELETE) == 0)
if ((state->txcmd & DMSGF_DELETE) == 0)
if ((span->rxcmd & DMSGF_DELETE) == 0)
case DMSG_LNK_SPAN | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_LNK_SPAN | DMSGF_DELETE:
case DMSG_LNK_SPAN | DMSGF_DELETE | DMSGF_REPLY:
if ((trans->rxcmd & DMSGF_DELETE) == 0)
DMSGF_DELETE,
DMSGF_CREATE | DMSGF_DELETE,
DMSGF_CREATE | DMSGF_DELETE,
DMSGF_CREATE | DMSGF_DELETE,
if (msg->any.head.cmd & (DMSGF_CREATE | DMSGF_DELETE)) {
DMSGF_DELETE |
} else if (msg->any.head.cmd & DMSGF_DELETE) {
KKASSERT((state->rxcmd & DMSGF_DELETE) == 0);
state->rxcmd |= DMSGF_DELETE;
if (state->txcmd & DMSGF_DELETE) {
DMSGF_DELETE |
case DMSG_LNK_CONN | DMSGF_CREATE | DMSGF_DELETE:
if ((msg->any.head.cmd & DMSGF_DELETE) == 0) {
case DMSG_LNK_CONN | DMSGF_DELETE:
case DMSG_LNK_SPAN | DMSGF_CREATE | DMSGF_DELETE:
if ((msg->any.head.cmd & DMSGF_DELETE) == 0) {
case DMSG_LNK_SPAN | DMSGF_DELETE:
if ((msg->any.head.cmd & DMSGF_DELETE) &&
(state->rxcmd & DMSGF_DELETE) &&
(state->txcmd & DMSGF_DELETE)) {
if ((state->rxcmd & DMSGF_DELETE) == 0) {
msg->any.head.cmd |= DMSGF_DELETE |
if ((msg->any.head.cmd & (DMSGF_CREATE | DMSGF_DELETE |
switch(msg->any.head.cmd & (DMSGF_CREATE | DMSGF_DELETE |
case DMSGF_CREATE | DMSGF_DELETE:
state->txcmd = msg->any.head.cmd & ~DMSGF_DELETE;
case DMSGF_DELETE:
case DMSGF_REPLY | DMSGF_CREATE | DMSGF_DELETE:
state->txcmd = msg->any.head.cmd & ~DMSGF_DELETE;
case DMSGF_REPLY | DMSGF_DELETE:
if (msg->any.head.cmd & DMSGF_DELETE) {
KKASSERT((state->txcmd & DMSGF_DELETE) == 0);
state->txcmd |= DMSGF_DELETE;
if (state->rxcmd & DMSGF_DELETE) {
(state->rxcmd & DMSGF_DELETE) == 0) {
KKASSERT((state->txcmd & DMSGF_DELETE) == 0);
(state->parent->txcmd & DMSGF_DELETE) ||
if (state->txcmd & DMSGF_DELETE)
cmd |= DMSGF_DELETE;
if (state->txcmd & DMSGF_DELETE)
if (state->txcmd & DMSGF_DELETE)
cmd |= DMSGF_DELETE;
if (state->txcmd & DMSGF_DELETE)
if ((state->txcmd & DMSGF_DELETE) == 0 &&
(msg->any.head.cmd & DMSGF_DELETE)) {
if ((state->txcmd & DMSGF_DELETE) == 0 &&
(msg->any.head.cmd & DMSGF_DELETE)) {
if ((msg->any.head.cmd & (DMSGF_CREATE | DMSGF_DELETE |
switch(msg->any.head.cmd & (DMSGF_CREATE|DMSGF_DELETE|DMSGF_REPLY)) {
case DMSGF_CREATE | DMSGF_DELETE:
state->rxcmd = msg->any.head.cmd & ~DMSGF_DELETE;
case DMSGF_DELETE:
case DMSGF_REPLY | DMSGF_CREATE | DMSGF_DELETE:
state->rxcmd = msg->any.head.cmd & ~DMSGF_DELETE;
case DMSGF_REPLY | DMSGF_DELETE:
if (msg->any.head.cmd & DMSGF_DELETE)
if (msg->any.head.cmd & DMSGF_DELETE) {
if (msg->any.head.cmd & DMSGF_DELETE)
if (msg->any.head.cmd & DMSGF_DELETE) {
if (msg->any.head.cmd & DMSGF_DELETE)
if (msg->any.head.cmd & DMSGF_DELETE) {
if (msg->any.head.cmd & DMSGF_DELETE)
if (msg->any.head.cmd & DMSGF_DELETE) {
if (msg->any.head.cmd & DMSGF_DELETE)
if (msg->any.head.cmd & DMSGF_DELETE) {
cmd |= DMSGF_DELETE;
DMSGF_DELETE)
#define DMSGF_BASEFLAGS (DMSGF_CREATE | DMSGF_DELETE | DMSGF_REPLY)
case DMSG_LNK_CONN | DMSGF_CREATE | DMSGF_DELETE:
case DMSG_LNK_CONN | DMSGF_DELETE:
case DMSG_LNK_CONN | DMSGF_CREATE | DMSGF_DELETE | DMSGF_REPLY:
if ((msg->any.head.cmd & DMSGF_DELETE) &&
msg->state && (msg->state->txcmd & DMSGF_DELETE) == 0) {
case DMSG_LNK_SPAN | DMSGF_DELETE:
if ((state->txcmd & DMSGF_DELETE) == 0 &&
(msg->any.head.cmd & DMSGF_DELETE)) {