⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfd-top.m2c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 M2C
📖 第 1 页 / 共 2 页
字号:
#############################################################  -*- c -*-## generic include for XXX. Do not use directly.## $Id: mfd-top.m2c 14170 2006-01-26 17:02:48Z dts12 $#################################################################################################################################################### mfd function params##@ifconf ${name}.m2d@@   include ${name}.m2d@@end@#### set up defaults##@foreach $table table@@    include default-mfd-top.m2c@ # get defaults@    eval $context = $table@####   set up defaults##@    print Defaults for $table...@@    eval $m2c_context_reg = "$mfd_default_context_reg"@@    eval $m2c_data_allocate = $mfd_default_data_allocate@@    eval $m2c_data_cache = $mfd_default_data_cache@@    eval $m2c_data_context = "$mfd_default_data_context"@@    eval $m2c_data_init = $mfd_default_data_init@@    eval $m2c_data_transient = $mfd_default_data_transient@@    eval $m2c_include_examples = $mfd_default_include_examples@@    eval $m2c_irreversible_commit = 0@@    eval $m2c_table_access = "$mfd_default_table_access"@@    eval $m2c_table_dependencies = table_is_writable($context)@@    eval $m2c_table_persistent = 0@@    eval $m2c_table_row_creation = table_has_create($context)@@    eval $m2c_table_settable = table_is_writable($context)@@    eval $m2c_table_skip_mapping = -1@ # -1 = no default; based on type@    eval $m2c_table_sparse = 0@@    eval $mfd_generate_makefile = $mfd_default_generate_makefile@@    eval $mfd_generate_subagent = $mfd_default_generate_subagent@####   allow for user override, or save defaults##@    ifconf default-table-${context}.m2d@@       print Warning: using defaults in current directory. Consider moving@@       print them to $m2c_defaults_dir.@@       eval $m2c_defaults_dir = "default-"@@    end@@    ifconf ${m2c_defaults_dir}table-${context}.m2d@@      if $mfd_interactive_setup == 1@@        print There are existing defaults for $context (${m2c_defaults_dir}table-${context}.m2d).@@        prompt $ans r)econfigure or u)se existing [default=u] : @@        if "x$ans" eq "xr"@@          eval $mfd_interactive_setup = -1@ # already asked to overwrite@          run -again mfd-interactive-setup.m2c@@          eval $mfd_interactive_setup = 1@@        else@##          ## read in old, write them back (this should add any new vars@           include ${m2c_defaults_dir}table-${context}.m2d@@           include m2c_table_save_defaults.m2i@@        end@ @      end@@    else@ # no existing defaults@      ifdir defaults@##       NOP@      else@@         perleval my $rc = mkdir(defaults,0775); return $rc != 1 @@      end@@      run mfd-interactive-setup.m2c@@    end@ # no conf file@end@ # foreach table@if $m2c_gen_table_defaults == 1@@   exit@@end@@print Starting MFD code generation...@########################################################################@eval $m2c_processing_type = 'h'@@open ${name}.h@@eval $hack = "Id"@/* * Note: this file originally auto-generated by mib2c using *       version $Revision: 14170 $ of $RCSfile$ * * $$hack:$ */@include generic-header-top.m2i@/** @addtogroup misc misc: Miscellaneous routines * * @{ */@if $m2c_mark_boundary == 1@/** START header generated by $RCSfile$ $Revision: 14170 $ */@end@#include <net-snmp/library/asn1.h>/* other required module components */    /* *INDENT-OFF*  */config_add_mib($name.module)config_require($name.module/${name}/${name}_interface)config_require($name.module/${name}/${name}_data_access)@if $m2c_create_fewer_files != 1@config_require($name.module/${name}/${name}_data_get)config_require($name.module/${name}/${name}_data_set)    /* *INDENT-ON*  *//* OID and column number definitions for $context */#include "${name}_oids.h"/* enum definions */#include "${name}_enums.h"@else@    /* *INDENT-ON*  *//* OID, column number and enum definions for $context */#include "${name}_constants.h"@end@ // m2c_create_fewer_files/* ********************************************************************* * function declarations */void init_$name(void);void shutdown_$context(void);/* ********************************************************************* * Table declarations */@foreach $table table@@    include m2c_setup_table.m2i@@    include details-table.m2i@/* ********************************************************************* * When you register your mib, you get to provide a generic * pointer that will be passed back to you for most of the * functions calls. * * TODO:100:r: Review all context structures */    /*     * TODO:101:o: |-> Review $context registration context.     */@    if "x$m2c_context_reg" eq "x"@@        eval $m2c_context_reg = "netsnmp_data_list"@@    end@typedef $m2c_context_reg ${context}_registration;@    include generic-data-context.m2i@@   if $m2c_table_settable@/* ********************************************************************* * TODO:115:o: |-> Review $context undo context. * We're just going to use the same data structure for our * undo_context. If you want to do something more efficent, * define your typedef here. */typedef ${context}_data ${context}_undo_data;@    end@@    include generic-table-indexes.m2i@/* ********************************************************************* * TODO:130:o: |-> Review $context Row request (rowreq) context. * When your functions are called, you will be passed a * ${context}_rowreq_ctx pointer. */typedef struct ${context}_rowreq_ctx_s {    /** this must be first for container compare to work */    netsnmp_index        oid_idx;##                                             /* xxx-rks: shrink index oid_tmp? */    oid                  oid_tmp[MAX_${context}_IDX_LEN];        ${context}_mib_index        tbl_idx;    @    if $m2c_data_allocate == 1@@        eval $mfd_tmp = "*"@@    else@@        eval $mfd_tmp = " "@@    end@    ${context}_data            $mfd_tmp data;@   if $m2c_table_sparse == 1@    unsigned int                column_exists_flags; /* flags for existence */@   end@@   if $m2c_table_settable@@      if $m2c_undo_embed == 1@@         eval $mfd_tmp = " "@@      else@@         eval $mfd_tmp = "*"@@      end@ # embed    ${context}_undo_data       $mfd_tmp undo;    unsigned int                column_set_flags; /* flags for set columns */@   end@ # settable    /*     * flags per row. Currently, the first (lower) 8 bits are reserved     * for the user. See mfd.h for other flags.     */    u_int                       rowreq_flags;@   if $m2c_table_refcounts == 1@    u_int                       ref_count;@   end@    /*     * TODO:131:o: |   |-> Add useful data to $context rowreq context.     */        /*     * storage for future expansion     */    netsnmp_data_list             *${context}_data_list;} ${context}_rowreq_ctx;typedef struct ${context}_ref_rowreq_ctx_s {    ${context}_rowreq_ctx *rowreq_ctx;} ${context}_ref_rowreq_ctx;/* ********************************************************************* * function prototypes */## {    int ${context}_pre_request(${context}_registration * user_context);    int ${context}_post_request(${context}_registration * user_context,        int rc);@   if $m2c_data_init == 1@    int ${context}_rowreq_ctx_init(${context}_rowreq_ctx *rowreq_ctx,                                   void *user_init_ctx);    void ${context}_rowreq_ctx_cleanup(${context}_rowreq_ctx *rowreq_ctx);@   end@@    if "$m2c_data_context" ne "generated"@@        if ($m2c_data_allocate == 1) || ($m2c_undo_embed == 1)@    ${context}_data * ${context}_allocate_data(void);    void ${context}_release_data(${context}_data *data);@        end@@   end@@   if $m2c_table_settable@@      if $m2c_table_dependencies == 1@    int ${context}_check_dependencies(${context}_rowreq_ctx * rowreq_ctx); @      end@     int ${context}_commit(${context}_rowreq_ctx * rowreq_ctx);@      if $m2c_irreversible_commit == 1@    int ${context}_irreversible_commit(${context}_rowreq_ctx * rowreq_ctx);@      end@@   end@ # writable    ${context}_rowreq_ctx *                  ${context}_row_find_by_mib_index(${context}_mib_index *mib_idx);@   if $m2c_table_refcounts == 1@int ${context}_row_ref_increment(${context}_rowreq_ctx *rowreq_ctx);int ${context}_row_ref_decrement(${context}_rowreq_ctx *rowreq_ctx);@   end@extern oid ${context}_oid[];extern int ${context}_oid_size;@end@ # for each#include "${name}_interface.h"#include "${name}_data_access.h"@if $m2c_create_fewer_files != 1@#include "${name}_data_get.h"#include "${name}_data_set.h"@else@@   eval $mfd_processing_types = "h"@@   include mfd-data-get.m2c@@   include mfd-data-set.m2c@@end@ // m2c_create_fewer_files/* * DUMMY markers, ignore * * TODO:099:x: ************************************************************* * TODO:199:x: ************************************************************* * TODO:299:x: ************************************************************* * TODO:399:x: ************************************************************* * TODO:499:x: ************************************************************* */@if $m2c_mark_boundary == 1@/** END header generated by $RCSfile$ $Revision: 14170 $ */@end@@include generic-header-bottom.m2i@/** @} */######################################################################## Do the .c file######################################################################@eval $m2c_processing_type = 'c'@@open ${name}.c@/* * Note: this file originally auto-generated by mib2c using *       version $Revision: 14170 $ of $RCSfile$  * * $$hack:$ *//** \page MFD helper for ${name} * * \section intro Introduction * Introductory text. * */@include generic-source-includes.m2i@#include <net-snmp/agent/mib_modules.h>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -