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