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
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated
11 * unmodified and in its entirety in all distributions of the software,
12 * modified or unmodified, in source code or in binary form.
13 *
14 * Copyright (c) 2018 Metempsy Technology Consulting
15 * All rights reserved.
16 *
17 * Redistribution and use in source and binary forms, with or without
18 * modification, are permitted provided that the following conditions are
19 * met: redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer;
21 * redistributions in binary form must reproduce the above copyright

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

212 }
213
214 Gicv3::GroupId getIntGroup(int int_id) const;
215 Gicv3::IntStatus intStatus(uint32_t int_id) const;
216 uint8_t readEntryLPI(uint32_t intid);
217 void writeEntryLPI(uint32_t intid, uint8_t lpi_entry);
218 bool isPendingLPI(uint32_t intid);
219 void setClrLPI(uint64_t data, bool set);
208 void reset();
220 void sendSGI(uint32_t int_id, Gicv3::GroupId group, bool ns);
221 void serialize(CheckpointOut & cp) const override;
222 void unserialize(CheckpointIn & cp) override;
223 void update();
224 void updateDistributor();
225
226 public:
227
228 Gicv3Redistributor(Gicv3 * gic, uint32_t cpu_id);
229 uint32_t getAffinity() const;
230 void init();
220 void initState();
231 uint64_t read(Addr addr, size_t size, bool is_secure_access);
232 void sendPPInt(uint32_t int_id);
233 void write(Addr addr, uint64_t data, size_t size, bool is_secure_access);
234};
235
236#endif //__DEV_ARM_GICV3_REDISTRIBUTOR_H__