freebsd-skq/sys/compat/linux
Doug Ambrisko 060e488247 Enhance the Linux emulation layer to make MegaRAID SAS managements tool happy.
Add back in a scheme to emulate old type major/minor numbers via hooks into
stat, linprocfs to return major/minors that Linux app's expect.  Currently
only /dev/null is always registered.  Drivers can register via the Linux
type shim similar to the ioctl shim but by using
linux_device_register_handler/linux_device_unregister_handler functions.
The structure is:

    struct linux_device_handler {
        char    *bsd_driver_name;
        char    *linux_driver_name;
        char    *bsd_device_name;
        char    *linux_device_name;
        int     linux_major;
        int     linux_minor;
        int     linux_char_device;
    };

Linprocfs uses this to display the major number of the driver.  The
soon to be available linsysfs will use it to fill in the driver name.
Linux_stat uses it to translate the major/minor into Linux type values.

Note major numbers are dynamically assigned via passing in a -1 for
the major number so we don't need to keep track of them.

This is somewhat needed due to us switching to our devfs.  MegaCli
will not run until I add in the linsysfs and mfi Linux compat changes.

Sponsored by:	IronPort Systems
2006-05-05 16:10:45 +00:00
..
linux_file.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_getcwd.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_ioctl.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_ioctl.h Linux compat bits needed to make linux programs use the new ptys : 2006-01-26 01:32:46 +00:00
linux_ipc.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_ipc.h Changes to MI Linux emulation code necessary to run 32-bit Linux binaries 2004-08-16 07:28:16 +00:00
linux_mib.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_mib.h Remove linux_mib_destroy() (which I actually added in between 5.0 and 5.1) 2005-12-15 16:30:41 +00:00
linux_misc.c Unbreaking build by removing a now unused variable. 2006-03-27 23:27:11 +00:00
linux_signal.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_signal.h
linux_socket.c Annotate uses of fgetsock() with indications that they should rely 2006-04-01 15:25:01 +00:00
linux_socket.h
linux_stats.c Enhance the Linux emulation layer to make MegaRAID SAS managements tool happy. 2006-05-05 16:10:45 +00:00
linux_sysctl.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_sysproto.h Handle unimplemented syscall by instantly returning ENOSYS instead of sending 2005-03-07 00:18:06 +00:00
linux_uid16.c Unbreak COMPAT_LINUX32 option support on amd64. 2006-03-19 11:10:33 +00:00
linux_util.c Enhance the Linux emulation layer to make MegaRAID SAS managements tool happy. 2006-05-05 16:10:45 +00:00
linux_util.h Enhance the Linux emulation layer to make MegaRAID SAS managements tool happy. 2006-05-05 16:10:45 +00:00