All of lore.kernel.org
 help / color / mirror / Atom feed
From: hujianyang <hujianyang@huawei.com>
To: linux-mtd <linux-mtd@lists.infradead.org>
Cc: Artem Bityutskiy <dedekind1@gmail.com>
Subject: [PATCH 4/7] Add libubifs.h
Date: Mon, 7 Jul 2014 15:22:08 +0800	[thread overview]
Message-ID: <53BA4AA0.7040905@huawei.com> (raw)
In-Reply-To: <53BA491E.8060502@huawei.com>

Header file of libubifs.c.

Could I have other ways to get 'ALIGN' and 'min_t' instead
of define them in this file?


Signed-off-by: hujianyang <hujianyang@huawei.com>
---
 ubi-utils/include/libubifs.h | 87 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)
 create mode 100644 ubi-utils/include/libubifs.h

diff --git a/ubi-utils/include/libubifs.h b/ubi-utils/include/libubifs.h
new file mode 100644
index 0000000..94d259f
--- /dev/null
+++ b/ubi-utils/include/libubifs.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) International Business Machines Corp., 2006
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU General Public License for more details.
+ *
+ * Author: Hu Jianyang <hujianyang@huawei.com>
+ *
+ * UBIFS library.
+ */
+
+#ifndef __LIBUBIFS_H__
+#define __LIBUBIFS_H__
+
+#include <mtd/ubifs-media.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#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; \
+})
+
+/*
+ * 'ubifs_scan_a_node()' return values.
+ *
+ * SCANNED_GARBAGE:  scanned garbage
+ * SCANNED_EMPTY_SPACE: scanned empty space
+ * SCANNED_A_NODE: scanned a valid node
+ * SCANNED_A_CORRUPT_NODE: scanned a corrupted node
+ * SCANNED_A_BAD_PAD_NODE: scanned a padding node with invalid pad length
+ *
+ * Greater than zero means: 'scanned that number of padding bytes'
+ */
+enum {
+	SCANNED_GARBAGE        = 0,
+	SCANNED_EMPTY_SPACE    = -1,
+	SCANNED_A_NODE         = -2,
+	SCANNED_A_CORRUPT_NODE = -3,
+	SCANNED_A_BAD_PAD_NODE = -4,
+};
+
+void ubifs_dump_node(const void *node);
+
+/**
+ * ubifs_scan_a_node - scan for a node or padding.
+ * @buf: buffer to scan
+ * @size: logical eraseblock size
+ * @len: length of buffer
+ * @lnum: logical eraseblock number
+ * @offs: offset within the logical eraseblock
+ *
+ * This function returns a scanning code to indicate what was scanned.
+ */
+int ubifs_scan_a_node(void *buf, int leb_size, int len, int lnum, int offs);
+
+/**
+ * ubifs_scan - scan a logical eraseblock.
+ * @lnum: logical eraseblock number
+ * @sbuf: scan buffer
+ * @size: size of @buf in bytes
+ * @offs: offset to start at (usually zero)
+ * @detailed: print NODEs detailed info
+ *
+ * This function scans LEB and prints complete information about
+ * its contents.
+ */
+void ubifs_scan(int lnum, void *buf, int leb_size, int offs, int detailed);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*!__LIBUBIFS_H__ */
-- 
1.8.1.4

  parent reply	other threads:[~2014-07-07  7:23 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-07  7:15 [PATCH RFC] ubi-utils: Add a new utility ubidump hujianyang
2014-07-07  7:17 ` [PATCH 1/7] UBI: Add a new ioctl to support ubidump hujianyang
2014-07-16  7:59   ` Artem Bityutskiy
2014-07-16  8:47     ` hujianyang
2014-07-16 10:30       ` Artem Bityutskiy
2014-07-07  7:19 ` [PATCH 2/7] Add new ioctl in userspace hujianyang
2014-07-07  7:20 ` [PATCH 3/7] Add ubifs-media.h hujianyang
2014-07-07  7:22 ` hujianyang [this message]
2014-07-07  7:24 ` [PATCH 5/7] Add libubifs.c hujianyang
2014-07-07  7:26 ` [PATCH 6/7] New utility ubidump hujianyang
2014-07-16  8:05   ` Artem Bityutskiy
2014-07-16  8:53     ` hujianyang
2014-07-16 10:37       ` Artem Bityutskiy
2014-07-16 11:27         ` hujianyang
2014-07-16 11:37           ` Artem Bityutskiy
2014-07-16 11:43           ` Artem Bityutskiy
2014-07-16 11:57             ` hujianyang
2014-07-21 16:20           ` Bill Pringlemeir
2014-07-22  8:15             ` hujianyang
2014-07-22 15:42               ` Bill Pringlemeir
2014-07-29  9:14               ` Artem Bityutskiy
2014-07-29 10:01                 ` hujianyang
2014-07-07  7:27 ` [PATCH 7/7] Compile support 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=53BA4AA0.7040905@huawei.com \
    --to=hujianyang@huawei.com \
    --cc=dedekind1@gmail.com \
    --cc=linux-mtd@lists.infradead.org \
    /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.