Configuration for VS Code.

Change-Id: Ic795b469a89291778270d8384f7dbfa0f6c49e7c
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
new file mode 100644
index 0000000..6a99fb2
--- /dev/null
+++ b/.vscode/c_cpp_properties.json
@@ -0,0 +1,17 @@
+{
+    "configurations": [
+        {
+            "name": "Linux",
+            "includePath": [
+                "${workspaceFolder}/**"
+            ],
+            "defines": [],
+            "compilerPath": "${workspaceFolder}/prebuilts/linux-x64/clang/bin/clang",
+            "cStandard": "c11",
+            "cppStandard": "c++17",
+            "intelliSenseMode": "clang-x64",
+            "compileCommands": "${workspaceFolder}/out/reference/compile_commands.json"
+        }
+    ],
+    "version": 4
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..96d0ade
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,29 @@
+{
+    // Use IntelliSense to learn about possible attributes.
+    // Hover to view descriptions of existing attributes.
+    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "name": "(gdb) QEMU",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "out/reference/qemu_aarch64_clang/hafnium.elf",
+            "miDebuggerServerAddress": "localhost:1234",
+            "MIMode": "gdb",
+            "miDebuggerPath": "/usr/bin/gdb-multiarch",
+            "cwd": "${workspaceRoot}",
+            "setupCommands": [
+                {
+                "description": "Enable pretty-printing for gdb",
+                "text": "-enable-pretty-printing",
+                "ignoreFailures": true
+                },
+                {
+                    // Update this with whatever VMs you want to debug.
+                    "text": "add-symbol-file ${workspaceRoot}/out/reference/qemu_aarch64_clang/obj/test/vmapi/primary_with_secondaries/services/service_vm2.elf 0x43d00000+0xc4",
+                }
+            ]
+        },
+    ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..b85c5f5
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,21 @@
+{
+    "files.associations": {
+        "constants.h": "c",
+        "hftest.h": "c",
+        "primary_with_secondary.h": "c",
+        "cpu.h": "c",
+        "call.h": "c",
+        "mpool.h": "c",
+        "atomic": "c",
+        "assert.h": "c",
+        "dlog.h": "c",
+        "stdarg.h": "c",
+        "primary_only.h": "c",
+        "fdt_handler.h": "c",
+        "spinlock.h": "c",
+        "offsets.h": "c",
+        "barriers.h": "c",
+        "spci.h": "c"
+    },
+    "C_Cpp.errorSquiggles": "Disabled"
+}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..23d9330
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,51 @@
+{
+    // See https://go.microsoft.com/fwlink/?LinkId=733558
+    // for the documentation about the tasks.json format
+    "version": "2.0.0",
+    "tasks": [
+        {
+            "label": "make",
+            "type": "shell",
+            "command": "make",
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            },
+            "problemMatcher": []
+        },
+        {
+            "label": "format",
+            "type": "shell",
+            "command": "make format",
+            "problemMatcher": []
+        },
+        {
+            "label": "check",
+            "type": "shell",
+            "command": "make check",
+            "problemMatcher": []
+        },
+        {
+            "label": "build.sh",
+            "type": "shell",
+            "command": "kokoro/ubuntu/build.sh",
+            "problemMatcher": []
+        },
+        {
+            "label": "test",
+            "type": "shell",
+            "command": "make && kokoro/ubuntu/test.sh"
+        },
+        {
+            "label": "test on FVP",
+            "type": "shell",
+            "command": "make && kokoro/ubuntu/test.sh --fvp"
+        },
+        {
+            "label": "push",
+            "type": "shell",
+            "command": "git push origin HEAD:refs/for/master",
+            "problemMatcher": []
+        }
+    ]
+}