Changeset 5e718d9 in mainline for uspace/lib/bithenge/transform.h


Ignore:
Timestamp:
2012-08-21T10:04:16Z (13 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
67edca6
Parents:
0da6c04 (diff), 6a97f2e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge with upstream (lp:~wtachi/helenos/bithenge)

File:
1 moved

Legend:

Unmodified
Added
Removed
  • uspace/lib/bithenge/transform.h

    r0da6c04 r5e718d9  
    5454        unsigned int refs;
    5555        struct bithenge_scope *outer;
     56        char *error;
    5657        bool barrier;
    5758        int num_params;
     
    6162} bithenge_scope_t;
    6263
    63 static inline void bithenge_scope_inc_ref(bithenge_scope_t *self) {
     64/** Increment a scope's reference count.
     65 * @memberof bithenge_scope_t
     66 * @param self The scope to reference. */
     67static inline void bithenge_scope_inc_ref(bithenge_scope_t *self)
     68{
     69        assert(self);
    6470        self->refs++;
    6571}
     
    109115                return;
    110116        assert(self->ops);
     117        assert(self->refs > 0);
    111118        if (--self->refs == 0)
    112119                self->ops->destroy(self);
     
    115122/** A transform with a name. */
    116123typedef struct {
     124        /** The transform's name. */
    117125        const char *name;
     126        /** The transform. */
    118127        bithenge_transform_t *transform;
    119128} bithenge_named_transform_t;
    120129
     130/** Transform that decodes an 8-bit unsigned integer */
     131extern bithenge_transform_t bithenge_uint8_transform;
     132/** Transform that decodes a 16-bit little-endian unsigned integer */
     133extern bithenge_transform_t bithenge_uint16le_transform;
     134/** Transform that decodes a 16-bit big-endian unsigned integer */
     135extern bithenge_transform_t bithenge_uint16be_transform;
     136/** Transform that decodes a 32-bit little-endian unsigned integer */
     137extern bithenge_transform_t bithenge_uint32le_transform;
     138/** Transform that decodes a 32-bit big-endian unsigned integer */
     139extern bithenge_transform_t bithenge_uint32be_transform;
     140/** Transform that decodes a 64-bit little-endian unsigned integer */
     141extern bithenge_transform_t bithenge_uint64le_transform;
     142/** Transform that decodes a 64-bit big-endian unsigned integer */
     143extern bithenge_transform_t bithenge_uint64be_transform;
     144
     145/** @cond */
    121146extern bithenge_transform_t bithenge_ascii_transform;
    122147extern bithenge_transform_t bithenge_bit_transform;
     
    126151extern bithenge_transform_t bithenge_known_length_transform;
    127152extern bithenge_transform_t bithenge_nonzero_boolean_transform;
    128 extern bithenge_transform_t bithenge_uint8_transform;
    129 extern bithenge_transform_t bithenge_uint16le_transform;
    130 extern bithenge_transform_t bithenge_uint16be_transform;
    131 extern bithenge_transform_t bithenge_uint32le_transform;
    132 extern bithenge_transform_t bithenge_uint32be_transform;
    133 extern bithenge_transform_t bithenge_uint64le_transform;
    134 extern bithenge_transform_t bithenge_uint64be_transform;
    135153extern bithenge_transform_t bithenge_uint_le_transform;
    136154extern bithenge_transform_t bithenge_uint_be_transform;
    137155extern bithenge_transform_t bithenge_zero_terminated_transform;
    138156extern bithenge_named_transform_t *bithenge_primitive_transforms;
    139 
     157/** @endcond */
     158
     159/** @memberof bithenge_transform_t */
    140160int bithenge_init_transform(bithenge_transform_t *,
    141161    const bithenge_transform_ops_t *, int);
     162/** @memberof bithenge_transform_t */
    142163int bithenge_transform_apply(bithenge_transform_t *, bithenge_scope_t *,
    143164    bithenge_node_t *, bithenge_node_t **);
     165/** @memberof bithenge_transform_t */
    144166int bithenge_transform_prefix_length(bithenge_transform_t *,
    145167    bithenge_scope_t *, bithenge_blob_t *, aoff64_t *);
     168/** @memberof bithenge_transform_t */
    146169int bithenge_transform_prefix_apply(bithenge_transform_t *, bithenge_scope_t *,
    147170    bithenge_blob_t *, bithenge_node_t **, aoff64_t *);
    148 int bithenge_new_barrier_transform(bithenge_transform_t **,
    149     bithenge_transform_t *, int);
    150 int bithenge_new_composed_transform(bithenge_transform_t **,
    151     bithenge_transform_t **, size_t);
    152 
     171int bithenge_new_barrier_transform(bithenge_transform_t **, int);
     172int bithenge_barrier_transform_set_subtransform(bithenge_transform_t *,
     173    bithenge_transform_t *);
     174
     175/** @memberof bithenge_scope_t */
    153176int bithenge_scope_new(bithenge_scope_t **, bithenge_scope_t *);
     177/** @memberof bithenge_scope_t */
    154178void bithenge_scope_dec_ref(bithenge_scope_t *);
     179/** @memberof bithenge_scope_t */
    155180bithenge_scope_t *bithenge_scope_outer(bithenge_scope_t *);
     181/** @memberof bithenge_scope_t */
     182const char *bithenge_scope_get_error(bithenge_scope_t *);
     183/** @memberof bithenge_scope_t */
     184int bithenge_scope_error(bithenge_scope_t *, const char *, ...);
     185/** @memberof bithenge_scope_t */
    156186bithenge_node_t *bithenge_scope_get_current_node(bithenge_scope_t *);
     187/** @memberof bithenge_scope_t */
    157188void bithenge_scope_set_current_node(bithenge_scope_t *, bithenge_node_t *);
     189/** @memberof bithenge_scope_t */
    158190bithenge_node_t *bithenge_scope_in_node(bithenge_scope_t *);
     191/** @memberof bithenge_scope_t */
    159192void bithenge_scope_set_in_node(bithenge_scope_t *, bithenge_node_t *);
     193/** @memberof bithenge_scope_t */
    160194void bithenge_scope_set_barrier(bithenge_scope_t *);
     195/** @memberof bithenge_scope_t */
    161196bool bithenge_scope_is_barrier(bithenge_scope_t *);
     197/** @memberof bithenge_scope_t */
    162198int bithenge_scope_alloc_params(bithenge_scope_t *, int);
     199/** @memberof bithenge_scope_t */
    163200int bithenge_scope_set_param(bithenge_scope_t *, int, bithenge_node_t *);
     201/** @memberof bithenge_scope_t */
    164202int bithenge_scope_get_param(bithenge_scope_t *, int, bithenge_node_t **);
    165203
Note: See TracChangeset for help on using the changeset viewer.