Peter Wemm
f41325db5f
With this commit, I hereby pronounce gensetdefs past its use-by date.
...
Replace the a.out emulation of 'struct linker_set' with something
a little more flexible. <sys/linker_set.h> now provides macros for
accessing elements and completely hides the implementation.
The linker_set.h macros have been on the back burner in various
forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()),
John Polstra (ELF clue) and myself (cleaned up API and the conversion
of the rest of the kernel to use it).
The macros declare a strongly typed set. They return elements with the
type that you declare the set with, rather than a generic void *.
For ELF, we use the magic ld symbols (__start_<setname> and
__stop_<setname>). Thanks to Richard Henderson <rth@redhat.com> for the
trick about how to force ld to provide them for kld's.
For a.out, we use the old linker_set struct.
NOTE: the item lists are no longer null terminated. This is why
the code impact is high in certain areas.
The runtime linker has a new method to find the linker set
boundaries depending on which backend format is in use.
linker sets are still module/kld unfriendly and should never be used
for anything that may be modular one day.
Reviewed by: eivind
2001-06-13 10:58:39 +00:00
..
2000-11-28 06:49:15 +00:00
2000-04-08 14:17:18 +00:00
2001-01-28 06:39:56 +00:00
2001-04-13 09:37:25 +00:00
2001-05-19 01:28:09 +00:00
2001-05-23 22:05:08 +00:00
2001-05-01 08:13:21 +00:00
2000-04-26 20:58:40 +00:00
1999-12-29 05:07:58 +00:00
2001-06-13 10:58:39 +00:00
2001-05-19 01:37:12 +00:00
2001-05-25 16:59:11 +00:00
2001-04-29 19:53:50 +00:00
2000-10-29 13:57:19 +00:00
2001-05-15 23:22:29 +00:00
2001-05-01 08:13:21 +00:00
2001-05-26 08:27:58 +00:00
2001-05-25 16:59:11 +00:00
2001-06-08 05:24:21 +00:00
2001-05-01 08:13:21 +00:00
2001-05-26 19:59:44 +00:00
2001-05-25 16:59:11 +00:00
2001-06-11 21:54:19 +00:00
2001-05-10 17:45:49 +00:00
2001-06-01 13:23:28 +00:00
2001-02-21 06:39:57 +00:00
2001-03-28 11:52:56 +00:00
2001-06-13 10:58:39 +00:00
2001-05-25 16:59:11 +00:00
2001-06-13 10:58:39 +00:00
2001-04-28 12:11:01 +00:00
2001-05-01 08:13:21 +00:00
2001-06-08 05:24:21 +00:00
2001-04-27 19:28:25 +00:00
2001-02-04 13:13:25 +00:00
2001-05-04 17:15:16 +00:00
2001-04-16 13:05:05 +00:00
2000-05-05 09:59:14 +00:00
2001-05-25 16:59:11 +00:00
2001-06-06 13:58:03 +00:00
2000-11-18 21:01:04 +00:00
2001-05-19 01:28:09 +00:00
2001-04-29 02:45:39 +00:00
2001-06-11 09:15:41 +00:00
2001-05-01 08:13:21 +00:00
2001-03-28 09:17:56 +00:00
2001-05-04 17:15:16 +00:00
2001-05-23 19:38:26 +00:00
2000-12-01 08:57:47 +00:00
2001-06-13 10:58:39 +00:00
2001-01-01 23:09:53 +00:00
2001-05-01 08:13:21 +00:00
2001-03-28 09:17:56 +00:00
2001-03-24 04:40:49 +00:00
2001-05-01 08:13:21 +00:00
2001-06-13 10:58:39 +00:00
2001-06-13 10:58:39 +00:00
2001-06-13 10:58:39 +00:00
2001-06-13 10:58:39 +00:00
2001-06-01 10:07:28 +00:00
2001-06-01 10:07:28 +00:00
2001-04-07 20:51:24 +00:00
2000-12-01 08:47:54 +00:00
2001-04-10 07:59:06 +00:00
2000-09-29 13:36:47 +00:00
2001-05-25 16:59:11 +00:00
2000-04-22 15:13:06 +00:00
2001-04-29 19:53:50 +00:00
2000-05-26 02:09:24 +00:00
2001-05-19 01:28:09 +00:00
2001-06-12 09:40:04 +00:00
2001-03-27 10:21:26 +00:00
2001-02-04 16:08:18 +00:00
2001-05-29 18:19:57 +00:00
2001-05-26 08:27:58 +00:00
2001-05-26 08:27:58 +00:00
2001-05-26 08:27:58 +00:00
2001-05-01 08:13:21 +00:00
2001-06-12 09:40:04 +00:00
2000-12-08 21:51:06 +00:00
2001-05-23 19:02:50 +00:00
2001-02-25 06:33:50 +00:00
2001-02-18 10:43:53 +00:00
2000-10-29 16:57:42 +00:00
2001-05-10 17:45:49 +00:00
2001-01-10 04:43:51 +00:00
2001-06-06 22:05:48 +00:00
2001-05-28 01:00:03 +00:00
2001-06-11 18:43:32 +00:00
1999-11-24 01:03:08 +00:00
2001-05-10 17:45:49 +00:00
2001-05-16 02:52:06 +00:00
2001-06-06 00:57:24 +00:00
2001-05-04 17:15:16 +00:00
2001-06-08 05:24:21 +00:00
2001-02-15 16:34:11 +00:00
2001-05-15 10:19:57 +00:00
2001-06-04 04:04:45 +00:00
2001-05-23 09:42:29 +00:00
2001-02-15 16:34:11 +00:00
2001-05-19 01:37:12 +00:00
2001-05-29 09:22:22 +00:00
2000-12-01 08:57:47 +00:00
2001-05-30 03:28:59 +00:00
2001-05-30 03:28:59 +00:00
2001-05-30 03:28:59 +00:00
2001-06-04 23:30:47 +00:00
2001-06-13 10:58:39 +00:00
2001-05-28 20:22:12 +00:00
2001-06-05 05:07:53 +00:00
2001-03-27 10:21:26 +00:00
2001-05-15 18:12:38 +00:00
2001-05-22 22:16:18 +00:00
2001-06-01 21:47:34 +00:00
2001-06-11 12:39:29 +00:00
2001-06-11 12:39:29 +00:00
2001-06-13 00:36:41 +00:00
1999-10-11 15:19:12 +00:00
2001-06-08 05:24:21 +00:00
2001-06-08 05:24:21 +00:00
2001-05-01 08:13:21 +00:00
2001-05-25 19:23:04 +00:00
2001-05-25 16:59:11 +00:00
2001-04-29 19:53:50 +00:00
2001-04-18 22:18:39 +00:00
2001-05-24 07:22:27 +00:00
2001-05-01 08:13:21 +00:00
2001-05-24 07:22:27 +00:00
2001-05-01 08:13:21 +00:00
2001-05-23 19:51:12 +00:00
2001-05-29 17:46:52 +00:00
2001-06-06 23:34:38 +00:00
2001-04-29 02:45:39 +00:00
2001-05-01 08:13:21 +00:00
2001-05-01 08:13:21 +00:00
2001-05-19 01:28:09 +00:00
2001-06-06 23:34:38 +00:00
2001-05-24 07:22:27 +00:00
2001-03-23 11:48:50 +00:00
2001-04-29 12:36:52 +00:00