head 1.5; access; symbols netbsd-10-0-RELEASE:1.5 netbsd-10-0-RC6:1.5 netbsd-10-0-RC5:1.5 netbsd-10-0-RC4:1.5 netbsd-10-0-RC3:1.5 netbsd-10-0-RC2:1.5 netbsd-10-0-RC1:1.5 netbsd-10:1.5.0.12 netbsd-10-base:1.5 netbsd-9-3-RELEASE:1.5 cjep_sun2x-base1:1.5 cjep_sun2x:1.5.0.10 cjep_sun2x-base:1.5 cjep_staticlib_x-base1:1.5 netbsd-9-2-RELEASE:1.5 cjep_staticlib_x:1.5.0.8 cjep_staticlib_x-base:1.5 netbsd-9-1-RELEASE:1.5 phil-wifi-20200421:1.5 phil-wifi-20200411:1.5 is-mlppp:1.5.0.6 is-mlppp-base:1.5 phil-wifi-20200406:1.5 netbsd-9-0-RELEASE:1.5 netbsd-9-0-RC2:1.5 netbsd-9-0-RC1:1.5 phil-wifi-20191119:1.5 netbsd-9:1.5.0.4 netbsd-9-base:1.5 phil-wifi:1.5.0.2 phil-wifi-20190609:1.5 pgoyette-compat-merge-20190127:1.1.2.27 pgoyette-compat-20190127:1.1 pgoyette-compat-20190118:1.1 pgoyette-compat-1226:1.1 pgoyette-compat-1126:1.1 pgoyette-compat-1020:1.1 pgoyette-compat-0930:1.1 pgoyette-compat:1.1.0.2; locks; strict; comment @# @; 1.5 date 2019.02.04.22.00.51; author mrg; state Exp; branches 1.5.2.1; next 1.4; commitid qiCiV9Qjr2spWuaB; 1.4 date 2019.02.04.00.03.24; author pgoyette; state Exp; branches; next 1.3; commitid l4Sw52ImB3QfEnaB; 1.3 date 2019.01.31.03.25.29; author pgoyette; state Exp; branches; next 1.2; commitid 4u2PVkaGHMkgTS9B; 1.2 date 2019.01.27.02.08.33; author pgoyette; state Exp; branches; next 1.1; commitid ipPva1Pj3xTcBm9B; 1.1 date 2018.09.09.02.20.17; author pgoyette; state dead; branches 1.1.2.1; next ; commitid iWaNTNKjDx0aanRA; 1.5.2.1 date 2019.02.04.22.00.51; author christos; state dead; branches; next 1.5.2.2; commitid jtc8rnCzWiEEHGqB; 1.5.2.2 date 2019.06.10.21.42.38; author christos; state Exp; branches; next ; commitid jtc8rnCzWiEEHGqB; 1.1.2.1 date 2018.09.09.02.20.17; author pgoyette; state Exp; branches; next 1.1.2.2; commitid iWaNTNKjDx0aanRA; 1.1.2.2 date 2018.09.10.08.49.25; author pgoyette; state Exp; branches; next 1.1.2.3; commitid uwAhX8AKcNaMhxRA; 1.1.2.3 date 2018.09.11.08.42.45; author pgoyette; state Exp; branches; next 1.1.2.4; commitid 4shC0LCxSR6ydFRA; 1.1.2.4 date 2018.09.14.06.21.17; author pgoyette; state Exp; branches; next 1.1.2.5; commitid rkuNAMLjcvBKk2SA; 1.1.2.5 date 2018.09.17.10.06.29; author pgoyette; state Exp; branches; next 1.1.2.6; commitid SFFRsM0psaujurSA; 1.1.2.6 date 2018.09.18.01.11.33; author pgoyette; state Exp; branches; next 1.1.2.7; commitid KTgsJoLhEXDGuwSA; 1.1.2.7 date 2018.09.20.07.32.50; author pgoyette; state Exp; branches; next 1.1.2.8; commitid CDRQKkzgoiDAxOSA; 1.1.2.8 date 2018.09.21.02.53.00; author pgoyette; state Exp; branches; next 1.1.2.9; commitid EChKeh6rIQyiXUSA; 1.1.2.9 date 2018.09.24.00.03.53; author pgoyette; state Exp; branches; next 1.1.2.10; commitid thlzkzDkEljEVhTA; 1.1.2.10 date 2018.09.24.23.23.26; author pgoyette; state Exp; branches; next 1.1.2.11; commitid M23lVYqwpllNFpTA; 1.1.2.11 date 2018.09.24.23.28.55; author pgoyette; state Exp; branches; next 1.1.2.12; commitid Hp2wYNxSZbNtHpTA; 1.1.2.12 date 2018.09.25.21.44.30; author pgoyette; state Exp; branches; next 1.1.2.13; commitid IQ67mg2ek7uw5xTA; 1.1.2.13 date 2018.09.27.02.27.05; author pgoyette; state Exp; branches; next 1.1.2.14; commitid MvCCeYxQY4HkCGTA; 1.1.2.14 date 2018.09.27.03.54.25; author pgoyette; state Exp; branches; next 1.1.2.15; commitid 6KYj6IndU6dA6HTA; 1.1.2.15 date 2018.09.28.09.36.20; author pgoyette; state Exp; branches; next 1.1.2.16; commitid nb3iuXZFglTTXQTA; 1.1.2.16 date 2018.09.30.01.48.27; author pgoyette; state Exp; branches; next 1.1.2.17; commitid SsFZjxjG4y9uj4UA; 1.1.2.17 date 2018.10.02.22.00.47; author pgoyette; state Exp; branches; next 1.1.2.18; commitid QXf9fuuVyFOtXqUA; 1.1.2.18 date 2018.10.12.04.12.06; author pgoyette; state Exp; branches; next 1.1.2.19; commitid a5RH286GSAJMICVA; 1.1.2.19 date 2019.01.13.23.33.07; author pgoyette; state Exp; branches; next 1.1.2.20; commitid BgKFWlD1idnM9G7B; 1.1.2.20 date 2019.01.14.00.16.32; author pgoyette; state Exp; branches; next 1.1.2.21; commitid OAgX2EpgWRHxoG7B; 1.1.2.21 date 2019.01.14.13.35.53; author pgoyette; state Exp; branches; next 1.1.2.22; commitid igWm1ymELsoFOK7B; 1.1.2.22 date 2019.01.15.03.44.06; author pgoyette; state Exp; branches; next 1.1.2.23; commitid iusQk7YeHsBYvP7B; 1.1.2.23 date 2019.01.15.22.06.34; author pgoyette; state Exp; branches; next 1.1.2.24; commitid RA0AERl8I6L5CV7B; 1.1.2.24 date 2019.01.18.05.42.34; author pgoyette; state Exp; branches; next 1.1.2.25; commitid tpis47NbTETA4e8B; 1.1.2.25 date 2019.01.18.05.53.58; author pgoyette; state Exp; branches; next 1.1.2.26; commitid mfYZfIfX5pGs8e8B; 1.1.2.26 date 2019.01.25.22.56.54; author pgoyette; state Exp; branches; next 1.1.2.27; commitid xmBsQXtr3W7szd9B; 1.1.2.27 date 2019.01.26.03.37.13; author pgoyette; state Exp; branches; next ; commitid tuqd0plgPuKI7f9B; desc @@ 1.5 log @update the rf / netbsd32 comment. @ text @/* $NetBSD: TODO.compat-module,v 1.4 2019/02/04 00:03:24 pgoyette Exp $ */ DONE ---- 1. Removed the building of the compat library - it is no longer needed. 2. Reverted some intentional auto-load breakage for loading the sysv_ipc module; the breakage was introduced as the fix for a build break. 3. Split the sysv_ipc compat routines into their own compat_sysv module. 4. Resolved some inter-module dependencies. 5. Extracted some net/if.c compat routines into the compat module, and replaced the originals with indirect (vectored) function calls. 6. Reconfirmed existing compat-module dependencies, and update the defopt/defflag lines in the config files* as needed, to insure that built-in dependencies get resolved. 7. Fixed limits on the number of module dependencies and maximum recursion level (for auto-loading) have been removed. Previous code for reporting module status to userland has been versioned and moved to the (new) compat_80 module. 8. The old monolithic compat module has been broken into multiple modules, one for each old NetBSD version. The monolithic compat module is no longer available. Similarly, the compat_sysv and compat_netbsd32 modules have also been split into several version-specific modules, and the mini- monolithic versions of these modules are no longer provided. 9. syscalls.master has been updated to autoload the version-specific compat modules rather than the monolithic modules. 10. Separated COMPAT_BSDPTY stuff, allowing the COMPAT_60 module to be built regardless. 11. Implemented a MP-safe mechanism for installing and removing function pointers, preventing them from being unloaded (via modunload) while in use. Thanks to riastradh@@ for the template code. 12. Finished splitting the vnd_30 and vnd_50 compat code into separate modules. 13. Cleaned up some previous vectored routines (related to if_43.c) to use the MP-safe mechanism. 14. Organized (some of) the netbsd32 machine-dependent code to fit a common build framework, and split version-specific code from baseline code as needed. More work may be needed here (see #18 below). 15. The rtsock.c code has been split into two separate source files, one for use in -current and one which is shared with COMPAT_50 (the code is shared with -current, but macros are used to define version- specific routine names and variable types). Version-specific parts of rtsock.c for compat_14 and compat_70 have also been split out and included in the relevant version-specific compat modules. TODO - Not required for branch merge ------------------------------------ 16. Audit the entire code base for any remaining embedded #ifdef's for COMPAT_xx. When found, move the actual compat code into the compat hierarchy and replace originals with indirect (vectored) calls. 17. The compat_60 module still needs some work for XEN systems. We probably need some build infrastructure changes to ensure that XEN (and, for i386, XEN-PAE) modules are build with the correct macros defined and with -I directories specified in the same order as for building kernels. See PR port-xen/53130. This currently prevents loading of micro-code updates for amd64 processors running XEN kernels. This limitation also exists on HEAD. 18. There seems to be quite a bit of MD compat_xx code, in the various sys/arch/ directories. I haven't yet looked at any of this. But it seems to me that the MI compat build infrastructure should have some mechanism to "reach over" to the MD code, #include a Makefile.inc file, and perhaps define something to enable the MI modcmd code to call a compat_xx_MD_init() routine. Note also that there are a few bits of MD code that is COMPAT_44 related. (The only bit of MI COMPAT_44 code is in the single module shared by COMPAT_43 and COMPAT_09.) This affects the cesfic, hp300, news68k, and x68k platforms, all in their respective machdep.c source file. Additionally, the zaurus platform defines COMPAT_44 in its INSTALL kernel configuration - but no other configuration files! As far as I can tell, none of the MD compat code is currently built into the monolithic COMPAT module on HEAD. Thus, its absence from any of the version-specific modules is not a regression. 19. For compat_50, there are some things in dev/gpio and dev/wscons/wsmux that I haven't been able to cleanly separate. These items are not currently included in the monolithic COMPAT module on HEAD, so lack of integration on the branch is not a regression. 20. Find all the remaining dependencies on the compat_utils routines and deal with them appropriately. For now, we simply ensure that they are included in every kernel via 'options COMPAT_UTILS' in file sys/conf/std 21. The netbsd32_machine32_hook should be moved out of the main kernel and into the compat_netbsd32 module. Unfortunately there are some machines which include the consumer of this hook but do not have a compat_netbsd32 module (specifically, i386 and sgimips). This should be sorted out sometime soon, but does not block merging. 22. Note that the MPSAFE kernel option is currently not specified for building modules, nor is it included in any standard kernel configuration files. If you build a custom kernel with the MPSAFE option set, and you also use modules (especially those modules for network interface device drivers), you'll need to build custom modules, too. The MPSAFE stuff needs to be extracted out and made into "hooks". 23. The raidframe-netbsd32 compat code needs to be better separated from the main raidframe module. The current mechanism requires us to include compat/netbsd32/netbsd32.h in rf_netbsdkintf.c to get various structure definitions. This should all be handled in the compat module, but requires that the code in the ioctl switch be moved into a function so the compat code can call it directly and handle the ioctl commands entirely. @ 1.5.2.1 log @file TODO.compat-module was added on branch phil-wifi on 2019-06-10 21:42:38 +0000 @ text @d1 123 @ 1.5.2.2 log @Sync with HEAD @ text @a0 123 /* $NetBSD: TODO.compat-module,v 1.5 2019/02/04 22:00:51 mrg Exp $ */ DONE ---- 1. Removed the building of the compat library - it is no longer needed. 2. Reverted some intentional auto-load breakage for loading the sysv_ipc module; the breakage was introduced as the fix for a build break. 3. Split the sysv_ipc compat routines into their own compat_sysv module. 4. Resolved some inter-module dependencies. 5. Extracted some net/if.c compat routines into the compat module, and replaced the originals with indirect (vectored) function calls. 6. Reconfirmed existing compat-module dependencies, and update the defopt/defflag lines in the config files* as needed, to insure that built-in dependencies get resolved. 7. Fixed limits on the number of module dependencies and maximum recursion level (for auto-loading) have been removed. Previous code for reporting module status to userland has been versioned and moved to the (new) compat_80 module. 8. The old monolithic compat module has been broken into multiple modules, one for each old NetBSD version. The monolithic compat module is no longer available. Similarly, the compat_sysv and compat_netbsd32 modules have also been split into several version-specific modules, and the mini- monolithic versions of these modules are no longer provided. 9. syscalls.master has been updated to autoload the version-specific compat modules rather than the monolithic modules. 10. Separated COMPAT_BSDPTY stuff, allowing the COMPAT_60 module to be built regardless. 11. Implemented a MP-safe mechanism for installing and removing function pointers, preventing them from being unloaded (via modunload) while in use. Thanks to riastradh@@ for the template code. 12. Finished splitting the vnd_30 and vnd_50 compat code into separate modules. 13. Cleaned up some previous vectored routines (related to if_43.c) to use the MP-safe mechanism. 14. Organized (some of) the netbsd32 machine-dependent code to fit a common build framework, and split version-specific code from baseline code as needed. More work may be needed here (see #18 below). 15. The rtsock.c code has been split into two separate source files, one for use in -current and one which is shared with COMPAT_50 (the code is shared with -current, but macros are used to define version- specific routine names and variable types). Version-specific parts of rtsock.c for compat_14 and compat_70 have also been split out and included in the relevant version-specific compat modules. TODO - Not required for branch merge ------------------------------------ 16. Audit the entire code base for any remaining embedded #ifdef's for COMPAT_xx. When found, move the actual compat code into the compat hierarchy and replace originals with indirect (vectored) calls. 17. The compat_60 module still needs some work for XEN systems. We probably need some build infrastructure changes to ensure that XEN (and, for i386, XEN-PAE) modules are build with the correct macros defined and with -I directories specified in the same order as for building kernels. See PR port-xen/53130. This currently prevents loading of micro-code updates for amd64 processors running XEN kernels. This limitation also exists on HEAD. 18. There seems to be quite a bit of MD compat_xx code, in the various sys/arch/ directories. I haven't yet looked at any of this. But it seems to me that the MI compat build infrastructure should have some mechanism to "reach over" to the MD code, #include a Makefile.inc file, and perhaps define something to enable the MI modcmd code to call a compat_xx_MD_init() routine. Note also that there are a few bits of MD code that is COMPAT_44 related. (The only bit of MI COMPAT_44 code is in the single module shared by COMPAT_43 and COMPAT_09.) This affects the cesfic, hp300, news68k, and x68k platforms, all in their respective machdep.c source file. Additionally, the zaurus platform defines COMPAT_44 in its INSTALL kernel configuration - but no other configuration files! As far as I can tell, none of the MD compat code is currently built into the monolithic COMPAT module on HEAD. Thus, its absence from any of the version-specific modules is not a regression. 19. For compat_50, there are some things in dev/gpio and dev/wscons/wsmux that I haven't been able to cleanly separate. These items are not currently included in the monolithic COMPAT module on HEAD, so lack of integration on the branch is not a regression. 20. Find all the remaining dependencies on the compat_utils routines and deal with them appropriately. For now, we simply ensure that they are included in every kernel via 'options COMPAT_UTILS' in file sys/conf/std 21. The netbsd32_machine32_hook should be moved out of the main kernel and into the compat_netbsd32 module. Unfortunately there are some machines which include the consumer of this hook but do not have a compat_netbsd32 module (specifically, i386 and sgimips). This should be sorted out sometime soon, but does not block merging. 22. Note that the MPSAFE kernel option is currently not specified for building modules, nor is it included in any standard kernel configuration files. If you build a custom kernel with the MPSAFE option set, and you also use modules (especially those modules for network interface device drivers), you'll need to build custom modules, too. The MPSAFE stuff needs to be extracted out and made into "hooks". 23. The raidframe-netbsd32 compat code needs to be better separated from the main raidframe module. The current mechanism requires us to include compat/netbsd32/netbsd32.h in rf_netbsdkintf.c to get various structure definitions. This should all be handled in the compat module, but requires that the code in the ioctl switch be moved into a function so the compat code can call it directly and handle the ioctl commands entirely. @ 1.4 log @Note that the current raidframe rf_compat32 implementation is rather "sub-optimal" and needs some TLC. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.3 2019/01/31 03:25:29 pgoyette Exp $ */ d119 5 a123 4 to include compat/netbsd32/netbsd32.h in rf_netbsdkintf.c which requires us to explicitly #define COMPAT_NETBSD32 to get various structure definitions which conflicts with possible definitions of COMPAT_NETBSD32 in opt_compat_netbsd32.h @ 1.3 log @Fix reference to "above-mentioned build break". Since the details of the build break are no longer relevant and no longer mentioned, just refer to "a build break." @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.2 2019/01/27 02:08:33 pgoyette Exp $ */ d116 7 @ 1.2 log @Merge the [pgoyette-compat] branch @ text @d1 1 a1 1 /* $NetBSD$ */ d8 1 a8 2 module; the breakage was introduced as the fix for the above-mentioned build breakage. @ 1.1 log @file TODO.compat-module was initially added on branch pgoyette-compat. @ text @d1 116 @ 1.1.2.1 log @Rename COMPAT-branch-notes to TODO.compat-module @ text @a0 103 /* $NetBSD: COMPAT-branch-notes,v 1.1.2.24 2018/09/08 23:39:21 pgoyette Exp $ */ DONE ---- 1. Returned the build to use a .a compat library rather than a .o library. The original method used was .a but that was changed (fairly recently) as a work-around to address some support routines that were not being included when needed. These support modules are now included in their own module, and the work-around is therefore no longer needed. 2. Reverted some intentional auto-load breakage for loading the sysv_ipc module; the breakage was introduced as the fix for the above-mentioned build breakage. 3. Split the sysv_ipc compat routines into their own compat_sysv module. 4. Resolved some inter-module dependencies. 5. Extracted some net/if.c compat routines into the compat module, and replaced the originals with indirect (vectored) function calls. 6. Reconfirmed existing compat-module dependencies, and update the defopt/defflag lines in the config files* as needed, to insure that built-in dependencies get resolved. 7. Fixed limits on the number of module depedencies and maximum recursion level have been removed. Previous code for reporting module status to userland has been versioned and moved to the compat_80 module. 8. The old monolithic compat module has been broken into multiple modules, one for each old NetBSD version. The monolithic module is still available. Similarly, the compat_sysv module has also been split into several version-specific modules, and the mini-monolithic compat_sysv module is still provided. 9. syscalls.master has been updated to autoload the version-specific compat modules rather than the monolithic modules. 10. Separated COMPAT_BSDPTY stuff, allowing the COMPAT_60 module to be built regardless. TODO - Required for branch merge -------------------------------- none TODO - Not required for branch merge ------------------------------------ 1. Audit the entire code base for any remaining embedded #ifdef's for COMPAT_xx. When found, move the actual compat code into the compat hierarchy and replace originals with indirect (vectored) calls. 2. The rtsock compat code is a disaster, with rtsock_50.c #include-ing the main rtsock.c code with various manipulations of the COMPAT_50 macro. Once rtsock is separated, compat_14 references to rtsock_50 routines needs to be verified. Currently, this entire code is built for the monolithic COMPAT module, but there's no way to reach the entry points, so none of the compat code can be executed, neither on the branch nor on HEAD. 3. The compat_60 module still needs some work for XEN systems. We probably need some build infrastructure changes to ensure that XEN (and, for i386, XEN-PAE) modules are build with the correct macros defined and with -I directories specified in the same order as for building kernels. See PR port-xen/53130. This currently prevents loading of micro-code updates for amd64 processors running XEN kernels. This limitation also exists on HEAD. 4. There seems to be quite a bit of MD compat_xx code, in the various sys/arch/ directories. I haven't yet looked at any of this. But it seems to me that the MI compat build infrastructure should have some mechanism to "reach over" to the MD code, #include a Makefile.inc file, and perhaps define something to enable the MI modcmd code to call a compat_xx_MD_init() routine. Note also that there are a few bits of MD code that is COMPAT_44 related. (The only bit of MI COMPAT_44 code is in the single module shared by COMPAT_43 and COMPAT_09.) This affects the cesfic, hp300, news68k, and x68k platforms, all in their respective machdep.c source file. Additionally, the zaurus platform defines COMPAT_44 in its INSTALL kernel configuration - but no other configuration files! As far as I can tell, none of the MD compat code is currently built into the monolithic COMPAT module on HEAD. Thus, its absence from any of the version-specific modules is not a regression. 5. For compat_50, in addition to rtsock there are some things in dev/vnd, dev/gpio, and dev/wscons/wsmux that I haven't been able to cleanly separate. These items are not currently included in the monolithic COMPAT module on HEAD, so lack of integration on the branch is not a regression. 6. Even though the build mechanism has been switched back to using a .a compat library, it might be useful to make it work with the .o library. @ 1.1.2.2 log @Note that the compat_netbsd32 module will be split into version-specific components. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.1 2018/09/09 02:20:17 pgoyette Exp $ */ d34 1 a34 1 is no longer available. d38 1 a38 1 is no longer provided. d49 1 a49 2 1. Replace version-specific parts of the compat_netbsd32 module with individual modules. Update dependencies accordingly. @ 1.1.2.3 log @Update @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.2 2018/09/10 08:49:25 pgoyette Exp $ */ d49 2 a50 3 1. Replace version-specific parts of the compat_netbsd32 module (and also the compat_netbsd32_sysv module) with individual modules. Update dependencies accordingly. @ 1.1.2.4 log @Add entry for the need to use localcount(9) to protect removal of vectored routine pointers. Thanks riastradh@@ @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.3 2018/09/11 08:42:45 pgoyette Exp $ */ a52 5 2. Wherever we have vectors function calls, we need to protect all uses of the vector using localcount(9). And when unloading a module, we need to localcount_drain() after replacing the function pointer but before letting the module disappear. @ 1.1.2.5 log @Update for recent work and recent discoveries @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.4 2018/09/14 06:21:17 pgoyette Exp $ */ a45 3 11. Implemented a MP-safe mechanism for installing and removing function pointers. Thanks to riastradh@@ for the template code. d53 4 a56 15 2. Need to finish cleaning up the netbsd32 machine-dependent code, since the MI code assumes that there's MD file available. 3. Still have some work to do to split the vnd_30 and vnd_50 compat code into separate modules. 4. The ieee_80211 compat code needs to be verified to make sure it is handling the if43_20 compat routine cvtcmd() correctly. 5. There are a few function pointers in netbsd32 module that need to be converted to the new MP-safe mechanism. See files netbsd32_mod.c netbsd32_module.c netbsd32_compat_80.[ch] amd64's machdep.c and machdep_16.c @ 1.1.2.6 log @Update for having (mostly) finished the netbsd32 module split. Renumber so each entry is unique. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.5 2018/09/17 10:06:29 pgoyette Exp $ */ a48 4 12. Replace version-specific parts of the compat_netbsd32 module (and also the compat_netbsd32_sysv module) with individual modules. Update dependencies accordingly. (Done, but see #13 below.) d52 5 a56 1 13. Need to finish cleaning up the netbsd32 machine-dependent code, since d59 1 a59 1 14. Still have some work to do to split the vnd_30 and vnd_50 compat d62 1 a62 1 15. The ieee_80211 compat code needs to be verified to make sure it is d65 1 a65 1 16. There are a few function pointers in netbsd32 module that need to d75 1 a75 1 17. Audit the entire code base for any remaining embedded #ifdef's for d79 1 a79 1 18. The rtsock compat code is a disaster, with rtsock_50.c #include-ing d89 1 a89 1 19. The compat_60 module still needs some work for XEN systems. We d97 1 a97 1 20. There seems to be quite a bit of MD compat_xx code, in the various d115 1 a115 1 21. For compat_50, in addition to rtsock there are some things in dev/vnd, d121 1 a121 1 22. Even though the build mechanism has been switched back to using a @ 1.1.2.7 log @The vnd_30 and vnd_50 stuff is done - move the entry @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.6 2018/09/18 01:11:33 pgoyette Exp $ */ a52 3 13. Still have some work to do to split the vnd_30 and vnd_50 compat code into separate modules. d56 1 a56 1 14. Need to finish cleaning up the netbsd32 machine-dependent code, since d59 3 @ 1.1.2.8 log @More updates. Use past tense for completed items, and note clean-up of pre-existing function pointers. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.7 2018/09/20 07:32:50 pgoyette Exp $ */ d53 2 a54 5 13. Finished splitting the vnd_30 and vnd_50 compat code into separate modules. 14. Cleaned up some previous vectored routines (related to if_43.c) to use the MP-safe mechanism. d59 1 a59 1 15. Need to finish cleaning up the netbsd32 machine-dependent code, since d62 1 a62 1 16. The ieee_80211 compat code needs to be verified to make sure it is d65 1 a65 1 17. There are a few function pointers in netbsd32 module that need to d75 1 a75 1 18. Audit the entire code base for any remaining embedded #ifdef's for d79 1 a79 1 19. The rtsock compat code is a disaster, with rtsock_50.c #include-ing d89 1 a89 1 20. The compat_60 module still needs some work for XEN systems. We d97 1 a97 1 21. There seems to be quite a bit of MD compat_xx code, in the various d115 5 a119 4 22. For compat_50, in addition to rtsock there are some things in dev/gpio and dev/wscons/wsmux that I haven't been able to cleanly separate. These items are not currently included in the monolithic COMPAT module on HEAD, so lack of integration on the branch is not a regression. d121 1 a121 1 23. Even though the build mechanism has been switched back to using a @ 1.1.2.9 log @Make a note about clockctl vs NTP @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.8 2018/09/21 02:53:00 pgoyette Exp $ */ a126 2 24. The clockctl module currently assumes that NTP exists. We need to introduce some hook(s) for this. @ 1.1.2.10 log @Update note on NTP @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.9 2018/09/24 00:03:53 pgoyette Exp $ */ d127 2 a128 5 24. We need a mechanism to determine, at run-time, whether or not the NTP option was selected. Even though the NTP code is not modular, other modules (such as clockctl) need to know whether NTP routines are available. @ 1.1.2.11 log @Put the NTP issue in the "required before merge" section. Note that the compat library is completely gone now, both .o and .a variants. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.10 2018/09/24 23:23:26 pgoyette Exp $ */ d5 6 a10 1 1. Removed the building of the compat library - it is no longer needed. a74 5 18. We need a mechanism to determine, at run-time, whether or not the NTP option was selected. Even though the NTP code is not modular, other modules (such as clockctl) need to know whether NTP routines are available. d78 1 a78 1 19. Audit the entire code base for any remaining embedded #ifdef's for d82 1 a82 1 20. The rtsock compat code is a disaster, with rtsock_50.c #include-ing d92 1 a92 1 21. The compat_60 module still needs some work for XEN systems. We d100 1 a100 1 22. There seems to be quite a bit of MD compat_xx code, in the various d118 1 a118 1 23. For compat_50, in addition to rtsock there are some things in dev/gpio d122 9 @ 1.1.2.12 log @Replace the NTP issue with one for COREDUMP. This is a major problem for machine-dependant part of compat_netbsd32 @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.11 2018/09/24 23:28:55 pgoyette Exp $ */ d70 4 a73 1 18. Need to untangle the machdep COREDUMP stuff. @ 1.1.2.13 log @We've already done the compat_80 module stuff, so remove it. The coredump issue was a red-herring, replace it with an entry for completing and "hooking up" the compat_netbsd32_machdep_13 and _16 stuff @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.12 2018/09/25 21:44:30 pgoyette Exp $ */ d63 8 a70 2 17. Need to "hookup" the netbds32_machdep_13 and netbsd32_machdep_16 stuff for amd64 and arm; probably also need empty stubs for other arch's d75 1 a75 1 18. Audit the entire code base for any remaining embedded #ifdef's for d79 1 a79 1 19. The rtsock compat code is a disaster, with rtsock_50.c #include-ing d89 1 a89 1 20. The compat_60 module still needs some work for XEN systems. We d97 1 a97 1 21. There seems to be quite a bit of MD compat_xx code, in the various d115 1 a115 1 22. For compat_50, in addition to rtsock there are some things in dev/gpio @ 1.1.2.14 log @Remove the entry for MD compat_13 and _16 code. It's done for amd64 and arm, and mips will be done while verifying the mips builds. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.13 2018/09/27 02:27:05 pgoyette Exp $ */ d63 3 d69 1 a69 1 17. Audit the entire code base for any remaining embedded #ifdef's for d73 1 a73 1 18. The rtsock compat code is a disaster, with rtsock_50.c #include-ing d83 1 a83 1 19. The compat_60 module still needs some work for XEN systems. We d91 1 a91 1 20. There seems to be quite a bit of MD compat_xx code, in the various d109 1 a109 1 21. For compat_50, in addition to rtsock there are some things in dev/gpio @ 1.1.2.15 log @Add a note to revisit the compat_utils stuff, find and document all of its dependencies. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.14 2018/09/27 03:54:25 pgoyette Exp $ */ d110 1 a110 5 22. Find all the remaining dependencies on the compat_utils routines and deal with them appropriately. For now, we simply ensure that they are included in every kernel via 'options COMPAT_UTILS' in file sys/conf/std @ 1.1.2.16 log @Note issue with compat_sunos vs sparc64's compat_netbsd32 @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.15 2018/09/28 09:36:20 pgoyette Exp $ */ d58 1 a58 3 the MI code assumes that there's MD file available. This is done, but there's still an issue with the compat_netbsd32 for sparc64 - it wants to reference emul_sunos but doesn't include sunos_exec.c in the build. @ 1.1.2.17 log @Update @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.16 2018/09/30 01:48:27 pgoyette Exp $ */ a53 3 15. Organized netbsd32 machine-dependent code to fit a common build framework, and split version-specific code from baseline code as needed. d57 5 @ 1.1.2.18 log @Remove the last item in the need-for-merge section. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.17 2018/10/02 22:00:47 pgoyette Exp $ */ d58 6 d66 1 a66 1 16. Audit the entire code base for any remaining embedded #ifdef's for d70 1 a70 1 17. The rtsock compat code is a disaster, with rtsock_50.c #include-ing d80 1 a80 1 18. The compat_60 module still needs some work for XEN systems. We d88 1 a88 1 19. There seems to be quite a bit of MD compat_xx code, in the various d106 1 a106 1 20. For compat_50, in addition to rtsock there are some things in dev/gpio d111 1 a111 1 21. Find all the remaining dependencies on the compat_utils routines and @ 1.1.2.19 log @Note that rtsock_50 is now functional, even though the implementation remains sub-optimal. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.18 2018/10/12 04:12:06 pgoyette Exp $ */ a57 7 16. While the rtsock_50 situation is still a disaster (rtsock_50.c #include-s the main rtsock.c code with various COMPAT_50-dependant macro definitions and redefinitions), the basic functionality works, and the compat_14 references to rtsock_50 routines seems to be correct. The rtsock_50.c stuff should still be rewritten at some future time, but it's not urgent. d60 1 a60 1 17. Audit the entire code base for any remaining embedded #ifdef's for d64 10 @ 1.1.2.20 log @Note the desire to return some callback functions to having a void type, rather than int (changing them was necessary to use a common return type for all callbacks). @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.19 2019/01/13 23:33:07 pgoyette Exp $ */ a105 4 22. Several hook callback routines have had their return type changed from "void" to "int" in order to provide a common type in the hook structure. Ideally, I'd like to revert these back to "void". @ 1.1.2.21 log @Remove recently-added entry concerning routines whose return type had been changed from void to int. This is now handled by the new void-typed hooks. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.20 2019/01/14 00:16:32 pgoyette Exp $ */ d107 3 @ 1.1.2.22 log @Note completion of separating rtsock.c into pieces. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.21 2019/01/14 13:35:53 pgoyette Exp $ */ d58 6 a63 4 16. The rtsock.c code has been split into two separate source files, one for use -current and one which is shared with COMPAT_50 (the code is shared, but macros are used to define version-specific routine names and variable types). @ 1.1.2.23 log @Now that the rtsock_50 stuff has been disentangled, remove a reference to that in another entry. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.22 2019/01/15 03:44:06 pgoyette Exp $ */ d95 4 a98 4 20. For compat_50, there are some things in dev/gpio and dev/wscons/wsmux that I haven't been able to cleanly separate. These items are not currently included in the monolithic COMPAT module on HEAD, so lack of integration on the branch is not a regression. @ 1.1.2.24 log @Some tweaks, some typos. General clean-up, no significant changes. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.23 2019/01/15 22:06:34 pgoyette Exp $ */ d22 1 a22 1 7. Fixed limits on the number of module dependencies and maximum d25 1 a25 1 (new) compat_80 module. d46 1 a46 1 dependencies accordingly. (Done, but see #19 below.) d54 3 a56 3 15. Organized (some of) the netbsd32 machine-dependent code to fit a common build framework, and split version-specific code from baseline code as needed. d59 3 a61 3 one for use in -current and one which is shared with COMPAT_50 (the code is shared with -current, but macros are used to define version- specific routine names and variable types). @ 1.1.2.25 log @Add some details to some of the entries. @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.24 2019/01/18 05:42:34 pgoyette Exp $ */ d23 3 a25 3 recursion level (for auto-loading) have been removed. Previous code for reporting module status to userland has been versioned and moved to the (new) compat_80 module. d28 2 a29 2 modules, one for each old NetBSD version. The monolithic compat module is no longer available. d31 3 a33 3 Similarly, the compat_sysv and compat_netbsd32 modules have also been split into several version-specific modules, and the mini- monolithic versions of these modules are no longer provided. d42 1 a42 2 pointers, preventing them from being unloaded (via modunload) while in use. Thanks to riastradh@@ for the template code. d44 5 a48 1 12. Finished splitting the vnd_30 and vnd_50 compat code into separate d51 1 a51 1 13. Cleaned up some previous vectored routines (related to if_43.c) to d54 1 a54 1 14. Organized (some of) the netbsd32 machine-dependent code to fit a d56 1 a56 1 code as needed. More work may be needed here (see #18 below). d58 1 a58 1 15. The rtsock.c code has been split into two separate source files, d61 1 a61 3 specific routine names and variable types). Version-specific parts of rtsock.c for compat_14 and compat_70 have also been split out and included in the relevant version-specific compat modules. d65 1 a65 1 16. Audit the entire code base for any remaining embedded #ifdef's for d69 1 a69 1 17. The compat_60 module still needs some work for XEN systems. We d77 1 a77 1 18. There seems to be quite a bit of MD compat_xx code, in the various d95 1 a95 1 19. For compat_50, there are some things in dev/gpio and dev/wscons/wsmux d100 1 a100 1 20. Find all the remaining dependencies on the compat_utils routines and @ 1.1.2.26 log @Note the future need to sort out placement of the netbsd32_machine32_hook @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.25 2019/01/18 05:53:58 pgoyette Exp $ */ a103 5 21. The netbsd32_machine32_hook should be moved out of the main kernel and into the compat_netbsd32 module. Unfortunately there are some machines which include the consumer of this hook but do not have a compat_netbsd32 module (specifically, i386 and sgimips). This should be sorted out sometime soon, but does not block merging. @ 1.1.2.27 log @Add a note concerning MPSAFE @ text @d1 1 a1 1 /* $NetBSD: TODO.compat-module,v 1.1.2.26 2019/01/25 22:56:54 pgoyette Exp $ */ a108 8 22. Note that the MPSAFE kernel option is currently not specified for building modules, nor is it included in any standard kernel configuration files. If you build a custom kernel with the MPSAFE option set, and you also use modules (especially those modules for network interface device drivers), you'll need to build custom modules, too. The MPSAFE stuff needs to be extracted out and made into "hooks". @