History log of /src/sys/compat/common/if_43.c |
Revision | | Date | Author | Comments |
1.27 |
| 30-Mar-2023 |
riastradh | atalk(4): Omit spurious satosat.
The input is already a struct sockaddr_at pointer.
|
1.26 |
| 28-Sep-2022 |
msaitoh | branches: 1.26.4; Simplify sys/compat/sys/sockio.h. No functional change intended.
- Move some definitions from sys/compat/sockio.h to compat/net/if.h. struct oif_data in sockio.h and if_data50 are the same, so remove oif_data. Do the same thing to oifdatareq, too. - u_quad_t -> uint64_t. No functional change.
|
1.25 |
| 12-Jun-2020 |
roy | Remove in-kernel handling of Router Advertisements
This is much better handled by a user-land tool. Proposed on tech-net here: https://mail-index.netbsd.org/tech-net/2020/04/22/msg007766.html
Note that the ioctl SIOCGIFINFO_IN6 no longer sets flags. That now needs to be done using the pre-existing SIOCSIFINFO_FLAGS ioctl.
Compat is fully provided where it makes sense, but trying to turn on RA handling will obviously throw an error as it no longer exists.
Note that if you use IPv6 temporary addresses, this now needs to be turned on in dhcpcd.conf(5) rather than in sysctl.conf(5).
|
1.24 |
| 12-Dec-2019 |
pgoyette | Rather than keeping a separate mutex, condvar, and pserialize for each module hook, we can share a common set of synchronization structures. This cuts the amount of cacheline_aligned data for these structures by 50%.
Note that we still have a per-hook localcount, since we need to count individual references.
As discussed with riastradh@
Welcome to 9.99.22 !
|
1.23 |
| 23-Sep-2019 |
maxv | Remove unused assignment. Found by the lgtm bot.
|
1.22 |
| 17-May-2019 |
msaitoh | The max subtype of the ifmedia word is 31. It's too small for Ethernet now. We currently use use it up to 30. We should extend the limit to be able to use more than 10Gbps speeds. Our ifmedia(4) is inconvenience and have some problem so we should redesign the interface, but it's too late for netbsd-9 to do it. So, we keep the data structure size and modify the structure a bit. The strategy is almost the same as FreeBSD. Many bits of IFM_OMASK for Ethernet have not used, so use some of them for Ethernet's subtype.
The differences against FreeBSD are: - We use NetBSD style compat code (i.e. no SIOCGIFXMEDIA). - FreeBSD's IFM_ETH_XTYPE's bit location is from 11 to "14" even though IFM_OMASK is from 8 to "15". We use _IFM_ETH_XTMASK from bit 13 to "15". - FreeBSD changed the meaning of IFM_TYPE_MATCH(). I think we should not do it. We keep it not changing and added new IFM_TYPE_SUBTYPE_MATCH() macro for matching both TYPE and SUBTYPE. - Added up to 400GBASE-SR16.
New layout of the media word is as follows (from ifmedia_h):
* if_media Options word: * Bits Use * ---- ------- * 0-4 Media subtype MAX SUBTYPE == 255 for ETH and 31 for others * 5-7 Media type * 8-15 Type specific options * 16-18 Mode (for multi-mode devices) * 19 (Reserved for Future Use) * 20-27 Shared (global) options * 28-31 Instance * * 3 2 1 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-------+---------------+-+-----+---------------+-----+---------+ * | | |R| | | | | * | IMASK | GMASK |F|MMASK+-----+ OMASK |NMASK| TMASK | * | | |U| |XTMSK| | | | * +-------+---------------+-+-----+-----+---------+-----+---------+ * <-----> <---> <---> * IFM_INST() IFM_MODE() IFM_TYPE() * * IFM_SUBTYPE(other than ETH)<-------> * * <---> IFM_SUBTYPE(ETH)<-------> * * * <-------------> <-------------> * IFM_OPTIONS()
|
1.21 |
| 16-Apr-2019 |
msaitoh | Rename ifreqo2n() and ifreqo2n() to IFREQO2N_43() and IFREQN2O_43(): - ifreqo2n() and ifreqn2o() are for COMPAT_43, so add _43 to the name. - Uppercase to make it clear those are macros.
|
1.20 |
| 01-Mar-2019 |
pgoyette | Rename the MODULE_*_HOOK() macros to MODULE_HOOK_*() as briefly discussed on irc.
NFCI intended.
Ride the earlier kernel bump - it;s getting crowded.
|
1.19 |
| 29-Jan-2019 |
pgoyette | Normalize all the compat hooks' names to the form
<subsystem>_<function>_<version>_hook
NFCI
XXX Note that although this introduces a change in the kernel-to- XXX module interface, we are NOT bumping the kernel version number. XXX We will bump the version number once the interface stabilizes.
|
1.18 |
| 29-Jan-2019 |
pgoyette | Rename the if43_20_hook to if43_cvtcmd_20_hook
|
1.17 |
| 29-Jan-2019 |
pgoyette | The if43_20_hook function returns an errno; use it to determine whether to allow conversion of the ioctl cmd --> ncmd
Should address issue reported by msaitoh@ on irc as well as via e-mail from Patrick Welche and Ryo ONODERA.
|
1.16 |
| 27-Jan-2019 |
pgoyette | Merge the [pgoyette-compat] branch
|
1.15 |
| 06-Sep-2018 |
maxv | Remove the network ATM code.
|
1.14 |
| 29-Jul-2017 |
riastradh | branches: 1.14.2; 1.14.4; Kill needless nested extern of vec_compat_cvtcmd/ioctl.
Already declared in if_43.h.
|
1.13 |
| 05-Nov-2016 |
pgoyette | Move if_43.c back into the shared Makefile.sysio where it really belongs.
Update the code to invoke the two routines compat_cvtcmd() and compat_ifioctl() through indirect pointers. Initialize those pointers in sys/net/if.c and update them in the compat module's initialization code.
Addresses the issue pointed out in PR kern/51598
|
1.12 |
| 25-Jul-2016 |
ozaki-r | Apply if_get/if_put to compat_ifioctl
|
1.11 |
| 11-Jul-2015 |
njoly | branches: 1.11.2; Handle case where compat_ifioctl() is called with ocmd != cmd, as found in compat Linux. Do not crash by ensuring that oifr is correctly set.
Fix crash reported by Robert Swindells on tech-kern@.
|
1.10 |
| 12-May-2015 |
christos | rump is compiled with COMPAT_OSOCK not COMPAT_OIFREQ and the code in if.c is not handling this case properly. Make this work by checking again if we need to convert struct ifreq here, and if we do, we do it ourselves.
|
1.9 |
| 09-Nov-2014 |
maxv | branches: 1.9.2; Do not uselessly include <sys/malloc.h>.
|
1.8 |
| 05-Sep-2014 |
matt | Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
1.7 |
| 01-Jul-2014 |
rtr | branches: 1.7.2; fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
1.6 |
| 22-Jun-2014 |
rtr | * split PRU_CONTROL functionality out of xxx_userreq() switches and place into separate xxx_ioctl() functions. * place KASSERT(req != PRU_CONTROL) inside xxx_userreq() as it is now inappropriate for req = PRU_CONTROL in xxx_userreq(). * replace calls to pr_generic() with req = PRU_CONTROL with pr_ioctl(). * remove & fixup references to PRU_CONTROL xxx_userreq() function comments. * fix various comments references for xxx_userreq() that mentioned PRU_CONTROL as xxx_userreq() no longer handles the request.
a further change will follow to fix parameter and naming inconsistencies retained from original code.
Reviewed by rmind@
|
1.5 |
| 18-May-2014 |
rmind | Add struct pr_usrreqs with a pr_generic function and prepare for the dismantling of pr_usrreq in the protocols; no functional change intended. PRU_ATTACH/PRU_DETACH changes will follow soon.
Bump for struct protosw. Welcome to 6.99.62!
|
1.4 |
| 19-Jan-2011 |
tsutsui | branches: 1.4.16; 1.4.20; 1.4.30; Remove includes <sys/mount.h> and <sys/sched.h> added for <sys/syscallargs.h>. Now they are handled by $sysarghdrextra in sys/kern/syscalls.conf.
|
1.3 |
| 06-Nov-2010 |
christos | branches: 1.3.2; can't map the old and the new SIO calls the way we did before because the numbers have changed. Instead provide a switch. Keep the old code there, to handle cases we did not handle in the first switch, but this is a hack and should be removed.
|
1.2 |
| 17-Mar-2009 |
dyoung | branches: 1.2.2; 1.2.6; #include "opt_compat_netbsd.h" for COMPAT_20.
|
1.1 |
| 14-Nov-2008 |
ad | branches: 1.1.4; 1.1.6; 1.1.8; 1.1.10; - Move some more compat code into sys/compat. - Split 4.3BSD ifioctl stuff into its own file. - Remove some ifdefs that include small fragments of vfs compat code which are difficult to relocate elsewhere.
|
1.1.10.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.1.8.3 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.1.8.2 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.1.8.1 |
| 14-Nov-2008 |
skrll | file if_43.c was added on branch nick-hppapmap on 2009-01-19 13:17:17 +0000
|
1.1.6.2 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.1.6.1 |
| 14-Nov-2008 |
mjf | file if_43.c was added on branch mjf-devfs2 on 2009-01-17 13:28:41 +0000
|
1.1.4.2 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.1.4.1 |
| 14-Nov-2008 |
haad | file if_43.c was added on branch haad-dm on 2008-12-13 01:13:47 +0000
|
1.2.6.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.2.2.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.2.2.1 |
| 17-Mar-2009 |
yamt | file if_43.c was added on branch yamt-nfs-mp on 2009-05-04 08:12:17 +0000
|
1.3.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.4.30.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.4.20.1 |
| 28-Aug-2013 |
rmind | Checkpoint work in progress: - Initial split of the protocol user-request method into the following methods: pr_attach, pr_detach and pr_generic for old the pr_usrreq. - Adjust socreate(9) and sonewconn(9) to call pr_attach without the socket lock held (as a preparation for the locking scheme adjustment). - Adjust all pr_attach routines to assert that PCB is not set. - Sprinkle various comments, document some routines and their locking. - Remove M_PCB, replace with kmem(9). - Fix few bugs spotted on the way.
|
1.4.16.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.16.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.7.2.1 |
| 17-Jan-2015 |
martin | Pull up following revision(s) (requested by maxv in ticket #427): sys/compat/svr4/svr4_schedctl.c: revision 1.8 sys/netinet/tcp_timer.c: revision 1.88 sys/miscfs/genfs/layer_vfsops.c: revision 1.45 sys/compat/svr4/svr4_ioctl.c: revision 1.37 sys/ufs/chfs/chfs_vfsops.c: revision 1.14 sys/miscfs/fdesc/fdesc_vfsops.c: revision 1.91 sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.30 sys/compat/common/kern_time_50.c: revision 1.28 sys/netinet6/ip6_forward.c: revision 1.74 sys/miscfs/umapfs/umap_vnops.c: revision 1.57 sys/compat/svr4/svr4_fcntl.c: revision 1.74 distrib/sets/lists/comp/mi: revision 1.1931 sys/netinet6/udp6_output.c: revision 1.46 sys/fs/puffs/puffs_compat.c: revision 1.3 sys/fs/udf/udf_rename.c: revision 1.11 sys/compat/svr4/svr4_filio.c: revision 1.24 sys/fs/udf/udf_rename.c: revision 1.12 sys/netinet/tcp_usrreq.c: revision 1.202 sys/miscfs/umapfs/umap_subr.c: revision 1.29 sys/compat/linux/common/linux_fadvise64.c: revision 1.3 sys/netinet/if_atm.c: revision 1.34 sys/miscfs/procfs/procfs_subr.c: revision 1.106 sys/miscfs/genfs/layer_subr.c: revision 1.37 sys/netinet/tcp_sack.c: revision 1.30 sys/compat/freebsd/freebsd_misc.c: revision 1.33 sys/compat/freebsd/freebsd_file.c: revision 1.33 sys/ufs/chfs/chfs_vnode.c: revision 1.12 sys/compat/svr4/svr4_ttold.c: revision 1.34 sys/compat/linux/common/linux_file.c: revision 1.114 sys/compat/linux/arch/mips/linux_machdep.c: revision 1.43 sys/compat/linux/common/linux_signal.c: revision 1.76 sys/compat/common/compat_util.c: revision 1.46 sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.18 sys/compat/svr4/svr4_sockio.c: revision 1.36 sys/compat/linux/arch/arm/linux_machdep.c: revision 1.32 sys/compat/svr4/svr4_signal.c: revision 1.66 sys/kern/kern_exec.c: revision 1.410 sys/fs/puffs/puffs_vfsops.c: revision 1.115 sys/compat/svr4/svr4_exec_elf64.c: revision 1.15 sys/compat/linux/arch/i386/linux_machdep.c: revision 1.159 sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.50 sys/compat/linux32/common/linux32_misc.c: revision 1.24 sys/netinet/in_pcb.c: revision 1.153 sys/sys/malloc.h: revision 1.116 sys/compat/common/if_43.c: revision 1.9 share/man/man9/Makefile: revision 1.380 sys/netinet/tcp_vtw.c: revision 1.12 sys/miscfs/umapfs/umap_vfsops.c: revision 1.95 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.186 sys/compat/common/uipc_syscalls_43.c: revision 1.46 sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.115 sys/fs/puffs/puffs_msgif.c: revision 1.97 sys/compat/svr4/svr4_ipc.c: revision 1.27 sys/compat/linux/common/linux_exec.c: revision 1.117 sys/ufs/ext2fs/ext2fs_readwrite.c: revision 1.66 sys/netinet/tcp_output.c: revision 1.179 sys/compat/svr4/svr4_termios.c: revision 1.28 sys/fs/udf/udf_strat_bootstrap.c: revision 1.4 sys/fs/puffs/puffs_subr.c: revision 1.67 sys/fs/puffs/puffs_node.c: revision 1.36 sys/miscfs/overlay/overlay_vnops.c: revision 1.21 sys/fs/cd9660/cd9660_node.c: revision 1.34 sys/netinet/raw_ip.c: revision 1.146 sys/sys/mallocvar.h: revision 1.13 sys/miscfs/overlay/overlay_vfsops.c: revision 1.63 share/man/man9/malloc.9: revision 1.50 sys/netinet6/dest6.c: revision 1.18 sys/compat/linux/common/linux_uselib.c: revision 1.33 sys/compat/linux/common/linux_socket.c: revision 1.120 share/man/man9/malloc.9: revision 1.51 sys/netinet/tcp_subr.c: revision 1.257 sys/compat/linux/common/linux_socketcall.c: revision 1.45 sys/compat/linux/common/linux_fadvise64_64.c: revision 1.3 sys/compat/freebsd/freebsd_ipc.c: revision 1.17 sys/compat/linux/common/linux_misc_notalpha.c: revision 1.109 sys/compat/linux/arch/alpha/linux_pipe.c: revision 1.17 sys/netinet6/in6_pcb.c: revision 1.132 sys/netinet6/in6_ifattach.c: revision 1.94 sys/compat/svr4/svr4_exec_elf32.c: revision 1.15 sys/miscfs/nullfs/null_vfsops.c: revision 1.90 sys/fs/cd9660/cd9660_util.c: revision 1.12 sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.48 sys/compat/freebsd/freebsd_exec_elf32.c: revision 1.20 sys/miscfs/procfs/procfs_vfsops.c: revision 1.94 sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.28 sys/compat/linux/common/linux_sched.c: revision 1.67 sys/compat/linux/common/linux_exec_aout.c: revision 1.67 sys/compat/linux/common/linux_pipe.c: revision 1.67 sys/compat/linux/common/linux_llseek.c: revision 1.34 sys/compat/linux/arch/mips/linux_ptrace.c: revision 1.10 Do not uselessly include <sys/malloc.h>. Cleanup: - remove struct kmembuckets (dead) - correctly deadify MALLOC_XX - remove MALLOC_DEFINE_LIMIT and MALLOC_JUSTDEFINE_LIMIT (dead) - remove malloc_roundup(), malloc_type_setlimit(), MALLOC_DEFINE_LIMIT() and MALLOC_JUSTDEFINE_LIMIT() from man 9 malloc New sentence, new line. Bump date for previous. Obsolete malloc_roundup(9), malloc_type_setlimit(9) and MALLOC_DEFINE_LIMIT(9) man pages.
|
1.9.2.5 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.9.2.4 |
| 05-Dec-2016 |
skrll | Sync with HEAD
|
1.9.2.3 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
1.9.2.2 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.9.2.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.11.2.2 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.11.2.1 |
| 26-Jul-2016 |
pgoyette | Sync with HEAD
|
1.14.4.3 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.14.4.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.14.4.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.14.2.15 |
| 23-Jan-2019 |
pgoyette | Convert the macros for setting and unsetting a hook to generate in-line code rather than using an intermediary hook##set routine. Hooks are set and unset only in one place, so the intermediary routine provides no benefit. IMHO using the macro at the point- of-call is more readable than using it elsewhere in the code and then calling the generated intermediary routine (for which you won't even find its declaration or definition unless you remember to search for the HOOK_SET macro instead).
NFC intended, will verify with a bulk build and an atf test run.
|
1.14.2.14 |
| 22-Jan-2019 |
pgoyette | Convert the MODULE_{,VOID_}HOOK_CALL macros to do everything in-line rather than defining an intermediate hook##call function. Almost all of the hooks are called only once, and although we lose the ability of doing things like
if (MODULE_HOOK_CALL(...) == 0) ...
we simplify things quite a bit. With this change, we no longer need to have both declaration and definition macros, and the definition no longer needs to have both prototype argument list and a "real" argument list.
FWIW, the above if now needs to written as
int ret;
MODULE_HOOK_CALL(..., ret); if (ret == 0) ...
with appropriate use of braces {}.
|
1.14.2.13 |
| 18-Jan-2019 |
pgoyette | Don't restrict hooks to having only int or void types. Pass the hook's type to the various macros, as needed.
Allows us to reduce diffs to original in at least one or two places (we no longer have to provide an additional parameter to the hook routine for returning a non-int return value).
|
1.14.2.12 |
| 14-Jan-2019 |
pgoyette | Create a variant of the HOOK macros that handles hook routines of type void, and use them where appropriate.
|
1.14.2.11 |
| 13-Jan-2019 |
pgoyette | Remove the HOOK2 versions of the MODULE_HOOK macros. There were only a few uses, and using them led to some lack of clarity in the code. Instead, we now use two separate hooks, with names that make it clear(er) what we're doing.
This also positions us to start unraveling some of the rtsock_50 mess, which will need (at least) five hooks.
|
1.14.2.10 |
| 15-Oct-2018 |
pgoyette | Convert a couple more hooks to the MP-safe mechanism.
While here, clean up some headers and remove any that are now empty.
|
1.14.2.9 |
| 03-Oct-2018 |
pgoyette | Don't define if_43_{init,fini}() in multiple .h files.
|
1.14.2.8 |
| 03-Oct-2018 |
pgoyette | Make if_43_{init,fini} return an int, for consistency with all the related *_{init,fini} routines.
|
1.14.2.7 |
| 30-Sep-2018 |
pgoyette | Ssync with HEAD
|
1.14.2.6 |
| 29-Sep-2018 |
pgoyette | In MODULE_HOOK_CALL_DECL we don't need to provide the actual argument list for calling the hook function, nor do we need to provide the default value (for when the hook has not been set).
|
1.14.2.5 |
| 21-Sep-2018 |
pgoyette | Clean-up some pre-existing function-pointer code (related to if_43) to use the new MP-safe mechanism.
|
1.14.2.4 |
| 18-Sep-2018 |
pgoyette | The COMPAT_HOOK macros were renamed to MODULE_HOOK, adjust all callers
|
1.14.2.3 |
| 18-Sep-2018 |
pgoyette | Split the COMPAT_CALL_HOOK to separate the declaration from the implementation. Some hooks are called from multiple source files, and the old method resulted in duplicate implementations.
Implement MP-safe hooks for the usb_subr_30 code. Pass the helper functions as arguments to the compat code so it does not have to determine if the kernel contains usb code.
|
1.14.2.2 |
| 17-Sep-2018 |
pgoyette | Adapt (most of) the indirect function pointers to the new MP-safe mechanism. Still remaining are the compat_netbsd32 stuff, and some usb subroutines.
|
1.14.2.1 |
| 30-Mar-2018 |
pgoyette | Create and build the compat_20 module
|
1.26.4.1 |
| 31-Jul-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #278):
sys/netatalk/ddp_output.c: revision 1.22 sys/compat/common/if_43.c: revision 1.27 sys/netatalk/ddp_input.c: revision 1.34 sys/netatalk/at_control.c: revision 1.43
atalk(4): Don't abuse queue(9) internals.
atalk(4): Omit spurious satosat. The input is already a struct sockaddr_at pointer.
|