idiag_meminfo_obj.c 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*
  2. * lib/idiag/idiagnl_meminfo_obj.c Inet Diag Meminfo Object
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation version 2.1
  7. * of the License.
  8. *
  9. * Copyright (c) 2013 Sassano Systems LLC <joe@sassanosystems.com>
  10. */
  11. #include <netlink-private/netlink.h>
  12. #include <netlink/idiag/meminfo.h>
  13. /**
  14. * @ingroup idiag
  15. * @defgroup idiagnl_meminfo Inet Diag Memory Info
  16. *
  17. * @details
  18. * @idiagnl_doc{idiagnl_meminfo, Inet Diag Memory Info Documentation}
  19. * @{
  20. */
  21. struct idiagnl_meminfo *idiagnl_meminfo_alloc(void)
  22. {
  23. return (struct idiagnl_meminfo *) nl_object_alloc(&idiagnl_meminfo_obj_ops);
  24. }
  25. void idiagnl_meminfo_get(struct idiagnl_meminfo *minfo)
  26. {
  27. nl_object_get((struct nl_object *) minfo);
  28. }
  29. void idiagnl_meminfo_put(struct idiagnl_meminfo *minfo)
  30. {
  31. nl_object_put((struct nl_object *) minfo);
  32. }
  33. /**
  34. * @name Attributes
  35. * @{
  36. */
  37. uint32_t idiagnl_meminfo_get_rmem(const struct idiagnl_meminfo *minfo)
  38. {
  39. return minfo->idiag_rmem;
  40. }
  41. void idiagnl_meminfo_set_rmem(struct idiagnl_meminfo *minfo, uint32_t rmem)
  42. {
  43. minfo->idiag_rmem = rmem;
  44. }
  45. uint32_t idiagnl_meminfo_get_wmem(const struct idiagnl_meminfo *minfo)
  46. {
  47. return minfo->idiag_wmem;
  48. }
  49. void idiagnl_meminfo_set_wmem(struct idiagnl_meminfo *minfo, uint32_t wmem)
  50. {
  51. minfo->idiag_wmem = wmem;
  52. }
  53. uint32_t idiagnl_meminfo_get_fmem(const struct idiagnl_meminfo *minfo)
  54. {
  55. return minfo->idiag_fmem;
  56. }
  57. void idiagnl_meminfo_set_fmem(struct idiagnl_meminfo *minfo, uint32_t fmem)
  58. {
  59. minfo->idiag_fmem = fmem;
  60. }
  61. uint32_t idiagnl_meminfo_get_tmem(const struct idiagnl_meminfo *minfo)
  62. {
  63. return minfo->idiag_tmem;
  64. }
  65. void idiagnl_meminfo_set_tmem(struct idiagnl_meminfo *minfo, uint32_t tmem)
  66. {
  67. minfo->idiag_tmem = tmem;
  68. }
  69. /** @} */
  70. static int idiagnl_meminfo_clone(struct nl_object *_dst, struct nl_object *_src)
  71. {
  72. struct idiagnl_meminfo *dst = (struct idiagnl_meminfo *) _dst;
  73. struct idiagnl_meminfo *src = (struct idiagnl_meminfo *) _src;
  74. memcpy(dst, src, sizeof(struct idiagnl_meminfo));
  75. return 0;
  76. }
  77. /** @cond SKIP */
  78. struct nl_object_ops idiagnl_meminfo_obj_ops = {
  79. .oo_name = "idiag/idiag_meminfo",
  80. .oo_size = sizeof(struct idiagnl_meminfo),
  81. .oo_clone = idiagnl_meminfo_clone,
  82. };
  83. /** @endcond */
  84. /** @} */