From: Andre Noll Date: Mon, 2 Jan 2023 13:43:42 +0000 (+0100) Subject: Constify buffer tree API. X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=4dfa81fee689335545bd16322cad6dbf84faa748;p=paraslash.git Constify buffer tree API. A lot of functions of the buffer tree API don't modify the memory referenced by the pointers passed. This patch marks these pointer arguments as constant. --- diff --git a/aacdec_filter.c b/aacdec_filter.c index 87a7900a..ab07be8f 100644 --- a/aacdec_filter.c +++ b/aacdec_filter.c @@ -41,7 +41,8 @@ struct private_aacdec_data { unsigned int sample_rate; }; -static int aacdec_execute(struct btr_node *btrn, const char *cmd, char **result) +static int aacdec_execute(const struct btr_node *btrn, const char *cmd, + char **result) { struct filter_node *fn = btr_context(btrn); struct private_aacdec_data *padd = fn->private_data; diff --git a/afh_recv.c b/afh_recv.c index 8449e787..687b77d9 100644 --- a/afh_recv.c +++ b/afh_recv.c @@ -30,7 +30,7 @@ struct private_afh_recv_data { void *afh_context; }; -static int afh_execute(struct btr_node *btrn, const char *cmd, char **result) +static int afh_execute(const struct btr_node *btrn, const char *cmd, char **result) { struct receiver_node *rn = btr_context(btrn); struct private_afh_recv_data *pard = rn->private_data; diff --git a/buffer_tree.c b/buffer_tree.c index 36a7e6e1..255dc475 100644 --- a/buffer_tree.c +++ b/buffer_tree.c @@ -103,12 +103,12 @@ void btr_pool_free(struct btr_pool *btrp) * \return The same value which was passed during creation time to * btr_pool_new(). */ -size_t btr_pool_size(struct btr_pool *btrp) +size_t btr_pool_size(const struct btr_pool *btrp) { return btrp->area_end - btrp->area_start; } -static size_t btr_pool_filled(struct btr_pool *btrp) +static size_t btr_pool_filled(const struct btr_pool *btrp) { if (!btrp->whead) return btr_pool_size(btrp); @@ -129,7 +129,7 @@ static size_t btr_pool_filled(struct btr_pool *btrp) * the largest contiguous buffer that can currently be allocated from the * buffer pool. */ -size_t btr_pool_unused(struct btr_pool *btrp) +size_t btr_pool_unused(const struct btr_pool *btrp) { return btr_pool_size(btrp) - btr_pool_filled(btrp); } @@ -138,7 +138,7 @@ size_t btr_pool_unused(struct btr_pool *btrp) * Return maximal size available for one read. This is * smaller than the value returned by btr_pool_unused(). */ -static size_t btr_pool_available(struct btr_pool *btrp) +static size_t btr_pool_available(const struct btr_pool *btrp) { if (!btrp->whead) return 0; @@ -156,7 +156,7 @@ static size_t btr_pool_available(struct btr_pool *btrp) * \return The maximal amount of bytes that may be written to the returned * buffer. */ -size_t btr_pool_get_buffer(struct btr_pool *btrp, char **result) +size_t btr_pool_get_buffer(const struct btr_pool *btrp, char **result) { if (result) *result = btrp->whead; @@ -174,7 +174,7 @@ size_t btr_pool_get_buffer(struct btr_pool *btrp, char **result) * consists of two buffers. If this function returns the value n, then n * elements of \a iov are initialized. */ -int btr_pool_get_buffers(struct btr_pool *btrp, struct iovec iov[2]) +int btr_pool_get_buffers(const struct btr_pool *btrp, struct iovec iov[2]) { size_t sz, unused; char *buf; @@ -322,7 +322,7 @@ static void dealloc_buffer(struct btr_buffer *btrb) free(btrb->buf); } -static struct btr_buffer_reference *get_first_input_br(struct btr_node *btrn) +static struct btr_buffer_reference *get_first_input_br(const struct btr_node *btrn) { if (list_empty(&btrn->input_queue)) return NULL; @@ -330,7 +330,7 @@ static struct btr_buffer_reference *get_first_input_br(struct btr_node *btrn) struct btr_buffer_reference, node); } -static struct btr_buffer_reference *get_last_input_br(struct btr_node *btrn) +static struct btr_buffer_reference *get_last_input_br(const struct btr_node *btrn) { if (list_empty(&btrn->input_queue)) return NULL; @@ -562,7 +562,7 @@ void btr_pushdown_one(struct btr_node *btrn) * * \return True if this node has no children. False otherwise. */ -static bool btr_no_children(struct btr_node *btrn) +static bool btr_no_children(const struct btr_node *btrn) { return list_empty(&btrn->children); } @@ -579,7 +579,7 @@ static bool btr_no_children(struct btr_node *btrn) * After a (non-leaf) node was removed removed from the tree, the function * returns true for all child nodes. */ -bool btr_no_parent(struct btr_node *btrn) +bool btr_no_parent(const struct btr_node *btrn) { return !btrn->parent; } @@ -602,7 +602,7 @@ bool btr_no_parent(struct btr_node *btrn) * * \return True if \a btrn has no siblings. */ -bool btr_inplace_ok(struct btr_node *btrn) +bool btr_inplace_ok(const struct btr_node *btrn) { struct btr_buffer_reference *br; FOR_EACH_BUFFER_REF(br, btrn) { @@ -615,12 +615,13 @@ bool btr_inplace_ok(struct btr_node *btrn) return true; } -static inline size_t br_available_bytes(struct btr_buffer_reference *br) +static inline size_t br_available_bytes(const struct btr_buffer_reference *br) { return br->btrb->size - br->consumed; } -static size_t btr_get_buffer_by_reference(struct btr_buffer_reference *br, char **buf) +static size_t btr_get_buffer_by_reference(const struct btr_buffer_reference *br, + char **buf) { if (buf) *buf = br->btrb->buf + br->consumed; @@ -647,7 +648,8 @@ static size_t btr_get_buffer_by_reference(struct btr_buffer_reference *br, char * to by \a btrn, the function returns zero and the value of \a bufp is * undefined. */ -size_t btr_next_buffer_omit(struct btr_node *btrn, size_t omit, char **bufp) +size_t btr_next_buffer_omit(const struct btr_node *btrn, size_t omit, + char **bufp) { struct btr_buffer_reference *br; size_t wrap_count, sz, rv = 0; @@ -712,7 +714,7 @@ out: * The call of this function is is equivalent to calling \ref * btr_next_buffer_omit() with an \a omit value of zero. */ -size_t btr_next_buffer(struct btr_node *btrn, char **bufp) +size_t btr_next_buffer(const struct btr_node *btrn, char **bufp) { return btr_next_buffer_omit(btrn, 0, bufp); } @@ -844,7 +846,7 @@ out: * This simply iterates over all buffer references in the input queue and * returns the sum of the sizes of all references. */ -size_t btr_get_input_queue_size(struct btr_node *btrn) +size_t btr_get_input_queue_size(const struct btr_node *btrn) { struct btr_buffer_reference *br; size_t size = 0, wrap_consumed = 0; @@ -861,7 +863,7 @@ size_t btr_get_input_queue_size(struct btr_node *btrn) return size; } -static bool min_iqs_available(size_t min_iqs, struct btr_node *btrn) +static bool min_iqs_available(size_t min_iqs, const struct btr_node *btrn) { struct btr_buffer_reference *br; size_t have = 0, wrap_consumed = 0; @@ -919,7 +921,7 @@ void btr_splice_out_node(struct btr_node **btrnp) * \return This function iterates over all children of the given node and * returns the size of the largest input queue. */ -size_t btr_get_output_queue_size(struct btr_node *btrn) +size_t btr_get_output_queue_size(const struct btr_node *btrn) { size_t max_size = 0; struct btr_node *ch; @@ -947,7 +949,7 @@ size_t btr_get_output_queue_size(struct btr_node *btrn) * * \sa \ref receiver::execute, \ref filter::execute, \ref writer::execute. */ -int btr_exec_up(struct btr_node *btrn, const char *command, char **value_result) +int btr_exec_up(const struct btr_node *btrn, const char *command, char **value_result) { int ret; @@ -977,12 +979,12 @@ int btr_exec_up(struct btr_node *btrn, const char *command, char **value_result) * * \sa \ref btr_new_node(), struct \ref btr_node_description. */ -void *btr_context(struct btr_node *btrn) +void *btr_context(const struct btr_node *btrn) { return btrn->context; } -static bool need_buffer_pool_merge(struct btr_node *btrn) +static bool need_buffer_pool_merge(const struct btr_node *btrn) { struct btr_buffer_reference *br = get_first_input_br(btrn); @@ -1157,7 +1159,7 @@ void btr_merge(struct btr_node *btrn, size_t dest_size) } } -static bool btr_eof(struct btr_node *btrn) +static bool btr_eof(const struct btr_node *btrn) { char *buf; size_t len = btr_next_buffer(btrn, &buf); @@ -1165,7 +1167,7 @@ static bool btr_eof(struct btr_node *btrn) return (len == 0 && btr_no_parent(btrn)); } -static void log_tree_recursively(struct btr_node *btrn, int loglevel, int depth) +static void log_tree_recursively(const struct btr_node *btrn, int loglevel, int depth) { struct btr_node *ch; const char spaces[] = " ", *space = spaces + 16 - depth; @@ -1183,7 +1185,7 @@ static void log_tree_recursively(struct btr_node *btrn, int loglevel, int depth) * \param btrn Start logging at this node. * \param loglevel Set severity with which the tree should be logged. */ -void btr_log_tree(struct btr_node *btrn, int loglevel) +void btr_log_tree(const struct btr_node *btrn, int loglevel) { return log_tree_recursively(btrn, loglevel, 0); } @@ -1243,7 +1245,7 @@ struct btr_node *btr_search_node(const char *name, struct btr_node *root) * btrn, the function also returns zero in order to bound the memory usage of * the buffer tree. */ -int btr_node_status(struct btr_node *btrn, size_t min_iqs, +int btr_node_status(const struct btr_node *btrn, size_t min_iqs, enum btr_node_type type) { if (type != BTR_NT_LEAF && btr_no_children(btrn)) @@ -1268,7 +1270,7 @@ int btr_node_status(struct btr_node *btrn, size_t min_iqs, * * Mainly useful for the time display of para_audiod. */ -void btr_get_node_start(struct btr_node *btrn, struct timeval *tv) +void btr_get_node_start(const struct btr_node *btrn, struct timeval *tv) { *tv = btrn->start; } @@ -1283,7 +1285,7 @@ void btr_get_node_start(struct btr_node *btrn, struct timeval *tv) * \return The parent of \a btrn, or \p NULL if \a btrn is the * root node of the buffer tree. */ -struct btr_node *btr_parent(struct btr_node *btrn) +struct btr_node *btr_parent(const struct btr_node *btrn) { return btrn->parent; } diff --git a/buffer_tree.h b/buffer_tree.h index 34535219..5eb3d6e5 100644 --- a/buffer_tree.h +++ b/buffer_tree.h @@ -131,7 +131,7 @@ enum btr_node_type { * know the sample rate of its input known to e.g. the mp3dec node further up * in the buffer tree. */ -typedef int (*btr_command_handler)(struct btr_node *btrn, +typedef int (*btr_command_handler)(const struct btr_node *btrn, const char *command, char **result); /** @@ -166,38 +166,38 @@ struct btr_node_description { void *context; }; -size_t btr_pool_size(struct btr_pool *btrp); +size_t btr_pool_size(const struct btr_pool *btrp); struct btr_pool *btr_pool_new(const char *name, size_t area_size); void btr_pool_free(struct btr_pool *btrp); -size_t btr_pool_get_buffer(struct btr_pool *btrp, char **result); -int btr_pool_get_buffers(struct btr_pool *btrp, struct iovec iov[2]); +size_t btr_pool_get_buffer(const struct btr_pool *btrp, char **result); +int btr_pool_get_buffers(const struct btr_pool *btrp, struct iovec iov[2]); void btr_add_output_pool(struct btr_pool *btrp, size_t size, struct btr_node *btrn); -size_t btr_pool_unused(struct btr_pool *btrp); +size_t btr_pool_unused(const struct btr_pool *btrp); void btr_copy(const void *src, size_t n, struct btr_pool *btrp, struct btr_node *btrn); - struct btr_node *btr_new_node(struct btr_node_description *bnd); void btr_remove_node(struct btr_node **btrnp); void btr_add_output(char *buf, size_t size, struct btr_node *btrn); void btr_add_output_dont_free(const char *buf, size_t size, struct btr_node *btrn); -size_t btr_get_input_queue_size(struct btr_node *btrn); -size_t btr_get_output_queue_size(struct btr_node *btrn); -bool btr_no_parent(struct btr_node *btrn); -size_t btr_next_buffer(struct btr_node *btrn, char **bufp); -size_t btr_next_buffer_omit(struct btr_node *btrn, size_t omit, char **bufp); +size_t btr_get_input_queue_size(const struct btr_node *btrn); +size_t btr_get_output_queue_size(const struct btr_node *btrn); +bool btr_no_parent(const struct btr_node *btrn); +size_t btr_next_buffer(const struct btr_node *btrn, char **bufp); +size_t btr_next_buffer_omit(const struct btr_node *btrn, size_t omit, + char **bufp); void btr_consume(struct btr_node *btrn, size_t numbytes); -int btr_exec_up(struct btr_node *btrn, const char *command, char **value_result); +int btr_exec_up(const struct btr_node *btrn, const char *command, char **value_result); void btr_splice_out_node(struct btr_node **btrnp); void btr_pushdown(struct btr_node *btrn); -void *btr_context(struct btr_node *btrn); +void *btr_context(const struct btr_node *btrn); void btr_merge(struct btr_node *btrn, size_t dest_size); -void btr_log_tree(struct btr_node *btrn, int ll); +void btr_log_tree(const struct btr_node *btrn, int ll); void btr_pushdown_one(struct btr_node *btrn); -bool btr_inplace_ok(struct btr_node *btrn); -int btr_node_status(struct btr_node *btrn, size_t min_iqs, +bool btr_inplace_ok(const struct btr_node *btrn); +int btr_node_status(const struct btr_node *btrn, size_t min_iqs, enum btr_node_type type); -void btr_get_node_start(struct btr_node *btrn, struct timeval *tv); +void btr_get_node_start(const struct btr_node *btrn, struct timeval *tv); struct btr_node *btr_search_node(const char *name, struct btr_node *root); void btr_drain(struct btr_node *btrn); -struct btr_node *btr_parent(struct btr_node *btrn); +struct btr_node *btr_parent(const struct btr_node *btrn); diff --git a/check_wav.c b/check_wav.c index 3789f30a..cb39eb54 100644 --- a/check_wav.c +++ b/check_wav.c @@ -54,7 +54,7 @@ void check_wav_pre_monitor(struct sched *s, struct check_wav_context *cwc) sched_min_delay(s); } -static int check_wav_exec(struct btr_node *btrn, const char *cmd, char **result) +static int check_wav_exec(const struct btr_node *btrn, const char *cmd, char **result) { struct check_wav_context *cwc = btr_context(btrn); int val, header_val, given, arg; diff --git a/flacdec_filter.c b/flacdec_filter.c index fb8ebf15..bc3a678b 100644 --- a/flacdec_filter.c +++ b/flacdec_filter.c @@ -187,7 +187,7 @@ static int flacdec_init(struct filter_node *fn) return -E_FLACDEC_DECODER_INIT; } -static int flacdec_execute(struct btr_node *btrn, const char *cmd, +static int flacdec_execute(const struct btr_node *btrn, const char *cmd, char **result) { struct filter_node *fn = btr_context(btrn); diff --git a/mp3dec_filter.c b/mp3dec_filter.c index cf3e5d4b..d4d4712f 100644 --- a/mp3dec_filter.c +++ b/mp3dec_filter.c @@ -175,7 +175,8 @@ static void mp3dec_open(struct filter_node *fn) mad_stream_options(&pmd->stream, MAD_OPTION_IGNORECRC); } -static int mp3dec_execute(struct btr_node *btrn, const char *cmd, char **result) +static int mp3dec_execute(const struct btr_node *btrn, const char *cmd, + char **result) { struct filter_node *fn = btr_context(btrn); struct private_mp3dec_data *pmd = fn->private_data; diff --git a/oggdec_filter.c b/oggdec_filter.c index b1aec4bc..91c18c48 100644 --- a/oggdec_filter.c +++ b/oggdec_filter.c @@ -107,7 +107,8 @@ static void ogg_close(struct filter_node *fn) fn->private_data = NULL; } -static int oggdec_execute(struct btr_node *btrn, const char *cmd, char **result) +static int oggdec_execute(const struct btr_node *btrn, const char *cmd, + char **result) { struct filter_node *fn = btr_context(btrn); struct private_oggdec_data *pod = fn->private_data; diff --git a/opusdec_filter.c b/opusdec_filter.c index f36990fa..504ba0e8 100644 --- a/opusdec_filter.c +++ b/opusdec_filter.c @@ -75,7 +75,7 @@ struct opusdec_context { ogg_int32_t opus_serialno; }; -static int opusdec_execute(struct btr_node *btrn, const char *cmd, +static int opusdec_execute(const struct btr_node *btrn, const char *cmd, char **result) { struct filter_node *fn = btr_context(btrn); diff --git a/resample_filter.c b/resample_filter.c index 72cb3f62..6d4599a8 100644 --- a/resample_filter.c +++ b/resample_filter.c @@ -28,7 +28,8 @@ struct resample_context { struct check_wav_context *cwc; }; -static int resample_execute(struct btr_node *btrn, const char *cmd, char **result) +static int resample_execute(const struct btr_node *btrn, const char *cmd, + char **result) { struct filter_node *fn = btr_context(btrn); struct resample_context *ctx = fn->private_data; diff --git a/spxdec_filter.c b/spxdec_filter.c index 08eac02a..ce72125e 100644 --- a/spxdec_filter.c +++ b/spxdec_filter.c @@ -102,7 +102,7 @@ static void speexdec_close(struct filter_node *fn) fn->private_data = NULL; } -static int speexdec_execute(struct btr_node *btrn, const char *cmd, +static int speexdec_execute(const struct btr_node *btrn, const char *cmd, char **result) { struct filter_node *fn = btr_context(btrn); diff --git a/wmadec_filter.c b/wmadec_filter.c index f2ca273c..5b3d9874 100644 --- a/wmadec_filter.c +++ b/wmadec_filter.c @@ -1147,7 +1147,8 @@ static void wmadec_close(struct filter_node *fn) fn->private_data = NULL; } -static int wmadec_execute(struct btr_node *btrn, const char *cmd, char **result) +static int wmadec_execute(const struct btr_node *btrn, const char *cmd, + char **result) { struct filter_node *fn = btr_context(btrn); struct private_wmadec_data *pwd = fn->private_data;