Lines Matching refs:segment

1630 static int32_t ocs_segment_remaining(ocs_textbuf_segment_t *segment);
1632 static void ocs_textbuf_segment_free(ocs_t *ocs, ocs_textbuf_segment_t *segment);
1662 ocs_textbuf_segment_t *segment = ocs_textbuf_get_segment(textbuf, idx); in ocs_textbuf_ext_get_buffer() local
1663 if (segment == NULL) { in ocs_textbuf_ext_get_buffer()
1666 return segment->buffer; in ocs_textbuf_ext_get_buffer()
1671 ocs_textbuf_segment_t *segment = ocs_textbuf_get_segment(textbuf, idx); in ocs_textbuf_ext_get_length() local
1672 if (segment == NULL) { in ocs_textbuf_ext_get_length()
1675 return segment->buffer_length; in ocs_textbuf_ext_get_length()
1680 ocs_textbuf_segment_t *segment = ocs_textbuf_get_segment(textbuf, idx); in ocs_textbuf_ext_get_written() local
1681 if (segment == NULL) { in ocs_textbuf_ext_get_written()
1684 return segment->buffer_written; in ocs_textbuf_ext_get_written()
1720 ocs_textbuf_segment_t *segment = NULL; in ocs_textbuf_segment_alloc() local
1723 segment = ocs_malloc(textbuf->ocs, sizeof(*segment), OCS_M_ZERO | OCS_M_NOWAIT); in ocs_textbuf_segment_alloc()
1724 if (segment != NULL) { in ocs_textbuf_segment_alloc()
1725segment->buffer = ocs_malloc(textbuf->ocs, textbuf->allocation_length, OCS_M_ZERO | OCS_M_NOWAIT); in ocs_textbuf_segment_alloc()
1726 if (segment->buffer != NULL) { in ocs_textbuf_segment_alloc()
1727 segment->buffer_length = textbuf->allocation_length; in ocs_textbuf_segment_alloc()
1728 segment->buffer_written = 0; in ocs_textbuf_segment_alloc()
1729 ocs_list_add_tail(&textbuf->segment_list, segment); in ocs_textbuf_segment_alloc()
1738 ocs_textbuf_segment_free(textbuf->ocs, segment); in ocs_textbuf_segment_alloc()
1739 segment = NULL; in ocs_textbuf_segment_alloc()
1743 return segment; in ocs_textbuf_segment_alloc()
1747 ocs_textbuf_segment_free(ocs_t *ocs, ocs_textbuf_segment_t *segment) in ocs_textbuf_segment_free() argument
1749 if (segment) { in ocs_textbuf_segment_free()
1750 if (segment->buffer && !segment->user_allocated) { in ocs_textbuf_segment_free()
1751 ocs_free(ocs, segment->buffer, segment->buffer_length); in ocs_textbuf_segment_free()
1753 ocs_free(ocs, segment, sizeof(*segment)); in ocs_textbuf_segment_free()
1761 ocs_textbuf_segment_t *segment; in ocs_textbuf_get_segment() local
1765 ocs_list_foreach(&textbuf->segment_list, segment) { in ocs_textbuf_get_segment()
1767 return segment; in ocs_textbuf_get_segment()
1779 ocs_textbuf_segment_t *segment; in ocs_textbuf_init() local
1785 segment = ocs_malloc(ocs, sizeof(*segment), OCS_M_ZERO | OCS_M_NOWAIT); in ocs_textbuf_init()
1786 if (segment) { in ocs_textbuf_init()
1787 segment->buffer = buffer; in ocs_textbuf_init()
1788 segment->buffer_length = length; in ocs_textbuf_init()
1789 segment->buffer_written = 0; in ocs_textbuf_init()
1790 segment->user_allocated = 1; in ocs_textbuf_init()
1791 ocs_list_add_tail(&textbuf->segment_list, segment); in ocs_textbuf_init()
1801 ocs_textbuf_segment_t *segment; in ocs_textbuf_free() local
1805 ocs_list_foreach_safe(&textbuf->segment_list, segment, n) { in ocs_textbuf_free()
1806 ocs_list_remove(&textbuf->segment_list, segment); in ocs_textbuf_free()
1807 ocs_textbuf_segment_free(ocs, segment); in ocs_textbuf_free()
1831 ocs_textbuf_segment_t *segment; in ocs_textbuf_vprintf() local
1841 segment = ocs_list_get_tail(&textbuf->segment_list); in ocs_textbuf_vprintf()
1843 avail = ocs_segment_remaining(segment); in ocs_textbuf_vprintf()
1845 if ((segment = ocs_textbuf_segment_alloc(textbuf)) == NULL) { in ocs_textbuf_vprintf()
1848 avail = ocs_segment_remaining(segment); in ocs_textbuf_vprintf()
1851 written = ocs_vsnprintf(segment->buffer + segment->buffer_written, avail, fmt, ap); in ocs_textbuf_vprintf()
1861 *(segment->buffer + segment->buffer_written) = 0; in ocs_textbuf_vprintf()
1864 if ((segment = ocs_textbuf_segment_alloc(textbuf)) == NULL) { in ocs_textbuf_vprintf()
1868 avail = ocs_segment_remaining(segment); in ocs_textbuf_vprintf()
1871 written = ocs_vsnprintf(segment->buffer + segment->buffer_written, avail, fmt, save_ap); in ocs_textbuf_vprintf()
1874 segment->buffer_written += written; in ocs_textbuf_vprintf()
1883 ocs_textbuf_segment_t *segment; in ocs_textbuf_putc() local
1886 segment = ocs_list_get_tail(&textbuf->segment_list); in ocs_textbuf_putc()
1888 if (ocs_segment_remaining(segment)) { in ocs_textbuf_putc()
1889 *(segment->buffer + segment->buffer_written++) = c; in ocs_textbuf_putc()
1891 if (ocs_segment_remaining(segment) == 0) { in ocs_textbuf_putc()
1969 ocs_segment_remaining(ocs_textbuf_segment_t *segment) in ocs_segment_remaining() argument
1971 return segment->buffer_length - segment->buffer_written; in ocs_segment_remaining()
1978 ocs_textbuf_segment_t *segment; in ocs_textbuf_reset() local
1983 ocs_list_foreach_safe(&textbuf->segment_list, segment, n) { in ocs_textbuf_reset()
1985 segment->buffer_written = 0; in ocs_textbuf_reset()
1987 ocs_list_remove(&textbuf->segment_list, segment); in ocs_textbuf_reset()
1988 ocs_textbuf_segment_free(textbuf->ocs, segment); in ocs_textbuf_reset()