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

📄 hw_mem.c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 C
字号:
#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>#include <net-snmp/agent/hardware/memory.h>extern NetsnmpCacheLoad netsnmp_mem_arch_load;netsnmp_memory_info *_mem_head  = NULL;netsnmp_cache       *_mem_cache = NULL;void init_hw_mem( void ) {    _mem_cache = netsnmp_cache_create( 5, netsnmp_mem_arch_load, NULL, NULL, 0);}netsnmp_memory_info *netsnmp_memory_get_first( int type ) {    netsnmp_memory_info *mem;    for ( mem=_mem_head; mem; mem=mem->next )        if (mem->type == type)    /* Or treat as bits? */            return mem;    return NULL;}netsnmp_memory_info *netsnmp_memory_get_next( netsnmp_memory_info *this_ptr, int type ) {    netsnmp_memory_info *mem;    if (this_ptr)        for ( mem=this_ptr->next; mem; mem=mem->next )            if (mem->type == type)    /* Or treat as bits? */                return mem;    return NULL;}    /*     * Work with a list of Memory entries, indexed numerically     */netsnmp_memory_info *netsnmp_memory_get_byIdx(  int idx, int create ) {    netsnmp_memory_info *mem, *mem2;        /*         * Find the specified Memory entry         */    for ( mem=_mem_head; mem; mem=mem->next ) {        if ( mem->idx == idx )            return mem;    }    if (!create)        return NULL;        /*         * Create a new memory entry, and insert it into the list....         */    mem = SNMP_MALLOC_TYPEDEF( netsnmp_memory_info );    if (!mem)        return NULL;    mem->idx = idx;        /* ... either as the first (or only) entry....  */    if ( !_mem_head || _mem_head->idx > idx ) {        mem->next = _mem_head;        _mem_head = mem;        return mem;    }        /* ... or in the appropriate position  */    for ( mem2=_mem_head; mem2; mem2=mem2->next ) {        if ( !mem2->next || mem2->next->idx > idx ) {            mem->next  = mem2->next;            mem2->next = mem;            return mem;        }    }    SNMP_FREE(mem);    return NULL;  /* Shouldn't happen! */}netsnmp_memory_info *netsnmp_memory_get_next_byIdx( int idx, int type ) {    netsnmp_memory_info *mem;    for ( mem=_mem_head; mem; mem=mem->next )        if (mem->type == type && mem->idx > idx)    /* Or treat as bits? */            return mem;    return NULL;}netsnmp_cache *netsnmp_memory_get_cache( void ) {    return _mem_cache;}int netsnmp_memory_load( void ) {     return netsnmp_cache_check_and_reload( _mem_cache );}

⌨️ 快捷键说明

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