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

📄 generic-value-map-func.m2i

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 M2I
字号:
#############################################################  -*- c -*-## generic include for XXX. Do not use directly.#### $Id: generic-value-map-func.m2i 12095 2005-04-18 22:14:01Z rstory $########################################################################@if $m2c_mark_boundary == 1@/** START code generated by $RCSfile$ $Revision: 12095 $ */@end@########################################################################## }/** * map a value from its original native format to the MIB format. * * @retval MFD_SUCCESS         : success * @retval MFD_ERROR           : Any other error * * @note parameters follow the memset convention (dest, src). * * @note generation and use of this function can be turned off by re-running * mib2c after adding the following line to the file * ${m2c_defaults_dir}node-${node}.m2d : *   @eval $@m2c_node_skip_mapping = 1@ * * @remark *  If the values for your data type don't exactly match the *  possible values defined by the mib, you should map them here. *  Otherwise, just do a direct copy. */int${node}_map($m2c_node_map_param){@if $m2c_node_needlength == 1@    int converted_len;    netsnmp_assert(NULL != raw_$m2c_node_param_val_name);    netsnmp_assert((NULL != mib_$m2c_node_param_ref_name) && (NULL != mib_$m2c_node_param_ref_lname));@else@    netsnmp_assert(NULL != mib_$m2c_node_param_ref_name);@end@        DEBUGMSGTL(("verbose:${context}:${node}_map","called\n"));    @if $m2c_node_needlength == 1@    /*     * TODO:241:r: |-> Implement $node non-integer mapping     * it is hard to autogenerate code for mapping types that are not simple     * integers, so here is an idea of what you might need to do. It will     * probably need some tweaking to get right.     */    /*     * if the length of the raw data doesn't directly correspond with     * the length of the mib data, set converted_len to the     * space required.     */    converted_len = raw_$m2c_node_param_val_lname; /* assume equal */    if((NULL == *mib_$m2c_node_param_ref_name) || (*mib_$m2c_node_param_ref_lname < converted_len)) {        if(! allow_realloc) {            snmp_log(LOG_ERR,"not enough space for value mapping\n");            return SNMP_ERR_GENERR;        }        *mib_$m2c_node_param_ref_name = realloc( *mib_$m2c_node_param_ref_name, converted_len * sizeof(**mib_$m2c_node_param_ref_name));        if(NULL == *mib_$m2c_node_param_ref_name) {            snmp_log(LOG_ERR,"could not allocate memory\n");            return SNMP_ERR_GENERR;        }    }    *mib_$m2c_node_param_ref_lname = converted_len;    memcpy( *mib_$m2c_node_param_ref_name, raw_$m2c_node_param_val_name, converted_len );##@elsif ($node.enums == 1) && ("$node.perltype" eq "INTEGER")@    /*     * TODO:241:o: |-> Implement $node enum mapping.     * uses INTERNAL_* macros defined in the header files     */    switch(raw_$m2c_node_param_val_name) {@    foreach $e $v enum@@        include m2c_setup_enum.m2i@        case INTERNAL_$context.uc_$m2c_iname:             *mib_$m2c_node_param_ref_name = $m2c_ename;             break;@    end@ # foreach             default:                 snmp_log(LOG_ERR, "couldn't map value %ld for $node\n", raw_$m2c_node_param_val_name );                 return MFD_ERROR;    }##@else@    /*     * TODO:241:o: |-> Implement $node mapping.     * If the values for your data type don't exactly match the     * possible values defined by the mib, you should map them here.     */    (*mib_$m2c_node_param_ref_name) = raw_$m2c_node_param_val_name;@end@    return MFD_SUCCESS;} /* ${node}_map */##########################################################################@if $m2c_mark_boundary == 1@/** END code generated by $RCSfile$ $Revision: 12095 $ */@end@

⌨️ 快捷键说明

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