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: Christian Borntraeger <borntraeger@de.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <1499863793-18627-2-git-send-email-thuth@redhat.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
b5f5a3afb6
commit
90806fec99
@ -8,6 +8,7 @@
|
|||||||
* directory.
|
* directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "libc.h"
|
||||||
#include "s390-ccw.h"
|
#include "s390-ccw.h"
|
||||||
#include "bootmap.h"
|
#include "bootmap.h"
|
||||||
#include "virtio.h"
|
#include "virtio.h"
|
||||||
|
45
pc-bios/s390-ccw/libc.h
Normal file
45
pc-bios/s390-ccw/libc.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* 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
|
@ -8,6 +8,7 @@
|
|||||||
* directory.
|
* directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "libc.h"
|
||||||
#include "s390-ccw.h"
|
#include "s390-ccw.h"
|
||||||
#include "virtio.h"
|
#include "virtio.h"
|
||||||
|
|
||||||
|
@ -18,12 +18,6 @@ typedef unsigned short u16;
|
|||||||
typedef unsigned int u32;
|
typedef unsigned int u32;
|
||||||
typedef unsigned long long u64;
|
typedef unsigned long long u64;
|
||||||
typedef unsigned long ulong;
|
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 char __u8;
|
||||||
typedef unsigned short __u16;
|
typedef unsigned short __u16;
|
||||||
typedef unsigned int __u32;
|
typedef unsigned int __u32;
|
||||||
@ -88,18 +82,6 @@ ulong get_second(void);
|
|||||||
/* bootmap.c */
|
/* bootmap.c */
|
||||||
void zipl_load(void);
|
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)
|
static inline void fill_hex(char *out, unsigned char val)
|
||||||
{
|
{
|
||||||
const char hex[] = "0123456789abcdef";
|
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)
|
static inline void IPL_assert(bool term, const char *message)
|
||||||
{
|
{
|
||||||
if (!term) {
|
if (!term) {
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
* directory.
|
* directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "libc.h"
|
||||||
#include "s390-ccw.h"
|
#include "s390-ccw.h"
|
||||||
#include "sclp.h"
|
#include "sclp.h"
|
||||||
|
|
||||||
@ -59,13 +60,6 @@ static int _strlen(const char *str)
|
|||||||
return i;
|
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)
|
void sclp_print(const char *str)
|
||||||
{
|
{
|
||||||
int len = _strlen(str);
|
int len = _strlen(str);
|
||||||
@ -76,7 +70,7 @@ void sclp_print(const char *str)
|
|||||||
sccb->ebh.length = sizeof(EventBufferHeader) + len;
|
sccb->ebh.length = sizeof(EventBufferHeader) + len;
|
||||||
sccb->ebh.type = SCLP_EVENT_ASCII_CONSOLE_DATA;
|
sccb->ebh.type = SCLP_EVENT_ASCII_CONSOLE_DATA;
|
||||||
sccb->ebh.flags = 0;
|
sccb->ebh.flags = 0;
|
||||||
_memcpy(sccb->data, str, len);
|
memcpy(sccb->data, str, len);
|
||||||
|
|
||||||
sclp_service_call(SCLP_CMD_WRITE_EVENT_DATA, sccb);
|
sclp_service_call(SCLP_CMD_WRITE_EVENT_DATA, sccb);
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
* directory.
|
* directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "libc.h"
|
||||||
#include "s390-ccw.h"
|
#include "s390-ccw.h"
|
||||||
#include "virtio.h"
|
#include "virtio.h"
|
||||||
#include "scsi.h"
|
#include "scsi.h"
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
* directory.
|
* directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "libc.h"
|
||||||
#include "s390-ccw.h"
|
#include "s390-ccw.h"
|
||||||
#include "virtio.h"
|
#include "virtio.h"
|
||||||
#include "virtio-scsi.h"
|
#include "virtio-scsi.h"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user