TR69 TRxObjNode

1. external/tr69c/inc/tr69cdefs.h

typedef struct TRxObjNode

{

    const char *name;

    TRxPAtrrib paramAttrib;

    TRxSETFUNC setTRxParam;  /* only set if param is writeable */

    TRxGETFUNC getTRxParam;

    void *objDetail;

    InstanceDope *instanceDope;

}TRxObjNode;

2.

(1)typedef union TRxPAttrib {
    struct Attrib {
    eTRxType    etype:8;
    unsigned    slength:16;
    unsigned    inhibitActiveNotify:1; /* set to always inhibit change notification: use on counters */
    //unsigned    notification:2;
    //unsigned    accessListIndex:1;  /* is 0 for no Subscriber access or 1 to enable */
                                    /* subscriber access */
    } attrib;
    InstanceDesc    *instance;
} TRxPAttrib;

(2)typedef TRX_STATUS (*TRxSETFUNC)(const char *value);

(3)typedef TRX_STATUS (*TRxGETFUNC)(char **value);

(4)typedef struct InstanceDope {
    struct InstanceDope *next;
    InstanceDesc *instance;  /* set to currentInstance Desc*/
    char *pdata;
    unsigned notification:2;
    unsigned accessListIndex:1;
} InstanceDope;



3. (1-1)typedef enum {
    tUnknown=0,
    tObject,
    tString,
    tInt,
    tUnsigned,
    tBool,
    tDateTime,
    tBase64,
    tInstance,
    tStringSOnly        /* Set strings only */
} eTRxType;

(1-2)typedef struct InstanceDesc {
    struct      InstanceDesc *next;
    struct      InstanceDesc *parent;
    int         instanceID;
    void        *hwUserData;
} InstanceDesc;

(2-1)typedef enum {
    TRX_OK=0,
    TRX_REBOOT,
    TRX_ERR, /* for internal error */
    TRX_INVALID_PARAMETER_VALUE
}TRX_STATUS;

(4-1)

typedef struct InstanceDesc {
    struct      InstanceDesc *next;
    struct      InstanceDesc *parent;
    int         instanceID;
    void        *hwUserData;
} InstanceDesc;

原文地址:https://www.cnblogs.com/gavinwu/p/3110443.html