u32 signature;
        u16 command;
        u16 status;
-       u64 requested_address;
-       u64 requested_length;
-       u64 actual_address;
-       u64 actual_length;
+       u16 version;
+       u8 capabilities[16];
+       u8 set_capabilities[16];
+       u16 num_parameter_blocks;
+       u32 set_capabilities_status;
+};
+
+/* RASF Parameter Block Structure Header */
+
+struct acpi_rasf_parameter_block {
+       u16 type;
+       u16 version;
+       u16 length;
+};
+
+/* RASF Parameter Block Structure for PATROL_SCRUB */
+
+struct acpi_rasf_patrol_scrub_parameter {
+       struct acpi_rasf_parameter_block header;
+       u16 patrol_scrub_command;
+       u64 requested_address_range[2];
+       u64 actual_address_range[2];
        u16 flags;
-       u8 speed;
+       u8 requested_speed;
 };
 
 /* Masks for Flags and Speed fields above */
 
 #define ACPI_RASF_SCRUBBER_RUNNING      1
 #define ACPI_RASF_SPEED                 (7<<1)
+#define ACPI_RASF_SPEED_SLOW            (0<<1)
+#define ACPI_RASF_SPEED_MEDIUM          (4<<1)
+#define ACPI_RASF_SPEED_FAST            (7<<1)
 
 /* Channel Commands */
 
 enum acpi_rasf_commands {
-       ACPI_RASF_GET_RAS_CAPABILITIES = 1,
-       ACPI_RASF_GET_PATROL_PARAMETERS = 2,
-       ACPI_RASF_START_PATROL_SCRUBBER = 3,
-       ACPI_RASF_STOP_PATROL_SCRUBBER = 4
+       ACPI_RASF_EXECUTE_RASF_COMMAND = 1
+};
+
+/* Platform RAS Capabilities */
+
+enum acpi_rasf_capabiliities {
+       ACPI_HW_PATROL_SCRUB_SUPPORTED = 0,
+       ACPI_SW_PATROL_SCRUB_EXPOSED = 1
+};
+
+/* Patrol Scrub Commands */
+
+enum acpi_rasf_patrol_scrub_commands {
+       ACPI_RASF_GET_PATROL_PARAMETERS = 1,
+       ACPI_RASF_START_PATROL_SCRUBBER = 2,
+       ACPI_RASF_STOP_PATROL_SCRUBBER = 3
 };
 
 /* Channel Command flags */