diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-11-06 23:23:15 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:36 -0500 |
commit | 71db46ea665606384f2be1be708c74c97c9adfb2 (patch) | |
tree | 24c84e12f4fc925f3ec1e69348493d7222df1e44 /source4/ntvfs | |
parent | b012ab557b8f8a2f58dfbbe8b7818f3e6d8cf38f (diff) | |
download | samba-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.mk | 6 | ||||
-rw-r--r-- | source4/ntvfs/ntvfs_base.c | 9 | ||||
-rw-r--r-- | source4/ntvfs/posix/config.mk | 1 | ||||
-rw-r--r-- | source4/ntvfs/unixuid/config.mk | 1 |
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 |