xbee_err xbee_pktLink(struct xbee_con *con, struct xbee_pkt *pkt) { xbee_err ret; if (!con || !pkt) return XBEE_EMISSINGPARAM; #ifndef XBEE_DISABLE_STRICT_OBJECTS if (xbee_conValidate(con) != XBEE_ENONE) return XBEE_EINVAL; if (xbee_pktValidate(pkt) != XBEE_ENONE) return XBEE_EINVAL; #endif /* XBEE_DISABLE_STRICT_OBJECTS */ if (xbee_ll_get_item(con->pktList, pkt) == XBEE_ENONE) return XBEE_EEXISTS; if ((ret = xbee_ll_add_tail(con->pktList, pkt)) == XBEE_ENONE) { pkt->xbee = con->xbee; pkt->con = con; } return ret; }
EXPORT xbee_err xbee_validate(struct xbee *xbee) { if (xbee_ll_get_item(xbeeList, xbee) != XBEE_ENONE) return XBEE_EINVAL; return XBEE_ENONE; }
EXPORT xbee_err xbee_pktValidate(struct xbee_pkt *pkt) { if (xbee_ll_get_item(pktList, pkt) != XBEE_ENONE) return XBEE_EINVAL; return XBEE_ENONE; }