From: Kohei KaiGai <kaigai@ak.jp.nec.com>
To: Greg KH <greg@kroah.com>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>,
Li Zefan <lizf@cn.fujitsu.com>,
akpm@osdl.org, "Andrew G. Morgan" <morgan@kernel.org>,
jmorris@namei.org, linux-kernel@vger.kernel.org,
linux-security-module@vger.kernel.org, adobriyan@gmail.com
Subject: Re: [PATCH] exporting capability code/name pairs (try #6.1)
Date: Wed, 20 Feb 2008 15:19:46 +0900 [thread overview]
Message-ID: <47BBC682.1040106@ak.jp.nec.com> (raw)
In-Reply-To: <47BBBCC8.7070707@ak.jp.nec.com>
>> Could you also modify the documentation and the sample code to use this
>> new field, showing how it is to be used, and testing that it works
>> properly at the same time?
>
> OK, Please wait for a while.
[3/3] Add a new example of kobject/attribute
The attached patch can provide a new exmple to use kobject and attribute.
The _show() and _store() method can refer/store the private data field of
kobj_attribute structure to know what entries are refered by users.
It will make easier to share a single _show()/_store() method with several
entries.
Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
--
samples/kobject/kobject-example.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/samples/kobject/kobject-example.c b/samples/kobject/kobject-example.c
index 08d0d3f..f99d734 100644
--- a/samples/kobject/kobject-example.c
+++ b/samples/kobject/kobject-example.c
@@ -77,6 +77,35 @@ static struct kobj_attribute baz_attribute =
static struct kobj_attribute bar_attribute =
__ATTR(bar, 0666, b_show, b_store);
+/*
+ * You can store a private data within 'data' field of kobj_attribute.
+ * It enables to share a single _show() or _store() method with several
+ * entries.
+ */
+static ssize_t integer_show(struct kobject *kobj,
+ struct kobj_attribute *attr,
+ char *buf)
+{
+ return scnprintf(buf, PAGE_SIZE, "%d\n", (int) attr->data);
+}
+
+static ssize_t integer_store(struct kobject *kobj,
+ struct kobj_attribute *attr,
+ const char *buf, size_t count)
+{
+ int code;
+
+ sscanf(buf, "%du", &code);
+ attr->data = (void *) code;
+ return count;
+}
+
+static struct kobj_attribute hoge_attribute =
+ __ATTR_DATA(hoge, 0666, integer_show, integer_store, 123);
+static struct kobj_attribute piyo_attribute =
+ __ATTR_DATA(piyo, 0666, integer_show, integer_store, 456);
+static struct kobj_attribute fuga_attribute =
+ __ATTR_DATA(fuga, 0444, integer_show, NULL, 789);
/*
* Create a group of attributes so that we can create and destory them all
@@ -86,6 +115,9 @@ static struct attribute *attrs[] = {
&foo_attribute.attr,
&baz_attribute.attr,
&bar_attribute.attr,
+ &hoge_attribute.attr,
+ &piyo_attribute.attr,
+ &fuga_attribute.attr,
NULL, /* need to NULL terminate the list of attributes */
};
--
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>
next prev parent reply other threads:[~2008-02-20 6:20 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-25 5:18 [PATCH 1/3] exporting capability code/name pairs (try 2nd) Kohei KaiGai
2008-01-25 7:32 ` Andrew G. Morgan
2008-01-25 11:41 ` Kohei KaiGai
2008-02-01 5:17 ` [PATCH 1/3] exporting capability code/name pairs (try #3) Kohei KaiGai
2008-02-04 16:21 ` Serge E. Hallyn
2008-02-06 2:27 ` Kohei KaiGai
2008-02-06 5:08 ` Serge E. Hallyn
2008-02-08 9:42 ` [PATCH] exporting capability code/name pairs (try #4) Kohei KaiGai
2008-02-08 16:48 ` Andrew G. Morgan
2008-02-12 0:56 ` Kohei KaiGai
2008-02-08 19:23 ` Alexey Dobriyan
2008-02-12 1:10 ` Kohei KaiGai
2008-02-12 21:58 ` Alexey Dobriyan
2008-02-13 8:14 ` Kohei KaiGai
2008-02-12 18:08 ` Serge E. Hallyn
2008-02-13 8:01 ` Kohei KaiGai
2008-02-15 1:38 ` [PATCH] exporting capability code/name pairs (try #5) Kohei KaiGai
2008-02-15 1:58 ` Li Zefan
2008-02-15 2:58 ` [PATCH] exporting capability code/name pairs (try #5.1) Kohei KaiGai
2008-02-15 18:38 ` Serge E. Hallyn
2008-02-15 18:50 ` Greg KH
2008-02-18 7:12 ` Kohei KaiGai
2008-02-18 7:40 ` Greg KH
2008-02-18 8:45 ` Kohei KaiGai
2008-02-19 16:16 ` Greg KH
2008-02-20 4:38 ` [PATCH] exporting capability code/name pairs (try #6) Kohei KaiGai
2008-02-20 5:02 ` Greg KH
2008-02-20 5:38 ` Kohei KaiGai
2008-02-20 5:53 ` Greg KH
2008-02-20 6:19 ` Kohei KaiGai [this message]
2008-02-20 6:16 ` [PATCH] exporting capability code/name pairs (try #6.1) Kohei KaiGai
2008-02-20 4:39 ` [PATCH] exporting capability code/name pairs (try #6) Kohei KaiGai
2008-02-20 6:16 ` [PATCH] exporting capability code/name pairs (try #6.1) Kohei KaiGai
2008-02-18 15:15 ` [PATCH] exporting capability code/name pairs (try #5.1) Serge E. Hallyn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47BBC682.1040106@ak.jp.nec.com \
--to=kaigai@ak.jp.nec.com \
--cc=adobriyan@gmail.com \
--cc=akpm@osdl.org \
--cc=greg@kroah.com \
--cc=jmorris@namei.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=morgan@kernel.org \
--cc=serue@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.