You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'master' into for-next
Conflicts: fs/exofs/inode.c
This commit is contained in:
@@ -7,3 +7,15 @@ Description:
|
||||
0 -> resumed
|
||||
|
||||
(_UDC_ is the name of the USB Device Controller driver)
|
||||
|
||||
What: /sys/devices/platform/_UDC_/gadget/gadget-lunX/nofua
|
||||
Date: July 2010
|
||||
Contact: Andy Shevchenko <andy.shevchenko@gmail.com>
|
||||
Description:
|
||||
Show or set the reaction on the FUA (Force Unit Access) bit in
|
||||
the SCSI WRITE(10,12) commands when a gadget in USB Mass
|
||||
Storage mode.
|
||||
|
||||
Possible values are:
|
||||
1 -> ignore the FUA flag
|
||||
0 -> obey the FUA flag
|
||||
|
||||
@@ -45,7 +45,7 @@ PDF := $(patsubst %.xml, %.pdf, $(BOOKS))
|
||||
pdfdocs: $(PDF)
|
||||
|
||||
HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS)))
|
||||
htmldocs: $(HTML)
|
||||
htmldocs: $(HTML) xmldoclinks
|
||||
$(call build_main_index)
|
||||
$(call build_images)
|
||||
|
||||
|
||||
@@ -229,6 +229,22 @@ on working with the default settings initially.</para>
|
||||
and LIRC_SETUP_END. Drivers can also choose to ignore these ioctls.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>LIRC_SET_WIDEBAND_RECEIVER</term>
|
||||
<listitem>
|
||||
<para>Some receivers are equipped with special wide band receiver which is intended
|
||||
to be used to learn output of existing remote.
|
||||
Calling that ioctl with (1) will enable it, and with (0) disable it.
|
||||
This might be useful of receivers that have otherwise narrow band receiver
|
||||
that prevents them to be used with some remotes.
|
||||
Wide band receiver might also be more precise
|
||||
On the other hand its disadvantage it usually reduced range of reception.
|
||||
Note: wide band receiver might be implictly enabled if you enable
|
||||
carrier reports. In that case it will be disabled as soon as you disable
|
||||
carrier reports. Trying to disable wide band receiver while carrier
|
||||
reports are active will do nothing.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</section>
|
||||
|
||||
@@ -240,6 +240,45 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
|
||||
<entry>r<subscript>1</subscript></entry>
|
||||
<entry>r<subscript>0</subscript></entry>
|
||||
</row>
|
||||
<row id="V4L2-PIX-FMT-BGR666">
|
||||
<entry><constant>V4L2_PIX_FMT_BGR666</constant></entry>
|
||||
<entry>'BGRH'</entry>
|
||||
<entry></entry>
|
||||
<entry>b<subscript>5</subscript></entry>
|
||||
<entry>b<subscript>4</subscript></entry>
|
||||
<entry>b<subscript>3</subscript></entry>
|
||||
<entry>b<subscript>2</subscript></entry>
|
||||
<entry>b<subscript>1</subscript></entry>
|
||||
<entry>b<subscript>0</subscript></entry>
|
||||
<entry>g<subscript>5</subscript></entry>
|
||||
<entry>g<subscript>4</subscript></entry>
|
||||
<entry></entry>
|
||||
<entry>g<subscript>3</subscript></entry>
|
||||
<entry>g<subscript>2</subscript></entry>
|
||||
<entry>g<subscript>1</subscript></entry>
|
||||
<entry>g<subscript>0</subscript></entry>
|
||||
<entry>r<subscript>5</subscript></entry>
|
||||
<entry>r<subscript>4</subscript></entry>
|
||||
<entry>r<subscript>3</subscript></entry>
|
||||
<entry>r<subscript>2</subscript></entry>
|
||||
<entry></entry>
|
||||
<entry>r<subscript>1</subscript></entry>
|
||||
<entry>r<subscript>0</subscript></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row id="V4L2-PIX-FMT-BGR24">
|
||||
<entry><constant>V4L2_PIX_FMT_BGR24</constant></entry>
|
||||
<entry>'BGR3'</entry>
|
||||
@@ -700,6 +739,45 @@ defined in error. Drivers may interpret them as in <xref
|
||||
<entry>b<subscript>1</subscript></entry>
|
||||
<entry>b<subscript>0</subscript></entry>
|
||||
</row>
|
||||
<row id="V4L2-PIX-FMT-BGR666">
|
||||
<entry><constant>V4L2_PIX_FMT_BGR666</constant></entry>
|
||||
<entry>'BGRH'</entry>
|
||||
<entry></entry>
|
||||
<entry>b<subscript>5</subscript></entry>
|
||||
<entry>b<subscript>4</subscript></entry>
|
||||
<entry>b<subscript>3</subscript></entry>
|
||||
<entry>b<subscript>2</subscript></entry>
|
||||
<entry>b<subscript>1</subscript></entry>
|
||||
<entry>b<subscript>0</subscript></entry>
|
||||
<entry>g<subscript>5</subscript></entry>
|
||||
<entry>g<subscript>4</subscript></entry>
|
||||
<entry></entry>
|
||||
<entry>g<subscript>3</subscript></entry>
|
||||
<entry>g<subscript>2</subscript></entry>
|
||||
<entry>g<subscript>1</subscript></entry>
|
||||
<entry>g<subscript>0</subscript></entry>
|
||||
<entry>r<subscript>5</subscript></entry>
|
||||
<entry>r<subscript>4</subscript></entry>
|
||||
<entry>r<subscript>3</subscript></entry>
|
||||
<entry>r<subscript>2</subscript></entry>
|
||||
<entry></entry>
|
||||
<entry>r<subscript>1</subscript></entry>
|
||||
<entry>r<subscript>0</subscript></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row><!-- id="V4L2-PIX-FMT-BGR24" -->
|
||||
<entry><constant>V4L2_PIX_FMT_BGR24</constant></entry>
|
||||
<entry>'BGR3'</entry>
|
||||
|
||||
@@ -360,14 +360,6 @@ When: 2.6.33
|
||||
Why: Should be implemented in userspace, policy daemon.
|
||||
Who: Johannes Berg <johannes@sipsolutions.net>
|
||||
|
||||
---------------------------
|
||||
|
||||
What: CONFIG_INOTIFY
|
||||
When: 2.6.33
|
||||
Why: last user (audit) will be converted to the newer more generic
|
||||
and more easily maintained fsnotify subsystem
|
||||
Who: Eric Paris <eparis@redhat.com>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: sound-slot/service-* module aliases and related clutters in
|
||||
|
||||
@@ -92,8 +92,8 @@ prototypes:
|
||||
void (*destroy_inode)(struct inode *);
|
||||
void (*dirty_inode) (struct inode *);
|
||||
int (*write_inode) (struct inode *, int);
|
||||
void (*drop_inode) (struct inode *);
|
||||
void (*delete_inode) (struct inode *);
|
||||
int (*drop_inode) (struct inode *);
|
||||
void (*evict_inode) (struct inode *);
|
||||
void (*put_super) (struct super_block *);
|
||||
void (*write_super) (struct super_block *);
|
||||
int (*sync_fs)(struct super_block *sb, int wait);
|
||||
@@ -101,14 +101,13 @@ prototypes:
|
||||
int (*unfreeze_fs) (struct super_block *);
|
||||
int (*statfs) (struct dentry *, struct kstatfs *);
|
||||
int (*remount_fs) (struct super_block *, int *, char *);
|
||||
void (*clear_inode) (struct inode *);
|
||||
void (*umount_begin) (struct super_block *);
|
||||
int (*show_options)(struct seq_file *, struct vfsmount *);
|
||||
ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
|
||||
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
|
||||
|
||||
locking rules:
|
||||
All may block.
|
||||
All may block [not true, see below]
|
||||
None have BKL
|
||||
s_umount
|
||||
alloc_inode:
|
||||
@@ -116,22 +115,25 @@ destroy_inode:
|
||||
dirty_inode: (must not sleep)
|
||||
write_inode:
|
||||
drop_inode: !!!inode_lock!!!
|
||||
delete_inode:
|
||||
evict_inode:
|
||||
put_super: write
|
||||
write_super: read
|
||||
sync_fs: read
|
||||
freeze_fs: read
|
||||
unfreeze_fs: read
|
||||
statfs: no
|
||||
remount_fs: maybe (see below)
|
||||
clear_inode:
|
||||
statfs: maybe(read) (see below)
|
||||
remount_fs: write
|
||||
umount_begin: no
|
||||
show_options: no (namespace_sem)
|
||||
quota_read: no (see below)
|
||||
quota_write: no (see below)
|
||||
|
||||
->remount_fs() will have the s_umount exclusive lock if it's already mounted.
|
||||
When called from get_sb_single, it does NOT have the s_umount lock.
|
||||
->statfs() has s_umount (shared) when called by ustat(2) (native or
|
||||
compat), but that's an accident of bad API; s_umount is used to pin
|
||||
the superblock down when we only have dev_t given us by userland to
|
||||
identify the superblock. Everything else (statfs(), fstatfs(), etc.)
|
||||
doesn't hold it when calling ->statfs() - superblock is pinned down
|
||||
by resolving the pathname passed to syscall.
|
||||
->quota_read() and ->quota_write() functions are both guaranteed to
|
||||
be the only ones operating on the quota file by the quota code (via
|
||||
dqio_sem) (unless an admin really wants to screw up something and
|
||||
|
||||
@@ -273,3 +273,48 @@ it's safe to remove it. If you don't need it, remove it.
|
||||
deliberate; as soon as struct block_device * is propagated in a reasonable
|
||||
way by that code fixing will become trivial; until then nothing can be
|
||||
done.
|
||||
|
||||
[mandatory]
|
||||
|
||||
block truncatation on error exit from ->write_begin, and ->direct_IO
|
||||
moved from generic methods (block_write_begin, cont_write_begin,
|
||||
nobh_write_begin, blockdev_direct_IO*) to callers. Take a look at
|
||||
ext2_write_failed and callers for an example.
|
||||
|
||||
[mandatory]
|
||||
|
||||
->truncate is going away. The whole truncate sequence needs to be
|
||||
implemented in ->setattr, which is now mandatory for filesystems
|
||||
implementing on-disk size changes. Start with a copy of the old inode_setattr
|
||||
and vmtruncate, and the reorder the vmtruncate + foofs_vmtruncate sequence to
|
||||
be in order of zeroing blocks using block_truncate_page or similar helpers,
|
||||
size update and on finally on-disk truncation which should not fail.
|
||||
inode_change_ok now includes the size checks for ATTR_SIZE and must be called
|
||||
in the beginning of ->setattr unconditionally.
|
||||
|
||||
[mandatory]
|
||||
|
||||
->clear_inode() and ->delete_inode() are gone; ->evict_inode() should
|
||||
be used instead. It gets called whenever the inode is evicted, whether it has
|
||||
remaining links or not. Caller does *not* evict the pagecache or inode-associated
|
||||
metadata buffers; getting rid of those is responsibility of method, as it had
|
||||
been for ->delete_inode().
|
||||
->drop_inode() returns int now; it's called on final iput() with inode_lock
|
||||
held and it returns true if filesystems wants the inode to be dropped. As before,
|
||||
generic_drop_inode() is still the default and it's been updated appropriately.
|
||||
generic_delete_inode() is also alive and it consists simply of return 1. Note that
|
||||
all actual eviction work is done by caller after ->drop_inode() returns.
|
||||
clear_inode() is gone; use end_writeback() instead. As before, it must
|
||||
be called exactly once on each call of ->evict_inode() (as it used to be for
|
||||
each call of ->delete_inode()). Unlike before, if you are using inode-associated
|
||||
metadata buffers (i.e. mark_buffer_dirty_inode()), it's your responsibility to
|
||||
call invalidate_inode_buffers() before end_writeback().
|
||||
No async writeback (and thus no calls of ->write_inode()) will happen
|
||||
after end_writeback() returns, so actions that should not overlap with ->write_inode()
|
||||
(e.g. freeing on-disk inode if i_nlink is 0) ought to be done after that call.
|
||||
|
||||
NOTE: checking i_nlink in the beginning of ->write_inode() and bailing out
|
||||
if it's zero is not *and* *never* *had* *been* enough. Final unlink() and iput()
|
||||
may happen while the inode is in the middle of ->write_inode(); e.g. if you blindly
|
||||
free the on-disk inode, you may end up doing that while ->write_inode() is writing
|
||||
to it.
|
||||
|
||||
@@ -681,8 +681,11 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
earlycon= [KNL] Output early console device and options.
|
||||
uart[8250],io,<addr>[,options]
|
||||
uart[8250],mmio,<addr>[,options]
|
||||
uart[8250],mmio32,<addr>[,options]
|
||||
Start an early, polled-mode console on the 8250/16550
|
||||
UART at the specified I/O port or MMIO address.
|
||||
MMIO inter-register address stride is either 8bit (mmio)
|
||||
or 32bit (mmio32).
|
||||
The options are the same as for ttyS, above.
|
||||
|
||||
earlyprintk= [X86,SH,BLACKFIN]
|
||||
|
||||
@@ -9,7 +9,7 @@ compatible with the USB 1.1 standard. It defines three transfer speeds:
|
||||
- "Low Speed" 1.5 Mbit/sec
|
||||
|
||||
USB 1.1 only addressed full speed and low speed. High speed devices
|
||||
can be used on USB 1.1 systems, but they slow down to USB 1.1 speeds.
|
||||
can be used on USB 1.1 systems, but they slow down to USB 1.1 speeds.
|
||||
|
||||
USB 1.1 devices may also be used on USB 2.0 systems. When plugged
|
||||
into an EHCI controller, they are given to a USB 1.1 "companion"
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
-*- org -*-
|
||||
|
||||
* Overview
|
||||
|
||||
The Multifunction Composite Gadget (or g_multi) is a composite gadget
|
||||
that makes extensive use of the composite framework to provide
|
||||
a... multifunction gadget.
|
||||
|
||||
In it's standard configuration it provides a single USB configuration
|
||||
with RNDIS[1] (that is Ethernet), USB CDC[2] ACM (that is serial) and
|
||||
USB Mass Storage functions.
|
||||
|
||||
A CDC ECM (Ethernet) function may be turned on via a Kconfig option
|
||||
and RNDIS can be turned off. If they are both enabled the gadget will
|
||||
have two configurations -- one with RNDIS and another with CDC ECM[3].
|
||||
|
||||
Please not that if you use non-standard configuration (that is enable
|
||||
CDC ECM) you may need to change vendor and/or product ID.
|
||||
|
||||
* Host drivers
|
||||
|
||||
To make use of the gadget one needs to make it work on host side --
|
||||
without that there's no hope of achieving anything with the gadget.
|
||||
As one might expect, things one need to do very from system to system.
|
||||
|
||||
** Linux host drivers
|
||||
|
||||
Since the gadget uses standard composite framework and appears as such
|
||||
to Linux host it does not need any additional drivers on Linux host
|
||||
side. All the functions are handled by respective drivers developed
|
||||
for them.
|
||||
|
||||
This is also true for two configuration set-up with RNDIS
|
||||
configuration being the first one. Linux host will use the second
|
||||
configuration with CDC ECM which should work better under Linux.
|
||||
|
||||
** Windows host drivers
|
||||
|
||||
For the gadget two work under Windows two conditions have to be met:
|
||||
|
||||
*** Detecting as composite gadget
|
||||
|
||||
First of all, Windows need to detect the gadget as an USB composite
|
||||
gadget which on its own have some conditions[4]. If they are met,
|
||||
Windows lets USB Generic Parent Driver[5] handle the device which then
|
||||
tries to much drivers for each individual interface (sort of, don't
|
||||
get into too many details).
|
||||
|
||||
The good news is: you do not have to worry about most of the
|
||||
conditions!
|
||||
|
||||
The only thing to worry is that the gadget has to have a single
|
||||
configuration so a dual RNDIS and CDC ECM gadget won't work unless you
|
||||
create a proper INF -- and of course, if you do submit it!
|
||||
|
||||
*** Installing drivers for each function
|
||||
|
||||
The other, trickier thing is making Windows install drivers for each
|
||||
individual function.
|
||||
|
||||
For mass storage it is trivial since Windows detect it's an interface
|
||||
implementing USB Mass Storage class and selects appropriate driver.
|
||||
|
||||
Things are harder with RDNIS and CDC ACM.
|
||||
|
||||
**** RNDIS
|
||||
|
||||
To make Windows select RNDIS drivers for the first function in the
|
||||
gadget, one needs to use the [[file:linux.inf]] file provided with this
|
||||
document. It "attaches" Window's RNDIS driver to the first interface
|
||||
of the gadget.
|
||||
|
||||
Please note, that while testing we encountered some issues[6] when
|
||||
RNDIS was not the first interface. You do not need to worry abut it
|
||||
unless you are trying to develop your own gadget in which case watch
|
||||
out for this bug.
|
||||
|
||||
**** CDC ACM
|
||||
|
||||
Similarly, [[file:linux-cdc-acm.inf]] is provided for CDC ACM.
|
||||
|
||||
**** Customising the gadget
|
||||
|
||||
If you intend to hack the g_multi gadget be advised that rearranging
|
||||
functions will obviously change interface numbers for each of the
|
||||
functionality. As an effect provided INFs won't work since they have
|
||||
interface numbers hard-coded in them (it's not hard to change those
|
||||
though[7]).
|
||||
|
||||
This also means, that after experimenting with g_multi and changing
|
||||
provided functions one should change gadget's vendor and/or product ID
|
||||
so there will be no collision with other customised gadgets or the
|
||||
original gadget.
|
||||
|
||||
Failing to comply may cause brain damage after wondering for hours why
|
||||
things don't work as intended before realising Windows have cached
|
||||
some drivers information (changing USB port may sometimes help plus
|
||||
you might try using USBDeview[8] to remove the phantom device).
|
||||
|
||||
**** INF testing
|
||||
|
||||
Provided INF files have been tested on Windows XP SP3, Windows Vista
|
||||
and Windows 7, all 32-bit versions. It should work on 64-bit versions
|
||||
as well. It most likely won't work on Windows prior to Windows XP
|
||||
SP2.
|
||||
|
||||
** Other systems
|
||||
|
||||
At this moment, drivers for any other systems have not been tested.
|
||||
Knowing how MacOS is based on BSD and BSD is an Open Source it is
|
||||
believed that it should (read: "I have no idea whether it will") work
|
||||
out-of-the-box.
|
||||
|
||||
For more exotic systems I have even less to say...
|
||||
|
||||
Any testing and drivers *are* *welcome*!
|
||||
|
||||
* Authors
|
||||
|
||||
This document has been written by Michal Nazarewicz
|
||||
([[mailto:mina86@mina86.com]]). INF files have been hacked with
|
||||
support of Marek Szyprowski ([[mailto:m.szyprowski@samsung.com]]) and
|
||||
Xiaofan Chen ([[mailto:xiaofanc@gmail.com]]) basing on the MS RNDIS
|
||||
template[9], Microchip's CDC ACM INF file and David Brownell's
|
||||
([[mailto:dbrownell@users.sourceforge.net]]) original INF files.
|
||||
|
||||
* Footnotes
|
||||
|
||||
[1] Remote Network Driver Interface Specification,
|
||||
[[http://msdn.microsoft.com/en-us/library/ee484414.aspx]].
|
||||
|
||||
[2] Communications Device Class Abstract Control Model, spec for this
|
||||
and other USB classes can be found at
|
||||
[[http://www.usb.org/developers/devclass_docs/]].
|
||||
|
||||
[3] CDC Ethernet Control Model.
|
||||
|
||||
[4] [[http://msdn.microsoft.com/en-us/library/ff537109(v=VS.85).aspx]]
|
||||
|
||||
[5] [[http://msdn.microsoft.com/en-us/library/ff539234(v=VS.85).aspx]]
|
||||
|
||||
[6] To put it in some other nice words, Windows failed to respond to
|
||||
any user input.
|
||||
|
||||
[7] You may find [[http://www.cygnal.org/ubb/Forum9/HTML/001050.html]]
|
||||
useful.
|
||||
|
||||
[8] http://www.nirsoft.net/utils/usb_devices_view.html
|
||||
|
||||
[9] [[http://msdn.microsoft.com/en-us/library/ff570620.aspx]]
|
||||
@@ -151,88 +151,23 @@ instructions below to install the host side driver.
|
||||
|
||||
Installing the Windows Host ACM Driver
|
||||
--------------------------------------
|
||||
To use the Windows ACM driver you must have the files "gserial.inf"
|
||||
and "usbser.sys" together in a folder on the Windows machine.
|
||||
|
||||
The "gserial.inf" file is given here.
|
||||
|
||||
-------------------- CUT HERE --------------------
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
|
||||
Provider=%LINUX%
|
||||
DriverVer=08/17/2004,0.0.2.0
|
||||
; Copyright (C) 2004 Al Borchers (alborchers@steinerpoint.com)
|
||||
|
||||
[Manufacturer]
|
||||
%LINUX%=GSerialDeviceList
|
||||
|
||||
[GSerialDeviceList]
|
||||
%GSERIAL%=GSerialInstall, USB\VID_0525&PID_A4A7
|
||||
|
||||
[DestinationDirs]
|
||||
DefaultDestDir=10,System32\Drivers
|
||||
|
||||
[GSerialInstall]
|
||||
CopyFiles=GSerialCopyFiles
|
||||
AddReg=GSerialAddReg
|
||||
|
||||
[GSerialCopyFiles]
|
||||
usbser.sys
|
||||
|
||||
[GSerialAddReg]
|
||||
HKR,,DevLoader,,*ntkern
|
||||
HKR,,NTMPDriver,,usbser.sys
|
||||
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
|
||||
|
||||
[GSerialInstall.Services]
|
||||
AddService = usbser,0x0002,GSerialService
|
||||
|
||||
[GSerialService]
|
||||
DisplayName = %GSERIAL_DISPLAY_NAME%
|
||||
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType = 3 ; SERVICE_DEMAND_START
|
||||
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
|
||||
ServiceBinary = %10%\System32\Drivers\usbser.sys
|
||||
LoadOrderGroup = Base
|
||||
|
||||
[Strings]
|
||||
LINUX = "Linux"
|
||||
GSERIAL = "Gadget Serial"
|
||||
GSERIAL_DISPLAY_NAME = "USB Gadget Serial Driver"
|
||||
-------------------- CUT HERE --------------------
|
||||
|
||||
The "usbser.sys" file comes with various versions of Windows.
|
||||
For example, it can be found on Windows XP typically in
|
||||
|
||||
C:\WINDOWS\Driver Cache\i386\driver.cab
|
||||
|
||||
Or it can be found on the Windows 98SE CD in the "win98" folder
|
||||
in the "DRIVER11.CAB" through "DRIVER20.CAB" cab files. You will
|
||||
need the DOS "expand" program, the Cygwin "cabextract" program, or
|
||||
a similar program to unpack these cab files and extract "usbser.sys".
|
||||
|
||||
For example, to extract "usbser.sys" into the current directory
|
||||
on Windows XP, open a DOS window and run a command like
|
||||
|
||||
expand C:\WINDOWS\Driver~1\i386\driver.cab -F:usbser.sys .
|
||||
|
||||
(Thanks to Nishant Kamat for pointing out this DOS command.)
|
||||
To use the Windows ACM driver you must have the "linux-cdc-acm.inf"
|
||||
file (provided along this document) which supports all recent versions
|
||||
of Windows.
|
||||
|
||||
When the gadget serial driver is loaded and the USB device connected
|
||||
to the Windows host with a USB cable, Windows should recognize the
|
||||
gadget serial device and ask for a driver. Tell Windows to find the
|
||||
driver in the folder that contains "gserial.inf" and "usbser.sys".
|
||||
driver in the folder that contains the "linux-cdc-acm.inf" file.
|
||||
|
||||
For example, on Windows XP, when the gadget serial device is first
|
||||
plugged in, the "Found New Hardware Wizard" starts up. Select
|
||||
"Install from a list or specific location (Advanced)", then on
|
||||
the next screen select "Include this location in the search" and
|
||||
enter the path or browse to the folder containing "gserial.inf" and
|
||||
"usbser.sys". Windows will complain that the Gadget Serial driver
|
||||
has not passed Windows Logo testing, but select "Continue anyway"
|
||||
and finish the driver installation.
|
||||
"Install from a list or specific location (Advanced)", then on the
|
||||
next screen select "Include this location in the search" and enter the
|
||||
path or browse to the folder containing the "linux-cdc-acm.inf" file.
|
||||
Windows will complain that the Gadget Serial driver has not passed
|
||||
Windows Logo testing, but select "Continue anyway" and finish the
|
||||
driver installation.
|
||||
|
||||
On Windows XP, in the "Device Manager" (under "Control Panel",
|
||||
"System", "Hardware") expand the "Ports (COM & LPT)" entry and you
|
||||
@@ -345,5 +280,3 @@ you should be able to send data back and forth between the gadget
|
||||
side and host side systems. Anything you type on the terminal
|
||||
window on the gadget side should appear in the terminal window on
|
||||
the host side and vice versa.
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ immediately usable. That means the system must do many things, including:
|
||||
|
||||
- Bind a driver to that device. Bus frameworks do that using a
|
||||
device driver's probe() routine.
|
||||
|
||||
|
||||
- Tell other subsystems to configure the new device. Print
|
||||
queues may need to be enabled, networks brought up, disk
|
||||
partitions mounted, and so on. In some cases these will
|
||||
@@ -84,7 +84,7 @@ USB MODUTILS SUPPORT
|
||||
Current versions of module-init-tools will create a "modules.usbmap" file
|
||||
which contains the entries from each driver's MODULE_DEVICE_TABLE. Such
|
||||
files can be used by various user mode policy agents to make sure all the
|
||||
right driver modules get loaded, either at boot time or later.
|
||||
right driver modules get loaded, either at boot time or later.
|
||||
|
||||
See <linux/usb.h> for full information about such table entries; or look
|
||||
at existing drivers. Each table entry describes one or more criteria to
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
; Windows USB CDC ACM Setup File
|
||||
|
||||
; Based on INF template which was:
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
; Copyright (c) 2007 Microchip Technology Inc.
|
||||
; likely to be covered by the MLPL as found at:
|
||||
; <http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL>.
|
||||
; For use only on Windows operating systems.
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
|
||||
Provider=%Linux%
|
||||
DriverVer=11/15/2007,5.1.2600.0
|
||||
|
||||
[Manufacturer]
|
||||
%Linux%=DeviceList, NTamd64
|
||||
|
||||
[DestinationDirs]
|
||||
DefaultDestDir=12
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Windows 2000/XP/Vista-32bit Sections
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
[DriverInstall.nt]
|
||||
include=mdmcpq.inf
|
||||
CopyFiles=DriverCopyFiles.nt
|
||||
AddReg=DriverInstall.nt.AddReg
|
||||
|
||||
[DriverCopyFiles.nt]
|
||||
usbser.sys,,,0x20
|
||||
|
||||
[DriverInstall.nt.AddReg]
|
||||
HKR,,DevLoader,,*ntkern
|
||||
HKR,,NTMPDriver,,USBSER.sys
|
||||
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
|
||||
|
||||
[DriverInstall.nt.Services]
|
||||
AddService=usbser, 0x00000002, DriverService.nt
|
||||
|
||||
[DriverService.nt]
|
||||
DisplayName=%SERVICE%
|
||||
ServiceType=1
|
||||
StartType=3
|
||||
ErrorControl=1
|
||||
ServiceBinary=%12%\USBSER.sys
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Vista-64bit Sections
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
[DriverInstall.NTamd64]
|
||||
include=mdmcpq.inf
|
||||
CopyFiles=DriverCopyFiles.NTamd64
|
||||
AddReg=DriverInstall.NTamd64.AddReg
|
||||
|
||||
[DriverCopyFiles.NTamd64]
|
||||
USBSER.sys,,,0x20
|
||||
|
||||
[DriverInstall.NTamd64.AddReg]
|
||||
HKR,,DevLoader,,*ntkern
|
||||
HKR,,NTMPDriver,,USBSER.sys
|
||||
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
|
||||
|
||||
[DriverInstall.NTamd64.Services]
|
||||
AddService=usbser, 0x00000002, DriverService.NTamd64
|
||||
|
||||
[DriverService.NTamd64]
|
||||
DisplayName=%SERVICE%
|
||||
ServiceType=1
|
||||
StartType=3
|
||||
ErrorControl=1
|
||||
ServiceBinary=%12%\USBSER.sys
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Vendor and Product ID Definitions
|
||||
;------------------------------------------------------------------------------
|
||||
; When developing your USB device, the VID and PID used in the PC side
|
||||
; application program and the firmware on the microcontroller must match.
|
||||
; Modify the below line to use your VID and PID. Use the format as shown
|
||||
; below.
|
||||
; Note: One INF file can be used for multiple devices with different
|
||||
; VID and PIDs. For each supported device, append
|
||||
; ",USB\VID_xxxx&PID_yyyy" to the end of the line.
|
||||
;------------------------------------------------------------------------------
|
||||
[SourceDisksFiles]
|
||||
[SourceDisksNames]
|
||||
[DeviceList]
|
||||
%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02
|
||||
|
||||
[DeviceList.NTamd64]
|
||||
%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; String Definitions
|
||||
;------------------------------------------------------------------------------
|
||||
;Modify these strings to customize your device
|
||||
;------------------------------------------------------------------------------
|
||||
[Strings]
|
||||
Linux = "Linux Developer Community"
|
||||
DESCRIPTION = "Gadget Serial"
|
||||
SERVICE = "USB RS-232 Emulation Driver"
|
||||
+44
-178
@@ -1,200 +1,66 @@
|
||||
; MS-Windows driver config matching some basic modes of the
|
||||
; Linux-USB Ethernet/RNDIS gadget firmware:
|
||||
;
|
||||
; - RNDIS plus CDC Ethernet ... this may be familiar as a DOCSIS
|
||||
; cable modem profile, and supports most non-Microsoft USB hosts
|
||||
;
|
||||
; - RNDIS plus CDC Subset ... used by hardware that incapable of
|
||||
; full CDC Ethernet support.
|
||||
;
|
||||
; Microsoft only directly supports RNDIS drivers, and bundled them into XP.
|
||||
; The Microsoft "Remote NDIS USB Driver Kit" is currently found at:
|
||||
; http://www.microsoft.com/whdc/device/network/ndis/rmndis.mspx
|
||||
|
||||
; Based on template INF file found at
|
||||
; <http://msdn.microsoft.com/en-us/library/ff570620.aspx>
|
||||
; which was:
|
||||
; Copyright (c) Microsoft Corporation
|
||||
; and released under the MLPL as found at:
|
||||
; <http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL>.
|
||||
; For use only on Windows operating systems.
|
||||
|
||||
[Version]
|
||||
Signature = "$CHICAGO$"
|
||||
Signature = "$Windows NT$"
|
||||
Class = Net
|
||||
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
|
||||
Provider = %Linux%
|
||||
Compatible = 1
|
||||
MillenniumPreferred = .ME
|
||||
DriverVer = 03/30/2004,0.0.0.0
|
||||
; catalog file would be used by WHQL
|
||||
;CatalogFile = Linux.cat
|
||||
DriverVer = 06/21/2006,6.0.6000.16384
|
||||
|
||||
[Manufacturer]
|
||||
%Linux% = LinuxDevices,NT.5.1
|
||||
%Linux% = LinuxDevices,NTx86,NTamd64,NTia64
|
||||
|
||||
[LinuxDevices]
|
||||
; NetChip IDs, used by both firmware modes
|
||||
%LinuxDevice% = RNDIS, USB\VID_0525&PID_a4a2
|
||||
; Decoration for x86 architecture
|
||||
[LinuxDevices.NTx86]
|
||||
%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00
|
||||
|
||||
[LinuxDevices.NT.5.1]
|
||||
%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2
|
||||
; Decoration for x64 architecture
|
||||
[LinuxDevices.NTamd64]
|
||||
%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00
|
||||
|
||||
; Decoration for ia64 architecture
|
||||
[LinuxDevices.NTia64]
|
||||
%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00
|
||||
|
||||
;@@@ This is the common setting for setup
|
||||
[ControlFlags]
|
||||
ExcludeFromSelect=*
|
||||
|
||||
; Windows 98, Windows 98 Second Edition specific sections --------
|
||||
|
||||
[RNDIS]
|
||||
DeviceID = usb8023
|
||||
MaxInstance = 512
|
||||
DriverVer = 03/30/2004,0.0.0.0
|
||||
AddReg = RNDIS_AddReg_98, RNDIS_AddReg_Common
|
||||
|
||||
[RNDIS_AddReg_98]
|
||||
HKR, , DevLoader, 0, *ndis
|
||||
HKR, , DeviceVxDs, 0, usb8023.sys
|
||||
HKR, NDIS, LogDriverName, 0, "usb8023"
|
||||
HKR, NDIS, MajorNdisVersion, 1, 5
|
||||
HKR, NDIS, MinorNdisVersion, 1, 0
|
||||
HKR, Ndi\Interfaces, DefUpper, 0, "ndis3,ndis4,ndis5"
|
||||
HKR, Ndi\Interfaces, DefLower, 0, "ethernet"
|
||||
HKR, Ndi\Interfaces, UpperRange, 0, "ndis3,ndis4,ndis5"
|
||||
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
|
||||
HKR, Ndi\Install, ndis3, 0, "RNDIS_Install_98"
|
||||
HKR, Ndi\Install, ndis4, 0, "RNDIS_Install_98"
|
||||
HKR, Ndi\Install, ndis5, 0, "RNDIS_Install_98"
|
||||
HKR, Ndi, DeviceId, 0, "USB\VID_0525&PID_a4a2"
|
||||
|
||||
[RNDIS_Install_98]
|
||||
CopyFiles=RNDIS_CopyFiles_98
|
||||
|
||||
[RNDIS_CopyFiles_98]
|
||||
usb8023.sys, usb8023w.sys, , 0
|
||||
rndismp.sys, rndismpw.sys, , 0
|
||||
|
||||
; Windows Millennium Edition specific sections --------------------
|
||||
|
||||
[RNDIS.ME]
|
||||
DeviceID = usb8023
|
||||
MaxInstance = 512
|
||||
DriverVer = 03/30/2004,0.0.0.0
|
||||
AddReg = RNDIS_AddReg_ME, RNDIS_AddReg_Common
|
||||
Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI
|
||||
BusType = 15
|
||||
|
||||
[RNDIS_AddReg_ME]
|
||||
HKR, , DevLoader, 0, *ndis
|
||||
HKR, , DeviceVxDs, 0, usb8023.sys
|
||||
HKR, NDIS, LogDriverName, 0, "usb8023"
|
||||
HKR, NDIS, MajorNdisVersion, 1, 5
|
||||
HKR, NDIS, MinorNdisVersion, 1, 0
|
||||
HKR, Ndi\Interfaces, DefUpper, 0, "ndis3,ndis4,ndis5"
|
||||
HKR, Ndi\Interfaces, DefLower, 0, "ethernet"
|
||||
HKR, Ndi\Interfaces, UpperRange, 0, "ndis3,ndis4,ndis5"
|
||||
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
|
||||
HKR, Ndi\Install, ndis3, 0, "RNDIS_Install_ME"
|
||||
HKR, Ndi\Install, ndis4, 0, "RNDIS_Install_ME"
|
||||
HKR, Ndi\Install, ndis5, 0, "RNDIS_Install_ME"
|
||||
HKR, Ndi, DeviceId, 0, "USB\VID_0525&PID_a4a2"
|
||||
|
||||
[RNDIS_Install_ME]
|
||||
CopyFiles=RNDIS_CopyFiles_ME
|
||||
|
||||
[RNDIS_CopyFiles_ME]
|
||||
usb8023.sys, usb8023m.sys, , 0
|
||||
rndismp.sys, rndismpm.sys, , 0
|
||||
|
||||
; Windows 2000 specific sections ---------------------------------
|
||||
|
||||
[RNDIS.NT]
|
||||
Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI
|
||||
BusType = 15
|
||||
DriverVer = 03/30/2004,0.0.0.0
|
||||
AddReg = RNDIS_AddReg_NT, RNDIS_AddReg_Common
|
||||
CopyFiles = RNDIS_CopyFiles_NT
|
||||
|
||||
[RNDIS.NT.Services]
|
||||
AddService = USB_RNDIS, 2, RNDIS_ServiceInst_NT, RNDIS_EventLog
|
||||
|
||||
[RNDIS_CopyFiles_NT]
|
||||
; no rename of files on Windows 2000, use the 'k' names as is
|
||||
usb8023k.sys, , , 0
|
||||
rndismpk.sys, , , 0
|
||||
|
||||
[RNDIS_ServiceInst_NT]
|
||||
DisplayName = %ServiceDisplayName%
|
||||
ServiceType = 1
|
||||
StartType = 3
|
||||
ErrorControl = 1
|
||||
ServiceBinary = %12%\usb8023k.sys
|
||||
LoadOrderGroup = NDIS
|
||||
AddReg = RNDIS_WMI_AddReg_NT
|
||||
|
||||
[RNDIS_WMI_AddReg_NT]
|
||||
HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismpk.sys"
|
||||
|
||||
; Windows XP specific sections -----------------------------------
|
||||
|
||||
; DDInstall section
|
||||
; References the in-build Netrndis.inf
|
||||
[RNDIS.NT.5.1]
|
||||
Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI
|
||||
BusType = 15
|
||||
DriverVer = 03/30/2004,0.0.0.0
|
||||
AddReg = RNDIS_AddReg_NT, RNDIS_AddReg_Common
|
||||
; no copyfiles - the files are already in place
|
||||
Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI
|
||||
BusType = 15
|
||||
; NEVER REMOVE THE FOLLOWING REFERENCE FOR NETRNDIS.INF
|
||||
include = netrndis.inf
|
||||
needs = Usb_Rndis.ndi
|
||||
AddReg = Rndis_AddReg_Vista
|
||||
|
||||
; DDInstal.Services section
|
||||
[RNDIS.NT.5.1.Services]
|
||||
AddService = USB_RNDIS, 2, RNDIS_ServiceInst_51, RNDIS_EventLog
|
||||
include = netrndis.inf
|
||||
needs = Usb_Rndis.ndi.Services
|
||||
|
||||
[RNDIS_ServiceInst_51]
|
||||
DisplayName = %ServiceDisplayName%
|
||||
ServiceType = 1
|
||||
StartType = 3
|
||||
ErrorControl = 1
|
||||
ServiceBinary = %12%\usb8023.sys
|
||||
LoadOrderGroup = NDIS
|
||||
AddReg = RNDIS_WMI_AddReg_51
|
||||
; Optional registry settings. You can modify as needed.
|
||||
[RNDIS_AddReg_Vista]
|
||||
HKR, NDI\params\VistaProperty, ParamDesc, 0, %Vista_Property%
|
||||
HKR, NDI\params\VistaProperty, type, 0, "edit"
|
||||
HKR, NDI\params\VistaProperty, LimitText, 0, "12"
|
||||
HKR, NDI\params\VistaProperty, UpperCase, 0, "1"
|
||||
HKR, NDI\params\VistaProperty, default, 0, " "
|
||||
HKR, NDI\params\VistaProperty, optional, 0, "1"
|
||||
|
||||
[RNDIS_WMI_AddReg_51]
|
||||
HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismp.sys"
|
||||
|
||||
; Windows 2000 and Windows XP common sections --------------------
|
||||
|
||||
[RNDIS_AddReg_NT]
|
||||
HKR, Ndi, Service, 0, "USB_RNDIS"
|
||||
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
|
||||
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
|
||||
|
||||
[RNDIS_EventLog]
|
||||
AddReg = RNDIS_EventLog_AddReg
|
||||
|
||||
[RNDIS_EventLog_AddReg]
|
||||
HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
|
||||
HKR, , TypesSupported, 0x00010001, 7
|
||||
|
||||
; Common Sections -------------------------------------------------
|
||||
|
||||
[RNDIS_AddReg_Common]
|
||||
HKR, NDI\params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
|
||||
HKR, NDI\params\NetworkAddress, type, 0, "edit"
|
||||
HKR, NDI\params\NetworkAddress, LimitText, 0, "12"
|
||||
HKR, NDI\params\NetworkAddress, UpperCase, 0, "1"
|
||||
HKR, NDI\params\NetworkAddress, default, 0, " "
|
||||
HKR, NDI\params\NetworkAddress, optional, 0, "1"
|
||||
|
||||
[SourceDisksNames]
|
||||
1=%SourceDisk%,,1
|
||||
|
||||
[SourceDisksFiles]
|
||||
usb8023m.sys=1
|
||||
rndismpm.sys=1
|
||||
usb8023w.sys=1
|
||||
rndismpw.sys=1
|
||||
usb8023k.sys=1
|
||||
rndismpk.sys=1
|
||||
|
||||
[DestinationDirs]
|
||||
RNDIS_CopyFiles_98 = 10, system32/drivers
|
||||
RNDIS_CopyFiles_ME = 10, system32/drivers
|
||||
RNDIS_CopyFiles_NT = 12
|
||||
; No sys copyfiles - the sys files are already in-build
|
||||
; (part of the operating system).
|
||||
; We do not support XP SP1-, 2003 SP1-, ME, 9x.
|
||||
|
||||
[Strings]
|
||||
ServiceDisplayName = "USB Remote NDIS Network Device Driver"
|
||||
NetworkAddress = "Network Address"
|
||||
Linux = "Linux Developer Community"
|
||||
LinuxDevice = "Linux USB Ethernet/RNDIS Gadget"
|
||||
SourceDisk = "Ethernet/RNDIS Gadget Driver Install Disk"
|
||||
|
||||
Vista_Property = "Optional Vista Property"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2203,6 +2203,12 @@ F: drivers/misc/cb710/
|
||||
F: drivers/mmc/host/cb710-mmc.*
|
||||
F: include/linux/cb710.h
|
||||
|
||||
ENE KB2426 (ENE0100/ENE020XX) INFRARED RECEIVER
|
||||
M: Maxim Levitsky <maximlevitsky@gmail.com>
|
||||
S: Maintained
|
||||
F: drivers/media/IR/ene_ir.c
|
||||
F: drivers/media/IR/ene_ir.h
|
||||
|
||||
EPSON 1355 FRAMEBUFFER DRIVER
|
||||
M: Christopher Hoover <ch@murgatroid.com>
|
||||
M: Christopher Hoover <ch@hpl.hp.com>
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
# define TIOCPKT_START 8
|
||||
# define TIOCPKT_NOSTOP 16
|
||||
# define TIOCPKT_DOSTOP 32
|
||||
# define TIOCPKT_IOCTL 64
|
||||
|
||||
|
||||
#define TIOCNOTTY 0x5422
|
||||
@@ -91,6 +92,7 @@
|
||||
#define TIOCGSID 0x5429 /* Return the session ID of FD */
|
||||
#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
|
||||
#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
|
||||
#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
|
||||
|
||||
#define TIOCSERCONFIG 0x5453
|
||||
#define TIOCSERGWILD 0x5454
|
||||
@@ -106,7 +108,5 @@
|
||||
|
||||
#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
|
||||
#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
|
||||
#define TIOCGHAYESESP 0x545E /* Get Hayes ESP configuration */
|
||||
#define TIOCSHAYESESP 0x545F /* Set Hayes ESP configuration */
|
||||
|
||||
#endif /* _ASM_ALPHA_IOCTLS_H */
|
||||
|
||||
@@ -3,6 +3,4 @@
|
||||
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#define ISA_DMA_THRESHOLD (~0UL)
|
||||
|
||||
#endif /* !(_ALPHA_SCATTERLIST_H) */
|
||||
|
||||
@@ -180,6 +180,7 @@ struct ktermios {
|
||||
#define FLUSHO 0x00800000
|
||||
#define PENDIN 0x20000000
|
||||
#define IEXTEN 0x00000400
|
||||
#define EXTPROC 0x10000000
|
||||
|
||||
/* Values for the ACTION argument to `tcflow'. */
|
||||
#define TCOOFF 0
|
||||
|
||||
@@ -234,11 +234,11 @@ linux_to_osf_statfs(struct kstatfs *linux_stat, struct osf_statfs __user *osf_st
|
||||
}
|
||||
|
||||
static int
|
||||
do_osf_statfs(struct dentry * dentry, struct osf_statfs __user *buffer,
|
||||
do_osf_statfs(struct path *path, struct osf_statfs __user *buffer,
|
||||
unsigned long bufsiz)
|
||||
{
|
||||
struct kstatfs linux_stat;
|
||||
int error = vfs_statfs(dentry, &linux_stat);
|
||||
int error = vfs_statfs(path, &linux_stat);
|
||||
if (!error)
|
||||
error = linux_to_osf_statfs(&linux_stat, buffer, bufsiz);
|
||||
return error;
|
||||
@@ -252,7 +252,7 @@ SYSCALL_DEFINE3(osf_statfs, char __user *, pathname,
|
||||
|
||||
retval = user_path(pathname, &path);
|
||||
if (!retval) {
|
||||
retval = do_osf_statfs(path.dentry, buffer, bufsiz);
|
||||
retval = do_osf_statfs(&path buffer, bufsiz);
|
||||
path_put(&path);
|
||||
}
|
||||
return retval;
|
||||
@@ -267,7 +267,7 @@ SYSCALL_DEFINE3(osf_fstatfs, unsigned long, fd,
|
||||
retval = -EBADF;
|
||||
file = fget(fd);
|
||||
if (file) {
|
||||
retval = do_osf_statfs(file->f_path.dentry, buffer, bufsiz);
|
||||
retval = do_osf_statfs(&file->f_path, buffer, bufsiz);
|
||||
fput(file);
|
||||
}
|
||||
return retval;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user