Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 84842
b: refs/heads/master
c: 7b791d4
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed Feb 8, 2008
1 parent 9694177 commit f47ab4c
Show file tree
Hide file tree
Showing 725 changed files with 38,608 additions and 6,687 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: 2e6c4e5101633a54aeee1f2e83020ee77fcb70d2
refs/heads/master: 7b791d445500c5674b1ef00fefc0e343ed2f85b7
6 changes: 3 additions & 3 deletions trunk/Documentation/accounting/getdelays.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ int get_family_id(int sd)
char buf[256];
} ans;

int id, rc;
int id = 0, rc;
struct nlattr *na;
int rep_len;

Expand Down Expand Up @@ -209,7 +209,7 @@ void print_delayacct(struct taskstats *t)
void task_context_switch_counts(struct taskstats *t)
{
printf("\n\nTask %15s%15s\n"
" %15lu%15lu\n",
" %15llu%15llu\n",
"voluntary", "nonvoluntary",
t->nvcsw, t->nivcsw);
}
Expand Down Expand Up @@ -399,7 +399,7 @@ int main(int argc, char *argv[])
goto done;
}

PRINTF("nlmsghdr size=%d, nlmsg_len=%d, rep_len=%d\n",
PRINTF("nlmsghdr size=%zu, nlmsg_len=%d, rep_len=%d\n",
sizeof(struct nlmsghdr), msg.n.nlmsg_len, rep_len);


Expand Down
2 changes: 2 additions & 0 deletions trunk/Documentation/aoe/mkdevs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ rm -f $dir/interfaces
mknod -m 0200 $dir/interfaces c $MAJOR 4
rm -f $dir/revalidate
mknod -m 0200 $dir/revalidate c $MAJOR 5
rm -f $dir/flush
mknod -m 0200 $dir/flush c $MAJOR 6

export n_partitions
mkshelf=`echo $0 | sed 's!mkdevs!mkshelf!'`
Expand Down
5 changes: 4 additions & 1 deletion trunk/Documentation/aoe/udev-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ fi
# /etc/udev/rules.d
#
rules_d="`sed -n '/^udev_rules=/{ s!udev_rules=!!; s!\"!!g; p; }' $conf`"
if test -z "$rules_d" || test ! -d "$rules_d"; then
if test -z "$rules_d" ; then
rules_d=/etc/udev/rules.d
fi
if test ! -d "$rules_d"; then
echo "$me Error: cannot find udev rules directory" 1>&2
exit 1
fi
Expand Down
16 changes: 9 additions & 7 deletions trunk/Documentation/aoe/udev.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# These rules tell udev what device nodes to create for aoe support.
# They may be installed along the following lines (adjusted to what
# you see on your system).
# They may be installed along the following lines. Check the section
# 8 udev manpage to see whether your udev supports SUBSYSTEM, and
# whether it uses one or two equal signs for SUBSYSTEM and KERNEL.
#
# ecashin@makki ~$ su
# Password:
Expand All @@ -15,10 +16,11 @@
#

# aoe char devices
SUBSYSTEM="aoe", KERNEL="discover", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM="aoe", KERNEL="err", NAME="etherd/%k", GROUP="disk", MODE="0440"
SUBSYSTEM="aoe", KERNEL="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM="aoe", KERNEL="revalidate", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k", GROUP="disk", MODE="0440"
SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="flush", NAME="etherd/%k", GROUP="disk", MODE="0220"

# aoe block devices
KERNEL="etherd*", NAME="%k", GROUP="disk"
KERNEL=="etherd*", NAME="%k", GROUP="disk"
19 changes: 0 additions & 19 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -99,17 +99,6 @@ Who: Eric Biederman <ebiederm@xmission.com>

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

What: a.out interpreter support for ELF executables
When: 2.6.25
Files: fs/binfmt_elf.c
Why: Using a.out interpreters for ELF executables was a feature for
transition from a.out to ELF. But now it is unlikely to be still
needed anymore and removing it would simplify the hairy ELF
loader code.
Who: Andi Kleen <ak@suse.de>

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

What: remove EXPORT_SYMBOL(kernel_thread)
When: August 2006
Files: arch/*/kernel/*_ksyms.c
Expand Down Expand Up @@ -192,14 +181,6 @@ Who: Len Brown <len.brown@intel.com>

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

What: 'time' kernel boot parameter
When: January 2008
Why: replaced by 'printk.time=<value>' so that printk timestamps can be
enabled or disabled as needed
Who: Randy Dunlap <randy.dunlap@oracle.com>

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

What: libata spindown skipping and warning
When: Dec 2008
Why: Some halt(8) implementations synchronize caches for and spin
Expand Down
1 change: 1 addition & 0 deletions trunk/Documentation/filesystems/isofs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Mount options unique to the isofs filesystem.
map=normal Map non-Rock Ridge filenames to lower case
map=acorn As map=normal but also apply Acorn extensions if present
mode=xxx Sets the permissions on files to xxx
dmode=xxx Sets the permissions on directories to xxx
nojoliet Ignore Joliet extensions if they are present.
norock Ignore Rock Ridge extensions if they are present.
hide Completely strip hidden files from the file system.
Expand Down
50 changes: 47 additions & 3 deletions trunk/Documentation/filesystems/vfs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ The get_sb() method has the following arguments:
const char *dev_name: the device name we are mounting.

void *data: arbitrary mount options, usually comes as an ASCII
string
string (see "Mount Options" section)

struct vfsmount *mnt: a vfs-internal representation of a mount point

Expand Down Expand Up @@ -182,7 +182,7 @@ A fill_super() method implementation has the following arguments:
must initialize this properly.

void *data: arbitrary mount options, usually comes as an ASCII
string
string (see "Mount Options" section)

int silent: whether or not to be silent on error

Expand Down Expand Up @@ -291,7 +291,8 @@ or bottom half).

umount_begin: called when the VFS is unmounting a filesystem.

show_options: called by the VFS to show mount options for /proc/<pid>/mounts.
show_options: called by the VFS to show mount options for
/proc/<pid>/mounts. (see "Mount Options" section)

quota_read: called by the VFS to read from filesystem quota file.

Expand Down Expand Up @@ -969,6 +970,49 @@ manipulate dentries:
For further information on dentry locking, please refer to the document
Documentation/filesystems/dentry-locking.txt.

Mount Options
=============

Parsing options
---------------

On mount and remount the filesystem is passed a string containing a
comma separated list of mount options. The options can have either of
these forms:

option
option=value

The <linux/parser.h> header defines an API that helps parse these
options. There are plenty of examples on how to use it in existing
filesystems.

Showing options
---------------

If a filesystem accepts mount options, it must define show_options()
to show all the currently active options. The rules are:

- options MUST be shown which are not default or their values differ
from the default

- options MAY be shown which are enabled by default or have their
default value

Options used only internally between a mount helper and the kernel
(such as file descriptors), or which only have an effect during the
mounting (such as ones controlling the creation of a journal) are exempt
from the above rules.

The underlying reason for the above rules is to make sure, that a
mount can be accurately replicated (e.g. umounting and mounting again)
based on the information found in /proc/mounts.

A simple method of saving options at mount/remount time and showing
them is provided with the save_mount_options() and
generic_show_options() helper functions. Please note, that using
these may have drawbacks. For more info see header comments for these
functions in fs/namespace.c.

Resources
=========
Expand Down
3 changes: 0 additions & 3 deletions trunk/Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1973,9 +1973,6 @@ and is between 256 and 4096 characters. It is defined in the file
<deci-seconds>: poll all this frequency
0: no polling (default)

time Show timing data prefixed to each printk message line
[deprecated, see 'printk.time']

tipar.timeout= [HW,PPT]
Set communications timeout in tenths of a second
(default 15).
Expand Down
149 changes: 149 additions & 0 deletions trunk/Documentation/mn10300/ABI.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
=========================
MN10300 FUNCTION CALL ABI
=========================

=======
GENERAL
=======

The MN10300/AM33 kernel runs in little-endian mode; big-endian mode is not
supported.

The stack grows downwards, and should always be 32-bit aligned. There are
separate stack pointer registers for userspace and the kernel.


================
ARGUMENT PASSING
================

The first two arguments (assuming up to 32-bits per argument) to a function are
passed in the D0 and D1 registers respectively; all other arguments are passed
on the stack.

If 64-bit arguments are being passed, then they are never split between
registers and the stack. If the first argument is a 64-bit value, it will be
passed in D0:D1. If the first argument is not a 64-bit value, but the second
is, the second will be passed entirely on the stack and D1 will be unused.

Arguments smaller than 32-bits are not coelesced within a register or a stack
word. For example, two byte-sized arguments will always be passed in separate
registers or word-sized stack slots.


=================
CALLING FUNCTIONS
=================

The caller must allocate twelve bytes on the stack for the callee's use before
it inserts a CALL instruction. The CALL instruction will write into the TOS
word, but won't actually modify the stack pointer; similarly, the RET
instruction reads from the TOS word of the stack, but doesn't move the stack
pointer beyond it.


Stack:
| |
| |
|---------------| SP+20
| 4th Arg |
|---------------| SP+16
| 3rd Arg |
|---------------| SP+12
| D1 Save Slot |
|---------------| SP+8
| D0 Save Slot |
|---------------| SP+4
| Return Addr |
|---------------| SP
| |
| |


The caller must leave space on the stack (hence an allocation of twelve bytes)
in which the callee may store the first two arguments.


============
RETURN VALUE
============

The return value is passed in D0 for an integer (or D0:D1 for a 64-bit value),
or A0 for a pointer.

If the return value is a value larger than 64-bits, or is a structure or an
array, then a hidden first argument will be passed to the callee by the caller:
this will point to a piece of memory large enough to hold the result of the
function. In this case, the callee will return the value in that piece of
memory, and no value will be returned in D0 or A0.


===================
REGISTER CLOBBERING
===================

The values in certain registers may be clobbered by the callee, and other
values must be saved:

Clobber: D0-D1, A0-A1, E0-E3
Save: D2-D3, A2-A3, E4-E7, SP

All other non-supervisor-only registers are clobberable (such as MDR, MCRL,
MCRH).


=================
SPECIAL REGISTERS
=================

Certain ordinary registers may carry special usage for the compiler:

A3: Frame pointer
E2: TLS pointer


==========
KERNEL ABI
==========

The kernel may use a slightly different ABI internally.

(*) E2

If CONFIG_MN10300_CURRENT_IN_E2 is defined, then the current task pointer
will be kept in the E2 register, and that register will be marked
unavailable for the compiler to use as a scratch register.

Normally the kernel uses something like:

MOV SP,An
AND 0xFFFFE000,An
MOV (An),Rm // Rm holds current
MOV (yyy,Rm) // Access current->yyy

To find the address of current; but since this option permits current to
be carried globally in an register, it can use:

MOV (yyy,E2) // Access current->yyy

instead.


===============
SYSTEM CALL ABI
===============

System calls are called with the following convention:

REGISTER ENTRY EXIT
=============== ======================= =======================
D0 Syscall number Return value
A0 1st syscall argument Saved
D1 2nd syscall argument Saved
A3 3rd syscall argument Saved
A2 4th syscall argument Saved
D3 5th syscall argument Saved
D2 6th syscall argument Saved

All other registers are saved. The layout is a consequence of the way the MOVM
instruction stores registers onto the stack.
Loading

0 comments on commit f47ab4c

Please sign in to comment.