Changes in uspace/lib/bithenge/src/transform.c [6cd10ac:b7fd2a0] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/bithenge/src/transform.c
r6cd10ac 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);
Note:
See TracChangeset
for help on using the changeset viewer.