Lines Matching refs:mmap_buf

52     nxt_unit_mmap_buf_t *mmap_buf);
54 nxt_unit_mmap_buf_t *mmap_buf);
55 nxt_inline void nxt_unit_mmap_buf_unlink(nxt_unit_mmap_buf_t *mmap_buf);
88 static void nxt_unit_mmap_buf_release(nxt_unit_mmap_buf_t *mmap_buf);
90 nxt_unit_mmap_buf_t *mmap_buf, int last);
91 static void nxt_unit_mmap_buf_free(nxt_unit_mmap_buf_t *mmap_buf);
92 static void nxt_unit_free_outgoing_buf(nxt_unit_mmap_buf_t *mmap_buf);
114 uint32_t min_size, nxt_unit_mmap_buf_t *mmap_buf, char *local_buf);
801 nxt_unit_mmap_buf_t *mmap_buf) in nxt_unit_mmap_buf_insert() argument
803 mmap_buf->next = *head; in nxt_unit_mmap_buf_insert()
805 if (mmap_buf->next != NULL) { in nxt_unit_mmap_buf_insert()
806 mmap_buf->next->prev = &mmap_buf->next; in nxt_unit_mmap_buf_insert()
809 *head = mmap_buf; in nxt_unit_mmap_buf_insert()
810 mmap_buf->prev = head; in nxt_unit_mmap_buf_insert()
816 nxt_unit_mmap_buf_t *mmap_buf) in nxt_unit_mmap_buf_insert_tail() argument
822 nxt_unit_mmap_buf_insert(prev, mmap_buf); in nxt_unit_mmap_buf_insert_tail()
827 nxt_unit_mmap_buf_unlink(nxt_unit_mmap_buf_t *mmap_buf) in nxt_unit_mmap_buf_unlink() argument
831 prev = mmap_buf->prev; in nxt_unit_mmap_buf_unlink()
833 if (mmap_buf->next != NULL) { in nxt_unit_mmap_buf_unlink()
834 mmap_buf->next->prev = prev; in nxt_unit_mmap_buf_unlink()
838 *prev = mmap_buf->next; in nxt_unit_mmap_buf_unlink()
2350 nxt_unit_mmap_buf_t *mmap_buf; in nxt_unit_response_send() local
2376 mmap_buf = nxt_container_of(req->response_buf, nxt_unit_mmap_buf_t, buf); in nxt_unit_response_send()
2378 rc = nxt_unit_mmap_buf_send(req, mmap_buf, 0); in nxt_unit_response_send()
2384 nxt_unit_mmap_buf_free(mmap_buf); in nxt_unit_response_send()
2406 nxt_unit_mmap_buf_t *mmap_buf; in nxt_unit_response_buf_alloc() local
2420 mmap_buf = nxt_unit_mmap_buf_get(req->ctx); in nxt_unit_response_buf_alloc()
2421 if (nxt_slow_path(mmap_buf == NULL)) { in nxt_unit_response_buf_alloc()
2427 mmap_buf->req = req; in nxt_unit_response_buf_alloc()
2429 nxt_unit_mmap_buf_insert_tail(&req_impl->outgoing_buf, mmap_buf); in nxt_unit_response_buf_alloc()
2432 size, size, mmap_buf, in nxt_unit_response_buf_alloc()
2435 nxt_unit_mmap_buf_release(mmap_buf); in nxt_unit_response_buf_alloc()
2442 return &mmap_buf->buf; in nxt_unit_response_buf_alloc()
2449 nxt_unit_mmap_buf_t *mmap_buf; in nxt_unit_mmap_buf_get() local
2459 mmap_buf = nxt_unit_malloc(ctx, sizeof(nxt_unit_mmap_buf_t)); in nxt_unit_mmap_buf_get()
2460 if (nxt_slow_path(mmap_buf == NULL)) { in nxt_unit_mmap_buf_get()
2465 mmap_buf = ctx_impl->free_buf; in nxt_unit_mmap_buf_get()
2467 nxt_unit_mmap_buf_unlink(mmap_buf); in nxt_unit_mmap_buf_get()
2472 mmap_buf->ctx_impl = ctx_impl; in nxt_unit_mmap_buf_get()
2474 mmap_buf->hdr = NULL; in nxt_unit_mmap_buf_get()
2475 mmap_buf->free_ptr = NULL; in nxt_unit_mmap_buf_get()
2477 return mmap_buf; in nxt_unit_mmap_buf_get()
2482 nxt_unit_mmap_buf_release(nxt_unit_mmap_buf_t *mmap_buf) in nxt_unit_mmap_buf_release() argument
2484 nxt_unit_mmap_buf_unlink(mmap_buf); in nxt_unit_mmap_buf_release()
2486 pthread_mutex_lock(&mmap_buf->ctx_impl->mutex); in nxt_unit_mmap_buf_release()
2488 nxt_unit_mmap_buf_insert(&mmap_buf->ctx_impl->free_buf, mmap_buf); in nxt_unit_mmap_buf_release()
2490 pthread_mutex_unlock(&mmap_buf->ctx_impl->mutex); in nxt_unit_mmap_buf_release()
2568 nxt_unit_mmap_buf_t *mmap_buf; in nxt_unit_buf_send() local
2572 mmap_buf = nxt_container_of(buf, nxt_unit_mmap_buf_t, buf); in nxt_unit_buf_send()
2574 req = mmap_buf->req; in nxt_unit_buf_send()
2593 rc = nxt_unit_mmap_buf_send(req, mmap_buf, 0); in nxt_unit_buf_send()
2599 nxt_unit_mmap_buf_free(mmap_buf); in nxt_unit_buf_send()
2609 nxt_unit_mmap_buf_t *mmap_buf; in nxt_unit_buf_send_done() local
2612 mmap_buf = nxt_container_of(buf, nxt_unit_mmap_buf_t, buf); in nxt_unit_buf_send_done()
2614 req = mmap_buf->req; in nxt_unit_buf_send_done()
2616 rc = nxt_unit_mmap_buf_send(req, mmap_buf, 1); in nxt_unit_buf_send_done()
2618 nxt_unit_mmap_buf_free(mmap_buf); in nxt_unit_buf_send_done()
2630 nxt_unit_mmap_buf_t *mmap_buf, int last) in nxt_unit_mmap_buf_send() argument
2649 buf = &mmap_buf->buf; in nxt_unit_mmap_buf_send()
2650 hdr = mmap_buf->hdr; in nxt_unit_mmap_buf_send()
2700 mmap_buf->hdr = NULL; in nxt_unit_mmap_buf_send()
2710 if (nxt_slow_path(mmap_buf->plain_ptr == NULL in nxt_unit_mmap_buf_send()
2711 || mmap_buf->plain_ptr > buf->start - sizeof(m.msg))) in nxt_unit_mmap_buf_send()
2740 nxt_unit_free_outgoing_buf(mmap_buf); in nxt_unit_mmap_buf_send()
2754 nxt_unit_mmap_buf_free(nxt_unit_mmap_buf_t *mmap_buf) in nxt_unit_mmap_buf_free() argument
2756 nxt_unit_free_outgoing_buf(mmap_buf); in nxt_unit_mmap_buf_free()
2758 nxt_unit_mmap_buf_release(mmap_buf); in nxt_unit_mmap_buf_free()
2763 nxt_unit_free_outgoing_buf(nxt_unit_mmap_buf_t *mmap_buf) in nxt_unit_free_outgoing_buf() argument
2765 if (mmap_buf->hdr != NULL) { in nxt_unit_free_outgoing_buf()
2766 nxt_unit_mmap_release(&mmap_buf->ctx_impl->ctx, in nxt_unit_free_outgoing_buf()
2767 mmap_buf->hdr, mmap_buf->buf.start, in nxt_unit_free_outgoing_buf()
2768 mmap_buf->buf.end - mmap_buf->buf.start); in nxt_unit_free_outgoing_buf()
2770 mmap_buf->hdr = NULL; in nxt_unit_free_outgoing_buf()
2775 if (mmap_buf->free_ptr != NULL) { in nxt_unit_free_outgoing_buf()
2776 nxt_unit_free(&mmap_buf->ctx_impl->ctx, mmap_buf->free_ptr); in nxt_unit_free_outgoing_buf()
2778 mmap_buf->free_ptr = NULL; in nxt_unit_free_outgoing_buf()
2847 nxt_unit_mmap_buf_t *mmap_buf; in nxt_unit_buf_next() local
2849 mmap_buf = nxt_container_of(buf, nxt_unit_mmap_buf_t, buf); in nxt_unit_buf_next()
2851 if (mmap_buf->next == NULL) { in nxt_unit_buf_next()
2855 return &mmap_buf->next->buf; in nxt_unit_buf_next()
2893 nxt_unit_mmap_buf_t mmap_buf; in nxt_unit_response_write_nb() local
2938 min_part_size, &mmap_buf, local_buf); in nxt_unit_response_write_nb()
2943 buf_size = mmap_buf.buf.end - mmap_buf.buf.free; in nxt_unit_response_write_nb()
2949 mmap_buf.buf.free = nxt_cpymem(mmap_buf.buf.free, in nxt_unit_response_write_nb()
2952 rc = nxt_unit_mmap_buf_send(req, &mmap_buf, 0); in nxt_unit_response_write_nb()
2976 nxt_unit_mmap_buf_t mmap_buf; in nxt_unit_response_write_cb() local
3038 &mmap_buf, local_buf); in nxt_unit_response_write_cb()
3043 buf = &mmap_buf.buf; in nxt_unit_response_write_cb()
3050 nxt_unit_free_outgoing_buf(&mmap_buf); in nxt_unit_response_write_cb()
3058 rc = nxt_unit_mmap_buf_send(req, &mmap_buf, 0); in nxt_unit_response_write_cb()
3111 nxt_unit_mmap_buf_t *mmap_buf, *preread_buf; in nxt_unit_request_readline_size() local
3137 mmap_buf = nxt_container_of(b, nxt_unit_mmap_buf_t, buf); in nxt_unit_request_readline_size()
3138 if (mmap_buf->next == NULL in nxt_unit_request_readline_size()
3147 nxt_unit_mmap_buf_insert(&mmap_buf->next, preread_buf); in nxt_unit_request_readline_size()
3161 nxt_unit_mmap_buf_t *mmap_buf; in nxt_unit_request_preread() local
3168 mmap_buf = nxt_unit_mmap_buf_get(req->ctx); in nxt_unit_request_preread()
3169 if (nxt_slow_path(mmap_buf == NULL)) { in nxt_unit_request_preread()
3174 mmap_buf->free_ptr = nxt_unit_malloc(req->ctx, size); in nxt_unit_request_preread()
3175 if (nxt_slow_path(mmap_buf->free_ptr == NULL)) { in nxt_unit_request_preread()
3177 nxt_unit_mmap_buf_release(mmap_buf); in nxt_unit_request_preread()
3181 mmap_buf->plain_ptr = mmap_buf->free_ptr; in nxt_unit_request_preread()
3183 mmap_buf->hdr = NULL; in nxt_unit_request_preread()
3184 mmap_buf->buf.start = mmap_buf->free_ptr; in nxt_unit_request_preread()
3185 mmap_buf->buf.free = mmap_buf->buf.start; in nxt_unit_request_preread()
3186 mmap_buf->buf.end = mmap_buf->buf.start + size; in nxt_unit_request_preread()
3188 res = read(req->content_fd, mmap_buf->free_ptr, size); in nxt_unit_request_preread()
3193 nxt_unit_mmap_buf_free(mmap_buf); in nxt_unit_request_preread()
3206 mmap_buf->buf.end = mmap_buf->buf.free + res; in nxt_unit_request_preread()
3208 return mmap_buf; in nxt_unit_request_preread()
3339 nxt_unit_mmap_buf_t mmap_buf; in nxt_unit_websocket_sendv() local
3354 &mmap_buf, local_buf); in nxt_unit_websocket_sendv()
3359 buf = &mmap_buf.buf; in nxt_unit_websocket_sendv()
3386 rc = nxt_unit_mmap_buf_send(req, &mmap_buf, 0); in nxt_unit_websocket_sendv()
3397 &mmap_buf, local_buf); in nxt_unit_websocket_sendv()
3408 rc = nxt_unit_mmap_buf_send(req, &mmap_buf, 0); in nxt_unit_websocket_sendv()
3933 nxt_unit_mmap_buf_t *mmap_buf, char *local_buf) in nxt_unit_get_outgoing_buf() argument
3941 mmap_buf->free_ptr = NULL; in nxt_unit_get_outgoing_buf()
3942 mmap_buf->plain_ptr = local_buf; in nxt_unit_get_outgoing_buf()
3945 mmap_buf->free_ptr = nxt_unit_malloc(ctx, in nxt_unit_get_outgoing_buf()
3947 if (nxt_slow_path(mmap_buf->free_ptr == NULL)) { in nxt_unit_get_outgoing_buf()
3951 mmap_buf->plain_ptr = mmap_buf->free_ptr; in nxt_unit_get_outgoing_buf()
3954 mmap_buf->hdr = NULL; in nxt_unit_get_outgoing_buf()
3955 mmap_buf->buf.start = mmap_buf->plain_ptr + sizeof(nxt_port_msg_t); in nxt_unit_get_outgoing_buf()
3956 mmap_buf->buf.free = mmap_buf->buf.start; in nxt_unit_get_outgoing_buf()
3957 mmap_buf->buf.end = mmap_buf->buf.start + size; in nxt_unit_get_outgoing_buf()
3960 mmap_buf->buf.start, (int) size); in nxt_unit_get_outgoing_buf()
3971 mmap_buf->hdr = NULL; in nxt_unit_get_outgoing_buf()
3972 mmap_buf->buf.start = NULL; in nxt_unit_get_outgoing_buf()
3973 mmap_buf->buf.free = NULL; in nxt_unit_get_outgoing_buf()
3974 mmap_buf->buf.end = NULL; in nxt_unit_get_outgoing_buf()
3975 mmap_buf->free_ptr = NULL; in nxt_unit_get_outgoing_buf()
3983 mmap_buf->hdr = hdr; in nxt_unit_get_outgoing_buf()
3984 mmap_buf->buf.start = (char *) nxt_port_mmap_chunk_start(hdr, c); in nxt_unit_get_outgoing_buf()
3985 mmap_buf->buf.free = mmap_buf->buf.start; in nxt_unit_get_outgoing_buf()
3986 mmap_buf->buf.end = mmap_buf->buf.start + nchunks * PORT_MMAP_CHUNK_SIZE; in nxt_unit_get_outgoing_buf()
3987 mmap_buf->free_ptr = NULL; in nxt_unit_get_outgoing_buf()
3988 mmap_buf->ctx_impl = nxt_container_of(ctx, nxt_unit_ctx_impl_t, ctx); in nxt_unit_get_outgoing_buf()
5183 nxt_unit_mmap_buf_t *mmap_buf; in nxt_unit_ctx_free() local
5203 mmap_buf = ctx_impl->free_buf; in nxt_unit_ctx_free()
5204 nxt_unit_mmap_buf_unlink(mmap_buf); in nxt_unit_ctx_free()
5205 nxt_unit_free(&ctx_impl->ctx, mmap_buf); in nxt_unit_ctx_free()