| /* |
| * 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 */ |