summaryrefslogtreecommitdiff
path: root/source4/ntvfs
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-11-06 23:23:15 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:36 -0500
commit71db46ea665606384f2be1be708c74c97c9adfb2 (patch)
tree24c84e12f4fc925f3ec1e69348493d7222df1e44 /source4/ntvfs
parentb012ab557b8f8a2f58dfbbe8b7818f3e6d8cf38f (diff)
downloadsamba-71db46ea665606384f2be1be708c74c97c9adfb2.tar.gz
samba-71db46ea665606384f2be1be708c74c97c9adfb2.tar.bz2
samba-71db46ea665606384f2be1be708c74c97c9adfb2.zip
r3586: Fix some of the issues with the module init functions.
Both subsystems and modules can now have init functions, which can be specified in .mk files (INIT_FUNCTION = ...) The build system will define : - SUBSYSTEM_init_static_modules that calls the init functions of all statically compiled modules. Failing to load will generate an error which is not fatal - BINARY_init_subsystems that calls the init functions (if defined) for the subsystems the binary depends on This removes the hack with the "static bool Initialised = " and the "lazy_init" functions (This used to be commit 7a8244761bfdfdfb48f8264d76951ebdfbf7bd8a)
Diffstat (limited to 'source4/ntvfs')
-rw-r--r--source4/ntvfs/config.mk6
-rw-r--r--source4/ntvfs/ntvfs_base.c9
-rw-r--r--source4/ntvfs/posix/config.mk1
-rw-r--r--source4/ntvfs/unixuid/config.mk1
4 files changed, 12 insertions, 5 deletions
diff --git a/source4/ntvfs/config.mk b/source4/ntvfs/config.mk
index e2320e0684..c15470076f 100644
--- a/source4/ntvfs/config.mk
+++ b/source4/ntvfs/config.mk
@@ -3,6 +3,7 @@
################################################
# Start MODULE ntvfs_cifs
[MODULE::ntvfs_cifs]
+INIT_FUNCTION = ntvfs_cifs_init
INIT_OBJ_FILES = \
ntvfs/cifs/vfs_cifs.o
REQUIRED_SUBSYSTEMS = \
@@ -13,6 +14,7 @@ REQUIRED_SUBSYSTEMS = \
################################################
# Start MODULE ntvfs_simple
[MODULE::ntvfs_simple]
+INIT_FUNCTION = ntvfs_simple_init
INIT_OBJ_FILES = \
ntvfs/simple/vfs_simple.o
ADD_OBJ_FILES = \
@@ -23,6 +25,7 @@ ADD_OBJ_FILES = \
################################################
# Start MODULE ntvfs_print
[MODULE::ntvfs_print]
+INIT_FUNCTION = ntvfs_print_init
INIT_OBJ_FILES = \
ntvfs/print/vfs_print.o
# End MODULE ntvfs_print
@@ -31,6 +34,7 @@ INIT_OBJ_FILES = \
################################################
# Start MODULE ntvfs_ipc
[MODULE::ntvfs_ipc]
+INIT_FUNCTION = ntvfs_ipc_init
INIT_OBJ_FILES = \
ntvfs/ipc/vfs_ipc.o \
ntvfs/ipc/ipc_rap.o \
@@ -43,6 +47,7 @@ INIT_OBJ_FILES = \
################################################
# Start MODULE ntvfs_nbench
[MODULE::ntvfs_nbench]
+INIT_FUNCTION = ntvfs_nbench_init
INIT_OBJ_FILES = \
ntvfs/nbench/vfs_nbench.o
# End MODULE ntvfs_nbench
@@ -51,6 +56,7 @@ INIT_OBJ_FILES = \
################################################
# Start SUBSYSTEM NTVFS
[SUBSYSTEM::NTVFS]
+INIT_FUNCTION = ntvfs_init
INIT_OBJ_FILES = \
ntvfs/ntvfs_base.o
ADD_OBJ_FILES = \
diff --git a/source4/ntvfs/ntvfs_base.c b/source4/ntvfs/ntvfs_base.c
index cc83b53473..c168467eae 100644
--- a/source4/ntvfs/ntvfs_base.c
+++ b/source4/ntvfs/ntvfs_base.c
@@ -119,20 +119,19 @@ const struct ntvfs_critical_sizes *ntvfs_interface_version(void)
/*
initialise the NTVFS subsystem
*/
-BOOL ntvfs_init(void)
+NTSTATUS ntvfs_init(void)
{
NTSTATUS status;
status = register_subsystem("ntvfs", ntvfs_register);
if (!NT_STATUS_IS_OK(status)) {
- return False;
+ return status;
}
- /* FIXME: Perhaps panic if a basic backend, such as IPC, fails to initialise? */
- static_init_ntvfs;
+ ntvfs_init_static_modules;
DEBUG(3,("NTVFS subsystem version %d initialised\n", NTVFS_INTERFACE_VERSION));
- return True;
+ return status;
}
diff --git a/source4/ntvfs/posix/config.mk b/source4/ntvfs/posix/config.mk
index dd72468216..f54d2e24fb 100644
--- a/source4/ntvfs/posix/config.mk
+++ b/source4/ntvfs/posix/config.mk
@@ -1,6 +1,7 @@
################################################
# Start MODULE ntvfs_posix
[MODULE::ntvfs_posix]
+INIT_FUNCTION = ntvfs_posix_init
INIT_OBJ_FILES = \
ntvfs/posix/vfs_posix.o
ADD_OBJ_FILES = \
diff --git a/source4/ntvfs/unixuid/config.mk b/source4/ntvfs/unixuid/config.mk
index 76e7aebc76..611be650d1 100644
--- a/source4/ntvfs/unixuid/config.mk
+++ b/source4/ntvfs/unixuid/config.mk
@@ -1,6 +1,7 @@
################################################
# Start MODULE ntvfs_unixuid
[MODULE::ntvfs_unixuid]
+INIT_FUNCTION = ntvfs_unixuid_init
INIT_OBJ_FILES = \
ntvfs/unixuid/vfs_unixuid.o
# End MODULE ntvfs_unixuid