Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 72409
b: refs/heads/master
c: c4a6a2a
h: refs/heads/master
i:
  72407: 9690cb5
v: v3
  • Loading branch information
Lennert Buytenhek authored and Dale Farnsworth committed Oct 23, 2007
1 parent 81a55da commit 1559280
Show file tree
Hide file tree
Showing 781 changed files with 13,277 additions and 33,266 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c7ffb6bb7a1b6fe5912a009d561733911769d32b
refs/heads/master: c4a6a2ab5e99980b10d1eef761cd95f2a19ba46d
115 changes: 0 additions & 115 deletions trunk/Documentation/Intel-IOMMU.txt

This file was deleted.

24 changes: 17 additions & 7 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,18 @@ Who: Jiri Slaby <jirislaby@gmail.com>

---------------------------

What: V4L2 VIDIOC_G_MPEGCOMP and VIDIOC_S_MPEGCOMP
When: October 2007
Why: Broken attempt to set MPEG compression parameters. These ioctls are
not able to implement the wide variety of parameters that can be set
by hardware MPEG encoders. A new MPEG control mechanism was created
in kernel 2.6.18 that replaces these ioctls. See the V4L2 specification
(section 1.9: Extended controls) for more information on this topic.
Who: Hans Verkuil <hverkuil@xs4all.nl> and
Mauro Carvalho Chehab <mchehab@infradead.org>

---------------------------

What: dev->power.power_state
When: July 2007
Why: Broken design for runtime control over driver power states, confusing
Expand All @@ -37,10 +49,10 @@ Who: David Miller <davem@davemloft.net>
---------------------------

What: Video4Linux API 1 ioctls and video_decoder.h from Video devices.
When: December 2008
Files: include/linux/video_decoder.h include/linux/videodev.h
Check: include/linux/video_decoder.h include/linux/videodev.h
Why: V4L1 AP1 was replaced by V4L2 API during migration from 2.4 to 2.6
When: December 2006
Files: include/linux/video_decoder.h
Check: include/linux/video_decoder.h
Why: V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6
series. The old API have lots of drawbacks and don't provide enough
means to work with all video and audio standards. The newer API is
already available on the main drivers and should be used instead.
Expand All @@ -49,9 +61,7 @@ Why: V4L1 AP1 was replaced by V4L2 API during migration from 2.4 to 2.6
Decoder iocts are using internally to allow video drivers to
communicate with video decoders. This should also be improved to allow
V4L2 calls being translated into compatible internal ioctls.
Compatibility ioctls will be provided, for a while, via
v4l1-compat module.
Who: Mauro Carvalho Chehab <mchehab@infradead.org>
Who: Mauro Carvalho Chehab <mchehab@brturbo.com.br>

---------------------------

Expand Down
8 changes: 3 additions & 5 deletions trunk/Documentation/filesystems/9p.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,10 @@ OPTIONS

trans=name select an alternative transport. Valid options are
currently:
unix - specifying a named pipe mount point
tcp - specifying a normal TCP/IP connection
fd - used passed file descriptors for connection
unix - specifying a named pipe mount point
tcp - specifying a normal TCP/IP connection
fd - used passed file descriptors for connection
(see rfdno and wfdno)
virtio - connect to the next virtio channel available
(from lguest or KVM with trans_virtio module)

uname=name user name to attempt mount as on the remote server. The
server may override or ignore this value. Certain user
Expand Down
115 changes: 72 additions & 43 deletions trunk/Documentation/filesystems/Exporting
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,9 @@
Making Filesystems Exportable
=============================

Overview
--------

All filesystem operations require a dentry (or two) as a starting
Most filesystem operations require a dentry (or two) as a starting
point. Local applications have a reference-counted hold on suitable
dentries via open file descriptors or cwd/root. However remote
dentrys via open file descriptors or cwd/root. However remote
applications that access a filesystem via a remote filesystem protocol
such as NFS may not be able to hold such a reference, and so need a
different way to refer to a particular dentry. As the alternative
Expand All @@ -16,14 +13,14 @@ server-reboot (among other things, though these tend to be the most
problematic), there is no simple answer like 'filename'.

The mechanism discussed here allows each filesystem implementation to
specify how to generate an opaque (outside of the filesystem) byte
specify how to generate an opaque (out side of the filesystem) byte
string for any dentry, and how to find an appropriate dentry for any
given opaque byte string.
This byte string will be called a "filehandle fragment" as it
corresponds to part of an NFS filehandle.

A filesystem which supports the mapping between filehandle fragments
and dentries will be termed "exportable".
and dentrys will be termed "exportable".



Expand Down Expand Up @@ -92,49 +89,79 @@ For a filesystem to be exportable it must:
1/ provide the filehandle fragment routines described below.
2/ make sure that d_splice_alias is used rather than d_add
when ->lookup finds an inode for a given parent and name.
Typically the ->lookup routine will end with a:

return d_splice_alias(inode, dentry);
Typically the ->lookup routine will end:
if (inode)
return d_splice(inode, dentry);
d_add(dentry, inode);
return NULL;
}



A file system implementation declares that instances of the filesystem
are exportable by setting the s_export_op field in the struct
super_block. This field must point to a "struct export_operations"
struct which has the following members:

encode_fh (optional)
Takes a dentry and creates a filehandle fragment which can later be used
to find or create a dentry for the same object. The default
implementation creates a filehandle fragment that encodes a 32bit inode
and generation number for the inode encoded, and if necessary the
same information for the parent.

fh_to_dentry (mandatory)
Given a filehandle fragment, this should find the implied object and
create a dentry for it (possibly with d_alloc_anon).

fh_to_parent (optional but strongly recommended)
Given a filehandle fragment, this should find the parent of the
implied object and create a dentry for it (possibly with d_alloc_anon).
May fail if the filehandle fragment is too small.

get_parent (optional but strongly recommended)
When given a dentry for a directory, this should return a dentry for
the parent. Quite possibly the parent dentry will have been allocated
by d_alloc_anon. The default get_parent function just returns an error
so any filehandle lookup that requires finding a parent will fail.
->lookup("..") is *not* used as a default as it can leave ".." entries
in the dcache which are too messy to work with.

get_name (optional)
When given a parent dentry and a child dentry, this should find a name
in the directory identified by the parent dentry, which leads to the
object identified by the child dentry. If no get_name function is
supplied, a default implementation is provided which uses vfs_readdir
to find potential names, and matches inode numbers to find the correct
match.
struct which could potentially be full of NULLs, though normally at
least get_parent will be set.

The primary operations are decode_fh and encode_fh.
decode_fh takes a filehandle fragment and tries to find or create a
dentry for the object referred to by the filehandle.
encode_fh takes a dentry and creates a filehandle fragment which can
later be used to find/create a dentry for the same object.

decode_fh will probably make use of "find_exported_dentry".
This function lives in the "exportfs" module which a filesystem does
not need unless it is being exported. So rather that calling
find_exported_dentry directly, each filesystem should call it through
the find_exported_dentry pointer in it's export_operations table.
This field is set correctly by the exporting agent (e.g. nfsd) when a
filesystem is exported, and before any export operations are called.

find_exported_dentry needs three support functions from the
filesystem:
get_name. When given a parent dentry and a child dentry, this
should find a name in the directory identified by the parent
dentry, which leads to the object identified by the child dentry.
If no get_name function is supplied, a default implementation is
provided which uses vfs_readdir to find potential names, and
matches inode numbers to find the correct match.

get_parent. When given a dentry for a directory, this should return
a dentry for the parent. Quite possibly the parent dentry will
have been allocated by d_alloc_anon.
The default get_parent function just returns an error so any
filehandle lookup that requires finding a parent will fail.
->lookup("..") is *not* used as a default as it can leave ".."
entries in the dcache which are too messy to work with.

get_dentry. When given an opaque datum, this should find the
implied object and create a dentry for it (possibly with
d_alloc_anon).
The opaque datum is whatever is passed down by the decode_fh
function, and is often simply a fragment of the filehandle
fragment.
decode_fh passes two datums through find_exported_dentry. One that
should be used to identify the target object, and one that can be
used to identify the object's parent, should that be necessary.
The default get_dentry function assumes that the datum contains an
inode number and a generation number, and it attempts to get the
inode using "iget" and check it's validity by matching the
generation number. A filesystem should only depend on the default
if iget can safely be used this way.

If decode_fh and/or encode_fh are left as NULL, then default
implementations are used. These defaults are suitable for ext2 and
extremely similar filesystems (like ext3).

The default encode_fh creates a filehandle fragment from the inode
number and generation number of the target together with the inode
number and generation number of the parent (if the parent is
required).

The default decode_fh extract the target and parent datums from the
filehandle assuming the format used by the default encode_fh and
passed them to find_exported_dentry.


A filehandle fragment consists of an array of 1 or more 4byte words,
Expand All @@ -145,3 +172,5 @@ generated by encode_fh, in which case it will have been padded with
nuls. Rather, the encode_fh routine should choose a "type" which
indicates the decode_fh how much of the filehandle is valid, and how
it should be interpreted.


34 changes: 1 addition & 33 deletions trunk/Documentation/i386/boot.txt
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,6 @@ Offset Proto Name Meaning
0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not
0235/3 N/A pad2 Unused
0238/4 2.06+ cmdline_size Maximum size of the kernel command line
023C/4 2.07+ hardware_subarch Hardware subarchitecture
0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data

(1) For backwards compatibility, if the setup_sects field contains 0, the
real value is 4.
Expand Down Expand Up @@ -206,7 +204,7 @@ boot loaders can ignore those fields.

The byte order of all fields is littleendian (this is x86, after all.)

Field name: setup_sects
Field name: setup_secs
Type: read
Offset/size: 0x1f1/1
Protocol: ALL
Expand Down Expand Up @@ -358,13 +356,6 @@ Protocol: 2.00+
- If 0, the protected-mode code is loaded at 0x10000.
- If 1, the protected-mode code is loaded at 0x100000.

Bit 6 (write): KEEP_SEGMENTS
Protocol: 2.07+
- if 0, reload the segment registers in the 32bit entry point.
- if 1, do not reload the segment registers in the 32bit entry point.
Assume that %cs %ds %ss %es are all set to flat segments with
a base of 0 (or the equivalent for their environment).

Bit 7 (write): CAN_USE_HEAP
Set this bit to 1 to indicate that the value entered in the
heap_end_ptr is valid. If this field is clear, some setup code
Expand Down Expand Up @@ -489,29 +480,6 @@ Protocol: 2.06+
cmdline_size characters. With protocol version 2.05 and earlier, the
maximum size was 255.

Field name: hardware_subarch
Type: write
Offset/size: 0x23c/4
Protocol: 2.07+

In a paravirtualized environment the hardware low level architectural
pieces such as interrupt handling, page table handling, and
accessing process control registers needs to be done differently.

This field allows the bootloader to inform the kernel we are in one
one of those environments.

0x00000000 The default x86/PC environment
0x00000001 lguest
0x00000002 Xen

Field name: hardware_subarch_data
Type: write
Offset/size: 0x240/8
Protocol: 2.07+

A pointer to data that is specific to hardware subarch


**** THE KERNEL COMMAND LINE

Expand Down
Loading

0 comments on commit 1559280

Please sign in to comment.