[Skiboot] [PATCH 2/3] Move opal-api.h to opal-internal.h

Michael Ellerman mpe at ellerman.id.au
Tue Mar 31 20:28:56 AEDT 2015


Move the content of opal-api.h, which is currently "Internal header for
OPAL API related things" to opal-internal.h.

Recreate opal-api.h as an empty header, until the next commit, so as not
to break all the includers of it.

Include opal-internal.h from opal.h, so everyone gets it.

Finally we need to adjust include guard names, and add some assembly
ones to opal-internal.h.

Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
---
 include/opal-api.h      | 84 ----------------------------------------------
 include/opal-internal.h | 89 +++++++++++++++++++++++++++++++++++++++++++++++++
 include/opal.h          |  2 ++
 3 files changed, 91 insertions(+), 84 deletions(-)
 create mode 100644 include/opal-internal.h

diff --git a/include/opal-api.h b/include/opal-api.h
index 4e05d59eb8a7..e69de29bb2d1 100644
--- a/include/opal-api.h
+++ b/include/opal-api.h
@@ -1,84 +0,0 @@
-/* Copyright 2013-2014 IBM Corp.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * 	http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __OPAL_API_H
-#define __OPAL_API_H
-
-/****** Internal header for OPAL API related things in skiboot **********/
-#include <skiboot.h>
-
-/* An opal table entry */
-struct opal_table_entry {
-	void	*func;
-	__be32	token;
-	__be32	nargs;
-};
-
-#define opal_call(__tok, __func, __nargs)				\
-static struct opal_table_entry __e_##__func __used __section(".opal_table") = \
-{ .func = __func, .token = __tok,					\
-  .nargs = __nargs + 0 * sizeof(__func( __test_args##__nargs )) }
-
-/* Make sure function takes args they claim.  Look away now... */
-#define __test_args0
-#define __test_args1 0
-#define __test_args2 0,0
-#define __test_args3 0,0,0
-#define __test_args4 0,0,0,0
-#define __test_args5 0,0,0,0,0
-#define __test_args6 0,0,0,0,0,0
-#define __test_args7 0,0,0,0,0,0,0
-
-extern struct opal_table_entry __opal_table_start[];
-extern struct opal_table_entry __opal_table_end[];
-
-extern __be64 opal_pending_events;
-
-extern struct dt_node *opal_node;
-
-extern void opal_table_init(void);
-extern void opal_update_pending_evt(__be64 evt_mask, __be64 evt_values);
-__be64 opal_dynamic_event_alloc(void);
-void opal_dynamic_event_free(__be64 event);
-extern void add_opal_node(void);
-
-#define opal_register(token, func, nargs)				\
-	__opal_register((token) + 0*sizeof(func(__test_args##nargs)),	\
-			(func), (nargs))
-extern void __opal_register(__be64 token, void *func, unsigned num_args);
-
-/* Warning: no locking at the moment, do at init time only
- *
- * XXX TODO: Add the big RCU-ish "opal API lock" to protect us here
- * which will also be used for other things such as runtime updates
- */
-extern void opal_add_poller(void (*poller)(void *data), void *data);
-extern void opal_del_poller(void (*poller)(void *data));
-extern void opal_run_pollers(void);
-
-/*
- * Warning: no locking, only call that from the init processor
- */
-extern void opal_add_host_sync_notifier(bool (*notify)(void *data), void *data);
-extern void opal_del_host_sync_notifier(bool (*notify)(void *data));
-
-/*
- * Opal internal function prototype
- */
-struct OpalHMIEvent;
-extern int handle_hmi_exception(__be64 hmer, struct OpalHMIEvent *hmi_evt);
-
-#endif /* __OPAL_API_H */
diff --git a/include/opal-internal.h b/include/opal-internal.h
new file mode 100644
index 000000000000..cd65e5bc8957
--- /dev/null
+++ b/include/opal-internal.h
@@ -0,0 +1,89 @@
+/* Copyright 2013-2014 IBM Corp.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * 	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __OPAL_INTERNAL_H
+#define __OPAL_INTERNAL_H
+
+/****** Internal header for OPAL API related things in skiboot **********/
+
+#ifndef __ASSEMBLY__
+
+#include <skiboot.h>
+
+/* An opal table entry */
+struct opal_table_entry {
+	void	*func;
+	__be32	token;
+	__be32	nargs;
+};
+
+#define opal_call(__tok, __func, __nargs)				\
+static struct opal_table_entry __e_##__func __used __section(".opal_table") = \
+{ .func = __func, .token = __tok,					\
+  .nargs = __nargs + 0 * sizeof(__func( __test_args##__nargs )) }
+
+/* Make sure function takes args they claim.  Look away now... */
+#define __test_args0
+#define __test_args1 0
+#define __test_args2 0,0
+#define __test_args3 0,0,0
+#define __test_args4 0,0,0,0
+#define __test_args5 0,0,0,0,0
+#define __test_args6 0,0,0,0,0,0
+#define __test_args7 0,0,0,0,0,0,0
+
+extern struct opal_table_entry __opal_table_start[];
+extern struct opal_table_entry __opal_table_end[];
+
+extern __be64 opal_pending_events;
+
+extern struct dt_node *opal_node;
+
+extern void opal_table_init(void);
+extern void opal_update_pending_evt(__be64 evt_mask, __be64 evt_values);
+__be64 opal_dynamic_event_alloc(void);
+void opal_dynamic_event_free(__be64 event);
+extern void add_opal_node(void);
+
+#define opal_register(token, func, nargs)				\
+	__opal_register((token) + 0*sizeof(func(__test_args##nargs)),	\
+			(func), (nargs))
+extern void __opal_register(__be64 token, void *func, unsigned num_args);
+
+/* Warning: no locking at the moment, do at init time only
+ *
+ * XXX TODO: Add the big RCU-ish "opal API lock" to protect us here
+ * which will also be used for other things such as runtime updates
+ */
+extern void opal_add_poller(void (*poller)(void *data), void *data);
+extern void opal_del_poller(void (*poller)(void *data));
+extern void opal_run_pollers(void);
+
+/*
+ * Warning: no locking, only call that from the init processor
+ */
+extern void opal_add_host_sync_notifier(bool (*notify)(void *data), void *data);
+extern void opal_del_host_sync_notifier(bool (*notify)(void *data));
+
+/*
+ * Opal internal function prototype
+ */
+struct OpalHMIEvent;
+extern int handle_hmi_exception(__be64 hmer, struct OpalHMIEvent *hmi_evt);
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __OPAL_INTERNAL_H */
diff --git a/include/opal.h b/include/opal.h
index 622e1d5d0c33..fe37c1f0df2b 100644
--- a/include/opal.h
+++ b/include/opal.h
@@ -17,6 +17,8 @@
 #ifndef __OPAL_H
 #define __OPAL_H
 
+#include <opal-internal.h>
+
 #ifdef __SKIBOOT__
 #ifndef __ASSEMBLY__
 #include <types.h>
-- 
2.1.0



More information about the Skiboot mailing list