Home | History | Annotate | Line # | Download | only in kern
compat_stub.c revision 1.1.2.10
      1 /* $NetBSD: compat_stub.c,v 1.1.2.10 2018/03/28 07:51:09 pgoyette Exp $	*/
      2 
      3 /*-
      4  * Copyright (c) 2018 The NetBSD Foundation, Inc.
      5  * All rights reserved.
      6  *
      7  * This code is derived from software contributed to The NetBSD Foundation
      8  * by Paul Goyette
      9  *
     10  * Redistribution and use in source and binary forms, with or without
     11  * modification, are permitted provided that the following conditions
     12  * are met:
     13  * 1. Redistributions of source code must retain the above copyright
     14  *    notice, this list of conditions and the following disclaimer.
     15  * 2. Redistributions in binary form must reproduce the above copyright
     16  *    notice, this list of conditions and the following disclaimer in the
     17  *    documentation and/or other materials provided with the distribution.
     18  *
     19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29  * POSSIBILITY OF SUCH DAMAGE.
     30  */
     31 
     32 #include <sys/cdefs.h>
     33 
     34 #ifdef _KERNEL_OPT
     35 #include "opt_ntp.h"
     36 #endif
     37 
     38 #include <sys/systm.h>
     39 #include <sys/compat_stub.h>
     40 
     41 /*
     42  * Routine vectors for compat_50___sys_ntp_gettime
     43  */
     44 
     45 #ifdef NTP
     46 void (*vec_ntp_gettime)(struct ntptimeval *) = ntp_gettime;
     47 int (*vec_ntp_timestatus)(void) = ntp_timestatus;
     48 #else
     49 void (*vec_ntp_gettime)(struct ntptimeval *) = NULL;
     50 int (*vec_ntp_timestatus)(void) = NULL;
     51 #endif
     52 
     53 /*
     54  * ccd device compatability ioctl
     55  */
     56 int (*compat_ccd_ioctl_60)(dev_t, u_long, void *, int, struct lwp *,
     57     int (*f)(dev_t, u_long, void *, int, struct lwp *)) = (void *)enosys;
     58 
     59 /*
     60  * clockctl device compatability ioctl
     61  */
     62 int (*compat_clockctl_ioctl_50)(dev_t, u_long, void *, int, struct lwp *) =
     63     (void *)enosys;
     64 
     65 /*
     66  * if_sppp device compatability ioctl subroutine
     67  */
     68 int (*sppp_params50)(struct sppp *, u_long, void *) = (void *)enosys;
     69 
     70 /*
     71  * cryptodev compatability ioctl
     72  */
     73 int (*ocryptof50_ioctl)(struct file *, u_long, void *) = (void *)enosys;
     74 
     75 /*
     76  * raidframe compatability
     77  */
     78 int (*raidframe50_ioctl)(int, int, struct RF_Raid_s *, int, void *,
     79     struct RF_Config_s **) = (void *)enosys;
     80 int (*raidframe80_ioctl)(int, int, struct RF_Raid_s *, int, void *,
     81     struct RF_Config_s **) = (void *)enosys;
     82 
     83 /*
     84  * puffs compatability
     85  */
     86 int (*puffs50_compat_outgoing)(struct puffs_req *, struct puffs_req **,
     87     ssize_t *) = (void *)enosys;
     88 void (*puffs50_compat_incoming)(struct puffs_req *, struct puffs_req *) =
     89     (void *)voidop;
     90 
     91 /*
     92  * wsevents compatability
     93  */
     94 int (*wsevent_50_copyout_events)(const struct wscons_event *, int,
     95     struct uio *) = (void *)enosys;
     96 
     97 /*
     98  * sysmon_power compatability
     99  */
    100 void (*compat_sysmon_power_40)(struct power_event *, struct sysmon_pswitch *,
    101     int) = (void *)voidop;
    102 
    103 /*
    104  * bio compatability
    105  */
    106 
    107 int (*compat_bio_30)(void *, u_long, void *, int(*)(void *, u_long, void *)) =
    108     (void *)enosys;
    109 
    110 /*
    111  * vnd ioctl compatability
    112  */
    113 int (*compat_vndioctl_30)(u_long cmd, struct lwp *l, void *data, int unit,
    114     struct vattr *vattr_p, int (*get)(struct lwp *, void *, int,
    115     struct vattr *)) = (void *)enosys;
    116