[PATCH 1/3] misc: add bootcount framework

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Fri Sep 20 00:46:15 EDT 2013


Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 drivers/misc/Kconfig     |  3 +++
 drivers/misc/Makefile    |  1 +
 drivers/misc/bootcount.c | 24 ++++++++++++++++++++++++
 include/bootcount.h      | 21 +++++++++++++++++++++
 4 files changed, 49 insertions(+)
 create mode 100644 drivers/misc/bootcount.c
 create mode 100644 include/bootcount.h

diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 606490b..a972ba4 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -15,4 +15,7 @@ config JTAG
 	help
 	  Controls JTAG chains connected to I/O pins
 
+config BOOTCOUNT
+	bool
+
 endif # MISC_DEVICES
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index b085577..fa668c1 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -3,3 +3,4 @@
 #
 
 obj-$(CONFIG_JTAG)		+= jtag.o
+obj-$(CONFIG_BOOTCOUNT)		+= bootcount.o
diff --git a/drivers/misc/bootcount.c b/drivers/misc/bootcount.c
new file mode 100644
index 0000000..0205d00
--- /dev/null
+++ b/drivers/misc/bootcount.c
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
+ *
+ * GPLv2 Only
+ */
+
+#include <common.h>
+#include <init.h>
+#include <bootcount.h>
+
+static struct bootcount_driver *bd;
+
+void bootcount_register(struct bootcount_driver *drv)
+{
+	bd = drv;
+}
+
+static int bootcount_inc(void)
+{
+	if (bd)
+		bd->inc(bd);
+	return 0;
+}
+late_initcall(bootcount_inc);
diff --git a/include/bootcount.h b/include/bootcount.h
new file mode 100644
index 0000000..16e61c5
--- /dev/null
+++ b/include/bootcount.h
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
+ *
+ * GPLv2 Only
+ */
+
+#ifndef __BOOTCOUNT_H__
+#define __BOOTCOUNT_H__
+
+struct bootcount_driver {
+	void (*inc)(struct bootcount_driver *d);
+	void *priv;
+};
+
+#ifdef CONFIG_BOOTCOUNT
+void bootcount_register(struct bootcount_driver *d);
+#else
+static inline void bootcount_register(struct bootcount_driver *d) {}
+#endif
+
+#endif /* __BOOTCOUNT_H__ */
-- 
1.8.4.rc1




More information about the barebox mailing list