/*
 * SPDX-License-Identifier: GPL-2.0-or-later
 * Copyright (C) 2024 IBM Corp.
 *
 * IBM Flexible Service Interface
 */
#ifndef FSI_FSI_H
#define FSI_FSI_H

#include "exec/memory.h"
#include "hw/qdev-core.h"
#include "hw/fsi/lbus.h"
#include "qemu/bitops.h"

/* Bitwise operations at the word level. */
#define BE_GENMASK(hb, lb)  MAKE_64BIT_MASK((lb), ((hb) - (lb) + 1))

#define TYPE_FSI_BUS "fsi.bus"
OBJECT_DECLARE_SIMPLE_TYPE(FSIBus, FSI_BUS)

typedef struct FSIBus {
    BusState bus;
} FSIBus;

#define TYPE_FSI_SLAVE "fsi.slave"
OBJECT_DECLARE_SIMPLE_TYPE(FSISlaveState, FSI_SLAVE)

#define FSI_SLAVE_CONTROL_NR_REGS ((0x40 >> 2) + 1)

typedef struct FSISlaveState {
    DeviceState parent;

    MemoryRegion iomem;
    uint32_t regs[FSI_SLAVE_CONTROL_NR_REGS];
} FSISlaveState;

#endif /* FSI_FSI_H */
