compositor: Make all non-backend modules use module_init() as entry point
diff --git a/src/compositor.c b/src/compositor.c
index 911eaba..170e6ba 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -3091,8 +3091,7 @@
 
 	module_init = NULL;
 	if (xserver)
-		module_init = load_module("xwayland.so",
-					  "weston_xserver_init",
+		module_init = load_module("xwayland.so", "module_init",
 					  &xserver_module);
 	if (module_init && module_init(ec) < 0) {
 		ret = EXIT_FAILURE;
@@ -3104,7 +3103,7 @@
 
 	if (!shell)
 		shell = "desktop-shell.so";
-	module_init = load_module(shell, "shell_init", &shell_module);
+	module_init = load_module(shell, "module_init", &shell_module);
 	if (!module_init || module_init(ec) < 0) {
 		ret = EXIT_FAILURE;
 		goto out;
diff --git a/src/compositor.h b/src/compositor.h
index 2954703..a1e6f85 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -770,9 +770,6 @@
 void
 weston_watch_process(struct weston_process *process);
 
-int
-weston_xserver_init(struct weston_compositor *compositor);
-
 struct weston_surface_animation;
 typedef	void (*weston_surface_animation_done_func_t)(struct weston_surface_animation *animation, void *data);
 
@@ -794,10 +791,6 @@
 void
 weston_surface_destroy(struct weston_surface *surface);
 
-struct weston_compositor *
-backend_init(struct wl_display *display, int argc, char *argv[],
-	     const char *config_file);
-
 int
 weston_output_switch_mode(struct weston_output *output, struct weston_mode *mode);
 
@@ -806,4 +799,11 @@
 void
 gles2_renderer_destroy(struct weston_compositor *ec);
 
+struct weston_compositor *
+backend_init(struct wl_display *display, int argc, char *argv[],
+	    const char *config_file);
+
+int
+module_init(struct weston_compositor *compositor);
+
 #endif
diff --git a/src/shell.c b/src/shell.c
index 06d8684..dba54f7 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -3691,11 +3691,8 @@
 	}
 }
 
-int
-shell_init(struct weston_compositor *ec);
-
 WL_EXPORT int
-shell_init(struct weston_compositor *ec)
+module_init(struct weston_compositor *ec)
 {
 	struct weston_seat *seat;
 	struct desktop_shell *shell;
diff --git a/src/tablet-shell.c b/src/tablet-shell.c
index f17d888..af5e66f 100644
--- a/src/tablet-shell.c
+++ b/src/tablet-shell.c
@@ -530,18 +530,15 @@
 	free(shell);
 }
 
-void
-shell_init(struct weston_compositor *compositor);
-
-WL_EXPORT void
-shell_init(struct weston_compositor *compositor)
+WL_EXPORT int
+module_init(struct weston_compositor *compositor)
 {
 	struct tablet_shell *shell;
 	struct wl_event_loop *loop;
 
 	shell = malloc(sizeof *shell);
 	if (shell == NULL)
-		return;
+		return -1;
 
 	memset(shell, 0, sizeof *shell);
 	shell->compositor = compositor;
@@ -583,4 +580,6 @@
 	launch_ux_daemon(shell);
 
 	tablet_shell_set_state(shell, STATE_STARTING);
+
+	return 0;
 }
diff --git a/src/xwayland/launcher.c b/src/xwayland/launcher.c
index aab74f0..00f064e 100644
--- a/src/xwayland/launcher.c
+++ b/src/xwayland/launcher.c
@@ -312,7 +312,7 @@
 }
 
 WL_EXPORT int
-weston_xserver_init(struct weston_compositor *compositor)
+module_init(struct weston_compositor *compositor)
 {
 	struct wl_display *display = compositor->wl_display;
 	struct weston_xserver *mxs;