Changeset b7fd2a0 in mainline for uspace/lib/bithenge/src
- Timestamp:
- 2018-01-13T03:10:29Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a53ed3a
- Parents:
- 36f0738
- Location:
- uspace/lib/bithenge/src
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/bithenge/src/blob.c
r36f0738 rb7fd2a0 49 49 * @return EOK on success or an error code from errno.h. 50 50 */ 51 int bithenge_init_random_access_blob(bithenge_blob_t *blob,51 errno_t bithenge_init_random_access_blob(bithenge_blob_t *blob, 52 52 const bithenge_random_access_blob_ops_t *ops) 53 53 { … … 67 67 } 68 68 69 static int sequential_buffer(bithenge_sequential_blob_t *blob, aoff64_t end)69 static errno_t sequential_buffer(bithenge_sequential_blob_t *blob, aoff64_t end) 70 70 { 71 71 bool need_realloc = false; … … 81 81 } 82 82 aoff64_t size = end - blob->data_size; 83 int rc = blob->ops->read(blob, blob->buffer + blob->data_size, &size);83 errno_t rc = blob->ops->read(blob, blob->buffer + blob->data_size, &size); 84 84 if (rc != EOK) 85 85 return rc; … … 100 100 } 101 101 102 static int sequential_size(bithenge_blob_t *base, aoff64_t *size)102 static errno_t sequential_size(bithenge_blob_t *base, aoff64_t *size) 103 103 { 104 104 bithenge_sequential_blob_t *blob = blob_as_sequential(base); 105 int rc;105 errno_t rc; 106 106 if (blob->ops->size) { 107 107 rc = blob->ops->size(blob, size); … … 121 121 } 122 122 123 static int sequential_read(bithenge_blob_t *base, aoff64_t offset,123 static errno_t sequential_read(bithenge_blob_t *base, aoff64_t offset, 124 124 char *buffer, aoff64_t *size) 125 125 { … … 127 127 aoff64_t end = offset + *size; 128 128 if (end > blob->data_size) { 129 int rc = sequential_buffer(blob, end);129 errno_t rc = sequential_buffer(blob, end); 130 130 if (rc != EOK) 131 131 return rc; … … 158 158 * @return EOK on success or an error code from errno.h. 159 159 */ 160 int bithenge_init_sequential_blob(bithenge_sequential_blob_t *blob,160 errno_t bithenge_init_sequential_blob(bithenge_sequential_blob_t *blob, 161 161 const bithenge_sequential_blob_ops_t *ops) 162 162 { … … 167 167 // ops->size is optional 168 168 169 int rc = bithenge_init_random_access_blob(sequential_as_blob(blob),169 errno_t rc = bithenge_init_random_access_blob(sequential_as_blob(blob), 170 170 &sequential_ops); 171 171 if (rc != EOK) … … 195 195 } 196 196 197 static int memory_size(bithenge_blob_t *base, aoff64_t *size)197 static errno_t memory_size(bithenge_blob_t *base, aoff64_t *size) 198 198 { 199 199 memory_blob_t *blob = blob_as_memory(base); … … 204 204 } 205 205 206 static int memory_read(bithenge_blob_t *base, aoff64_t offset, char *buffer,206 static errno_t memory_read(bithenge_blob_t *base, aoff64_t offset, char *buffer, 207 207 aoff64_t *size) 208 208 { … … 240 240 * function fails or the blob is destroyed. 241 241 * @return EOK on success or an error code from errno.h. */ 242 int bithenge_new_blob_from_buffer(bithenge_node_t **out, const void *buffer,242 errno_t bithenge_new_blob_from_buffer(bithenge_node_t **out, const void *buffer, 243 243 size_t len, bool needs_free) 244 244 { 245 int rc;245 errno_t rc; 246 246 assert(buffer || !len); 247 247 … … 278 278 * @param len The length of the data. 279 279 * @return EOK on success or an error code from errno.h. */ 280 int bithenge_new_blob_from_data(bithenge_node_t **out, const void *data,280 errno_t bithenge_new_blob_from_data(bithenge_node_t **out, const void *data, 281 281 size_t len) 282 282 { … … 309 309 } 310 310 311 static int subblob_size(bithenge_blob_t *base, aoff64_t *size)311 static errno_t subblob_size(bithenge_blob_t *base, aoff64_t *size) 312 312 { 313 313 subblob_t *blob = blob_as_subblob(base); … … 316 316 return EOK; 317 317 } else { 318 int rc = bithenge_blob_size(blob->source, size);318 errno_t rc = bithenge_blob_size(blob->source, size); 319 319 *size -= blob->offset; 320 320 return rc; … … 322 322 } 323 323 324 static int subblob_read(bithenge_blob_t *base, aoff64_t offset,324 static errno_t subblob_read(bithenge_blob_t *base, aoff64_t offset, 325 325 char *buffer, aoff64_t *size) 326 326 { … … 335 335 } 336 336 337 static int subblob_read_bits(bithenge_blob_t *base, aoff64_t offset,337 static errno_t subblob_read_bits(bithenge_blob_t *base, aoff64_t offset, 338 338 char *buffer, aoff64_t *size, bool little_endian) 339 339 { … … 368 368 } 369 369 370 static int new_subblob(bithenge_node_t **out, bithenge_blob_t *source,370 static errno_t new_subblob(bithenge_node_t **out, bithenge_blob_t *source, 371 371 aoff64_t offset, aoff64_t size, bool size_matters) 372 372 { 373 373 assert(out); 374 374 assert(source); 375 int rc;375 errno_t rc; 376 376 subblob_t *blob = 0; 377 377 … … 436 436 * @param offset The offset within the input blob at which the new blob will start. 437 437 * @return EOK on success or an error code from errno.h. */ 438 int bithenge_new_offset_blob(bithenge_node_t **out, bithenge_blob_t *source,438 errno_t bithenge_new_offset_blob(bithenge_node_t **out, bithenge_blob_t *source, 439 439 aoff64_t offset) 440 440 { … … 449 449 * @param size The size of the new blob. 450 450 * @return EOK on success or an error code from errno.h. */ 451 int bithenge_new_subblob(bithenge_node_t **out, bithenge_blob_t *source,451 errno_t bithenge_new_subblob(bithenge_node_t **out, bithenge_blob_t *source, 452 452 aoff64_t offset, aoff64_t size) 453 453 { … … 461 461 * @return EOK on success, or an error code from errno.h. 462 462 */ 463 int bithenge_blob_equal(bool *out, bithenge_blob_t *a, bithenge_blob_t *b)463 errno_t bithenge_blob_equal(bool *out, bithenge_blob_t *a, bithenge_blob_t *b) 464 464 { 465 465 assert(a); … … 467 467 assert(b); 468 468 assert(b->base.blob_ops); 469 int rc;469 errno_t rc; 470 470 char buffer_a[4096], buffer_b[4096]; 471 471 aoff64_t offset = 0, size_a = sizeof(buffer_a), size_b = sizeof(buffer_b); -
uspace/lib/bithenge/src/common.h
r36f0738 rb7fd2a0 40 40 #include "failure.h" 41 41 #else 42 static inline int bithenge_should_fail(void)42 static inline errno_t bithenge_should_fail(void) 43 43 { 44 44 return 0; -
uspace/lib/bithenge/src/compound.c
r36f0738 rb7fd2a0 62 62 } 63 63 64 static int compose_apply(bithenge_transform_t *base, bithenge_scope_t *scope,64 static errno_t compose_apply(bithenge_transform_t *base, bithenge_scope_t *scope, 65 65 bithenge_node_t *in, bithenge_node_t **out) 66 66 { 67 int rc;67 errno_t rc; 68 68 compose_transform_t *self = transform_as_compose(base); 69 69 bithenge_node_inc_ref(in); … … 84 84 } 85 85 86 static int compose_prefix_length(bithenge_transform_t *base,86 static errno_t compose_prefix_length(bithenge_transform_t *base, 87 87 bithenge_scope_t *scope, bithenge_blob_t *blob, aoff64_t *out) 88 88 { … … 115 115 * @param num The number of transforms. 116 116 * @return EOK on success or an error code from errno.h. */ 117 int bithenge_new_composed_transform(bithenge_transform_t **out,117 errno_t bithenge_new_composed_transform(bithenge_transform_t **out, 118 118 bithenge_transform_t **xforms, size_t num) 119 119 { … … 126 126 } 127 127 128 int rc;128 errno_t rc; 129 129 compose_transform_t *self = malloc(sizeof(*self)); 130 130 if (!self) { … … 168 168 } 169 169 170 static int if_transform_choose(if_transform_t *self, bithenge_scope_t *scope,170 static errno_t if_transform_choose(if_transform_t *self, bithenge_scope_t *scope, 171 171 bool *out) 172 172 { 173 173 bithenge_node_t *cond_node; 174 int rc = bithenge_expression_evaluate(self->expr, scope, &cond_node);174 errno_t rc = bithenge_expression_evaluate(self->expr, scope, &cond_node); 175 175 if (rc != EOK) 176 176 return rc; … … 184 184 } 185 185 186 static int if_transform_apply(bithenge_transform_t *base,186 static errno_t if_transform_apply(bithenge_transform_t *base, 187 187 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 188 188 { 189 189 if_transform_t *self = transform_as_if(base); 190 190 bool cond; 191 int rc = if_transform_choose(self, scope, &cond);191 errno_t rc = if_transform_choose(self, scope, &cond); 192 192 if (rc != EOK) 193 193 return rc; … … 196 196 } 197 197 198 static int if_transform_prefix_length(bithenge_transform_t *base,198 static errno_t if_transform_prefix_length(bithenge_transform_t *base, 199 199 bithenge_scope_t *scope, bithenge_blob_t *in, aoff64_t *out) 200 200 { 201 201 if_transform_t *self = transform_as_if(base); 202 202 bool cond; 203 int rc = if_transform_choose(self, scope, &cond);203 errno_t rc = if_transform_choose(self, scope, &cond); 204 204 if (rc != EOK) 205 205 return rc; … … 231 231 * @param false_xform The transform to apply if the expression is false. 232 232 * @return EOK on success or an error code from errno.h. */ 233 int bithenge_if_transform(bithenge_transform_t **out,233 errno_t bithenge_if_transform(bithenge_transform_t **out, 234 234 bithenge_expression_t *expr, bithenge_transform_t *true_xform, 235 235 bithenge_transform_t *false_xform) 236 236 { 237 int rc;237 errno_t rc; 238 238 if_transform_t *self = malloc(sizeof(*self)); 239 239 if (!self) { … … 282 282 } 283 283 284 static int partial_transform_apply(bithenge_transform_t *base,284 static errno_t partial_transform_apply(bithenge_transform_t *base, 285 285 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 286 286 { … … 309 309 * @param xform The subtransform to apply. 310 310 * @return EOK on success or an error code from errno.h. */ 311 int bithenge_partial_transform(bithenge_transform_t **out,311 errno_t bithenge_partial_transform(bithenge_transform_t **out, 312 312 bithenge_transform_t *xform) 313 313 { 314 int rc;314 errno_t rc; 315 315 partial_transform_t *self = malloc(sizeof(*self)); 316 316 if (!self) { -
uspace/lib/bithenge/src/expression.c
r36f0738 rb7fd2a0 48 48 * @param[in] ops Operations provided by the expression. 49 49 * @return EOK or an error code from errno.h. */ 50 int bithenge_init_expression(bithenge_expression_t *self,50 errno_t bithenge_init_expression(bithenge_expression_t *self, 51 51 const bithenge_expression_ops_t *ops) 52 52 { … … 88 88 } 89 89 90 static int binary_expression_evaluate(bithenge_expression_t *base,90 static errno_t binary_expression_evaluate(bithenge_expression_t *base, 91 91 bithenge_scope_t *scope, bithenge_node_t **out) 92 92 { 93 int rc;93 errno_t rc; 94 94 binary_expression_t *self = expression_as_binary(base); 95 95 bithenge_node_t *a, *b; … … 250 250 * @param b The second operand. 251 251 * @return EOK on success or an error code from errno.h. */ 252 int bithenge_binary_expression(bithenge_expression_t **out,252 errno_t bithenge_binary_expression(bithenge_expression_t **out, 253 253 bithenge_binary_op_t op, bithenge_expression_t *a, 254 254 bithenge_expression_t *b) 255 255 { 256 int rc;256 errno_t rc; 257 257 binary_expression_t *self = malloc(sizeof(*self)); 258 258 if (!self) { … … 283 283 /***************** in_node_expression *****************/ 284 284 285 static int in_node_evaluate(bithenge_expression_t *self,285 static errno_t in_node_evaluate(bithenge_expression_t *self, 286 286 bithenge_scope_t *scope, bithenge_node_t **out) 287 287 { … … 306 306 * @param[out] out Holds the new expression. 307 307 * @return EOK on success or an error code from errno.h. */ 308 int bithenge_in_node_expression(bithenge_expression_t **out)308 errno_t bithenge_in_node_expression(bithenge_expression_t **out) 309 309 { 310 310 if (bithenge_should_fail()) … … 319 319 /***************** current_node_expression *****************/ 320 320 321 static int current_node_evaluate(bithenge_expression_t *self,321 static errno_t current_node_evaluate(bithenge_expression_t *self, 322 322 bithenge_scope_t *scope, bithenge_node_t **out) 323 323 { … … 340 340 * @param[out] out Holds the new expression. 341 341 * @return EOK on success or an error code from errno.h. */ 342 int bithenge_current_node_expression(bithenge_expression_t **out)342 errno_t bithenge_current_node_expression(bithenge_expression_t **out) 343 343 { 344 344 bithenge_expression_inc_ref(¤t_node_expression); … … 368 368 } 369 369 370 static int param_expression_evaluate(bithenge_expression_t *base,370 static errno_t param_expression_evaluate(bithenge_expression_t *base, 371 371 bithenge_scope_t *scope, bithenge_node_t **out) 372 372 { … … 390 390 * @param index The index of the parameter to get. 391 391 * @return EOK on success or an error code from errno.h. */ 392 int bithenge_param_expression(bithenge_expression_t **out, int index)393 { 394 int rc;392 errno_t bithenge_param_expression(bithenge_expression_t **out, int index) 393 { 394 errno_t rc; 395 395 param_expression_t *self = malloc(sizeof(*self)); 396 396 if (!self) … … 430 430 } 431 431 432 static int const_expression_evaluate(bithenge_expression_t *base,432 static errno_t const_expression_evaluate(bithenge_expression_t *base, 433 433 bithenge_scope_t *scope, bithenge_node_t **out) 434 434 { … … 455 455 * @param node The constant. 456 456 * @return EOK on success or an error code from errno.h. */ 457 int bithenge_const_expression(bithenge_expression_t **out,457 errno_t bithenge_const_expression(bithenge_expression_t **out, 458 458 bithenge_node_t *node) 459 459 { 460 int rc;460 errno_t rc; 461 461 const_expression_t *self = malloc(sizeof(*self)); 462 462 if (!self) { … … 501 501 } 502 502 503 static int scope_member_expression_evaluate(bithenge_expression_t *base,503 static errno_t scope_member_expression_evaluate(bithenge_expression_t *base, 504 504 bithenge_scope_t *scope, bithenge_node_t **out) 505 505 { … … 511 511 continue; 512 512 bithenge_node_inc_ref(self->key); 513 int rc = bithenge_node_get(cur, self->key, out);513 errno_t rc = bithenge_node_get(cur, self->key, out); 514 514 bithenge_node_dec_ref(cur); 515 515 if (rc != ENOENT) /* EOK or error */ … … 537 537 * @param key The key to search for in nodes being created. 538 538 * @return EOK on success or an error code from errno.h. */ 539 int bithenge_scope_member_expression(bithenge_expression_t **out,539 errno_t bithenge_scope_member_expression(bithenge_expression_t **out, 540 540 bithenge_node_t *key) 541 541 { 542 int rc;542 errno_t rc; 543 543 scope_member_expression_t *self = malloc(sizeof(*self)); 544 544 if (!self) { … … 582 582 } 583 583 584 static int subblob_expression_evaluate(bithenge_expression_t *base,584 static errno_t subblob_expression_evaluate(bithenge_expression_t *base, 585 585 bithenge_scope_t *scope, bithenge_node_t **out) 586 586 { 587 587 subblob_expression_t *self = expression_as_subblob(base); 588 588 bithenge_node_t *start_node; 589 int rc = bithenge_expression_evaluate(self->start, scope, &start_node);589 errno_t rc = bithenge_expression_evaluate(self->start, scope, &start_node); 590 590 if (rc != EOK) 591 591 return rc; … … 658 658 * it is relative to the start. 659 659 * @return EOK on success or an error code from errno.h. */ 660 int bithenge_subblob_expression(bithenge_expression_t **out,660 errno_t bithenge_subblob_expression(bithenge_expression_t **out, 661 661 bithenge_expression_t *blob, bithenge_expression_t *start, 662 662 bithenge_expression_t *limit, bool absolute_limit) 663 663 { 664 int rc;664 errno_t rc; 665 665 subblob_expression_t *self = malloc(sizeof(*self)); 666 666 if (!self) { … … 709 709 } 710 710 711 static int param_wrapper_fill_scope(param_wrapper_t *self, bithenge_scope_t711 static errno_t param_wrapper_fill_scope(param_wrapper_t *self, bithenge_scope_t 712 712 *inner, bithenge_scope_t *outer) 713 713 { 714 int rc;714 errno_t rc; 715 715 int num_params = bithenge_transform_num_params(self->transform); 716 716 rc = bithenge_scope_alloc_params(inner, num_params); … … 730 730 } 731 731 732 static int param_wrapper_apply(bithenge_transform_t *base,732 static errno_t param_wrapper_apply(bithenge_transform_t *base, 733 733 bithenge_scope_t *outer, bithenge_node_t *in, bithenge_node_t **out) 734 734 { 735 735 param_wrapper_t *self = transform_as_param_wrapper(base); 736 736 bithenge_scope_t *inner; 737 int rc = bithenge_scope_new(&inner, outer);737 errno_t rc = bithenge_scope_new(&inner, outer); 738 738 if (rc != EOK) 739 739 return rc; … … 750 750 } 751 751 752 static int param_wrapper_prefix_length(bithenge_transform_t *base,752 static errno_t param_wrapper_prefix_length(bithenge_transform_t *base, 753 753 bithenge_scope_t *outer, bithenge_blob_t *in, aoff64_t *out) 754 754 { 755 755 param_wrapper_t *self = transform_as_param_wrapper(base); 756 756 bithenge_scope_t *inner; 757 int rc = bithenge_scope_new(&inner, outer);757 errno_t rc = bithenge_scope_new(&inner, outer); 758 758 if (rc != EOK) 759 759 return rc; … … 770 770 } 771 771 772 static int param_wrapper_prefix_apply(bithenge_transform_t *base,772 static errno_t param_wrapper_prefix_apply(bithenge_transform_t *base, 773 773 bithenge_scope_t *outer, bithenge_blob_t *in, bithenge_node_t **out_node, 774 774 aoff64_t *out_length) … … 776 776 param_wrapper_t *self = transform_as_param_wrapper(base); 777 777 bithenge_scope_t *inner; 778 int rc = bithenge_scope_new(&inner, outer);778 errno_t rc = bithenge_scope_new(&inner, outer); 779 779 if (rc != EOK) 780 780 return rc; … … 816 816 * @param params The expressions used to calculate the parameters. 817 817 * @return EOK on success or an error code from errno.h. */ 818 int bithenge_param_wrapper(bithenge_transform_t **out,818 errno_t bithenge_param_wrapper(bithenge_transform_t **out, 819 819 bithenge_transform_t *transform, bithenge_expression_t **params) 820 820 { 821 int rc;821 errno_t rc; 822 822 int num_params = bithenge_transform_num_params(transform); 823 823 param_wrapper_t *self = malloc(sizeof(*self)); … … 868 868 } 869 869 870 static int expression_transform_apply(bithenge_transform_t *base,870 static errno_t expression_transform_apply(bithenge_transform_t *base, 871 871 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 872 872 { 873 873 expression_transform_t *self = transform_as_expression(base); 874 874 bithenge_scope_t *inner; 875 int rc = bithenge_scope_new(&inner, scope);875 errno_t rc = bithenge_scope_new(&inner, scope); 876 876 if (rc != EOK) 877 877 return rc; … … 900 900 * @param expr The expression to evaluate. 901 901 * @return EOK on success or an error code from errno.h. */ 902 int bithenge_expression_transform(bithenge_transform_t ** out,902 errno_t bithenge_expression_transform(bithenge_transform_t ** out, 903 903 bithenge_expression_t *expr) 904 904 { 905 int rc;905 errno_t rc; 906 906 expression_transform_t *self = malloc(sizeof(*self)); 907 907 if (!self) { … … 929 929 /***************** inputless_transform *****************/ 930 930 931 static int inputless_transform_prefix_length(bithenge_transform_t *base,931 static errno_t inputless_transform_prefix_length(bithenge_transform_t *base, 932 932 bithenge_scope_t *scope, bithenge_blob_t *in, aoff64_t *out) 933 933 { … … 936 936 } 937 937 938 static int inputless_transform_prefix_apply(bithenge_transform_t *base,938 static errno_t inputless_transform_prefix_apply(bithenge_transform_t *base, 939 939 bithenge_scope_t *scope, bithenge_blob_t *in, bithenge_node_t **out_node, 940 940 aoff64_t *out_size) … … 957 957 * @param expr The expression to evaluate. 958 958 * @return EOK on success or an error code from errno.h. */ 959 int bithenge_inputless_transform(bithenge_transform_t ** out,959 errno_t bithenge_inputless_transform(bithenge_transform_t ** out, 960 960 bithenge_expression_t *expr) 961 961 { 962 int rc;962 errno_t rc; 963 963 expression_transform_t *self = malloc(sizeof(*self)); 964 964 if (!self) { … … 1004 1004 } 1005 1005 1006 static int concat_blob_evaluate_b(concat_blob_t *self)1006 static errno_t concat_blob_evaluate_b(concat_blob_t *self) 1007 1007 { 1008 1008 if (self->b) 1009 1009 return EOK; 1010 1010 bithenge_node_t *b_node; 1011 int rc = bithenge_expression_evaluate(self->b_expr, self->scope,1011 errno_t rc = bithenge_expression_evaluate(self->b_expr, self->scope, 1012 1012 &b_node); 1013 1013 if (rc != EOK) … … 1026 1026 } 1027 1027 1028 static int concat_blob_size(bithenge_blob_t *base, aoff64_t *size)1028 static errno_t concat_blob_size(bithenge_blob_t *base, aoff64_t *size) 1029 1029 { 1030 1030 concat_blob_t *self = blob_as_concat(base); 1031 int rc = concat_blob_evaluate_b(self);1031 errno_t rc = concat_blob_evaluate_b(self); 1032 1032 if (rc != EOK) 1033 1033 return rc; … … 1037 1037 } 1038 1038 1039 static int concat_blob_read(bithenge_blob_t *base, aoff64_t offset,1039 static errno_t concat_blob_read(bithenge_blob_t *base, aoff64_t offset, 1040 1040 char *buffer, aoff64_t *size) 1041 1041 { 1042 int rc;1042 errno_t rc; 1043 1043 concat_blob_t *self = blob_as_concat(base); 1044 1044 … … 1065 1065 } 1066 1066 1067 static int concat_blob_read_bits(bithenge_blob_t *base, aoff64_t offset,1067 static errno_t concat_blob_read_bits(bithenge_blob_t *base, aoff64_t offset, 1068 1068 char *buffer, aoff64_t *size, bool little_endian) 1069 1069 { 1070 int rc;1070 errno_t rc; 1071 1071 concat_blob_t *self = blob_as_concat(base); 1072 1072 … … 1118 1118 * @param b The second blob. 1119 1119 * @return EOK on success or an error code from errno.h. */ 1120 int bithenge_concat_blob(bithenge_node_t **out, bithenge_blob_t *a,1120 errno_t bithenge_concat_blob(bithenge_node_t **out, bithenge_blob_t *a, 1121 1121 bithenge_blob_t *b) 1122 1122 { … … 1124 1124 assert(a); 1125 1125 assert(b); 1126 int rc;1126 errno_t rc; 1127 1127 concat_blob_t *self = malloc(sizeof(*self)); 1128 1128 if (!self) { … … 1160 1160 * @param scope The scope in which @a b_expr should be evaluated. 1161 1161 * @return EOK on success or an error code from errno.h. */ 1162 int bithenge_concat_blob_lazy(bithenge_node_t **out, bithenge_blob_t *a,1162 errno_t bithenge_concat_blob_lazy(bithenge_node_t **out, bithenge_blob_t *a, 1163 1163 bithenge_expression_t *b_expr, bithenge_scope_t *scope) 1164 1164 { … … 1167 1167 assert(b_expr); 1168 1168 assert(scope); 1169 int rc;1169 errno_t rc; 1170 1170 concat_blob_t *self = malloc(sizeof(*self)); 1171 1171 if (!self) { -
uspace/lib/bithenge/src/failure.c
r36f0738 rb7fd2a0 85 85 { 86 86 g_initialized = 1; 87 int rc = atexit(atexit_handler);87 errno_t rc = atexit(atexit_handler); 88 88 if (rc) 89 89 exit(127); … … 96 96 /* Record a hit for a backtrace address and return whether this is the first 97 97 * hit. */ 98 static inline int backtrace_item_hit(void *addr)98 static inline errno_t backtrace_item_hit(void *addr) 99 99 { 100 100 backtrace_item_t **bip; … … 120 120 } 121 121 122 int bithenge_should_fail(void)122 errno_t bithenge_should_fail(void) 123 123 { 124 124 g_failure_index++; … … 202 202 } 203 203 204 int bithenge_failure_ferror(FILE *stream)204 errno_t bithenge_failure_ferror(FILE *stream) 205 205 { 206 206 if (bithenge_should_fail()) … … 216 216 } 217 217 218 int bithenge_failure_open(const char *pathname, int flags)218 errno_t bithenge_failure_open(const char *pathname, int flags) 219 219 { 220 220 if (bithenge_should_fail()) { … … 225 225 } 226 226 227 int bithenge_failure_fstat(int fd, struct stat *buf)227 errno_t bithenge_failure_fstat(int fd, struct stat *buf) 228 228 { 229 229 if (bithenge_should_fail()) { -
uspace/lib/bithenge/src/failure.h
r36f0738 rb7fd2a0 44 44 #include <stddef.h> 45 45 46 int bithenge_should_fail(void);46 errno_t bithenge_should_fail(void); 47 47 void *bithenge_failure_malloc(size_t); 48 48 void *bithenge_failure_realloc(void *, size_t); 49 49 ssize_t bithenge_failure_read(int, void *, size_t); 50 50 off_t bithenge_failure_lseek(int, off_t, int); 51 int bithenge_failure_ferror(FILE *);51 errno_t bithenge_failure_ferror(FILE *); 52 52 char *bithenge_failure_str_ndup(const char *, size_t); 53 int bithenge_failure_open(const char *, int);54 int bithenge_failure_fstat(int, struct stat *);53 errno_t bithenge_failure_open(const char *, int); 54 errno_t bithenge_failure_fstat(int, struct stat *); 55 55 56 56 #ifndef BITHENGE_FAILURE_DECLS_ONLY -
uspace/lib/bithenge/src/file.c
r36f0738 rb7fd2a0 63 63 } 64 64 65 static int file_size(bithenge_blob_t *base, aoff64_t *size)65 static errno_t file_size(bithenge_blob_t *base, aoff64_t *size) 66 66 { 67 67 file_blob_t *blob = blob_as_file(base); … … 70 70 } 71 71 72 static int file_read(bithenge_blob_t *base, aoff64_t offset, char *buffer,72 static errno_t file_read(bithenge_blob_t *base, aoff64_t offset, char *buffer, 73 73 aoff64_t *size) 74 74 { … … 78 78 79 79 size_t amount_read; 80 int rc = vfs_read(blob->fd, &offset, buffer, *size, &amount_read);80 errno_t rc = vfs_read(blob->fd, &offset, buffer, *size, &amount_read); 81 81 if (rc != EOK) 82 82 return errno; … … 98 98 }; 99 99 100 static int new_file_blob(bithenge_node_t **out, int fd, bool needs_close)100 static errno_t new_file_blob(bithenge_node_t **out, int fd, bool needs_close) 101 101 { 102 102 assert(out); 103 103 104 104 struct stat stat; 105 int rc = vfs_stat(fd, &stat);105 errno_t rc = vfs_stat(fd, &stat); 106 106 if (rc != EOK) { 107 107 if (needs_close) … … 141 141 * @param filename The name of the file. 142 142 * @return EOK on success or an error code from errno.h. */ 143 int bithenge_new_file_blob(bithenge_node_t **out, const char *filename)143 errno_t bithenge_new_file_blob(bithenge_node_t **out, const char *filename) 144 144 { 145 145 assert(filename); 146 146 147 147 int fd; 148 int rc = vfs_lookup_open(filename, WALK_REGULAR, MODE_READ, &fd);148 errno_t rc = vfs_lookup_open(filename, WALK_REGULAR, MODE_READ, &fd); 149 149 if (rc != EOK) 150 150 return rc; … … 158 158 * @param fd The file descriptor. 159 159 * @return EOK on success or an error code from errno.h. */ 160 int bithenge_new_file_blob_from_fd(bithenge_node_t **out, int fd)160 errno_t bithenge_new_file_blob_from_fd(bithenge_node_t **out, int fd) 161 161 { 162 162 return new_file_blob(out, fd, false); … … 168 168 * @param file The file pointer. 169 169 * @return EOK on success or an error code from errno.h. */ 170 int bithenge_new_file_blob_from_file(bithenge_node_t **out, FILE *file)170 errno_t bithenge_new_file_blob_from_file(bithenge_node_t **out, FILE *file) 171 171 { 172 172 int fd = fileno(file); -
uspace/lib/bithenge/src/helenos/block.c
r36f0738 rb7fd2a0 61 61 } 62 62 63 static int block_size(bithenge_blob_t *base, aoff64_t *size)63 static errno_t block_size(bithenge_blob_t *base, aoff64_t *size) 64 64 { 65 65 block_blob_t *self = blob_as_block(base); … … 68 68 } 69 69 70 static int block_read(bithenge_blob_t *base, aoff64_t offset, char *buffer,70 static errno_t block_read(bithenge_blob_t *base, aoff64_t offset, char *buffer, 71 71 aoff64_t *size) 72 72 { … … 96 96 * @param service_id The service ID of the block device. 97 97 * @return EOK on success or an error code from errno.h. */ 98 int bithenge_new_block_blob(bithenge_node_t **out, service_id_t service_id)98 errno_t bithenge_new_block_blob(bithenge_node_t **out, service_id_t service_id) 99 99 { 100 100 assert(out); 101 101 102 102 // Initialize libblock 103 int rc;103 errno_t rc; 104 104 rc = block_init(service_id, 2048); 105 105 if (rc != EOK) -
uspace/lib/bithenge/src/helenos/block.h
r36f0738 rb7fd2a0 41 41 #include <bithenge/tree.h> 42 42 43 int bithenge_new_block_blob(bithenge_node_t **, service_id_t);43 errno_t bithenge_new_block_blob(bithenge_node_t **, service_id_t); 44 44 45 45 #endif -
uspace/lib/bithenge/src/helenos/common.h
r36f0738 rb7fd2a0 64 64 } 65 65 66 static inline int string_iterator_next(string_iterator_t *i, wchar_t *out)66 static inline errno_t string_iterator_next(string_iterator_t *i, wchar_t *out) 67 67 { 68 68 *out = i->ch; … … 81 81 } 82 82 83 static inline int bithenge_parse_int(const char *start, bithenge_int_t *result)83 static inline errno_t bithenge_parse_int(const char *start, bithenge_int_t *result) 84 84 { 85 85 const char *real_start = *start == '-' ? start + 1 : start; 86 86 uint64_t val; 87 int rc = str_uint64_t(real_start, NULL, 10, false, &val);87 errno_t rc = str_uint64_t(real_start, NULL, 10, false, &val); 88 88 *result = val; 89 89 if (*start == '-') -
uspace/lib/bithenge/src/linux/common.h
r36f0738 rb7fd2a0 55 55 } 56 56 57 static inline int string_iterator_next(string_iterator_t *i, wchar_t *out)57 static inline errno_t string_iterator_next(string_iterator_t *i, wchar_t *out) 58 58 { 59 59 wint_t rc = btowc(*(*i)++); // TODO … … 82 82 } 83 83 84 static inline int str_lcmp(const char *s1, const char *s2, size_t max_len)84 static inline errno_t str_lcmp(const char *s1, const char *s2, size_t max_len) 85 85 { 86 86 return strncmp(s1, s2, max_len); … … 132 132 } 133 133 134 static inline int bithenge_parse_int(const char *start, bithenge_int_t *result)134 static inline errno_t bithenge_parse_int(const char *start, bithenge_int_t *result) 135 135 { 136 136 errno = 0; -
uspace/lib/bithenge/src/print.c
r36f0738 rb7fd2a0 73 73 } 74 74 75 static int print_node(state_t *, bithenge_node_t *);75 static errno_t print_node(state_t *, bithenge_node_t *); 76 76 77 77 static void newline(state_t *state) … … 93 93 } 94 94 95 static int print_internal_func(bithenge_node_t *key, bithenge_node_t *value, void *data)95 static errno_t print_internal_func(bithenge_node_t *key, bithenge_node_t *value, void *data) 96 96 { 97 97 state_t *state = (state_t *)data; 98 int rc = EOK;98 errno_t rc = EOK; 99 99 if (!state->first) 100 100 state_printf(state, ","); … … 120 120 } 121 121 122 static int print_internal(state_t *state, bithenge_node_t *node)123 { 124 int rc;122 static errno_t print_internal(state_t *state, bithenge_node_t *node) 123 { 124 errno_t rc; 125 125 state_printf(state, "{"); 126 126 increase_depth(state); … … 137 137 } 138 138 139 static int print_boolean(state_t *state, bithenge_node_t *node)139 static errno_t print_boolean(state_t *state, bithenge_node_t *node) 140 140 { 141 141 bool value = bithenge_boolean_node_value(node); … … 151 151 } 152 152 153 static int print_integer(state_t *state, bithenge_node_t *node)153 static errno_t print_integer(state_t *state, bithenge_node_t *node) 154 154 { 155 155 bithenge_int_t value = bithenge_integer_node_value(node); … … 158 158 } 159 159 160 static int print_string(state_t *state, bithenge_node_t *node)160 static errno_t print_string(state_t *state, bithenge_node_t *node) 161 161 { 162 162 const char *value = bithenge_string_node_value(node); … … 164 164 for (string_iterator_t i = string_iterator(value); !string_iterator_done(&i); ) { 165 165 wchar_t ch; 166 int rc = string_iterator_next(&i, &ch);166 errno_t rc = string_iterator_next(&i, &ch); 167 167 if (rc != EOK) 168 168 return rc; … … 179 179 } 180 180 181 static int print_blob(state_t *state, bithenge_node_t *node)181 static errno_t print_blob(state_t *state, bithenge_node_t *node) 182 182 { 183 183 bithenge_blob_t *blob = bithenge_node_as_blob(node); … … 185 185 uint8_t buffer[1024]; 186 186 aoff64_t size = sizeof(buffer); 187 int rc;187 errno_t rc; 188 188 state_printf(state, 189 189 state->type == BITHENGE_PRINT_PYTHON ? "b\"" : "\""); … … 201 201 } 202 202 203 static int print_node(state_t *state, bithenge_node_t *tree)203 static errno_t print_node(state_t *state, bithenge_node_t *tree) 204 204 { 205 205 switch (bithenge_node_type(tree)) { … … 222 222 * @param tree The root node of the tree to print. 223 223 * @return EOK on success or an error code from errno.h. */ 224 int bithenge_print_node(bithenge_print_type_t type, bithenge_node_t *tree)224 errno_t bithenge_print_node(bithenge_print_type_t type, bithenge_node_t *tree) 225 225 { 226 226 state_t state = {type, true, 0, NULL, 0}; … … 236 236 * @param tree The root node of the tree to print. 237 237 * @return EOK on success or an error code from errno.h. */ 238 int bithenge_print_node_to_string(char **str, size_t *size,238 errno_t bithenge_print_node_to_string(char **str, size_t *size, 239 239 bithenge_print_type_t type, bithenge_node_t *tree) 240 240 { 241 241 state_t state = {type, true, 0, *str, *size}; 242 int rc = print_node(&state, tree);242 errno_t rc = print_node(&state, tree); 243 243 *str = state.buffer; 244 244 *size = state.buffer_size; -
uspace/lib/bithenge/src/script.c
r36f0738 rb7fd2a0 99 99 /** Rather than constantly checking return values, the parser uses this 100 100 * to indicate whether an error has occurred. */ 101 int error;101 errno_t error; 102 102 103 103 /** The list of named transforms. */ … … 148 148 149 149 /** Note that an error has occurred if error is not EOK. */ 150 static void error_errno(state_t *state, int error)150 static void error_errno(state_t *state, errno_t error) 151 151 { 152 152 // Don't overwrite a previous error. … … 276 276 state->buffer_pos++; 277 277 state->token = TOKEN_INTEGER; 278 int rc = bithenge_parse_int(state->buffer +278 errno_t rc = bithenge_parse_int(state->buffer + 279 279 state->old_buffer_pos, &state->token_int); 280 280 error_errno(state, rc); … … 520 520 static bithenge_expression_t *parse_term(state_t *state) 521 521 { 522 int rc;522 errno_t rc; 523 523 if (state->token == TOKEN_TRUE || state->token == TOKEN_FALSE) { 524 524 bool val = state->token == TOKEN_TRUE; … … 630 630 static bithenge_expression_t *parse_postfix_expression(state_t *state) 631 631 { 632 int rc;632 errno_t rc; 633 633 bithenge_expression_t *expr = parse_term(state); 634 634 while (state->error == EOK) { … … 737 737 break; 738 738 } 739 int rc = bithenge_binary_expression(&expr, op, expr, expr2);739 errno_t rc = bithenge_binary_expression(&expr, op, expr, expr2); 740 740 if (rc != EOK) { 741 741 expr = NULL; … … 797 797 798 798 if (num_params) { 799 int rc = bithenge_param_wrapper(&result, result, params);799 errno_t rc = bithenge_param_wrapper(&result, result, params); 800 800 if (rc != EOK) { 801 801 error_errno(state, rc); … … 813 813 { 814 814 bithenge_node_t *node; 815 int rc = bithenge_new_empty_internal_node(&node);815 errno_t rc = bithenge_new_empty_internal_node(&node); 816 816 if (rc != EOK) { 817 817 error_errno(state, rc); … … 869 869 870 870 bithenge_transform_t *if_xform; 871 int rc = bithenge_if_transform(&if_xform, expr, true_xform,871 errno_t rc = bithenge_if_transform(&if_xform, expr, true_xform, 872 872 false_xform); 873 873 if (rc != EOK) { … … 893 893 next_token(state); 894 894 bithenge_node_t *node; 895 int rc = bithenge_new_boolean_node(&node, true);895 errno_t rc = bithenge_new_boolean_node(&node, true); 896 896 if (rc != EOK) { 897 897 error_errno(state, rc); … … 907 907 if (state->error == EOK) { 908 908 bithenge_expression_inc_ref(ref_expr); 909 int rc = bithenge_binary_expression(&expr,909 errno_t rc = bithenge_binary_expression(&expr, 910 910 BITHENGE_EXPRESSION_EQUALS, ref_expr, 911 911 expr); … … 947 947 while (state->error == EOK && num >= 1) { 948 948 num--; 949 int rc = bithenge_if_transform(&switch_xform, exprs[num],949 errno_t rc = bithenge_if_transform(&switch_xform, exprs[num], 950 950 xforms[num], switch_xform); 951 951 if (rc != EOK) { … … 987 987 988 988 bithenge_transform_t *repeat_xform; 989 int rc = bithenge_repeat_transform(&repeat_xform, xform, expr);989 errno_t rc = bithenge_repeat_transform(&repeat_xform, xform, expr); 990 990 if (rc != EOK) { 991 991 error_errno(state, rc); … … 1013 1013 1014 1014 bithenge_transform_t *do_while_xform; 1015 int rc = bithenge_do_while_transform(&do_while_xform, xform, expr);1015 errno_t rc = bithenge_do_while_transform(&do_while_xform, xform, expr); 1016 1016 if (rc != EOK) { 1017 1017 error_errno(state, rc); … … 1031 1031 1032 1032 bithenge_expression_t *in_expr; 1033 int rc = bithenge_in_node_expression(&in_expr);1033 errno_t rc = bithenge_in_node_expression(&in_expr); 1034 1034 if (rc != EOK) 1035 1035 error_errno(state, rc); … … 1061 1061 } 1062 1062 1063 int rc = bithenge_partial_transform(&xform, xform);1063 errno_t rc = bithenge_partial_transform(&xform, xform); 1064 1064 if (rc != EOK) { 1065 1065 error_errno(state, rc); … … 1130 1130 subxforms[num].transform = NULL; 1131 1131 bithenge_transform_t *result; 1132 int rc = bithenge_new_struct(&result, subxforms);1132 errno_t rc = bithenge_new_struct(&result, subxforms); 1133 1133 if (rc != EOK) { 1134 1134 error_errno(state, rc); … … 1153 1153 1154 1154 bithenge_transform_t *xform; 1155 int rc;1155 errno_t rc; 1156 1156 if (state->in_node_used) 1157 1157 rc = bithenge_expression_transform(&xform, expr); … … 1211 1211 if (xforms) { 1212 1212 xforms[0] = result; 1213 int rc = bithenge_new_composed_transform(&result, xforms, num);1213 errno_t rc = bithenge_new_composed_transform(&result, xforms, num); 1214 1214 if (rc != EOK) { 1215 1215 error_errno(state, rc); … … 1244 1244 bithenge_transform_t *barrier = NULL; 1245 1245 if (state->error == EOK) { 1246 int rc = bithenge_new_barrier_transform(&barrier,1246 errno_t rc = bithenge_new_barrier_transform(&barrier, 1247 1247 state->num_params); 1248 1248 if (rc != EOK) { … … 1259 1259 1260 1260 if (state->error == EOK) { 1261 int rc = bithenge_barrier_transform_set_subtransform(barrier,1261 errno_t rc = bithenge_barrier_transform_set_subtransform(barrier, 1262 1262 xform); 1263 1263 xform = NULL; … … 1321 1321 * @return EOK on success, EINVAL on syntax error, or an error code from 1322 1322 * errno.h. */ 1323 int bithenge_parse_script(const char *filename, bithenge_transform_t **out)1323 errno_t bithenge_parse_script(const char *filename, bithenge_transform_t **out) 1324 1324 { 1325 1325 state_t state; … … 1328 1328 parse_definition(&state); 1329 1329 *out = get_named_transform(&state, "main"); 1330 int rc = state.error;1330 errno_t rc = state.error; 1331 1331 state_destroy(&state); 1332 1332 if (rc == EOK && !*out) { -
uspace/lib/bithenge/src/sequence.c
r36f0738 rb7fd2a0 58 58 59 59 typedef struct seq_node_ops { 60 int (*get_transform)(seq_node_t *self, bithenge_transform_t **out,60 errno_t (*get_transform)(seq_node_t *self, bithenge_transform_t **out, 61 61 bithenge_int_t index); 62 62 } seq_node_ops_t; … … 72 72 } 73 73 74 static int seq_node_field_offset(seq_node_t *self, aoff64_t *out, size_t index)74 static errno_t seq_node_field_offset(seq_node_t *self, aoff64_t *out, size_t index) 75 75 { 76 76 if (index == 0) { … … 83 83 for (; self->num_ends <= index; self->num_ends++) { 84 84 bithenge_transform_t *subxform; 85 int rc = self->ops->get_transform(self, &subxform,85 errno_t rc = self->ops->get_transform(self, &subxform, 86 86 self->num_ends); 87 87 if (rc != EOK) … … 136 136 } 137 137 138 static int seq_node_subtransform(seq_node_t *self, bithenge_node_t **out,138 static errno_t seq_node_subtransform(seq_node_t *self, bithenge_node_t **out, 139 139 size_t index) 140 140 { 141 141 aoff64_t start_pos; 142 int rc = seq_node_field_offset(self, &start_pos, index);142 errno_t rc = seq_node_field_offset(self, &start_pos, index); 143 143 if (rc != EOK) 144 144 return rc; … … 194 194 } else { 195 195 aoff64_t end_pos; 196 int rc = seq_node_field_offset(self, &end_pos, index + 1);196 errno_t rc = seq_node_field_offset(self, &end_pos, index + 1); 197 197 if (rc != EOK) { 198 198 bithenge_transform_dec_ref(subxform); … … 220 220 } 221 221 222 static int seq_node_complete(seq_node_t *self, bool *out)222 static errno_t seq_node_complete(seq_node_t *self, bool *out) 223 223 { 224 224 aoff64_t blob_size, end_pos; 225 int rc = bithenge_blob_size(self->blob, &blob_size);225 errno_t rc = bithenge_blob_size(self->blob, &blob_size); 226 226 if (rc != EOK) 227 227 return rc; … … 251 251 } 252 252 253 static int seq_node_init(seq_node_t *self, const seq_node_ops_t *ops,253 static errno_t seq_node_init(seq_node_t *self, const seq_node_ops_t *ops, 254 254 bithenge_scope_t *scope, bithenge_blob_t *blob, bithenge_int_t num_xforms, 255 255 bool end_on_empty) … … 319 319 } 320 320 321 static int struct_node_for_each(bithenge_node_t *base,321 static errno_t struct_node_for_each(bithenge_node_t *base, 322 322 bithenge_for_each_func_t func, void *data) 323 323 { 324 int rc = EOK;324 errno_t rc = EOK; 325 325 struct_node_t *self = node_as_struct(base); 326 326 bithenge_named_transform_t *subxforms = … … 368 368 } 369 369 370 static int struct_node_get(bithenge_node_t *base, bithenge_node_t *key,370 static errno_t struct_node_get(bithenge_node_t *base, bithenge_node_t *key, 371 371 bithenge_node_t **out) 372 372 { 373 373 struct_node_t *self = node_as_struct(base); 374 374 375 int rc = ENOENT;375 errno_t rc = ENOENT; 376 376 if (bithenge_node_type(key) != BITHENGE_NODE_STRING) 377 377 goto end; … … 455 455 }; 456 456 457 static int struct_node_get_transform(seq_node_t *base,457 static errno_t struct_node_get_transform(seq_node_t *base, 458 458 bithenge_transform_t **out, bithenge_int_t index) 459 459 { … … 468 468 }; 469 469 470 static int struct_transform_make_node(struct_transform_t *self,470 static errno_t struct_transform_make_node(struct_transform_t *self, 471 471 bithenge_node_t **out, bithenge_scope_t *scope, bithenge_blob_t *blob, 472 472 bool prefix) … … 476 476 return ENOMEM; 477 477 478 int rc = bithenge_init_internal_node(struct_as_node(node),478 errno_t rc = bithenge_init_internal_node(struct_as_node(node), 479 479 &struct_node_ops); 480 480 if (rc != EOK) { … … 513 513 } 514 514 515 static int struct_transform_apply(bithenge_transform_t *base,515 static errno_t struct_transform_apply(bithenge_transform_t *base, 516 516 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 517 517 { … … 523 523 } 524 524 525 static int struct_transform_prefix_length(bithenge_transform_t *base,525 static errno_t struct_transform_prefix_length(bithenge_transform_t *base, 526 526 bithenge_scope_t *scope, bithenge_blob_t *blob, aoff64_t *out) 527 527 { 528 528 struct_transform_t *self = transform_as_struct(base); 529 529 bithenge_node_t *struct_node; 530 int rc = struct_transform_make_node(self, &struct_node, scope, blob,530 errno_t rc = struct_transform_make_node(self, &struct_node, scope, blob, 531 531 true); 532 532 if (rc != EOK) … … 539 539 } 540 540 541 static int struct_transform_prefix_apply(bithenge_transform_t *base,541 static errno_t struct_transform_prefix_apply(bithenge_transform_t *base, 542 542 bithenge_scope_t *scope, bithenge_blob_t *blob, bithenge_node_t **out_node, 543 543 aoff64_t *out_size) 544 544 { 545 545 struct_transform_t *self = transform_as_struct(base); 546 int rc = struct_transform_make_node(self, out_node, scope, blob,546 errno_t rc = struct_transform_make_node(self, out_node, scope, blob, 547 547 true); 548 548 if (rc != EOK) … … 592 592 * @param subtransforms The subtransforms and field names. 593 593 * @return EOK on success or an error code from errno.h. */ 594 int bithenge_new_struct(bithenge_transform_t **out,594 errno_t bithenge_new_struct(bithenge_transform_t **out, 595 595 bithenge_named_transform_t *subtransforms) 596 596 { 597 int rc;597 errno_t rc; 598 598 struct_transform_t *self = malloc(sizeof(*self)); 599 599 if (!self) { … … 669 669 } 670 670 671 static int repeat_node_for_each(bithenge_node_t *base,671 static errno_t repeat_node_for_each(bithenge_node_t *base, 672 672 bithenge_for_each_func_t func, void *data) 673 673 { 674 int rc = EOK;674 errno_t rc = EOK; 675 675 repeat_node_t *self = node_as_repeat(base); 676 676 … … 712 712 } 713 713 714 static int repeat_node_get(bithenge_node_t *base, bithenge_node_t *key,714 static errno_t repeat_node_get(bithenge_node_t *base, bithenge_node_t *key, 715 715 bithenge_node_t **out) 716 716 { … … 743 743 }; 744 744 745 static int repeat_node_get_transform(seq_node_t *base,745 static errno_t repeat_node_get_transform(seq_node_t *base, 746 746 bithenge_transform_t **out, bithenge_int_t index) 747 747 { … … 756 756 }; 757 757 758 static int repeat_transform_make_node(repeat_transform_t *self,758 static errno_t repeat_transform_make_node(repeat_transform_t *self, 759 759 bithenge_node_t **out, bithenge_scope_t *scope, bithenge_blob_t *blob, 760 760 bool prefix) … … 763 763 if (self->expr != NULL) { 764 764 bithenge_node_t *count_node; 765 int rc = bithenge_expression_evaluate(self->expr, scope,765 errno_t rc = bithenge_expression_evaluate(self->expr, scope, 766 766 &count_node); 767 767 if (rc != EOK) … … 781 781 return ENOMEM; 782 782 783 int rc = bithenge_init_internal_node(repeat_as_node(node),783 errno_t rc = bithenge_init_internal_node(repeat_as_node(node), 784 784 &repeat_node_ops); 785 785 if (rc != EOK) { … … 803 803 } 804 804 805 static int repeat_transform_apply(bithenge_transform_t *base,805 static errno_t repeat_transform_apply(bithenge_transform_t *base, 806 806 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 807 807 { … … 813 813 } 814 814 815 static int repeat_transform_prefix_apply(bithenge_transform_t *base,815 static errno_t repeat_transform_prefix_apply(bithenge_transform_t *base, 816 816 bithenge_scope_t *scope, bithenge_blob_t *blob, bithenge_node_t **out_node, 817 817 aoff64_t *out_size) 818 818 { 819 819 repeat_transform_t *self = transform_as_repeat(base); 820 int rc = repeat_transform_make_node(self, out_node, scope, blob, true);820 errno_t rc = repeat_transform_make_node(self, out_node, scope, blob, true); 821 821 if (rc != EOK) 822 822 return rc; … … 871 871 * May be NULL, in which case @a xform will be applied indefinitely. 872 872 * @return EOK on success or an error code from errno.h. */ 873 int bithenge_repeat_transform(bithenge_transform_t **out,873 errno_t bithenge_repeat_transform(bithenge_transform_t **out, 874 874 bithenge_transform_t *xform, bithenge_expression_t *expr) 875 875 { 876 int rc;876 errno_t rc; 877 877 repeat_transform_t *self = malloc(sizeof(*self)); 878 878 if (!self) { … … 947 947 } 948 948 949 static int do_while_node_for_each(bithenge_node_t *base,949 static errno_t do_while_node_for_each(bithenge_node_t *base, 950 950 bithenge_for_each_func_t func, void *data) 951 951 { 952 int rc = EOK;952 errno_t rc = EOK; 953 953 do_while_node_t *self = node_as_do_while(base); 954 954 … … 1018 1018 }; 1019 1019 1020 static int do_while_node_get_transform(seq_node_t *base,1020 static errno_t do_while_node_get_transform(seq_node_t *base, 1021 1021 bithenge_transform_t **out, bithenge_int_t index) 1022 1022 { … … 1031 1031 }; 1032 1032 1033 static int do_while_transform_make_node(do_while_transform_t *self,1033 static errno_t do_while_transform_make_node(do_while_transform_t *self, 1034 1034 bithenge_node_t **out, bithenge_scope_t *scope, bithenge_blob_t *blob) 1035 1035 { … … 1038 1038 return ENOMEM; 1039 1039 1040 int rc = bithenge_init_internal_node(do_while_as_node(node),1040 errno_t rc = bithenge_init_internal_node(do_while_as_node(node), 1041 1041 &do_while_node_ops); 1042 1042 if (rc != EOK) { … … 1061 1061 } 1062 1062 1063 static int for_each_noop(bithenge_node_t *key, bithenge_node_t *value,1063 static errno_t for_each_noop(bithenge_node_t *key, bithenge_node_t *value, 1064 1064 void *data) 1065 1065 { … … 1069 1069 } 1070 1070 1071 static int do_while_transform_prefix_apply(bithenge_transform_t *base,1071 static errno_t do_while_transform_prefix_apply(bithenge_transform_t *base, 1072 1072 bithenge_scope_t *scope, bithenge_blob_t *blob, bithenge_node_t **out_node, 1073 1073 aoff64_t *out_size) 1074 1074 { 1075 1075 do_while_transform_t *self = transform_as_do_while(base); 1076 int rc = do_while_transform_make_node(self, out_node, scope, blob);1076 errno_t rc = do_while_transform_make_node(self, out_node, scope, blob); 1077 1077 if (rc != EOK) 1078 1078 return rc; … … 1116 1116 * determine whether there will be more. 1117 1117 * @return EOK on success or an error code from errno.h. */ 1118 int bithenge_do_while_transform(bithenge_transform_t **out,1118 errno_t bithenge_do_while_transform(bithenge_transform_t **out, 1119 1119 bithenge_transform_t *xform, bithenge_expression_t *expr) 1120 1120 { 1121 int rc;1121 errno_t rc; 1122 1122 do_while_transform_t *self = malloc(sizeof(*self)); 1123 1123 if (!self) { -
uspace/lib/bithenge/src/source.c
r36f0738 rb7fd2a0 58 58 } 59 59 60 static int blob_from_hex(bithenge_node_t **out, const char *hex)60 static errno_t blob_from_hex(bithenge_node_t **out, const char *hex) 61 61 { 62 62 size_t size = str_length(hex); … … 85 85 * @param source Specifies the node to be created. 86 86 * @return EOK on success or an error code from errno.h. */ 87 int bithenge_node_from_source(bithenge_node_t **out, const char *source)87 errno_t bithenge_node_from_source(bithenge_node_t **out, const char *source) 88 88 { 89 89 if (str_chr(source, ':')) { … … 95 95 // Example: block:bd/initrd 96 96 service_id_t service_id; 97 int rc = loc_service_get_id(source + 6, &service_id, 0);97 errno_t rc = loc_service_get_id(source + 6, &service_id, 0); 98 98 if (rc != EOK) 99 99 return rc; -
uspace/lib/bithenge/src/transform.c
r36f0738 rb7fd2a0 57 57 * within. 58 58 * @return EOK or an error code from errno.h. */ 59 int bithenge_init_transform(bithenge_transform_t *self,59 errno_t bithenge_init_transform(bithenge_transform_t *self, 60 60 const bithenge_transform_ops_t *ops, int num_params) 61 61 { … … 83 83 * @param[out] out Where the output tree will be stored. 84 84 * @return EOK on success or an error code from errno.h. */ 85 int bithenge_transform_apply(bithenge_transform_t *self,85 errno_t bithenge_transform_apply(bithenge_transform_t *self, 86 86 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 87 87 { … … 94 94 return EINVAL; 95 95 aoff64_t self_size, whole_size; 96 int rc = bithenge_transform_prefix_apply(self, scope,96 errno_t rc = bithenge_transform_prefix_apply(self, scope, 97 97 bithenge_node_as_blob(in), out, &self_size); 98 98 if (rc != EOK) … … 119 119 * @return EOK on success, ENOTSUP if not supported, or another error code from 120 120 * errno.h. */ 121 int bithenge_transform_prefix_length(bithenge_transform_t *self,121 errno_t bithenge_transform_prefix_length(bithenge_transform_t *self, 122 122 bithenge_scope_t *scope, bithenge_blob_t *blob, aoff64_t *out) 123 123 { … … 130 130 131 131 bithenge_node_t *node; 132 int rc = bithenge_transform_prefix_apply(self, scope, blob, &node,132 errno_t rc = bithenge_transform_prefix_apply(self, scope, blob, &node, 133 133 out); 134 134 if (rc != EOK) … … 150 150 * @return EOK on success, ENOTSUP if not supported, or another error code from 151 151 * errno.h. */ 152 int bithenge_transform_prefix_apply(bithenge_transform_t *self,152 errno_t bithenge_transform_prefix_apply(bithenge_transform_t *self, 153 153 bithenge_scope_t *scope, bithenge_blob_t *blob, bithenge_node_t **out_node, 154 154 aoff64_t *out_size) … … 163 163 164 164 aoff64_t size; 165 int rc = bithenge_transform_prefix_length(self, scope, blob, &size);165 errno_t rc = bithenge_transform_prefix_length(self, scope, blob, &size); 166 166 if (rc != EOK) 167 167 return rc; … … 188 188 * @param outer The outer scope, or NULL. 189 189 * @return EOK on success or an error code from errno.h. */ 190 int bithenge_scope_new(bithenge_scope_t **out, bithenge_scope_t *outer)190 errno_t bithenge_scope_new(bithenge_scope_t **out, bithenge_scope_t *outer) 191 191 { 192 192 bithenge_scope_t *self = malloc(sizeof(*self)); … … 251 251 * @param format The format string. 252 252 * @return EINVAL normally, or another error code from errno.h. */ 253 int bithenge_scope_error(bithenge_scope_t *scope, const char *format, ...)253 errno_t bithenge_scope_error(bithenge_scope_t *scope, const char *format, ...) 254 254 { 255 255 if (scope->error) … … 271 271 if (format[0] == '%' && format[1] == 't') { 272 272 format += 2; 273 int rc = bithenge_print_node_to_string(&out,273 errno_t rc = bithenge_print_node_to_string(&out, 274 274 &space_left, BITHENGE_PRINT_PYTHON, 275 275 va_arg(ap, bithenge_node_t *)); … … 364 364 * @param num_params The number of parameters to allocate. 365 365 * @return EOK on success or an error code from errno.h. */ 366 int bithenge_scope_alloc_params(bithenge_scope_t *scope, int num_params)366 errno_t bithenge_scope_alloc_params(bithenge_scope_t *scope, int num_params) 367 367 { 368 368 scope->params = malloc(sizeof(*scope->params) * num_params); … … 382 382 * @param node The value to store in the parameter. 383 383 * @return EOK on success or an error code from errno.h. */ 384 int bithenge_scope_set_param( bithenge_scope_t *scope, int i,384 errno_t bithenge_scope_set_param( bithenge_scope_t *scope, int i, 385 385 bithenge_node_t *node) 386 386 { … … 401 401 * @param[out] out Stores a new reference to the parameter. 402 402 * @return EOK on success or an error code from errno.h. */ 403 int bithenge_scope_get_param(bithenge_scope_t *scope, int i,403 errno_t bithenge_scope_get_param(bithenge_scope_t *scope, int i, 404 404 bithenge_node_t **out) 405 405 { … … 436 436 } 437 437 438 static int barrier_transform_apply(bithenge_transform_t *base,438 static errno_t barrier_transform_apply(bithenge_transform_t *base, 439 439 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 440 440 { 441 441 barrier_transform_t *self = transform_as_barrier(base); 442 442 bithenge_scope_t *inner_scope; 443 int rc = bithenge_scope_new(&inner_scope, scope);443 errno_t rc = bithenge_scope_new(&inner_scope, scope); 444 444 if (rc != EOK) 445 445 return rc; … … 451 451 } 452 452 453 static int barrier_transform_prefix_length(bithenge_transform_t *base,453 static errno_t barrier_transform_prefix_length(bithenge_transform_t *base, 454 454 bithenge_scope_t *scope, bithenge_blob_t *in, aoff64_t *out) 455 455 { 456 456 barrier_transform_t *self = transform_as_barrier(base); 457 457 bithenge_scope_t *inner_scope; 458 int rc = bithenge_scope_new(&inner_scope, scope);458 errno_t rc = bithenge_scope_new(&inner_scope, scope); 459 459 if (rc != EOK) 460 460 return rc; … … 467 467 } 468 468 469 static int barrier_transform_prefix_apply(bithenge_transform_t *base,469 static errno_t barrier_transform_prefix_apply(bithenge_transform_t *base, 470 470 bithenge_scope_t *scope, bithenge_blob_t *in, bithenge_node_t **out_node, 471 471 aoff64_t *out_length) … … 473 473 barrier_transform_t *self = transform_as_barrier(base); 474 474 bithenge_scope_t *inner_scope; 475 int rc = bithenge_scope_new(&inner_scope, scope);475 errno_t rc = bithenge_scope_new(&inner_scope, scope); 476 476 if (rc != EOK) 477 477 return rc; … … 503 503 * @param transform The subtransform to use for all operations. 504 504 * @return EOK on success or an error code from errno.h. */ 505 int bithenge_barrier_transform_set_subtransform(bithenge_transform_t *base,505 errno_t bithenge_barrier_transform_set_subtransform(bithenge_transform_t *base, 506 506 bithenge_transform_t *transform) 507 507 { … … 527 527 * @param num_params The number of parameters to require, which may be 0. 528 528 * @return EOK on success or an error code from errno.h. */ 529 int bithenge_new_barrier_transform(bithenge_transform_t **out, int num_params)530 { 531 int rc;529 errno_t bithenge_new_barrier_transform(bithenge_transform_t **out, int num_params) 530 { 531 errno_t rc; 532 532 barrier_transform_t *self = malloc(sizeof(*self)); 533 533 if (!self) { … … 551 551 /***************** ascii *****************/ 552 552 553 static int ascii_apply(bithenge_transform_t *self, bithenge_scope_t *scope,553 static errno_t ascii_apply(bithenge_transform_t *self, bithenge_scope_t *scope, 554 554 bithenge_node_t *in, bithenge_node_t **out) 555 555 { 556 int rc;556 errno_t rc; 557 557 if (bithenge_node_type(in) != BITHENGE_NODE_BLOB) 558 558 return EINVAL; … … 596 596 /***************** bit *****************/ 597 597 598 static int bit_prefix_apply(bithenge_transform_t *self,598 static errno_t bit_prefix_apply(bithenge_transform_t *self, 599 599 bithenge_scope_t *scope, bithenge_blob_t *blob, bithenge_node_t **out_node, 600 600 aoff64_t *out_size) … … 602 602 char buffer; 603 603 aoff64_t size = 1; 604 int rc = bithenge_blob_read_bits(blob, 0, &buffer, &size, true);604 errno_t rc = bithenge_blob_read_bits(blob, 0, &buffer, &size, true); 605 605 if (rc != EOK) 606 606 return rc; … … 642 642 } 643 643 644 static int bits_xe_size(bithenge_blob_t *base, aoff64_t *out)644 static errno_t bits_xe_size(bithenge_blob_t *base, aoff64_t *out) 645 645 { 646 646 bits_xe_blob_t *self = blob_as_bits_xe(base); 647 int rc = bithenge_blob_size(self->bytes, out);647 errno_t rc = bithenge_blob_size(self->bytes, out); 648 648 *out *= 8; 649 649 return rc; … … 658 658 } 659 659 660 static int bits_xe_read_bits(bithenge_blob_t *base, aoff64_t offset,660 static errno_t bits_xe_read_bits(bithenge_blob_t *base, aoff64_t offset, 661 661 char *buffer, aoff64_t *size, bool little_endian) 662 662 { … … 676 676 bytes_buffer = (uint8_t *)buffer; 677 677 678 int rc = bithenge_blob_read(self->bytes, bytes_offset,678 errno_t rc = bithenge_blob_read(self->bytes, bytes_offset, 679 679 (char *)bytes_buffer, &bytes_size); 680 680 if (rc != EOK) … … 715 715 }; 716 716 717 static int bits_xe_apply(bithenge_transform_t *self, bithenge_scope_t *scope,717 static errno_t bits_xe_apply(bithenge_transform_t *self, bithenge_scope_t *scope, 718 718 bithenge_node_t *in, bithenge_node_t **out) 719 719 { … … 723 723 if (!blob) 724 724 return ENOMEM; 725 int rc = bithenge_init_random_access_blob(bits_xe_as_blob(blob),725 errno_t rc = bithenge_init_random_access_blob(bits_xe_as_blob(blob), 726 726 &bits_xe_blob_ops); 727 727 if (rc != EOK) { … … 757 757 /***************** invalid *****************/ 758 758 759 static int invalid_apply(bithenge_transform_t *self, bithenge_scope_t *scope,759 static errno_t invalid_apply(bithenge_transform_t *self, bithenge_scope_t *scope, 760 760 bithenge_node_t *in, bithenge_node_t **out) 761 761 { … … 777 777 /***************** known_length *****************/ 778 778 779 static int known_length_apply(bithenge_transform_t *self,779 static errno_t known_length_apply(bithenge_transform_t *self, 780 780 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 781 781 { 782 782 bithenge_node_t *length_node; 783 int rc = bithenge_scope_get_param(scope, 0, &length_node);783 errno_t rc = bithenge_scope_get_param(scope, 0, &length_node); 784 784 if (rc != EOK) 785 785 return rc; … … 805 805 } 806 806 807 static int known_length_prefix_length(bithenge_transform_t *self,807 static errno_t known_length_prefix_length(bithenge_transform_t *self, 808 808 bithenge_scope_t *scope, bithenge_blob_t *in, aoff64_t *out) 809 809 { 810 810 bithenge_node_t *length_node; 811 int rc = bithenge_scope_get_param(scope, 0, &length_node);811 errno_t rc = bithenge_scope_get_param(scope, 0, &length_node); 812 812 if (rc != EOK) 813 813 return rc; … … 834 834 }; 835 835 836 static int nonzero_boolean_apply(bithenge_transform_t *self,836 static errno_t nonzero_boolean_apply(bithenge_transform_t *self, 837 837 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 838 838 { … … 853 853 }; 854 854 855 static int prefix_length_1(bithenge_transform_t *self, bithenge_scope_t *scope,855 static errno_t prefix_length_1(bithenge_transform_t *self, bithenge_scope_t *scope, 856 856 bithenge_blob_t *blob, aoff64_t *out) 857 857 { … … 860 860 } 861 861 862 static int prefix_length_2(bithenge_transform_t *self, bithenge_scope_t *scope,862 static errno_t prefix_length_2(bithenge_transform_t *self, bithenge_scope_t *scope, 863 863 bithenge_blob_t *blob, aoff64_t *out) 864 864 { … … 867 867 } 868 868 869 static int prefix_length_4(bithenge_transform_t *self, bithenge_scope_t *scope,869 static errno_t prefix_length_4(bithenge_transform_t *self, bithenge_scope_t *scope, 870 870 bithenge_blob_t *blob, aoff64_t *out) 871 871 { … … 874 874 } 875 875 876 static int prefix_length_8(bithenge_transform_t *self, bithenge_scope_t *scope,876 static errno_t prefix_length_8(bithenge_transform_t *self, bithenge_scope_t *scope, 877 877 bithenge_blob_t *blob, aoff64_t *out) 878 878 { … … 883 883 /** @cond internal */ 884 884 #define MAKE_UINT_TRANSFORM(NAME, TYPE, ENDIAN, PREFIX_LENGTH_FUNC) \ 885 static int NAME##_apply(bithenge_transform_t *self, \885 static errno_t NAME##_apply(bithenge_transform_t *self, \ 886 886 bithenge_scope_t *scope, bithenge_node_t *in, \ 887 887 bithenge_node_t **out) \ 888 888 { \ 889 int rc; \889 errno_t rc; \ 890 890 if (bithenge_node_type(in) != BITHENGE_NODE_BLOB) \ 891 891 return EINVAL; \ … … 927 927 /***************** uint_be, uint_le *****************/ 928 928 929 static int uint_xe_prefix_apply(bithenge_transform_t *self,929 static errno_t uint_xe_prefix_apply(bithenge_transform_t *self, 930 930 bithenge_scope_t *scope, bithenge_blob_t *blob, bithenge_node_t **out_node, 931 931 aoff64_t *out_size) … … 933 933 bool little_endian = (self == &bithenge_uint_le_transform); 934 934 bithenge_node_t *num_bits_node; 935 int rc = bithenge_scope_get_param(scope, 0, &num_bits_node);935 errno_t rc = bithenge_scope_get_param(scope, 0, &num_bits_node); 936 936 if (rc != EOK) 937 937 return rc; … … 997 997 /***************** zero_terminated *****************/ 998 998 999 static int zero_terminated_apply(bithenge_transform_t *self,999 static errno_t zero_terminated_apply(bithenge_transform_t *self, 1000 1000 bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out) 1001 1001 { 1002 int rc;1002 errno_t rc; 1003 1003 if (bithenge_node_type(in) != BITHENGE_NODE_BLOB) 1004 1004 return EINVAL; … … 1021 1021 } 1022 1022 1023 static int zero_terminated_prefix_length(bithenge_transform_t *self,1023 static errno_t zero_terminated_prefix_length(bithenge_transform_t *self, 1024 1024 bithenge_scope_t *scope, bithenge_blob_t *blob, aoff64_t *out) 1025 1025 { 1026 int rc;1026 errno_t rc; 1027 1027 char buffer[4096]; 1028 1028 aoff64_t offset = 0, size_read = sizeof(buffer); -
uspace/lib/bithenge/src/tree.c
r36f0738 rb7fd2a0 86 86 } get_for_each_data_t; 87 87 88 static int get_for_each_func(bithenge_node_t *key, bithenge_node_t *value,88 static errno_t get_for_each_func(bithenge_node_t *key, bithenge_node_t *value, 89 89 void *raw_data) 90 90 { 91 91 get_for_each_data_t *data = (get_for_each_data_t *)raw_data; 92 92 bool equal; 93 int rc = bithenge_node_equal(&equal, key, data->key);93 errno_t rc = bithenge_node_equal(&equal, key, data->key); 94 94 bithenge_node_dec_ref(key); 95 95 if (rc != EOK) … … 113 113 * @return EOK on success, ENOENT if not found, or another error code from 114 114 * errno.h. */ 115 int bithenge_node_get(bithenge_node_t *self, bithenge_node_t *key,115 errno_t bithenge_node_get(bithenge_node_t *self, bithenge_node_t *key, 116 116 bithenge_node_t **out) 117 117 { … … 125 125 uint8_t byte; 126 126 aoff64_t size = 1; 127 int rc = bithenge_blob_read(bithenge_node_as_blob(self),127 errno_t rc = bithenge_blob_read(bithenge_node_as_blob(self), 128 128 offset, (char *)&byte, &size); 129 129 if (rc != EOK) … … 140 140 *out = NULL; 141 141 get_for_each_data_t data = {key, out}; 142 int rc = bithenge_node_for_each(self, get_for_each_func, &data);142 errno_t rc = bithenge_node_for_each(self, get_for_each_func, &data); 143 143 bithenge_node_dec_ref(key); 144 144 if (rc == EEXIST && *out) … … 155 155 * @param[in] ops The operations provided. 156 156 * @return EOK on success or an error code from errno.h. */ 157 int bithenge_init_internal_node(bithenge_node_t *self,157 errno_t bithenge_init_internal_node(bithenge_node_t *self, 158 158 const bithenge_internal_node_ops_t *ops) 159 159 { … … 169 169 } 170 170 171 static int empty_internal_node_for_each(bithenge_node_t *base,171 static errno_t empty_internal_node_for_each(bithenge_node_t *base, 172 172 bithenge_for_each_func_t func, void *data) 173 173 { … … 175 175 } 176 176 177 static int empty_internal_node_get(bithenge_node_t *self, bithenge_node_t *key,177 static errno_t empty_internal_node_get(bithenge_node_t *self, bithenge_node_t *key, 178 178 bithenge_node_t **out) 179 179 { … … 196 196 * @param[out] out Holds the created node. 197 197 * @return EOK on success or an error code from errno.h. */ 198 int bithenge_new_empty_internal_node(bithenge_node_t **out)198 errno_t bithenge_new_empty_internal_node(bithenge_node_t **out) 199 199 { 200 200 if (bithenge_should_fail()) … … 223 223 } 224 224 225 static int simple_internal_node_for_each(bithenge_node_t *base,225 static errno_t simple_internal_node_for_each(bithenge_node_t *base, 226 226 bithenge_for_each_func_t func, void *data) 227 227 { 228 int rc;228 errno_t rc; 229 229 simple_internal_node_t *self = node_as_simple(base); 230 230 for (bithenge_int_t i = 0; i < self->len; i++) { … … 264 264 * the nodes array rather than just dereferencing each node inside it. 265 265 * @return EOK on success or an error code from errno.h. */ 266 int bithenge_new_simple_internal_node(bithenge_node_t **out,266 errno_t bithenge_new_simple_internal_node(bithenge_node_t **out, 267 267 bithenge_node_t **nodes, bithenge_int_t len, bool needs_free) 268 268 { 269 int rc;269 errno_t rc; 270 270 assert(out); 271 271 simple_internal_node_t *self = malloc(sizeof(*self)); … … 300 300 * @param value The value for the node to hold. 301 301 * @return EOK on success or an error code from errno.h. */ 302 int bithenge_new_boolean_node(bithenge_node_t **out, bool value)302 errno_t bithenge_new_boolean_node(bithenge_node_t **out, bool value) 303 303 { 304 304 assert(out); … … 315 315 * @param value The value for the node to hold. 316 316 * @return EOK on success or an error code from errno.h. */ 317 int bithenge_new_integer_node(bithenge_node_t **out, bithenge_int_t value)317 errno_t bithenge_new_integer_node(bithenge_node_t **out, bithenge_int_t value) 318 318 { 319 319 assert(out); … … 335 335 * destroyed. 336 336 * @return EOK on success or an error code from errno.h. */ 337 int bithenge_new_string_node(bithenge_node_t **out, const char *value, bool needs_free)337 errno_t bithenge_new_string_node(bithenge_node_t **out, const char *value, bool needs_free) 338 338 { 339 339 assert(out); … … 359 359 * @return EOK on success or an error code from errno.h. 360 360 * @todo Add support for internal nodes. */ 361 int bithenge_node_equal(bool *out, bithenge_node_t *a, bithenge_node_t *b)361 errno_t bithenge_node_equal(bool *out, bithenge_node_t *a, bithenge_node_t *b) 362 362 { 363 363 if (a->type != b->type) {
Note:
See TracChangeset
for help on using the changeset viewer.