Changeset d0febca in mainline for uspace/app/sbi/src/rdata_t.h
- Timestamp:
- 2010-03-13T12:04:37Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7715994
- Parents:
- 94d484a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sbi/src/rdata_t.h
r94d484a rd0febca 131 131 } rdata_var_t; 132 132 133 /** Address item. */ 134 typedef struct rdata_address { 133 /** Address class */ 134 typedef enum { 135 /** Variable address */ 136 ac_var, 137 138 /** Property address */ 139 ac_prop 140 } address_class_t; 141 142 /** Variable address */ 143 typedef struct { 135 144 /** Targeted variable */ 136 145 rdata_var_t *vref; 146 } rdata_addr_var_t; 147 148 /** Named property address */ 149 typedef struct { 150 /** Delegate to the property */ 151 rdata_deleg_t *prop_d; 152 } rdata_aprop_named_t; 153 154 /** Indexed property address */ 155 typedef struct { 156 /** Delegate to the object (or CSI) which is being indexed. */ 157 rdata_deleg_t *object_d; 158 159 /** Arguments (indices) */ 160 list_t args; /* of rdata_item_t */ 161 } rdata_aprop_indexed_t; 162 163 typedef enum { 164 /* Named property address */ 165 apc_named, 166 167 /* Indexed property address */ 168 apc_indexed 169 } aprop_class_t; 170 171 /** Property address. 172 * 173 * When accessing part of a property that is non-scalar and mutable, 174 * a read-modify-write (or get-modify-set) operation is necessary. 175 * To accomodate this, the address item must hold a temporary copy of the 176 * property value. 177 */ 178 typedef struct { 179 aprop_class_t apc; 180 181 /** Temporary copy of property value or @c NULL when not used. */ 182 struct rdata_value *tvalue; 183 184 /** 185 * Points to the specific var node within @c tvalue that is addressed 186 * or @c NULL when @c tvalue is not used. 187 */ 188 rdata_var_t *tpos; 189 190 union { 191 rdata_aprop_named_t *named; 192 rdata_aprop_indexed_t *indexed; 193 } u; 194 } rdata_addr_prop_t; 195 196 /** Address item */ 197 typedef struct rdata_address { 198 address_class_t ac; 199 200 union { 201 rdata_addr_var_t *var_a; 202 rdata_addr_prop_t *prop_a; 203 } u; 137 204 } rdata_address_t; 138 205
Note:
See TracChangeset
for help on using the changeset viewer.