1054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart/* 2054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * lib/idiag/idiagnl_meminfo_obj.c Inet Diag Meminfo Object 3054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * 4054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * This library is free software; you can redistribute it and/or 5054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * modify it under the terms of the GNU Lesser General Public 6054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * License as published by the Free Software Foundation version 2.1 7054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * of the License. 8054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * 9054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * Copyright (c) 2013 Sassano Systems LLC <joe@sassanosystems.com> 10054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart */ 11054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 12054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#include <netlink-private/netlink.h> 13054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#include <netlink/idiag/meminfo.h> 14054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 15054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart/** 16054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * @ingroup idiag 17054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * @defgroup idiagnl_meminfo Inet Diag Memory Info 18054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * 19054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * @details 20054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * @idiagnl_doc{idiagnl_meminfo, Inet Diag Memory Info Documentation} 21054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * @{ 22054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart */ 23054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartstruct idiagnl_meminfo *idiagnl_meminfo_alloc(void) 24054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 25054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart return (struct idiagnl_meminfo *) nl_object_alloc(&idiagnl_meminfo_obj_ops); 26054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 27054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 28054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartvoid idiagnl_meminfo_get(struct idiagnl_meminfo *minfo) 29054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 30054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart nl_object_get((struct nl_object *) minfo); 31054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 32054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 33054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartvoid idiagnl_meminfo_put(struct idiagnl_meminfo *minfo) 34054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 35054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart nl_object_put((struct nl_object *) minfo); 36054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 37054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 38054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart/** 39054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * @name Attributes 40054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * @{ 41054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart */ 42054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartuint32_t idiagnl_meminfo_get_rmem(const struct idiagnl_meminfo *minfo) 43054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 44054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart return minfo->idiag_rmem; 45054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 46054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 47054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartvoid idiagnl_meminfo_set_rmem(struct idiagnl_meminfo *minfo, uint32_t rmem) 48054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 49054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart minfo->idiag_rmem = rmem; 50054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 51054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 52054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartuint32_t idiagnl_meminfo_get_wmem(const struct idiagnl_meminfo *minfo) 53054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 54054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart return minfo->idiag_wmem; 55054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 56054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 57054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartvoid idiagnl_meminfo_set_wmem(struct idiagnl_meminfo *minfo, uint32_t wmem) 58054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 59054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart minfo->idiag_wmem = wmem; 60054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 61054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 62054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartuint32_t idiagnl_meminfo_get_fmem(const struct idiagnl_meminfo *minfo) 63054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 64054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart return minfo->idiag_fmem; 65054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 66054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 67054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartvoid idiagnl_meminfo_set_fmem(struct idiagnl_meminfo *minfo, uint32_t fmem) 68054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 69054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart minfo->idiag_fmem = fmem; 70054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 71054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 72054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartuint32_t idiagnl_meminfo_get_tmem(const struct idiagnl_meminfo *minfo) 73054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 74054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart return minfo->idiag_tmem; 75054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 76054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 77054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartvoid idiagnl_meminfo_set_tmem(struct idiagnl_meminfo *minfo, uint32_t tmem) 78054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 79054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart minfo->idiag_tmem = tmem; 80054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 81054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart/** @} */ 82054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 83054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartstatic int idiagnl_meminfo_clone(struct nl_object *_dst, struct nl_object *_src) 84054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart{ 85054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart struct idiagnl_meminfo *dst = (struct idiagnl_meminfo *) _dst; 86054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart struct idiagnl_meminfo *src = (struct idiagnl_meminfo *) _src; 87054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 88054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart memcpy(dst, src, sizeof(struct idiagnl_meminfo)); 89054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 90054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart return 0; 91054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart} 92054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart 93054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart/** @cond SKIP */ 94054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartstruct nl_object_ops idiagnl_meminfo_obj_ops = { 95054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart .oo_name = "idiag/idiag_meminfo", 96054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart .oo_size = sizeof(struct idiagnl_meminfo), 97054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart .oo_clone = idiagnl_meminfo_clone, 98054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart}; 99054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart/** @endcond */ 100054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart/** @} */ 101