Changeset 5e718d9 in mainline for uspace/lib/bithenge/transform.h
- Timestamp:
- 2012-08-21T10:04:16Z (13 years ago)
- 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. - File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/bithenge/transform.h
r0da6c04 r5e718d9 54 54 unsigned int refs; 55 55 struct bithenge_scope *outer; 56 char *error; 56 57 bool barrier; 57 58 int num_params; … … 61 62 } bithenge_scope_t; 62 63 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. */ 67 static inline void bithenge_scope_inc_ref(bithenge_scope_t *self) 68 { 69 assert(self); 64 70 self->refs++; 65 71 } … … 109 115 return; 110 116 assert(self->ops); 117 assert(self->refs > 0); 111 118 if (--self->refs == 0) 112 119 self->ops->destroy(self); … … 115 122 /** A transform with a name. */ 116 123 typedef struct { 124 /** The transform's name. */ 117 125 const char *name; 126 /** The transform. */ 118 127 bithenge_transform_t *transform; 119 128 } bithenge_named_transform_t; 120 129 130 /** Transform that decodes an 8-bit unsigned integer */ 131 extern bithenge_transform_t bithenge_uint8_transform; 132 /** Transform that decodes a 16-bit little-endian unsigned integer */ 133 extern bithenge_transform_t bithenge_uint16le_transform; 134 /** Transform that decodes a 16-bit big-endian unsigned integer */ 135 extern bithenge_transform_t bithenge_uint16be_transform; 136 /** Transform that decodes a 32-bit little-endian unsigned integer */ 137 extern bithenge_transform_t bithenge_uint32le_transform; 138 /** Transform that decodes a 32-bit big-endian unsigned integer */ 139 extern bithenge_transform_t bithenge_uint32be_transform; 140 /** Transform that decodes a 64-bit little-endian unsigned integer */ 141 extern bithenge_transform_t bithenge_uint64le_transform; 142 /** Transform that decodes a 64-bit big-endian unsigned integer */ 143 extern bithenge_transform_t bithenge_uint64be_transform; 144 145 /** @cond */ 121 146 extern bithenge_transform_t bithenge_ascii_transform; 122 147 extern bithenge_transform_t bithenge_bit_transform; … … 126 151 extern bithenge_transform_t bithenge_known_length_transform; 127 152 extern 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;135 153 extern bithenge_transform_t bithenge_uint_le_transform; 136 154 extern bithenge_transform_t bithenge_uint_be_transform; 137 155 extern bithenge_transform_t bithenge_zero_terminated_transform; 138 156 extern bithenge_named_transform_t *bithenge_primitive_transforms; 139 157 /** @endcond */ 158 159 /** @memberof bithenge_transform_t */ 140 160 int bithenge_init_transform(bithenge_transform_t *, 141 161 const bithenge_transform_ops_t *, int); 162 /** @memberof bithenge_transform_t */ 142 163 int bithenge_transform_apply(bithenge_transform_t *, bithenge_scope_t *, 143 164 bithenge_node_t *, bithenge_node_t **); 165 /** @memberof bithenge_transform_t */ 144 166 int bithenge_transform_prefix_length(bithenge_transform_t *, 145 167 bithenge_scope_t *, bithenge_blob_t *, aoff64_t *); 168 /** @memberof bithenge_transform_t */ 146 169 int bithenge_transform_prefix_apply(bithenge_transform_t *, bithenge_scope_t *, 147 170 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 171 int bithenge_new_barrier_transform(bithenge_transform_t **, int); 172 int bithenge_barrier_transform_set_subtransform(bithenge_transform_t *, 173 bithenge_transform_t *); 174 175 /** @memberof bithenge_scope_t */ 153 176 int bithenge_scope_new(bithenge_scope_t **, bithenge_scope_t *); 177 /** @memberof bithenge_scope_t */ 154 178 void bithenge_scope_dec_ref(bithenge_scope_t *); 179 /** @memberof bithenge_scope_t */ 155 180 bithenge_scope_t *bithenge_scope_outer(bithenge_scope_t *); 181 /** @memberof bithenge_scope_t */ 182 const char *bithenge_scope_get_error(bithenge_scope_t *); 183 /** @memberof bithenge_scope_t */ 184 int bithenge_scope_error(bithenge_scope_t *, const char *, ...); 185 /** @memberof bithenge_scope_t */ 156 186 bithenge_node_t *bithenge_scope_get_current_node(bithenge_scope_t *); 187 /** @memberof bithenge_scope_t */ 157 188 void bithenge_scope_set_current_node(bithenge_scope_t *, bithenge_node_t *); 189 /** @memberof bithenge_scope_t */ 158 190 bithenge_node_t *bithenge_scope_in_node(bithenge_scope_t *); 191 /** @memberof bithenge_scope_t */ 159 192 void bithenge_scope_set_in_node(bithenge_scope_t *, bithenge_node_t *); 193 /** @memberof bithenge_scope_t */ 160 194 void bithenge_scope_set_barrier(bithenge_scope_t *); 195 /** @memberof bithenge_scope_t */ 161 196 bool bithenge_scope_is_barrier(bithenge_scope_t *); 197 /** @memberof bithenge_scope_t */ 162 198 int bithenge_scope_alloc_params(bithenge_scope_t *, int); 199 /** @memberof bithenge_scope_t */ 163 200 int bithenge_scope_set_param(bithenge_scope_t *, int, bithenge_node_t *); 201 /** @memberof bithenge_scope_t */ 164 202 int bithenge_scope_get_param(bithenge_scope_t *, int, bithenge_node_t **); 165 203
Note:
See TracChangeset
for help on using the changeset viewer.