ssize_t cdc_write(const uint8_t *buf, size_t len, struct cdc_ctx *ctx) { size_t max_len; crit_enter(); max_len = cdc_write_space(ctx); if (len > max_len) len = max_len; memcpy(&ctx->outbuf[ctx->out_pos], buf, len); ctx->out_pos += len; cdc_tx_done(ctx->outbuf, -1, ctx); crit_exit(); return (len); }
int outpipe_space(size_t len) { return (cdc_write_space(&cdc) >= len); }