MP_TRACE_f(MP_FUNC, "%s::read\n", ((modperl_filter_ctx_t *)modperl_filter->f->ctx)->handler->name);
static MP_INLINE apr_size_t mpxs_Apache__Filter_read(pTHX_ I32 items,                                                     SV **MARK, SV **SP){    modperl_filter_t *modperl_filter;    apr_size_t wanted, len=0;    SV *buffer;    mpxs_usage_va_2(modperl_filter, buffer, "$filter->read(buf, [len])");            if (items > 2) {        wanted = SvIV(*MARK);    }    else {        wanted = MP_IOBUFSIZE;    }    if (modperl_filter->mode == MP_INPUT_FILTER_MODE) {        /* XXX: if we ever will have a need to change the read         * discipline: (input_mode, block, readbytes) from the filter         * we can provide an accessor method to modify the values         * supplied by the filter chain */        len = modperl_input_filter_read(aTHX_ modperl_filter, buffer, wanted);    }    else {        len = modperl_output_filter_read(aTHX_ modperl_filter, buffer, wanted);    }    return len;}