Changeset d0febca in mainline for uspace/app/sbi/src/rdata_t.h


Ignore:
Timestamp:
2010-03-13T12:04:37Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7715994
Parents:
94d484a
Message:

Update SBI to rev. 100.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/sbi/src/rdata_t.h

    r94d484a rd0febca  
    131131} rdata_var_t;
    132132
    133 /** Address item. */
    134 typedef struct rdata_address {
     133/** Address class */
     134typedef enum {
     135        /** Variable address */
     136        ac_var,
     137
     138        /** Property address */
     139        ac_prop
     140} address_class_t;
     141
     142/** Variable address */
     143typedef struct {
    135144        /** Targeted variable */
    136145        rdata_var_t *vref;
     146} rdata_addr_var_t;
     147
     148/** Named property address */
     149typedef struct {
     150        /** Delegate to the property */
     151        rdata_deleg_t *prop_d;
     152} rdata_aprop_named_t;
     153
     154/** Indexed property address */
     155typedef 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
     163typedef 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 */
     178typedef 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 */
     197typedef 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;
    137204} rdata_address_t;
    138205
Note: See TracChangeset for help on using the changeset viewer.