---
 ivi-shell/ivi-layout-export.h | 19 +++++++++++++++++++
 ivi-shell/ivi-layout.c        |  2 ++
 2 files changed, 21 insertions(+)

diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
index 8a92009..7f93c82 100644
--- a/ivi-shell/ivi-layout-export.h
+++ b/ivi-shell/ivi-layout-export.h
@@ -185,6 +185,25 @@ struct ivi_controller_interface {
	int32_t (*commit_changes)(void);

	/**
+	 * \brief Creates an ivi_layout_surface.
+	 *
+	 * \return IVI_SUCCEEDED if the method call was successful
+	 * \return IVI_FAILED if the method call was failed
+	 */
+	struct ivi_layout_surface* (*surface_create)(
+				struct weston_surface *wl_surface,
+				uint32_t id_surface);
+
+	/**
+	 * \brief Configure an ivi_layout_surface
+	 *
+	 * \return IVI_SUCCEEDED if the method call was successful
+	 * \return IVI_FAILED if the method call was failed
+	 */
+	void (*surface_configure)(struct ivi_layout_surface *ivisurf,
+				  int32_t width, int32_t height);
+
+	/**
	 * surface controller interface
	 */

diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
index 51d0a8d..76891bf 100644
--- a/ivi-shell/ivi-layout.c
+++ b/ivi-shell/ivi-layout.c
@@ -2870,6 +2870,8 @@ static struct ivi_controller_interface ivi_controller_interface = {
	 */
	.commit_changes = ivi_layout_commit_changes,

+	.surface_create = ivi_layout_surface_create,
+	.surface_configure = ivi_layout_surface_configure,
	/**
	 * surface controller interfaces
	 */
--
1.8.3.1