Reduce deep nesting of header files

Reduce the number of header files included from other header
files as much as possible without splitting the files. Use forward
declarations where possible. This allows removal of some unnecessary
"#ifndef __ASSEMBLY__" statements.

Also, review the .c and .S files for which header files really need
including and reorder the #include statements alphabetically.

Fixes ARM-software/tf-issues#31

Change-Id: Iec92fb976334c77453e010b60bcf56f3be72bd3e
diff --git a/services/spd/tspd/tspd_common.c b/services/spd/tspd/tspd_common.c
index 181f2c8..13023d2 100644
--- a/services/spd/tspd/tspd_common.c
+++ b/services/spd/tspd/tspd_common.c
@@ -28,15 +28,12 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <assert.h>
 #include <arch_helpers.h>
-#include <platform.h>
+#include <assert.h>
 #include <bl_common.h>
-#include <runtime_svc.h>
 #include <context_mgmt.h>
+#include <platform.h>
+#include <string.h>
 #include "tspd_private.h"
 
 /*******************************************************************************
diff --git a/services/spd/tspd/tspd_helpers.S b/services/spd/tspd/tspd_helpers.S
index f9a32aa..dd3b07b 100644
--- a/services/spd/tspd/tspd_helpers.S
+++ b/services/spd/tspd/tspd_helpers.S
@@ -28,9 +28,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <context.h>
 #include <asm_macros.S>
-#include <cm_macros.S>
 #include "tspd_private.h"
 
 	.global	tspd_enter_sp
diff --git a/services/spd/tspd/tspd_main.c b/services/spd/tspd/tspd_main.c
index c8fc9f1..9fda307 100644
--- a/services/spd/tspd/tspd_main.c
+++ b/services/spd/tspd/tspd_main.c
@@ -38,18 +38,14 @@
  * handle the request locally or delegate it to the Secure Payload. It is also
  * responsible for initialising and maintaining communication with the SP.
  ******************************************************************************/
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
 #include <arch_helpers.h>
-#include <console.h>
-#include <platform.h>
+#include <assert.h>
+#include <bl_common.h>
+#include <bl31.h>
 #include <context_mgmt.h>
 #include <runtime_svc.h>
-#include <bl31.h>
+#include <stddef.h>
 #include <tsp.h>
-#include <psci.h>
-#include <debug.h>
 #include <uuid.h>
 #include "tspd_private.h"
 
diff --git a/services/spd/tspd/tspd_pm.c b/services/spd/tspd/tspd_pm.c
index cc01a72..2447d9e 100644
--- a/services/spd/tspd/tspd_pm.c
+++ b/services/spd/tspd/tspd_pm.c
@@ -28,18 +28,12 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
 #include <arch_helpers.h>
-#include <console.h>
-#include <platform.h>
+#include <assert.h>
+#include <bl_common.h>
 #include <context_mgmt.h>
-#include <runtime_svc.h>
-#include <bl31.h>
-#include <bl32.h>
-#include <psci.h>
 #include <debug.h>
+#include <tsp.h>
 #include "tspd_private.h"
 
 /*******************************************************************************
diff --git a/services/spd/tspd/tspd_private.h b/services/spd/tspd/tspd_private.h
index 8b76876..81484e1 100644
--- a/services/spd/tspd/tspd_private.h
+++ b/services/spd/tspd/tspd_private.h
@@ -28,14 +28,13 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef __SPD_PRIVATE_H__
-#define __SPD_PRIVATE_H__
+#ifndef __TSPD_PRIVATE_H__
+#define __TSPD_PRIVATE_H__
 
-#include <context.h>
 #include <arch.h>
+#include <context.h>
+#include <platform.h>
 #include <psci.h>
-#include <tsp.h>
-#include <cassert.h>
 
 /*******************************************************************************
  * Secure Payload PM state information e.g. SP is suspended, uninitialised etc
@@ -91,6 +90,9 @@
 
 #ifndef __ASSEMBLY__
 
+#include <cassert.h>
+#include <stdint.h>
+
 /* AArch64 callee saved general purpose register context structure. */
 DEFINE_REG_STRUCT(c_rt_regs, TSPD_C_RT_CTX_ENTRIES);
 
@@ -121,6 +123,11 @@
 extern const spd_pm_ops_t tspd_pm;
 
 /*******************************************************************************
+ * Forward declarations
+ ******************************************************************************/
+struct entry_info;
+
+/*******************************************************************************
  * Function & Data prototypes
  ******************************************************************************/
 extern uint64_t tspd_enter_sp(uint64_t *c_rt_ctx);
@@ -132,7 +139,7 @@
 					uint64_t mpidr,
 					tsp_context_t *tsp_ctx);
 extern tsp_context_t tspd_sp_context[TSPD_CORE_COUNT];
-extern entry_info_t *tsp_entry_info;
+extern struct entry_info *tsp_entry_info;
 #endif /*__ASSEMBLY__*/
 
-#endif /* __SPD_PRIVATE_H__ */
+#endif /* __TSPD_PRIVATE_H__ */
diff --git a/services/std_svc/psci/psci_afflvl_off.c b/services/std_svc/psci/psci_afflvl_off.c
index b395912..e007bc3 100644
--- a/services/std_svc/psci/psci_afflvl_off.c
+++ b/services/std_svc/psci/psci_afflvl_off.c
@@ -28,14 +28,10 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-#include <debug.h>
+#include <arch.h>
 #include <arch_helpers.h>
-#include <console.h>
-#include <platform.h>
-#include <psci.h>
+#include <assert.h>
+#include <string.h>
 #include "psci_private.h"
 
 typedef int (*afflvl_off_handler_t)(unsigned long, aff_map_node_t *);
diff --git a/services/std_svc/psci/psci_afflvl_on.c b/services/std_svc/psci/psci_afflvl_on.c
index a1c12a8..8f9bb4d 100644
--- a/services/std_svc/psci/psci_afflvl_on.c
+++ b/services/std_svc/psci/psci_afflvl_on.c
@@ -28,18 +28,14 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
+#include <arch.h>
+#include <arch_helpers.h>
 #include <assert.h>
+#include <bl_common.h>
 #include <bl31.h>
-#include <debug.h>
-#include <arch_helpers.h>
-#include <console.h>
-#include <platform.h>
-#include <psci.h>
 #include <context_mgmt.h>
 #include <runtime_svc.h>
+#include <stddef.h>
 #include "psci_private.h"
 
 typedef int (*afflvl_on_handler_t)(unsigned long,
diff --git a/services/std_svc/psci/psci_afflvl_suspend.c b/services/std_svc/psci/psci_afflvl_suspend.c
index a8d0989..dc12f7a 100644
--- a/services/std_svc/psci/psci_afflvl_suspend.c
+++ b/services/std_svc/psci/psci_afflvl_suspend.c
@@ -28,16 +28,14 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdio.h>
-#include <string.h>
 #include <assert.h>
-#include <debug.h>
+#include <bl_common.h>
+#include <arch.h>
 #include <arch_helpers.h>
-#include <console.h>
-#include <platform.h>
-#include <psci.h>
+#include <context.h>
 #include <context_mgmt.h>
 #include <runtime_svc.h>
+#include <stddef.h>
 #include "psci_private.h"
 
 typedef int (*afflvl_suspend_handler_t)(unsigned long,
diff --git a/services/std_svc/psci/psci_common.c b/services/std_svc/psci/psci_common.c
index 1ce28dc..1d5c362 100644
--- a/services/std_svc/psci/psci_common.c
+++ b/services/std_svc/psci/psci_common.c
@@ -28,15 +28,12 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
+#include <arch.h>
 #include <arch_helpers.h>
-#include <console.h>
-#include <platform.h>
-#include <psci.h>
+#include <assert.h>
+#include <bl_common.h>
+#include <context.h>
 #include <context_mgmt.h>
-#include <runtime_svc.h>
 #include <debug.h>
 #include "psci_private.h"
 
diff --git a/services/std_svc/psci/psci_entry.S b/services/std_svc/psci/psci_entry.S
index 51d9b57..e2c690d 100644
--- a/services/std_svc/psci/psci_entry.S
+++ b/services/std_svc/psci/psci_entry.S
@@ -29,11 +29,9 @@
  */
 
 #include <arch.h>
-#include <platform.h>
-#include <runtime_svc.h>
 #include <asm_macros.S>
 #include <cm_macros.S>
-#include "psci_private.h"
+#include <psci.h>
 
 	.globl	psci_aff_on_finish_entry
 	.globl	psci_aff_suspend_finish_entry
diff --git a/services/std_svc/psci/psci_main.c b/services/std_svc/psci/psci_main.c
index fd20ad5..1bcf216 100644
--- a/services/std_svc/psci/psci_main.c
+++ b/services/std_svc/psci/psci_main.c
@@ -28,15 +28,11 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
+#include <arch.h>
 #include <arch_helpers.h>
-#include <console.h>
-#include <platform.h>
+#include <assert.h>
 #include <runtime_svc.h>
 #include <debug.h>
-#include <context_mgmt.h>
 #include "psci_private.h"
 
 /*******************************************************************************
diff --git a/services/std_svc/psci/psci_private.h b/services/std_svc/psci/psci_private.h
index e34ccfc..b0b5cc9 100644
--- a/services/std_svc/psci/psci_private.h
+++ b/services/std_svc/psci/psci_private.h
@@ -33,8 +33,8 @@
 
 #include <arch.h>
 #include <bakery_lock.h>
+#include <psci.h>
 
-#ifndef __ASSEMBLY__
 /*******************************************************************************
  * The following two data structures hold the generic information to bringup
  * a suspended/hotplugged out cpu
@@ -156,6 +156,5 @@
 			       int);
 extern unsigned int psci_afflvl_suspend_finish(unsigned long, int, int);
 
-#endif /*__ASSEMBLY__*/
 
 #endif /* __PSCI_PRIVATE_H__ */
diff --git a/services/std_svc/psci/psci_setup.c b/services/std_svc/psci/psci_setup.c
index 960c4b8..71d3f1e 100644
--- a/services/std_svc/psci/psci_setup.c
+++ b/services/std_svc/psci/psci_setup.c
@@ -28,14 +28,14 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
+#include <arch.h>
 #include <arch_helpers.h>
-#include <console.h>
-#include <platform.h>
+#include <assert.h>
+#include <bl_common.h>
+#include <context.h>
 #include <context_mgmt.h>
-#include <runtime_svc.h>
+#include <platform.h>
+#include <stddef.h>
 #include "psci_private.h"
 
 /*******************************************************************************
diff --git a/services/std_svc/std_svc_setup.c b/services/std_svc/std_svc_setup.c
index 40d7096..6cb0319 100644
--- a/services/std_svc/std_svc_setup.c
+++ b/services/std_svc/std_svc_setup.c
@@ -28,13 +28,12 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <stdint.h>
-#include <uuid.h>
-#include <context_mgmt.h>
+#include <debug.h>
+#include <psci.h>
 #include <runtime_svc.h>
 #include <std_svc.h>
-#include <psci.h>
-#include <debug.h>
+#include <stdint.h>
+#include <uuid.h>
 
 /* Standard Service UUID */
 DEFINE_SVC_UUID(arm_svc_uid,