summaryrefslogtreecommitdiff
path: root/sys/kern/kern_module.c
Commit message (Collapse)AuthorAgeFilesLines
* Mechanical change to use <sys/queue.h> macro API instead ofPoul-Henning Kamp2001-02-041-3/+3
| | | | | | | | | | fondling implementation details. Created with: sed(1) Reviewed by: md5(1) Notes: svn path=/head/; revision=71999
* Staticize some malloc M_ instances.Poul-Henning Kamp2000-12-081-1/+1
| | | | Notes: svn path=/head/; revision=69774
* Back out the previous change to the queue(3) interface.Jake Burkholder2000-05-261-3/+3
| | | | | | | | | It was not discussed and should probably not happen. Requested by: msmith and others Notes: svn path=/head/; revision=60938
* Change the way that the queue(3) structures are declared; don't assume thatJake Burkholder2000-05-231-3/+3
| | | | | | | | | | | the type argument to *_HEAD and *_ENTRY is a struct. Suggested by: phk Reviewed by: phk Approved by: mdodd Notes: svn path=/head/; revision=60833
* First round implementation of a fine grain enhanced module to modulePeter Wemm2000-04-291-15/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | version dependency system. This isn't quite finished, but it is at a useful stage to do a functional checkpoint. Highlights: - version and dependency metadata is gathered via linker sets, so things are handled the same for static kernels and code built to live in a kld. - The dependencies are at module level (versus at file level). - Dependencies determine kld symbol search order - this means that you cannot link against symbols in another file unless you depend on it. This is so that you cannot accidently unload the target out from underneath the ones referencing it. - It is flexible enough that we can put tags in #include files and macros so that we can get decent hooks for enforcing recompiles on incompatable ABI changes. eg: if we change struct proc, we could force a recompile for all kld's that reference the proc struct. - Tangled dependency references at boot time are sorted. Files are relocated once all their dependencies are already relocated. Caveats: - Loader support is incomplete, but has been worked on seperately. - Actual enforcement of the version number tags is not active yet - just the module dependencies are live. The actual structure of versioning hasn't been agreed on yet. (eg: major.minor, or whatever) - There is some backwards compatability for old modules without metadata but I'm not sure how good it is. This is based on work originally done by Boris Popov (bp@freebsd.org), but I'm not sure he'd recognize much of it now. Don't blame him. :-) Also, ideas have been borrowed from Mike Smith. Notes: svn path=/head/; revision=59751
* A hack basically.. We have a bunch of code that used to callPeter Wemm1999-11-081-1/+8
| | | | | | | | | | | | | | devsw_module_handler() indirectly and not use the chain arguments. To eliminate this indirection via that function (which does nothing now) without duplicating a modevent handler into all the routines that don't presently have one, supply a NOP (do nothing, return OK) routine which is functionally equivalent to what's there now. This is a hack and is still wrong, because there doesn't appear to be anything to reclaim resources on an unload of a module with one of these in it. I'm not sure whether to make the NOP handler refuse a MOD_UNLOAD event or what. Notes: svn path=/head/; revision=52991
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50477
* Implement a new generic mechanism for attaching handler functions toMike Smith1999-08-211-4/+6
| | | | | | | | | | | | | | | | events, in order to pave the way for removing a number of the ad-hoc implementations currently in use. Retire the at_shutdown family of functions and replace them with new event handler lists. Rework kern_shutdown.c to take greater advantage of the use of event handlers. Reviewed by: green Notes: svn path=/head/; revision=50107
* Oops, set module->file..Peter Wemm1999-05-201-1/+2
| | | | | | | | PR: 1179 Submitted-by: lha@stacken.kth.se Notes: svn path=/head/; revision=47330
* First stages of a module dependency cleanup. This part fixes aPeter Wemm1999-05-081-21/+33
| | | | | | | | | | | | | | | particularly annoying hack, namely having the linker bash the moduledata to set the container pointer, preventing it being const. In the process, a stack of warnings were fixed and will probably allow a revisit of the const C_SYSINIT() changes. This explicitly registers modules in files or preload areas with the module system first, and let them initialize via SYSINIT/DECLARE_MODULE later in their SI_ORDER_xxx order. The kludge of finding the containing file is no longer needed since the registration of modules onto the modules list is done in the context of initializing the linker file. Notes: svn path=/head/; revision=46693
* More -Wall / -Wcast-qual cleanup. Also, EXEC_SET can't useMatthew Dillon1999-01-291-3/+3
| | | | | | | | C_DECLARE_MODULE due to the linker_file_sysinit() function making modifications to the data. Notes: svn path=/head/; revision=43387
* Fix warnings in preparation for adding -Wall -Wcast-qual to theMatthew Dillon1999-01-271-8/+8
| | | | | | | kernel compile Notes: svn path=/head/; revision=43301
* Remove a diagnostic message left in by mistake.Doug Rabson1999-01-091-3/+2
| | | | Notes: svn path=/head/; revision=42439
* Implement a mechanism for a module to report a small amount of moduleDoug Rabson1999-01-091-2/+27
| | | | | | | | specific data back to the user via kldstat(2). Use that mechanism in the syscall handler to report the syscall number used. Notes: svn path=/head/; revision=42435
* put a \n on an error message printfPeter Wemm1998-11-061-2/+2
| | | | Notes: svn path=/head/; revision=40945
* *gulp*. Jordan specifically OK'ed this..Peter Wemm1998-10-161-2/+2
| | | | | | | | | | | This is the bulk of the support for doing kld modules. Two linker_sets were replaced by SYSINIT()'s. VFS's and exec handlers are self registered. kld is now a superset of lkm. I have converted most of them, they will follow as a seperate commit as samples. This all still works as a static a.out kernel using LKM's. Notes: svn path=/head/; revision=40435
* Keep track of the containing file for modules. This is a bit of a hack,Peter Wemm1998-10-101-7/+11
| | | | | | | | | | but I can't think of another (relatively) easy way of getting the info since the boot-time initialization is not done immediately after "loading". XXX module_register() gained an extra arg. This might break the alpha compile, if so, just add a zero to get the old behavior. Notes: svn path=/head/; revision=40158
* Send a MOD_UNLOAD event before deleting the module. if the MOD_LOAD eventDoug Rabson1998-10-031-1/+2
| | | | | | | failed. Notes: svn path=/head/; revision=39916
* Changed to the C9x draft spelling of the (unsigned) integral typeBruce Evans1998-07-141-3/+2
| | | | | | | | | | | suitable for holding object pointers (ptrint_t -> uintptr_t). Added corresponding signed type (intptr_t). Changed/added corresponding non-C9x types for function pointers to match. Don't use nonstandard types to implement these types, and don't comment on them in <machine/types.h>. Notes: svn path=/head/; revision=37629
* Fixed printf format errors.Bruce Evans1998-07-111-3/+4
| | | | Notes: svn path=/head/; revision=37555
* Remove a bunch of variables which were unused both in GENERIC and LINT.Poul-Henning Kamp1997-11-071-2/+1
| | | | | | | Found by: -Wunused Notes: svn path=/head/; revision=31016
* Move the "retval" (3rd) parameter from all syscall functions and putPoul-Henning Kamp1997-11-061-14/+15
| | | | | | | | | | | | | | | it in struct proc instead. This fixes a boatload of compiler warning, and removes a lot of cruft from the sources. I have not removed the /*ARGSUSED*/, they will require some looking at. libkvm, ps and other userland struct proc frobbing programs will need recompiled. Notes: svn path=/head/; revision=30994
* Removed unused #includes.Bruce Evans1997-10-281-2/+1
| | | | Notes: svn path=/head/; revision=30813
* make a couple functions static...John-Mark Gurney1997-10-241-3/+3
| | | | | | | | also change module_register_static to module_register_init as this function initalizes the module for both dynamic and static modules... Notes: svn path=/head/; revision=30683
* Removed unused #includes.Bruce Evans1997-08-021-3/+1
| | | | Notes: svn path=/head/; revision=27845
* This is the kernel linker. To use it, you will first need to applyDoug Rabson1997-05-071-0/+304
the patches in freefall:/home/dfr/ld.diffs to your ld sources and set BINFORMAT to aoutkld when linking the kernel. Library changes and userland utilities will appear in a later commit. Notes: svn path=/head/; revision=25537