@@ -13,26 +13,6 @@
#include <asm/page.h>
#include "sclp.h"
-char _sccb[PAGE_SIZE] __attribute__((__aligned__(4096)));
-
-/* Perform service call. Return 0 on success, non-zero otherwise. */
-int sclp_service_call(unsigned int command, void *sccb)
-{
- int cc;
-
- asm volatile(
- " .insn rre,0xb2200000,%1,%2\n" /* servc %1,%2 */
- " ipm %0\n"
- " srl %0,28"
- : "=&d" (cc) : "d" (command), "a" (__pa(sccb))
- : "cc", "memory");
- if (cc == 3)
- return -1;
- if (cc == 2)
- return -1;
- return 0;
-}
-
static void sclp_set_write_mask(void)
{
WriteEventMask *sccb = (void *)_sccb;
@@ -23,6 +23,8 @@ static uint64_t storage_increment_size;
static uint64_t max_ram_size;
static uint64_t ram_size;
+char _sccb[PAGE_SIZE] __attribute__((__aligned__(4096)));
+
static void mem_init(phys_addr_t mem_end)
{
phys_addr_t freemem_start = (phys_addr_t)&stacktop;
@@ -50,6 +52,24 @@ static void sclp_read_scp_info(ReadInfo *ri, int length)
report_abort("READ_SCP_INFO failed");
}
+/* Perform service call. Return 0 on success, non-zero otherwise. */
+int sclp_service_call(unsigned int command, void *sccb)
+{
+ int cc;
+
+ asm volatile(
+ " .insn rre,0xb2200000,%1,%2\n" /* servc %1,%2 */
+ " ipm %0\n"
+ " srl %0,28"
+ : "=&d" (cc) : "d" (command), "a" (__pa(sccb))
+ : "cc", "memory");
+ if (cc == 3)
+ return -1;
+ if (cc == 2)
+ return -1;
+ return 0;
+}
+
void sclp_memory_setup(void)
{
ReadInfo *ri = (void *)_sccb;
@@ -212,9 +212,9 @@ typedef struct ReadEventData {
uint32_t mask;
} __attribute__((packed)) ReadEventData;
+extern char _sccb[];
void sclp_console_setup(void);
void sclp_print(const char *str);
-extern char _sccb[];
int sclp_service_call(unsigned int command, void *sccb);
void sclp_memory_setup(void);