treewide: Codify memory pinning

This enforces movability constraints.

Change-Id: I49dbd43a791c1d70eb7e97f30708231c053901d9
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/neighbor.cpp b/src/neighbor.cpp
index 6b8d853..959f524 100644
--- a/src/neighbor.cpp
+++ b/src/neighbor.cpp
@@ -21,16 +21,16 @@
 }
 
 Neighbor::Neighbor(sdbusplus::bus_t& bus, std::string_view objRoot,
-                   EthernetInterface& parent, InAddrAny addr, ether_addr lladdr,
-                   State state) :
+                   stdplus::PinnedRef<EthernetInterface> parent, InAddrAny addr,
+                   ether_addr lladdr, State state) :
     Neighbor(bus, makeObjPath(objRoot, addr), parent, addr, lladdr, state)
 {
 }
 
 Neighbor::Neighbor(sdbusplus::bus_t& bus,
                    sdbusplus::message::object_path objPath,
-                   EthernetInterface& parent, InAddrAny addr, ether_addr lladdr,
-                   State state) :
+                   stdplus::PinnedRef<EthernetInterface> parent, InAddrAny addr,
+                   ether_addr lladdr, State state) :
     NeighborObj(bus, objPath.str.c_str(), NeighborObj::action::defer_emit),
     parent(parent), objPath(std::move(objPath))
 {
@@ -42,7 +42,7 @@
 
 void Neighbor::delete_()
 {
-    auto& neighbors = parent.staticNeighbors;
+    auto& neighbors = parent.get().staticNeighbors;
     std::unique_ptr<Neighbor> ptr;
     for (auto it = neighbors.begin(); it != neighbors.end(); ++it)
     {
@@ -54,8 +54,8 @@
         }
     }
 
-    parent.writeConfigurationFile();
-    parent.manager.reloadConfigs();
+    parent.get().writeConfigurationFile();
+    parent.get().manager.get().reloadConfigs();
 }
 
 using sdbusplus::xyz::openbmc_project::Common::Error::NotAllowed;