All of lore.kernel.org
 help / color / mirror / Atom feed
From: hujianyang <hujianyang@huawei.com>
To: <dedekind1@gmail.com>
Cc: Richard Weinberger <richard.weinberger@gmail.com>,
	linux-mtd <linux-mtd@lists.infradead.org>,
	Bill Pringlemeir <bpringlemeir@nbsps.com>
Subject: Re: [PATCH v4 2/4] ubi-utils: ubidump: add libdump
Date: Thu, 9 Oct 2014 10:10:35 +0800	[thread overview]
Message-ID: <5435EE9B.8040403@huawei.com> (raw)
In-Reply-To: <1412348025.3795.73.camel@sauron.fi.intel.com>

> 
> These ones do not look like they are in any way specific to the UBI
> dumping library.
> 
> In fact, we already have these in mkfs.ubifs/defs.h, which is also not
> very good.
> 
> Would you please instead use "include/common.h". Put the ALIGN and min_t
> definitions there, and include that file from "libdump.h"?
> 
> As a completely independent patch, you could also clean things up by
> removing the definitions from 'mkfs.ubifs/defs.h' and using
> 'include/common.h' in mkfs.ubifs too.
> 

Hi Artem,

I met a problem when I was doing this moving. The macros define in
mkfs.ubifs/defs.h are used in mkfs.ubifs/key.h and both of them are
included in mkfs.ubifs.h which is widely included by .c files in the
directory "mkfs.ubifs/". If these macros upon are moved into
include/common.h, I have to include "common.h" before "key.h" in
mkfs.ubifs/mkfs.ubifs.h. Then here comes a problem, each file includes
common.h must define a PROGRAM_NAME. So I have to add PROGRAM_NAME
for the file which includes "mkfs.ubifs.h" and get a patch below.

I don't think it's quite good, What's your opinion? Or can we put
these macros in libubi.h? But I think "common.h" is a suitable place
to locate these macros.


Signed-off-by: hujianyang <hujianyang@huawei.com>
---
 include/common.h        |   15 +++++++++++++++
 mkfs.ubifs/compr.c      |    2 ++
 mkfs.ubifs/defs.h       |   15 ---------------
 mkfs.ubifs/devtable.c   |    2 ++
 mkfs.ubifs/lpt.c        |    2 ++
 mkfs.ubifs/mkfs.ubifs.h |    1 +
 6 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/include/common.h b/include/common.h
index 6895e5c..9b8804a 100644
--- a/include/common.h
+++ b/include/common.h
@@ -47,6 +47,21 @@ extern "C" {
 #define min(a, b) MIN(a, b) /* glue for linux kernel source */
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))

+#define ALIGN(x,a) __ALIGN_MASK(x,(typeof(x))(a)-1)
+#define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))
+
+#define min_t(t,x,y) ({ \
+	typeof((x)) _x = (x); \
+	typeof((y)) _y = (y); \
+	(_x < _y) ? _x : _y; \
+})
+
+#define max_t(t,x,y) ({ \
+	typeof((x)) _x = (x); \
+	typeof((y)) _y = (y); \
+	(_x > _y) ? _x : _y; \
+})
+
 #ifndef O_CLOEXEC
 #define O_CLOEXEC 0
 #endif
diff --git a/mkfs.ubifs/compr.c b/mkfs.ubifs/compr.c
index 4152b6a..6d62033 100644
--- a/mkfs.ubifs/compr.c
+++ b/mkfs.ubifs/compr.c
@@ -20,6 +20,8 @@
  *          Zoltan Sogor
  */

+#define PROGRAM_NAME "compr"
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdint.h>
diff --git a/mkfs.ubifs/defs.h b/mkfs.ubifs/defs.h
index 06cf9e5..1fa3316 100644
--- a/mkfs.ubifs/defs.h
+++ b/mkfs.ubifs/defs.h
@@ -29,21 +29,6 @@
 #define le32_to_cpu(x) (t32((x)))
 #define le64_to_cpu(x) (t64((x)))

-#define ALIGN(x,a) __ALIGN_MASK(x,(typeof(x))(a)-1)
-#define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))
-
-#define min_t(t,x,y) ({ \
-	typeof((x)) _x = (x); \
-	typeof((y)) _y = (y); \
-	(_x < _y) ? _x : _y; \
-})
-
-#define max_t(t,x,y) ({ \
-	typeof((x)) _x = (x); \
-	typeof((y)) _y = (y); \
-	(_x > _y) ? _x : _y; \
-})
-
 #define unlikely(x) (x)

 #define ubifs_assert(x) ({})
diff --git a/mkfs.ubifs/devtable.c b/mkfs.ubifs/devtable.c
index dee035d..2358197 100644
--- a/mkfs.ubifs/devtable.c
+++ b/mkfs.ubifs/devtable.c
@@ -44,6 +44,8 @@
  * for more information about what the device table is.
  */

+#define PROGRAM_NAME "devtable"
+
 #include "mkfs.ubifs.h"
 #include "hashtable/hashtable.h"
 #include "hashtable/hashtable_itr.h"
diff --git a/mkfs.ubifs/lpt.c b/mkfs.ubifs/lpt.c
index f6d4352..94e8f9d 100644
--- a/mkfs.ubifs/lpt.c
+++ b/mkfs.ubifs/lpt.c
@@ -20,6 +20,8 @@
  *          Artem Bityutskiy
  */

+#define PROGRAM_NAME "lpt"
+
 #include "mkfs.ubifs.h"

 /**
diff --git a/mkfs.ubifs/mkfs.ubifs.h b/mkfs.ubifs/mkfs.ubifs.h
index 6030c48..6f6feb8 100644
--- a/mkfs.ubifs/mkfs.ubifs.h
+++ b/mkfs.ubifs/mkfs.ubifs.h
@@ -51,6 +51,7 @@
 #include "crc16.h"
 #include "ubifs-media.h"
 #include "ubifs.h"
+#include "common.h"
 #include "key.h"
 #include "lpt.h"
 #include "compr.h"
-- 
1.6.0.2

  reply	other threads:[~2014-10-09  2:11 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-30  4:06 [PATCH v4 1/4] ubi-utils: ubidump: add ubifs-media hujianyang
2014-09-30  4:08 ` [PATCH v4 2/4] ubi-utils: ubidump: add libdump hujianyang
2014-10-03 14:53   ` Artem Bityutskiy
2014-10-09  2:10     ` hujianyang [this message]
2014-09-30  4:09 ` [PATCH v4 3/4] ubi-utils: ubidump: introduce ubidump hujianyang
2014-09-30  4:10 ` [PATCH v4 4/4] ubi-utils: ubidump: compile enable hujianyang
2014-10-03 14:44 ` [PATCH v4 1/4] ubi-utils: ubidump: add ubifs-media Artem Bityutskiy
2014-10-08  3:43   ` hujianyang

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=5435EE9B.8040403@huawei.com \
    --to=hujianyang@huawei.com \
    --cc=bpringlemeir@nbsps.com \
    --cc=dedekind1@gmail.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard.weinberger@gmail.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.