Commit 4037c39b authored by Richard Henderson's avatar Richard Henderson Committed by Cornelia Huck
Browse files

target/s390x: Split out s390-tod.h



We will need these from CONFIG_USER_ONLY as well,
which cannot access include/hw/.

Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Message-Id: <20190212053044.29015-2-richard.henderson@linaro.org>
Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
parent 09ced81a
Loading
Loading
Loading
Loading
+1 −15
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
#define HW_S390_TOD_H

#include "hw/qdev.h"
#include "s390-tod.h"

typedef struct S390TOD {
    uint8_t high;
@@ -50,21 +51,6 @@ typedef struct S390TODClass {
    void (*set)(S390TODState *td, const S390TOD *tod, Error **errp);
} S390TODClass;

/* The value of the TOD clock for 1.1.1970. */
#define TOD_UNIX_EPOCH 0x7d91048bca000000ULL

/* Converts ns to s390's clock format */
static inline uint64_t time2tod(uint64_t ns)
{
    return (ns << 9) / 125 + (((ns & 0xff80000000000000ull) / 125) << 9);
}

/* Converts s390's clock format to ns */
static inline uint64_t tod2time(uint64_t t)
{
    return ((t >> 9) * 125) + (((t & 0x1ff) * 125) >> 9);
}

void s390_init_tod(void);
S390TODState *s390_get_todstate(void);

+29 −0
Original line number Diff line number Diff line
/*
 * TOD (Time Of Day) clock
 *
 * Copyright 2018 Red Hat, Inc.
 * Author(s): David Hildenbrand <david@redhat.com>
 *
 * This work is licensed under the terms of the GNU GPL, version 2 or later.
 * See the COPYING file in the top-level directory.
 */

#ifndef TARGET_S390_TOD_H
#define TARGET_S390_TOD_H

/* The value of the TOD clock for 1.1.1970. */
#define TOD_UNIX_EPOCH 0x7d91048bca000000ULL

/* Converts ns to s390's clock format */
static inline uint64_t time2tod(uint64_t ns)
{
    return (ns << 9) / 125 + (((ns & 0xff80000000000000ull) / 125) << 9);
}

/* Converts s390's clock format to ns */
static inline uint64_t tod2time(uint64_t t)
{
    return ((t >> 9) * 125) + (((t & 0x1ff) * 125) >> 9);
}

#endif