Index: /trunk/include/VBox/ftm.h
===================================================================
--- /trunk/include/VBox/ftm.h	(revision 31731)
+++ /trunk/include/VBox/ftm.h	(revision 31732)
@@ -41,5 +41,5 @@
  * @{
  */
-VMMR3DECL(int) FTMR3PowerOn(PVM pVM, bool fSource, unsigned uInterval, const char *pszAddress, unsigned uPort);
+VMMR3DECL(int) FTMR3PowerOn(PVM pVM, bool fMaster, unsigned uInterval, const char *pszAddress, unsigned uPort);
 
 #endif /* IN_RING3 */
Index: /trunk/include/VBox/vm.h
===================================================================
--- /trunk/include/VBox/vm.h	(revision 31731)
+++ /trunk/include/VBox/vm.h	(revision 31732)
@@ -787,6 +787,6 @@
      * This is initialized together with the rest of the VM structure. */
     bool                        fHwVirtExtForced;
-    /** PARAV enabled flag. */
-    bool                        fPARAVEnabled;
+    /** Set when this VM is the master FT node. */
+    bool                        fFaultTolerantMaster;
     /** Large page enabled flag. */
     bool                        fUseLargePages;
@@ -962,4 +962,13 @@
     } ssm;
 
+    /** FTM part. */
+    union
+    {
+#ifdef ___FTMInternal_h
+        struct FTM  s;
+#endif
+        uint8_t     padding[128];        /* multiple of 64 */
+    } ftm;
+
     /** REM part. */
     union
@@ -991,15 +1000,6 @@
     } cfgm;
 
-    /** PARAV part. */
-    union
-    {
-#ifdef ___PARAVInternal_h
-        struct PARAV s;
-#endif
-        uint8_t     padding[24];        /* multiple of 8 */
-    } parav;
-
     /** Padding for aligning the cpu array on a page boundrary. */
-    uint8_t         abAlignment2[1992];
+    uint8_t         abAlignment2[1886];
 
     /* ---- end small stuff ---- */
Index: /trunk/include/VBox/vm.mac
===================================================================
--- /trunk/include/VBox/vm.mac	(revision 31731)
+++ /trunk/include/VBox/vm.mac	(revision 31732)
@@ -71,5 +71,6 @@
     .fHWACCMEnabled         resb 1
     .fHwVirtExtForced       resb 1
-    .fPARAVEnabled          resb 1
+    .fFaultTolerantMaster   resb 1
+    .fUseLargePages         resb 1
 
     alignb 8
Index: /trunk/src/VBox/VMM/FTM.cpp
===================================================================
--- /trunk/src/VBox/VMM/FTM.cpp	(revision 31731)
+++ /trunk/src/VBox/VMM/FTM.cpp	(revision 31732)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2008 Oracle Corporation
+ * Copyright (C) 2010 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -25,5 +25,5 @@
 #include <VBox/err.h>
 #include <VBox/param.h>
-#include <VBox/ftm.h>
+#include "FTMInternal.h"
 
 #include <iprt/assert.h>
@@ -31,7 +31,34 @@
 
 
+/**
+ * Powers on the fault tolerant virtual machine.
+ *
+ * @returns VBox status code.
+ *
+ * @param   pVM         The VM to power on.
+ * @param   fMaster     FT master or clone
+ * @param   uInterval   FT sync interval
+ * @param   pszAddress  Master VM address
+ * @param   uPort       Master VM port
+ *
+ * @thread      Any thread.
+ * @vmstate     Created
+ * @vmstateto   PoweringOn+Running (master), PoweringOn+Running_FT (clone)
+ */
+VMMR3DECL(int) FTMR3PowerOn(PVM pVM, bool fMaster, unsigned uInterval, const char *pszAddress, unsigned uPort)
+{
+    VMSTATE enmVMState = VMR3GetState(pVM);
+    AssertMsgReturn(enmVMState == VMSTATE_POWERING_ON,
+                    ("%s\n", VMR3GetStateName(enmVMState)),
+                    VERR_INTERNAL_ERROR_4);
 
-VMMR3DECL(int) FTMR3PowerOn(PVM pVM, bool fSource, unsigned uInterval, const char *pszAddress, unsigned uPort)
-{
+    if (fMaster)
+    {
+        return VMR3PowerOn(pVM);
+    }
+    else
+    {
+        /* clone */
+    }
     return VERR_NOT_IMPLEMENTED;
 }
Index: /trunk/src/VBox/VMM/FTMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/FTMInternal.h	(revision 31732)
+++ /trunk/src/VBox/VMM/FTMInternal.h	(revision 31732)
@@ -0,0 +1,45 @@
+/* $Id$ */
+/** @file
+ * FTM - Internal header file.
+ */
+
+/*
+ * Copyright (C) 2010 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifndef ___FTMInternal_h
+#define ___FTMInternal_h
+
+#include <VBox/cdefs.h>
+#include <VBox/types.h>
+#include <VBox/ftm.h>
+
+
+/** @defgroup grp_ftm_int Internals.
+ * @ingroup grp_ftm
+ * @{
+ */
+
+
+/**
+ * FTM VM Instance data.
+ * Changes to this must checked against the padding of the ftm union in VM!
+ */
+typedef struct FTM
+{
+    char       *pszAddress;
+    unsigned    uPort;
+    unsigned    uInterval;
+} FTM;
+
+/** @} */
+
+#endif
