Commit 90806fec authored by Thomas Huth's avatar Thomas Huth Committed by Christian Borntraeger
Browse files

pc-bios/s390-ccw: Move libc functions to separate header



The upcoming netboot code will use the libc from SLOF. To be able
to still use s390-ccw.h there, the libc related functions in this
header have to be moved to a different location.
And while we're at it, remove the duplicate memcpy() function from
sclp.c.

Reviewed-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
Message-Id: <1499863793-18627-2-git-send-email-thuth@redhat.com>
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
parent b5f5a3af
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
 * directory.
 */

#include "libc.h"
#include "s390-ccw.h"
#include "bootmap.h"
#include "virtio.h"
+45 −0
Original line number Diff line number Diff line
/*
 * libc-style definitions and functions
 *
 * This code 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.
 */

#ifndef S390_CCW_LIBC_H
#define S390_CCW_LIBC_H

typedef long               size_t;
typedef int                bool;
typedef unsigned char      uint8_t;
typedef unsigned short     uint16_t;
typedef unsigned int       uint32_t;
typedef unsigned long long uint64_t;

static inline void *memset(void *s, int c, size_t n)
{
    int i;
    unsigned char *p = s;

    for (i = 0; i < n; i++) {
        p[i] = c;
    }

    return s;
}

static inline void *memcpy(void *s1, const void *s2, size_t n)
{
    uint8_t *dest = s1;
    const uint8_t *src = s2;
    int i;

    for (i = 0; i < n; i++) {
        dest[i] = src[i];
    }

    return s1;
}

#endif
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
 * directory.
 */

#include "libc.h"
#include "s390-ccw.h"
#include "virtio.h"

+0 −29
Original line number Diff line number Diff line
@@ -18,12 +18,6 @@ typedef unsigned short u16;
typedef unsigned int       u32;
typedef unsigned long long u64;
typedef unsigned long      ulong;
typedef long               size_t;
typedef int                bool;
typedef unsigned char      uint8_t;
typedef unsigned short     uint16_t;
typedef unsigned int       uint32_t;
typedef unsigned long long uint64_t;
typedef unsigned char      __u8;
typedef unsigned short     __u16;
typedef unsigned int       __u32;
@@ -88,18 +82,6 @@ ulong get_second(void);
/* bootmap.c */
void zipl_load(void);

static inline void *memset(void *s, int c, size_t n)
{
    int i;
    unsigned char *p = s;

    for (i = 0; i < n; i++) {
        p[i] = c;
    }

    return s;
}

static inline void fill_hex(char *out, unsigned char val)
{
    const char hex[] = "0123456789abcdef";
@@ -169,17 +151,6 @@ static inline void sleep(unsigned int seconds)
    }
}

static inline void *memcpy(void *s1, const void *s2, size_t n)
{
    uint8_t *p1 = s1;
    const uint8_t *p2 = s2;

    while (n--) {
        p1[n] = p2[n];
    }
    return s1;
}

static inline void IPL_assert(bool term, const char *message)
{
    if (!term) {
+2 −8
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
 * directory.
 */

#include "libc.h"
#include "s390-ccw.h"
#include "sclp.h"

@@ -59,13 +60,6 @@ static int _strlen(const char *str)
    return i;
}

static void _memcpy(char *dest, const char *src, int len)
{
    int i;
    for (i = 0; i < len; i++)
        dest[i] = src[i];
}

void sclp_print(const char *str)
{
    int len = _strlen(str);
@@ -76,7 +70,7 @@ void sclp_print(const char *str)
    sccb->ebh.length = sizeof(EventBufferHeader) + len;
    sccb->ebh.type = SCLP_EVENT_ASCII_CONSOLE_DATA;
    sccb->ebh.flags = 0;
    _memcpy(sccb->data, str, len);
    memcpy(sccb->data, str, len);

    sclp_service_call(SCLP_CMD_WRITE_EVENT_DATA, sccb);
}
Loading