diff options
Diffstat (limited to 'include/net-snmp/agent/var_struct.h')
-rw-r--r-- | include/net-snmp/agent/var_struct.h | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/include/net-snmp/agent/var_struct.h b/include/net-snmp/agent/var_struct.h new file mode 100644 index 0000000..15b5770 --- /dev/null +++ b/include/net-snmp/agent/var_struct.h @@ -0,0 +1,116 @@ +#ifndef VAR_STRUCT_H +#define VAR_STRUCT_H +/* + * The subtree structure contains a subtree prefix which applies to + * all variables in the associated variable list. + * + * By converting to a tree of subtree structures, entries can + * now be subtrees of another subtree in the structure. i.e: + * 1.2 + * 1.2.0 + */ + +#define UCD_REGISTRY_OID_MAX_LEN 128 + +/* + * subtree flags + */ +#define FULLY_QUALIFIED_INSTANCE 0x01 +#define SUBTREE_ATTACHED 0x02 + +typedef struct netsnmp_subtree_s { + oid *name_a; /* objid prefix of registered subtree */ + u_char namelen; /* number of subid's in name above */ + oid *start_a; /* objid of start of covered range */ + u_char start_len; /* number of subid's in start name */ + oid *end_a; /* objid of end of covered range */ + u_char end_len; /* number of subid's in end name */ + struct variable *variables; /* pointer to variables array */ + int variables_len; /* number of entries in above array */ + int variables_width; /* sizeof each variable entry */ + char *label_a; /* calling module's label */ + netsnmp_session *session; + u_char flags; + u_char priority; + int timeout; + struct netsnmp_subtree_s *next; /* List of 'sibling' subtrees */ + struct netsnmp_subtree_s *prev; /* (doubly-linked list) */ + struct netsnmp_subtree_s *children; /* List of 'child' subtrees */ + int range_subid; + oid range_ubound; + netsnmp_handler_registration *reginfo; /* new API */ + int cacheid; + int global_cacheid; + size_t oid_off; +} netsnmp_subtree; + +/* + * This is a new variable structure that doesn't have as much memory + * tied up in the object identifier. It's elements have also been re-arranged + * so that the name field can be variable length. Any number of these + * structures can be created with lengths tailor made to a particular + * application. The first 5 elements of the structure must remain constant. + */ +struct variable1 { + u_char magic; /* passed to function as a hint */ + u_char type; /* type of variable */ + u_short acl; /* access control list for variable */ + FindVarMethod *findVar; /* function that finds variable */ + u_char namelen; /* length of name below */ + oid name[1]; /* object identifier of variable */ +}; + +struct variable2 { + u_char magic; /* passed to function as a hint */ + u_char type; /* type of variable */ + u_short acl; /* access control list for variable */ + FindVarMethod *findVar; /* function that finds variable */ + u_char namelen; /* length of name below */ + oid name[2]; /* object identifier of variable */ +}; + +struct variable3 { + u_char magic; /* passed to function as a hint */ + u_char type; /* type of variable */ + u_short acl; /* access control list for variable */ + FindVarMethod *findVar; /* function that finds variable */ + u_char namelen; /* length of name below */ + oid name[3]; /* object identifier of variable */ +}; + +struct variable4 { + u_char magic; /* passed to function as a hint */ + u_char type; /* type of variable */ + u_short acl; /* access control list for variable */ + FindVarMethod *findVar; /* function that finds variable */ + u_char namelen; /* length of name below */ + oid name[4]; /* object identifier of variable */ +}; + +struct variable7 { + u_char magic; /* passed to function as a hint */ + u_char type; /* type of variable */ + u_short acl; /* access control list for variable */ + FindVarMethod *findVar; /* function that finds variable */ + u_char namelen; /* length of name below */ + oid name[7]; /* object identifier of variable */ +}; + +struct variable8 { + u_char magic; /* passed to function as a hint */ + u_char type; /* type of variable */ + u_short acl; /* access control list for variable */ + FindVarMethod *findVar; /* function that finds variable */ + u_char namelen; /* length of name below */ + oid name[8]; /* object identifier of variable */ +}; + +struct variable13 { + u_char magic; /* passed to function as a hint */ + u_char type; /* type of variable */ + u_short acl; /* access control list for variable */ + FindVarMethod *findVar; /* function that finds variable */ + u_char namelen; /* length of name below */ + oid name[13]; /* object identifier of variable */ +}; +#endif /* VAR_STRUCT_H */ |