Commit 111bb14a authored by Linus Torvalds's avatar Linus Torvalds

Import 1.3.27

parent 39a57ddd
VERSION = 1
PATCHLEVEL = 3
SUBLEVEL = 26
SUBLEVEL = 27
ARCH = i386
......
......@@ -226,13 +226,13 @@ if [ "$CONFIG_CD_NO_IDESCSI" = "y" ]; then
tristate 'Sony CDU31A/CDU33A CDROM support' CONFIG_CDU31A n
tristate 'Standard Mitsumi [no XA/Multisession] CDROM support' CONFIG_MCD n
tristate 'Experimental Mitsumi [XA/MultiSession] support' CONFIG_MCDX n
tristate 'Matsushita/Panasonic CDROM support' CONFIG_SBPCD n
tristate 'Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support' CONFIG_SBPCD n
if [ "$CONFIG_SBPCD" = "y" ]; then
bool 'Matsushita/Panasonic second CDROM controller support' CONFIG_SBPCD2 n
bool 'Matsushita/Panasonic, ... second CDROM controller support' CONFIG_SBPCD2 n
if [ "$CONFIG_SBPCD2" = "y" ]; then
bool 'Matsushita/Panasonic third CDROM controller support' CONFIG_SBPCD3 n
bool 'Matsushita/Panasonic, ... third CDROM controller support' CONFIG_SBPCD3 n
if [ "$CONFIG_SBPCD3" = "y" ]; then
bool 'Matsushita/Panasonic fourth CDROM controller support' CONFIG_SBPCD4 n
bool 'Matsushita/Panasonic, ... fourth CDROM controller support' CONFIG_SBPCD4 n
fi
fi
fi
......@@ -266,6 +266,11 @@ tristate 'SMB filesystem (to mount WfW shares etc..) support' CONFIG_SMB_FS n
comment 'character devices'
bool 'Cyclades async mux support' CONFIG_CYCLADES n
bool 'Stallion multiport serial support' CONFIG_STALDRV n
if [ "$CONFIG_STALDRV" = "y" ]; then
tristate ' Stallion EasyIO or EC8/32 support' CONFIG_STALLION n
tristate ' Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION n
fi
tristate 'Parallel printer support' CONFIG_PRINTER n
tristate 'Logitech busmouse support' CONFIG_BUSMOUSE n
tristate 'PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE n
......
This diff is collapsed.
This diff is collapsed.
......@@ -24,6 +24,22 @@ ifdef CONFIG_CYCLADES
L_OBJS += cyclades.o
endif
ifeq ($(CONFIG_STALLION),y)
L_OBJS += stallion.o
else
ifeq ($(CONFIG_STALLION),m)
M_OBJS += stallion.o
endif
endif
ifeq ($(CONFIG_ISTALLION),y)
L_OBJS += istallion.o
else
ifeq ($(CONFIG_ISTALLION),m)
M_OBJS += istallion.o
endif
endif
ifeq ($(CONFIG_ATIXL_BUSMOUSE),y)
M = y
L_OBJS += atixlmouse.o
......
......@@ -22,14 +22,13 @@
#include <linux/sched.h>
#include <linux/signal.h>
#include <linux/errno.h>
#include <linux/mouse.h>
#include <asm/io.h>
#include <asm/segment.h>
#include <asm/system.h>
#include <asm/irq.h>
#include "mouse.h"
#define ATIXL_MOUSE_IRQ 5 /* H/W interrupt # set up on ATIXL board */
#define ATIXL_BUSMOUSE 3 /* Minor device # (mknod c 10 3 /dev/bm) */
......
......@@ -42,6 +42,7 @@
#include <linux/signal.h>
#include <linux/errno.h>
#include <linux/mm.h>
#include <linux/mouse.h>
#include <asm/io.h>
#include <asm/segment.h>
......@@ -243,7 +244,7 @@ struct file_operations bus_mouse_fops = {
fasync_mouse,
};
static struct mouse bus_mous = {
static struct mouse bus_mouse = {
LOGITECH_BUSMOUSE, "busmouse", &bus_mouse_fops
};
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -32,8 +32,6 @@
#include <linux/major.h>
#include <linux/malloc.h>
#include "mouse.h"
/*
* Head entry for the doubly linked mouse list
*/
......
#ifndef __MOUSE_H
#define __MOUSE_H
struct mouse {
int minor;
const char *name;
struct file_operations *fops;
struct mouse * next, * prev;
};
extern int mouse_register(struct mouse * mouse);
extern int mouse_deregister(struct mouse * mouse);
#endif
......@@ -43,6 +43,7 @@
#include <linux/busmouse.h>
#include <linux/signal.h>
#include <linux/errno.h>
#include <linux/mouse.h>
#include <asm/io.h>
#include <asm/segment.h>
......
......@@ -45,6 +45,7 @@
#include <linux/errno.h>
#include <linux/timer.h>
#include <linux/malloc.h>
#include <linux/mouse.h>
#include <asm/io.h>
#include <asm/segment.h>
......@@ -52,8 +53,6 @@
#include <linux/config.h>
#include "mouse.h"
#define PSMOUSE_MINOR 1 /* minor device # for this mouse */
/* aux controller ports */
......
This diff is collapsed.
......@@ -1788,6 +1788,12 @@ long tty_init(long kmem_start)
#endif
#ifdef CONFIG_CYCLADES
kmem_start = cy_init(kmem_start);
#endif
#ifdef CONFIG_STALLION
kmem_start = stl_init(kmem_start);
#endif
#ifdef CONFIG_ISTALLION
kmem_start = stli_init(kmem_start);
#endif
kmem_start = pty_init(kmem_start);
kmem_start = vcs_init(kmem_start);
......
......@@ -1042,7 +1042,7 @@ static unsigned long check_aligned(struct buffer_head * first, unsigned long add
while (nrbuf-- > 0)
brelse(bh[nrbuf]);
free_page(address);
++current->mm->min_flt;
++current->min_flt;
return page;
no_go:
while (nrbuf-- > 0)
......@@ -1100,7 +1100,7 @@ static unsigned long try_to_load_aligned(unsigned long address,
read_buffers(arr,block);
while (block-- > 0)
brelse(arr[block]);
++current->mm->maj_flt;
++current->maj_flt;
return address;
not_aligned:
while ((tmp = bh) != NULL) {
......@@ -1154,7 +1154,7 @@ unsigned long bread_page(unsigned long address, dev_t dev, int b[], int size, in
if (where)
return where;
}
++current->mm->maj_flt;
++current->maj_flt;
for (i=0, j=0; j<PAGE_SIZE ; i++, j+= size) {
bh[i] = NULL;
if (b[i])
......
/*
* linux/fs/isofs/inode.c
*
* (C) 1992, 1993, 1994 Eric Youngdale Modified for ISO9660 filesystem.
* 1995 Mark Dobie - patch to allow VideoCD and PhotoCD mounting.
*
* (C) 1991 Linus Torvalds - minix filesystem
* 1992, 1993, 1994 Eric Youngdale Modified for ISO9660 filesystem.
* 1994 Eberhard Moenkeberg - multi session handling.
* 1995 Mark Dobie - allow mounting of some weird VideoCDs and PhotoCDs.
*
*/
#ifdef MODULE
......@@ -152,7 +153,9 @@ static int parse_options(char *options, struct iso9660_options * popt)
return 1;
}
/*
* look if the driver can tell the multi session redirection value
*/
static unsigned int isofs_get_last_session(int dev)
{
struct cdrom_multisession ms_info;
......@@ -161,10 +164,6 @@ static unsigned int isofs_get_last_session(int dev)
extern struct file_operations * get_blkfops(unsigned int);
int i;
/*
* look if the driver can tell the multi session redirection value
* <emoenke@gwdg.de>
*/
vol_desc_start=0;
if (get_blkfops(MAJOR(dev))->ioctl!=NULL)
{
......@@ -565,7 +564,7 @@ void isofs_read_inode(struct inode * inode)
inode->i_op = NULL;
/* get the volume sequence numner */
/* get the volume sequence number */
volume_seq_no = isonum_723 (raw_inode->volume_sequence_number) ;
/*
......
......@@ -449,10 +449,10 @@ static int get_stat(int pid, char * buffer)
tsk->tty ? tsk->tty->device : 0,
tty_pgrp,
tsk->flags,
tsk->mm ? tsk->mm->min_flt : 0,
tsk->mm ? tsk->mm->cmin_flt : 0,
tsk->mm ? tsk->mm->maj_flt : 0,
tsk->mm ? tsk->mm->cmaj_flt : 0,
tsk->min_flt,
tsk->cmin_flt,
tsk->maj_flt,
tsk->cmaj_flt,
tsk->utime,
tsk->stime,
tsk->cutime,
......
......@@ -95,7 +95,6 @@ struct mouse_status {
};
/* Function Prototypes */
extern long mouse_init(long);
#endif
/*****************************************************************************/
/*
* cd1400.h -- cd1400 UART hardware info.
*
* Copyright (C) 1994,1995 Greg Ungerer (gerg@stallion.oz.au).
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*****************************************************************************/
#ifndef _CD1400_H
#define _CD1400_H
/*****************************************************************************/
/*
* Define the number of async ports per cd1400 uart chip.
*/
#define CD1400_PORTS 4
#define CD1400_CLKHZ 25000000
/*
* Define the cd1400 uarts internal FIFO sizes.
*/
#define CD1400_TXFIFOSIZE 12
#define CD1400_RXFIFOSIZE 12
/*
* Local RX FIFO thresh hold level. Also define the RTS thresh hold
* based on the RX thresh hold.
*/
#define FIFO_RXTHRESHOLD 6
#define FIFO_RTSTHRESHOLD 7
/*****************************************************************************/
/*
* Define the cd1400 register addresses. These are all the valid
* registers with the cd1400. Some are global, some virtual, some
* per port.
*/
#define GFRCR 0x40
#define CAR 0x68
#define GCR 0x4b
#define SVRR 0x67
#define RICR 0x44
#define TICR 0x45
#define MICR 0x46
#define RIR 0x6b
#define TIR 0x6a
#define MIR 0x69
#define PPR 0x7e
#define RIVR 0x43
#define TIVR 0x42
#define MIVR 0x41
#define TDR 0x63
#define RDSR 0x62
#define MISR 0x4c
#define EOSRR 0x60
#define LIVR 0x18
#define CCR 0x05
#define SRER 0x06
#define COR1 0x08
#define COR2 0x09
#define COR3 0x0a
#define COR4 0x1e
#define COR5 0x1f
#define CCSR 0x0b
#define RDCR 0x0e
#define SCHR1 0x1a
#define SCHR2 0x1b
#define SCHR3 0x1c
#define SCHR4 0x1d
#define SCRL 0x22
#define SCRH 0x23
#define LNC 0x24
#define MCOR1 0x15
#define MCOR2 0x16
#define RTPR 0x21
#define MSVR1 0x6c
#define MSVR2 0x6d
#define PSVR 0x6f
#define RBPR 0x78
#define RCOR 0x7c
#define TBPR 0x72
#define TCOR 0x76
/*****************************************************************************/
/*
* Define the set of baud rate clock divisors.
*/
#define CD1400_CLK0 8
#define CD1400_CLK1 32
#define CD1400_CLK2 128
#define CD1400_CLK3 512
#define CD1400_CLK4 2048
#define CD1400_NUMCLKS 5
/*****************************************************************************/
/*
* Define the clock pre-scalar value to be a 5 ms clock. This should be
* OK for now. It would probably be better to make it 10 ms, but we
* can't fit that divisor into 8 bits!
*/
#define PPR_SCALAR 244
/*****************************************************************************/
/*
* Define values used to set character size options.
*/
#define COR1_CHL5 0x00
#define COR1_CHL6 0x01
#define COR1_CHL7 0x02
#define COR1_CHL8 0x03
/*
* Define values used to set the number of stop bits.
*/
#define COR1_STOP1 0x00
#define COR1_STOP15 0x04
#define COR1_STOP2 0x08
/*
* Define values used to set the parity scheme in use.
*/
#define COR1_PARNONE 0x00
#define COR1_PARFORCE 0x20
#define COR1_PARENB 0x40
#define COR1_PARIGNORE 0x10
#define COR1_PARODD 0x80
#define COR1_PAREVEN 0x00
#define COR2_IXM 0x80
#define COR2_TXIBE 0x40
#define COR2_ETC 0x20
#define COR2_LLM 0x10
#define COR2_RLM 0x08
#define COR2_RTSAO 0x04
#define COR2_CTSAE 0x02
#define COR3_SCDRNG 0x80
#define COR3_SCD34 0x40
#define COR3_FCT 0x20
#define COR3_SCD12 0x10
/*
* Define values used by COR4.
*/
#define COR4_BRKINT 0x08
#define COR4_IGNBRK 0x18
/*****************************************************************************/
/*
* Define the modem control register values.
* Note that the actual hardware is a little different to the conventional
* pin names on the cd1400.
*/
#define MSVR1_DTR 0x01
#define MSVR1_DSR 0x10
#define MSVR1_RI 0x20
#define MSVR1_CTS 0x40
#define MSVR1_DCD 0x80
#define MSVR2_RTS 0x02
#define MSVR2_DSR 0x10
#define MSVR2_RI 0x20
#define MSVR2_CTS 0x40
#define MSVR2_DCD 0x80
#define MCOR1_DCD 0x80
#define MCOR1_CTS 0x40
#define MCOR1_RI 0x20
#define MCOR1_DSR 0x10
#define MCOR2_DCD 0x80
#define MCOR2_CTS 0x40
#define MCOR2_RI 0x20
#define MCOR2_DSR 0x10
/*****************************************************************************/
/*
* Define the bits used with the service (interrupt) enable register.
*/
#define SRER_NNDT 0x01
#define SRER_TXEMPTY 0x02
#define SRER_TXDATA 0x04
#define SRER_RXDATA 0x10
#define SRER_MODEM 0x80
/*****************************************************************************/
/*
* Define operational commands for the command register.
*/
#define CCR_RESET 0x80
#define CCR_CORCHANGE 0x4e
#define CCR_SENDCH 0x20
#define CCR_CHANCTRL 0x10
#define CCR_TXENABLE (CCR_CHANCTRL | 0x08)
#define CCR_TXDISABLE (CCR_CHANCTRL | 0x04)
#define CCR_RXENABLE (CCR_CHANCTRL | 0x02)
#define CCR_RXDISABLE (CCR_CHANCTRL | 0x01)
#define CCR_SENDSCHR1 (CCR_SENDCH | 0x01)
#define CCR_SENDSCHR2 (CCR_SENDCH | 0x02)
#define CCR_SENDSCHR3 (CCR_SENDCH | 0x03)
#define CCR_SENDSCHR4 (CCR_SENDCH | 0x04)
#define CCR_RESETCHAN (CCR_RESET | 0x00)
#define CCR_RESETFULL (CCR_RESET | 0x01)
#define CCR_TXFLUSHFIFO (CCR_RESET | 0x02)
#define CCR_MAXWAIT 10000
/*****************************************************************************/
/*
* Define the valid acknowledgement types (for hw ack cycle).
*/
#define ACK_TYPMASK 0x07
#define ACK_TYPTX 0x02
#define ACK_TYPMDM 0x01
#define ACK_TYPRXGOOD 0x03
#define ACK_TYPRXBAD 0x07
#define SVRR_RX 0x01
#define SVRR_TX 0x02
#define SVRR_MDM 0x04
#define ST_OVERRUN 0x01
#define ST_FRAMING 0x02
#define ST_PARITY 0x04
#define ST_BREAK 0x08
#define ST_SCHAR1 0x10
#define ST_SCHAR2 0x20
#define ST_SCHAR3 0x30
#define ST_SCHAR4 0x40
#define ST_RANGE 0x70
#define ST_TIMEOUT 0x80
#define MISR_DCD 0x80
#define MISR_CTS 0x40
#define MISR_RI 0x20
#define MISR_DSR 0x10
/*****************************************************************************/
/*
* Defines for the CCSR status register.
*/
#define CCSR_RXENABLED 0x80
#define CCSR_RXFLOWON 0x40
#define CCSR_RXFLOWOFF 0x20
#define CCSR_TXENABLED 0x08
#define CCSR_TXFLOWON 0x04
#define CCSR_TXFLOWOFF 0x02
/*****************************************************************************/
/*
* Define the embedded commands.
*/
#define ETC_CMD 0x00
#define ETC_STARTBREAK 0x81
#define ETC_DELAY 0x82
#define ETC_STOPBREAK 0x83
/*****************************************************************************/
#endif
This diff is collapsed.
This diff is collapsed.
......@@ -82,24 +82,24 @@ struct hd_geometry {
unsigned long start;
};
/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x30n/0x31n */
#define HDIO_GETGEO 0x301 /* get device geometry */
#define HDIO_GET_UNMASKINTR 0x302 /* get current unmask setting */
#define HDIO_GET_MULTCOUNT 0x304 /* get current IDE blockmode setting */
#define HDIO_GET_IDENTITY 0x307 /* get IDE identification info */
#define HDIO_GET_KEEPSETTINGS 0x308 /* get keep-settings-on-reset flag */
#define HDIO_GET_CHIPSET 0x309 /* get current interface type setting */
#define HDIO_GET_NOWERR 0x30a /* get ignore-write-error flag */
#define HDIO_GET_DMA 0x30b /* get use-dma flag */
#define HDIO_DRIVE_CMD 0x31f /* execute a special drive command */
/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x32n/0x33n */
#define HDIO_SET_MULTCOUNT 0x321 /* set IDE blockmode */
#define HDIO_SET_UNMASKINTR 0x322 /* permit other irqs during I/O */
#define HDIO_SET_KEEPSETTINGS 0x323 /* keep ioctl settings on reset */
#define HDIO_SET_CHIPSET 0x324 /* optimise driver for interface type */
#define HDIO_SET_NOWERR 0x325 /* set ignore-write-error flag */
#define HDIO_SET_DMA 0x326 /* set use-dma flag */
/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */
#define HDIO_GETGEO 0x0301 /* get device geometry */
#define HDIO_GET_UNMASKINTR 0x0302 /* get current unmask setting */
#define HDIO_GET_MULTCOUNT 0x0304 /* get current IDE blockmode setting */
#define HDIO_GET_IDENTITY 0x0307 /* get IDE identification info */
#define HDIO_GET_KEEPSETTINGS 0x0308 /* get keep-settings-on-reset flag */
#define HDIO_GET_CHIPSET 0x0309 /* get current interface type setting */
#define HDIO_GET_NOWERR 0x030a /* get ignore-write-error flag */
#define HDIO_GET_DMA 0x030b /* get use-dma flag */
#define HDIO_DRIVE_CMD 0x031f /* execute a special drive command */
/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
#define HDIO_SET_MULTCOUNT 0x0321 /* set IDE blockmode */
#define HDIO_SET_UNMASKINTR 0x0322 /* permit other irqs during I/O */
#define HDIO_SET_KEEPSETTINGS 0x0323 /* keep ioctl settings on reset */
#define HDIO_SET_CHIPSET 0x0324 /* optimise driver for interface type */
#define HDIO_SET_NOWERR 0x0325 /* set ignore-write-error flag */
#define HDIO_SET_DMA 0x0326 /* set use-dma flag */
/* structure returned by HDIO_GET_IDENTITY, as per ANSI ATA2 rev.2f spec */
struct hd_driveid {
......
......@@ -83,11 +83,14 @@
#define IDE1_MAJOR 22
#define MITSUMI_CDROM_MAJOR 23
#define CDU535_CDROM_MAJOR 24
#define STL_SERIALMAJOR 24
#define MATSUSHITA_CDROM_MAJOR 25
#define STL_CALLOUTMAJOR 25
#define MATSUSHITA_CDROM2_MAJOR 26
#define QIC117_TAPE_MAJOR 27
#define MATSUSHITA_CDROM3_MAJOR 27
#define MATSUSHITA_CDROM4_MAJOR 28
#define STL_SIOMEMMAJOR 28
#define AZTECH_CDROM_MAJOR 29
#define CM206_CDROM_MAJOR 32
#define IDE2_MAJOR 33
......
......@@ -8,4 +8,14 @@
unsigned long mouse_init(unsigned long);
struct mouse {
int minor;
const char *name;
struct file_operations *fops;
struct mouse * next, * prev;
};
extern int mouse_register(struct mouse * mouse);
extern int mouse_deregister(struct mouse * mouse);
#endif
......@@ -13,14 +13,14 @@
* or
* sbpcd=0x300,LaserMate
* or
* sbpcd=0x330,SPEA
* sbpcd=0x338,SoundScape
*
* If sbpcd gets used as a module, you can load it with
* insmod /usr/src/linux/modules/sbpcd.o sbpcd=0x230,1
* or
* insmod /usr/src/linux/modules/sbpcd.o sbpcd=0x300,0
* or
* insmod /usr/src/linux/modules/sbpcd.o sbpcd=0x330,2
* insmod /usr/src/linux/modules/sbpcd.o sbpcd=0x338,2
* respective to override the configured address and type.
*/
......@@ -35,20 +35,25 @@
* ========
* SBPRO type addresses typically are 0x0230 (=0x220+0x10), 0x0250, ...
* LASERMATE type (CI-101P, WDH-7001C) addresses typically are 0x0300, ...
* SPEA addresses are from the LASERMATE type and range.
* SOUNDSCAPE addresses are from the LASERMATE type and range. You have to
* specify the REAL address here, not the configuration port address. Look
* at the CDROM driver's invoking line within your DOS CONFIG.SYS, or let
* sbpcd auto-probe, if you are not firm with the address.
* There are some soundcards on the market with 0x0630, 0x0650, ...; their
* type is not obvious (both types are possible).
*
* example: if your SBPRO audio address is 0x220, specify 0x230 and SBPRO 1.
* if your soundcard has its CDROM port above 0x300, specify
* that address and try SBPRO 0 first.
* if your SoundScape configuration port is at 0x330, specify
* 0x338 and SBPRO 2.
*
* interface type:
* ===============
* set SBPRO to 1 for "true" SoundBlaster card
* set SBPRO to 0 for "compatible" soundcards and
* for "poor" (no sound) interface cards.
* set SBPRO to 2 for the SPEA Media FX card
* set SBPRO to 2 for Ensonic SoundScape or SPEA Media FX cards
*
* Almost all "compatible" sound boards need to set SBPRO to 0.
* If SBPRO is set wrong, the drives will get found - but any
......
......@@ -127,12 +127,6 @@ struct mm_struct {
unsigned long start_brk, brk, start_stack, start_mmap;
unsigned long arg_start, arg_end, env_start, env_end;
unsigned long rss;
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
int swappable:1;
unsigned long swap_address;
unsigned long old_maj_flt; /* old value of maj_flt */
unsigned long dec_flt; /* page fault count of the last time */
unsigned long swap_cnt; /* number of pages to swap on next pass */
struct vm_area_struct * mmap;
struct vm_area_struct * mmap_avl;
};
......@@ -144,9 +138,6 @@ struct mm_struct {
0, 0, 0, 0, \
0, 0, 0, 0, \
0, \
/* ?_flt */ 0, 0, 0, 0, \
0, \
/* swap */ 0, 0, 0, 0, \
&init_mmap, &init_mmap }
struct signal_struct {
......@@ -195,7 +186,15 @@ struct task_struct {
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
struct timer_list real_timer;
long utime, stime, cutime, cstime, start_time;
struct rlimit rlim[RLIM_NLIMITS];
/* mm fault and swap info: this can arguably be seen as either mm-specific or thread-specific */
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
int swappable:1;
unsigned long swap_address;
unsigned long old_maj_flt; /* old value of maj_flt */
unsigned long dec_flt; /* page fault count of the last time */
unsigned long swap_cnt; /* number of pages to swap on next pass */
/* limits */
struct rlimit rlim[RLIM_NLIMITS];
unsigned short used_math;
char comm[16];
/* file system info */
......@@ -254,6 +253,8 @@ struct task_struct {
/* timeout */ 0,0,0,0,0,0,0, \
/* timer */ { NULL, NULL, 0, 0, it_real_fn }, \
/* utime */ 0,0,0,0,0, \
/* flt */ 0,0,0,0, \
/* swp */ 0,0,0,0,0, \
/* rlimits */ { {LONG_MAX, LONG_MAX}, {LONG_MAX, LONG_MAX}, \
{LONG_MAX, LONG_MAX}, {_STK_LIM, _STK_LIM}, \
{ 0, LONG_MAX}, {LONG_MAX, LONG_MAX}, \
......
......@@ -281,6 +281,12 @@ extern long vcs_init(long);
#ifdef CONFIG_CYCLADES
extern long cy_init(long);
#endif
#ifdef CONFIG_STALLION
extern long stl_init(long);
#endif
#ifdef CONFIG_ISTALLION
extern long stli_init(long);
#endif
extern int tty_paranoia_check(struct tty_struct *tty, dev_t device,
const char *routine);
......
......@@ -660,10 +660,10 @@ static pte_t shm_swap_in(struct vm_area_struct * shmd, unsigned long offset, uns
pte = pte_mkdirty(mk_pte(page, PAGE_SHARED));
shp->shm_pages[idx] = pte_val(pte);
} else
--current->mm->maj_flt; /* was incremented in do_no_page */
--current->maj_flt; /* was incremented in do_no_page */
done: /* pte_val(pte) == shp->shm_pages[idx] */
current->mm->min_flt++;
current->min_flt++;
mem_map[MAP_NR(pte_page(pte))]++;
return pte_modify(pte, shmd->vm_page_prot);
}
......
......@@ -97,6 +97,8 @@ void release(struct task_struct * p)
if (STACK_MAGIC != *(unsigned long *)p->kernel_stack_page)
printk(KERN_ALERT "release: %s kernel stack corruption. Aiee\n", p->comm);
free_page(p->kernel_stack_page);
current->cmin_flt += p->min_flt + p->cmin_flt;
current->cmaj_flt += p->maj_flt + p->cmaj_flt;
kfree(p);
return;
}
......@@ -405,10 +407,9 @@ static void exit_mm(void)
{
struct mm_struct * mm = current->mm;
current->swappable = 0;
if (mm) {
if (!--mm->count) {
current->p_pptr->mm->cmin_flt += mm->min_flt + mm->cmin_flt;
current->p_pptr->mm->cmaj_flt += mm->maj_flt + mm->cmaj_flt;
exit_mmap(mm);
free_page_tables(current);
kfree(mm);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment