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

📄 generic-ctx-get.m2i

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 M2I
字号:
#############################################################  -*- c -*-## generic include for XXX. Do not use directly.#### $Id: generic-ctx-get.m2i 12865 2005-09-27 17:05:53Z rstory $########################################################################@if $m2c_mark_boundary == 1@/** START code generated by $RCSfile$ $Revision: 12865 $ */@end@##########################################################################/*## This include will generate the code needed to assign data from## a generated data context to a parameter reference.#### EXAMPLE (prototype generated elsewhere)## int## ifName_get(ifXTable_ctx * ctx, char **ifName_ptr_ptr,##            size_t * ifName_len_ptr) {#### ## m2c_node_lh :   temp_ifName / (*ifName_ptr_ptr)## m2c_node_lhs:   temp_ifName_len / (*ifName_len_ptr);## m2c_ctx_rh  :   ctx->data.## node        :  ifName####    if (temp_ifName_len < ctx->data.ifName_len) {##        temp_ifName = malloc(ctx->data.ifName_len);##    }##    temp_ifName_len = ctx->data.ifName_len;##    memcpy(temp_ifName, ctx->data.ifName, temp_ifName_len);##*/@if "$m2c_data_context" ne "generated"@    /** WARNING: this code might not work for $m2c_data_context */@end@##/* set up for length/copy conversions for various cases.##   length mod applies to left hand side. copy mod applies to right hand side####*/@if ("$m2c_ctx_rhu" ne "elements") && ("$m2c_ctx_rhu" ne "bytes")@@   print Invalid rh units '$m2c_ctx_rhu'@@   exit@@end@@if ("$m2c_ctx_lhu" ne "elements") && ("$m2c_ctx_lhu" ne "bytes")@@   print Invalid lh units '$m2c_ctx_lhu'@@   exit@@end@@if "$m2c_ctx_rhu" ne "$m2c_ctx_lhu"@##/*   elements = bytes,    length mod="/sizeof", copy mult="" */@   if "$m2c_ctx_lhu" eq "elements"@@      eval $m2c_ctx_lm = "/ sizeof($m2c_ctx_rh[0])"@@      eval $m2c_ctx_cm = ""@@   else@##/*   bytes    = elements, length mod="*sizeof", copy mult="sizeof" */@      eval $m2c_ctx_lm = "* sizeof($m2c_ctx_rh[0])"@@      eval $m2c_ctx_cm = "* sizeof($m2c_ctx_rh[0])"@@   end@@else@##/*     elements = elements, length mod="",        copy mult="sizeof" */@   if "$m2c_ctx_lhu" eq "elements"@@      eval $m2c_ctx_lm = ""@@      eval $m2c_ctx_cm = "* sizeof($m2c_ctx_rh[0])"@@   else@##/*     bytes    = bytes,    length mod="",        copy mult="" */@      eval $m2c_ctx_lm = ""@@      eval $m2c_ctx_cm = ""@@   end@@end@@if $m2c_node_needlength == 1@    /*     * make sure there is enough space for $node data     */    if ((NULL == $m2c_ctx_lh) ||        ($m2c_ctx_lhs <         ($m2c_ctx_rhs$m2c_ctx_lm))) {@   if $m2c_node_realloc == 0@        snmp_log(LOG_ERR,"not enough space for value\n");        return MFD_ERROR;@   else@        /*         * allocate space for $node data         */@      if $m2c_node_realloc == 1@        $m2c_ctx_lh = realloc($m2c_ctx_lh, $m2c_ctx_rhs$m2c_ctx_cm );@      else@        $m2c_ctx_lh = malloc($m2c_ctx_rhs$m2c_ctx_cm);@      end@        if(NULL == $m2c_ctx_lh) {            snmp_log(LOG_ERR,"could not allocate memory\n");            return MFD_ERROR;        }@   end@    }    $m2c_ctx_lhs = $m2c_ctx_rhs$m2c_ctx_lm;    memcpy( $m2c_ctx_lh, $m2c_ctx_rh, $m2c_ctx_rhs$m2c_ctx_cm );@else@@   if $node.decl =~ /U64/i@ #              ASN_COUNTER64    ${m2c_ctx_lh}.high = ${m2c_ctx_rh}.high;    ${m2c_ctx_lh}.low = ${m2c_ctx_rh}.low;@   else@    $m2c_ctx_lh = $m2c_ctx_rh;@   end@@end@ # length##########################################################################@if $m2c_mark_boundary == 1@/** END code generated by $RCSfile$ $Revision: 12865 $ */@end@

⌨️ 快捷键说明

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