[device] Don't use device__close_decl macro
authorShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Sat, 11 Dec 2010 19:43:43 +0000 (14:43 -0500)
committerShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Sat, 11 Dec 2010 19:43:43 +0000 (14:43 -0500)
Use a typedef, instead.

src/include/device.h
src/winvblock/device.c
src/winvblock/disk/disk.c

index eecc05e..c4b17a9 100644 (file)
@@ -60,31 +60,13 @@ extern winvblock__lib_func device__create_pdo_func device__create_pdo;
 typedef winvblock__bool STDCALL device__init_func(IN struct device__type *);
 
 /**
- * Device close routine
+ * Device close routine.
  *
- * @v dev_ptr           The device being closed
+ * @v dev_ptr           The device being closed.
  */
-#  define device__close_decl( x ) \
-\
-void STDCALL \
-x ( \
-  IN struct device__type * dev_ptr \
- )
-/*
- * Function pointer for a device close routine.
- * 'indent' mangles this, so it looks weird
- */
-typedef device__close_decl (
-   ( *device__close_routine )
- );
-/**
- * Close a device
- *
- * @v dev_ptr           Points to the device to close
- */
-extern winvblock__lib_func device__close_decl (
-  device__close
- );
+typedef void STDCALL device__close_func(IN struct device__type *);
+
+extern winvblock__lib_func device__close_func device__close;
 
 /**
  * Device deletion routine.
@@ -125,7 +107,7 @@ extern winvblock__lib_func struct device__type * device__create (
 winvblock__def_struct(device__ops) {
     device__create_pdo_func * create_pdo;
     device__init_func * init;
-    device__close_routine close;
+    device__close_func * close;
     device__free_func * free;
   };
 
index e899e3c..fc02387 100644 (file)
@@ -119,20 +119,17 @@ static PDEVICE_OBJECT STDCALL make_dev_pdo(IN struct device__type * dev_ptr) {
   }
 
 /**
- * Close a device
+ * Close a device.
  *
- * @v dev_ptr           Points to the device to close
+ * @v dev_ptr           Points to the device to close.
  */
-winvblock__lib_func
-device__close_decl (
-  device__close
- )
-{
-  /*
-   * Call the device's close routine
-   */
-  dev_ptr->ops.close ( dev_ptr );
-}
+winvblock__lib_func void STDCALL device__close(
+    IN struct device__type * dev_ptr
+  ) {
+    /* Call the device's close routine. */
+    dev_ptr->ops.close(dev_ptr);
+    return;
+  }
 
 /**
  * Delete a device.
index cb7d1a7..ee5f44b 100644 (file)
@@ -80,15 +80,11 @@ disk__init_decl ( default_init )
   return TRUE;
 }
 
-static
-device__close_decl (
-  close
- )
-{
-  disk__type_ptr disk_ptr = disk__get_ptr ( dev_ptr );
-  disk_ptr->disk_ops.close ( disk_ptr );
-  return;
-}
+static void STDCALL disk__close_(IN struct device__type * dev_ptr) {
+    disk__type_ptr disk_ptr = disk__get_ptr(dev_ptr);
+    disk_ptr->disk_ops.close(disk_ptr);
+    return;
+  }
 
 disk__close_decl ( default_close )
 {
@@ -448,7 +444,7 @@ disk__create (
   disk_ptr->disk_ops.init = default_init;
   disk_ptr->disk_ops.close = default_close;
   dev_ptr->dispatch = disk_dispatch;
-  dev_ptr->ops.close = close;
+  dev_ptr->ops.close = disk__close_;
   dev_ptr->ops.create_pdo = create_pdo;
   dev_ptr->ops.free = free_disk;
   dev_ptr->ops.init = disk__init_;