Lines Matching refs:segment

1622 static int32_t ocs_segment_remaining(ocs_textbuf_segment_t *segment);
1624 static void ocs_textbuf_segment_free(ocs_t *ocs, ocs_textbuf_segment_t *segment);
1654 ocs_textbuf_segment_t *segment = ocs_textbuf_get_segment(textbuf, idx); in ocs_textbuf_ext_get_buffer() local
1655 if (segment == NULL) { in ocs_textbuf_ext_get_buffer()
1658 return segment->buffer; in ocs_textbuf_ext_get_buffer()
1663 ocs_textbuf_segment_t *segment = ocs_textbuf_get_segment(textbuf, idx); in ocs_textbuf_ext_get_length() local
1664 if (segment == NULL) { in ocs_textbuf_ext_get_length()
1667 return segment->buffer_length; in ocs_textbuf_ext_get_length()
1672 ocs_textbuf_segment_t *segment = ocs_textbuf_get_segment(textbuf, idx); in ocs_textbuf_ext_get_written() local
1673 if (segment == NULL) { in ocs_textbuf_ext_get_written()
1676 return segment->buffer_written; in ocs_textbuf_ext_get_written()
1712 ocs_textbuf_segment_t *segment = NULL; in ocs_textbuf_segment_alloc() local
1715 segment = ocs_malloc(textbuf->ocs, sizeof(*segment), OCS_M_ZERO | OCS_M_NOWAIT); in ocs_textbuf_segment_alloc()
1716 if (segment != NULL) { in ocs_textbuf_segment_alloc()
1717segment->buffer = ocs_malloc(textbuf->ocs, textbuf->allocation_length, OCS_M_ZERO | OCS_M_NOWAIT); in ocs_textbuf_segment_alloc()
1718 if (segment->buffer != NULL) { in ocs_textbuf_segment_alloc()
1719 segment->buffer_length = textbuf->allocation_length; in ocs_textbuf_segment_alloc()
1720 segment->buffer_written = 0; in ocs_textbuf_segment_alloc()
1721 ocs_list_add_tail(&textbuf->segment_list, segment); in ocs_textbuf_segment_alloc()
1730 ocs_textbuf_segment_free(textbuf->ocs, segment); in ocs_textbuf_segment_alloc()
1731 segment = NULL; in ocs_textbuf_segment_alloc()
1735 return segment; in ocs_textbuf_segment_alloc()
1739 ocs_textbuf_segment_free(ocs_t *ocs, ocs_textbuf_segment_t *segment) in ocs_textbuf_segment_free() argument
1741 if (segment) { in ocs_textbuf_segment_free()
1742 if (segment->buffer && !segment->user_allocated) { in ocs_textbuf_segment_free()
1743 ocs_free(ocs, segment->buffer, segment->buffer_length); in ocs_textbuf_segment_free()
1745 ocs_free(ocs, segment, sizeof(*segment)); in ocs_textbuf_segment_free()
1753 ocs_textbuf_segment_t *segment; in ocs_textbuf_get_segment() local
1757 ocs_list_foreach(&textbuf->segment_list, segment) { in ocs_textbuf_get_segment()
1759 return segment; in ocs_textbuf_get_segment()
1771 ocs_textbuf_segment_t *segment; in ocs_textbuf_init() local
1777 segment = ocs_malloc(ocs, sizeof(*segment), OCS_M_ZERO | OCS_M_NOWAIT); in ocs_textbuf_init()
1778 if (segment) { in ocs_textbuf_init()
1779 segment->buffer = buffer; in ocs_textbuf_init()
1780 segment->buffer_length = length; in ocs_textbuf_init()
1781 segment->buffer_written = 0; in ocs_textbuf_init()
1782 segment->user_allocated = 1; in ocs_textbuf_init()
1783 ocs_list_add_tail(&textbuf->segment_list, segment); in ocs_textbuf_init()
1793 ocs_textbuf_segment_t *segment; in ocs_textbuf_free() local
1797 ocs_list_foreach_safe(&textbuf->segment_list, segment, n) { in ocs_textbuf_free()
1798 ocs_list_remove(&textbuf->segment_list, segment); in ocs_textbuf_free()
1799 ocs_textbuf_segment_free(ocs, segment); in ocs_textbuf_free()
1823 ocs_textbuf_segment_t *segment; in ocs_textbuf_vprintf() local
1833 segment = ocs_list_get_tail(&textbuf->segment_list); in ocs_textbuf_vprintf()
1835 avail = ocs_segment_remaining(segment); in ocs_textbuf_vprintf()
1837 if ((segment = ocs_textbuf_segment_alloc(textbuf)) == NULL) { in ocs_textbuf_vprintf()
1840 avail = ocs_segment_remaining(segment); in ocs_textbuf_vprintf()
1843 written = ocs_vsnprintf(segment->buffer + segment->buffer_written, avail, fmt, ap); in ocs_textbuf_vprintf()
1851 *(segment->buffer + segment->buffer_written) = 0; in ocs_textbuf_vprintf()
1854 if ((segment = ocs_textbuf_segment_alloc(textbuf)) == NULL) { in ocs_textbuf_vprintf()
1858 avail = ocs_segment_remaining(segment); in ocs_textbuf_vprintf()
1861 written = ocs_vsnprintf(segment->buffer + segment->buffer_written, avail, fmt, save_ap); in ocs_textbuf_vprintf()
1864 segment->buffer_written += written; in ocs_textbuf_vprintf()
1873 ocs_textbuf_segment_t *segment; in ocs_textbuf_putc() local
1876 segment = ocs_list_get_tail(&textbuf->segment_list); in ocs_textbuf_putc()
1878 if (ocs_segment_remaining(segment)) { in ocs_textbuf_putc()
1879 *(segment->buffer + segment->buffer_written++) = c; in ocs_textbuf_putc()
1881 if (ocs_segment_remaining(segment) == 0) { in ocs_textbuf_putc()
1958 ocs_segment_remaining(ocs_textbuf_segment_t *segment) in ocs_segment_remaining() argument
1960 return segment->buffer_length - segment->buffer_written; in ocs_segment_remaining()
1967 ocs_textbuf_segment_t *segment; in ocs_textbuf_reset() local
1972 ocs_list_foreach_safe(&textbuf->segment_list, segment, n) { in ocs_textbuf_reset()
1974 segment->buffer_written = 0; in ocs_textbuf_reset()
1976 ocs_list_remove(&textbuf->segment_list, segment); in ocs_textbuf_reset()
1977 ocs_textbuf_segment_free(textbuf->ocs, segment); in ocs_textbuf_reset()