[bus] Move member prev_free to BusPrivate_.PrevFree
authorShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Sun, 19 Dec 2010 07:42:32 +0000 (02:42 -0500)
committerShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Sun, 19 Dec 2010 07:42:32 +0000 (02:42 -0500)
Only the bus module should really manipulate this member.

src/include/bus.h
src/winvblock/bus/bus.c

index a1eae7c..6787e01 100644 (file)
@@ -46,7 +46,6 @@ typedef struct WV_BUS_T {
     winvblock__uint32 Children;
     struct device__type * first_child;
     KSPIN_LOCK SpinLock;
-    device__free_func * prev_free;
     UNICODE_STRING dev_name;
     UNICODE_STRING dos_dev_name;
     winvblock__bool named;
@@ -58,6 +57,7 @@ typedef struct WV_BUS_T {
     struct {
         LIST_ENTRY Nodes;
         USHORT NodeCount;
+        device__free_func * PrevFree;
       } BusPrivate_;
   } WV_S_BUS_T, * WV_SP_BUS_T;
 
index 722b865..68340c3 100644 (file)
@@ -257,7 +257,7 @@ winvblock__lib_func void WvBusInit(WV_SP_BUS_T bus) {
     RtlZeroMemory(bus, sizeof *bus);
     /* Populate non-zero bus device defaults. */
     bus->Dev = dev;
-    bus->prev_free = dev->ops.free;
+    bus->BusPrivate_.PrevFree = dev->ops.free;
     bus->thread = bus__default_thread_;
     KeInitializeSpinLock(&bus->SpinLock);
     KeInitializeSpinLock(&bus->work_items_lock);
@@ -384,7 +384,7 @@ static PDEVICE_OBJECT STDCALL bus__create_pdo_(IN struct device__type * dev) {
 static void STDCALL bus__free_(IN struct device__type * dev_ptr) {
     WV_SP_BUS_T bus_ptr = WvBusFromDev(dev_ptr);
     /* Free the "inherited class". */
-    bus_ptr->prev_free(dev_ptr);
+    bus_ptr->BusPrivate_.PrevFree(dev_ptr);
 
     wv_free(bus_ptr);
   }