1/*
2 * Copyright (c) 2019 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 215 unchanged lines hidden (view full) ---

224 }
225 }
226
227 inline bool nsAccessToSecInt(uint32_t int_id, bool is_secure_access) const
228 {
229 return !DS && !is_secure_access && getIntGroup(int_id) != Gicv3::G1NS;
230 }
231
232 void reset();
232 void serialize(CheckpointOut & cp) const override;
233 void unserialize(CheckpointIn & cp) override;
234 void update();
235 Gicv3CPUInterface* route(uint32_t int_id);
236
237 public:
238
239 Gicv3Distributor(Gicv3 * gic, uint32_t it_lines);
240
241 void deassertSPI(uint32_t int_id);
242 void clearIrqCpuInterface(uint32_t int_id);
243 void init();
245 void initState();
244 uint64_t read(Addr addr, size_t size, bool is_secure_access);
245 void sendInt(uint32_t int_id);
246 void write(Addr addr, uint64_t data, size_t size,
247 bool is_secure_access);
248};
249
250#endif //__DEV_ARM_GICV3_DISTRIBUTOR_H__