and added files
[bcm963xx.git] / userapps / opensource / net-snmp / local / mib2c.old-api.conf
diff --git a/userapps/opensource/net-snmp/local/mib2c.old-api.conf b/userapps/opensource/net-snmp/local/mib2c.old-api.conf
new file mode 100644 (file)
index 0000000..213854c
--- /dev/null
@@ -0,0 +1,332 @@
+## -*- c -*-
+######################################################################
+## Do the .h file
+######################################################################
+@open ${name}.h@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *        $Id: mib2c.old-api.conf,v 1.3 2002/10/17 09:40:46 dts12 Exp $
+ */
+#ifndef $name.uc_H
+#define $name.uc_H
+
+/* function declarations */
+void init_$name(void);
+FindVarMethod var_$name;
+@foreach $i table@
+FindVarMethod var_${i};
+@end@
+@foreach $i scalar@
+    @if $i.settable@
+    WriteMethod write_${i};
+    @end@
+@end@
+@foreach $i table@
+ @foreach $c column@
+    @if $c.settable@
+    WriteMethod write_${c};
+    @end@
+ @end@
+@end@
+
+#endif /* $name.uc_H */
+######################################################################
+## Do the .c file
+######################################################################
+@open ${name}.c@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *        $Id: mib2c.old-api.conf,v 1.3 2002/10/17 09:40:46 dts12 Exp $
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include "${name}.h"
+
+/* 
+ * ${name}_variables_oid:
+ *   this is the top level oid that we want to register under.  This
+ *   is essentially a prefix, with the suffix appearing in the
+ *   variable below.
+ */
+
+oid ${name}_variables_oid[] = { $name.commaoid };
+
+/* 
+ * variable4 ${name}_variables:
+ *   this variable defines function callbacks and type return information 
+ *   for the $outputName mib section 
+ */
+
+struct variable4 ${name}_variables[] = {
+/*  magic number        , variable type , ro/rw , callback fn  , L, oidsuffix */
+@eval $magic = 0@
+@foreach $i scalar@
+    @eval $magic = $magic + 1@
+#define $i.uc          $magic
+    @if $i.settable@
+{$i.uc,  $i.type,  RWRITE,  var_${name}, 1,  { $i.subid }},
+    @end@
+    @if !$i.settable@
+{$i.uc,  $i.type,  RONLY ,  var_${name}, 1,  { $i.subid }},
+    @end@
+@end@
+
+@foreach $i table@
+ @foreach $c column@
+    @eval $magic = $magic + 1@
+#define $c.uc          $magic
+    @if $c.settable@
+{$c.uc,  $c.type,  RWRITE,  var_${i}, 3,  { $i.subid, 1, $c.subid }},
+    @end@
+    @if !$c.settable@
+{$c.uc,  $c.type,  RONLY,   var_${i}, 3,  { $i.subid, 1, $c.subid }},
+    @end@
+ @end@
+@end@
+};
+/*    (L = length of the oidsuffix) */
+
+
+/** Initializes the $name module */
+void
+init_$name(void)
+{
+
+    DEBUGMSGTL(("$name", "Initializing\n"));
+
+    /* register ourselves with the agent to handle our mib tree */
+    REGISTER_MIB("$name", ${name}_variables, variable4,
+               ${name}_variables_oid);
+
+    /* place any other initialization junk you need here */
+}
+
+/*
+ * var_$name():
+ *   This function is called every time the agent gets a request for
+ *   a scalar variable that might be found within your mib section
+ *   registered above.  It is up to you to do the right thing and
+ *   return the correct value.
+ *     You should also correct the value of "var_len" if necessary.
+ *
+ *   Please see the documentation for more information about writing
+ *   module extensions, and check out the examples in the examples
+ *   and mibII directories.
+ */
+unsigned char *
+var_$name(struct variable *vp, 
+                oid     *name, 
+                size_t  *length, 
+                int     exact, 
+                size_t  *var_len, 
+                WriteMethod **write_method)
+{
+    /* variables we may use later */
+    static long long_ret;
+    static u_long ulong_ret;
+    static unsigned char string[SPRINT_MAX_LEN];
+    static oid objid[MAX_OID_LEN];
+    static struct counter64 c64;
+
+    if (header_generic(vp,name,length,exact,var_len,write_method)
+                                  == MATCH_FAILED )
+    return NULL;
+
+    /* 
+   * this is where we do the value assignments for the mib results.
+   */
+    switch(vp->magic) {
+@foreach $i scalar@
+    $i.uc:
+    @if $i.settable@
+        *write_method = write_${i};
+    @end@
+        VAR = VALUE;   /* XXX */
+        return (u_char*) &VAR;
+@end@
+    default:
+      ERROR_MSG("");
+    }
+    return NULL;
+}
+
+
+@foreach $i table@
+/*
+ * var_$i():
+ *   Handle this table separately from the scalar value case.
+ *   The workings of this are basically the same as for var_$outputName above.
+ */
+unsigned char *
+var_$i(struct variable *vp,
+           oid     *name,
+           size_t  *length,
+           int     exact,
+           size_t  *var_len,
+           WriteMethod **write_method)
+{
+    /* variables we may use later */
+    static long long_ret;
+    static u_long ulong_ret;
+    static unsigned char string[SPRINT_MAX_LEN];
+    static oid objid[MAX_OID_LEN];
+    static struct counter64 c64;
+
+    /* 
+   * This assumes that the table is a 'simple' table.
+   *   See the implementation documentation for the meaning of this.
+   *   You will need to provide the correct value for the TABLE_SIZE parameter
+   *
+   * If this table does not meet the requirements for a simple table,
+   *   you will need to provide the replacement code yourself.
+   *   Mib2c is not smart enough to write this for you.
+   *    Again, see the implementation documentation for what is required.
+   */
+    if (header_simple_table(vp,name,length,exact,var_len,write_method, TABLE_SIZE)
+                                                == MATCH_FAILED )
+    return NULL;
+
+    /* 
+   * this is where we do the value assignments for the mib results.
+   */
+    switch(vp->magic) {
+@foreach $c column@
+    $c.uc:
+    @if $c.settable@
+        *write_method = write_${c};
+    @end@
+        VAR = VALUE;   /* XXX */
+        return (u_char*) &VAR;
+@end@
+    default:
+      ERROR_MSG("");
+    }
+    return NULL;
+}
+@end@
+
+@foreach $i scalar@
+@if $i.settable@
+
+
+int
+write_$i(int      action,
+            u_char   *var_val,
+            u_char   var_val_type,
+            size_t   var_val_len,
+            u_char   *statP,
+            oid      *name,
+            size_t   name_len)
+{
+    $i.decl value;
+    int size;
+
+    switch ( action ) {
+        case RESERVE1:
+          if (var_val_type != $i.type) {
+              fprintf(stderr, "write to $name not $i.type\n");
+              return SNMP_ERR_WRONGTYPE;
+          }
+          if (var_val_len > sizeof($i.decl)) {
+              fprintf(stderr,"write to $name: bad length\n");
+              return SNMP_ERR_WRONGLENGTH;
+          }
+          break;
+
+        case RESERVE2:
+          size  = var_val_len;
+          value = * ($i.decl *) var_val;
+
+          break;
+
+        case FREE:
+             /* Release any resources that have been allocated */
+          break;
+
+        case ACTION:
+             /*
+              * The variable has been stored in 'value' for you to use,
+              * and you have just been asked to do something with it.
+              * Note that anything done here must be reversable in the UNDO case
+              */
+          break;
+
+        case UNDO:
+             /* Back out any changes made in the ACTION case */
+          break;
+
+        case COMMIT:
+             /*
+              * Things are working well, so it's now safe to make the change
+              * permanently.  Make sure that anything done here can't fail!
+              */
+          break;
+    }
+    return SNMP_ERR_NOERROR;
+}
+@end@
+@end@
+
+@foreach $i table@
+@foreach $c column@
+@if $c.settable@
+int
+write_$c(int      action,
+            u_char   *var_val,
+            u_char   var_val_type,
+            size_t   var_val_len,
+            u_char   *statP,
+            oid      *name,
+            size_t   name_len)
+{
+    $c.decl value;
+    int size;
+
+    switch ( action ) {
+        case RESERVE1:
+          if (var_val_type != $c.type) {
+              fprintf(stderr, "write to $name not $c.type\n");
+              return SNMP_ERR_WRONGTYPE;
+          }
+          if (var_val_len > sizeof($c.decl)) {
+              fprintf(stderr,"write to $name: bad length\n");
+              return SNMP_ERR_WRONGLENGTH;
+          }
+          break;
+
+        case RESERVE2:
+          size  = var_val_len;
+          value = * ($c.decl *) var_val;
+
+          break;
+
+        case FREE:
+             /* Release any resources that have been allocated */
+          break;
+
+        case ACTION:
+             /*
+              * The variable has been stored in 'value' for you to use,
+              * and you have just been asked to do something with it.
+              * Note that anything done here must be reversable in the UNDO case
+              */
+          break;
+
+        case UNDO:
+             /* Back out any changes made in the ACTION case */
+          break;
+
+        case COMMIT:
+             /*
+              * Things are working well, so it's now safe to make the change
+              * permanently.  Make sure that anything done here can't fail!
+              */
+          break;
+    }
+    return SNMP_ERR_NOERROR;
+}
+@end@
+@end@
+@end@