summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2003-01-01 08:53:32 +1100
committerPaul Mackerras <paulus@samba.org>2003-01-01 08:53:32 +1100
commit40f576b5364c98919b0f913dec3f8c6d92e4ee0d (patch)
treea2a81aedf495b4409fa1e3f595f867ce1ae39d82 /include/linux
parent0002932fedb709a811c16e77fcf4f03acbca35ee (diff)
parent43fb68dc00a8ab0b728e27c2a8fd4033d2ba0932 (diff)
Merge samba.org:/home/paulus/kernel/linux-2.5
into samba.org:/home/paulus/kernel/for-linus-ppc
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ax25.h2
-rw-r--r--include/linux/bcd.h20
-rw-r--r--include/linux/binfmts.h8
-rw-r--r--include/linux/cache.h3
-rw-r--r--include/linux/compiler.h13
-rw-r--r--include/linux/cpufreq.h17
-rw-r--r--include/linux/fb.h2
-rw-r--r--include/linux/fs.h11
-rw-r--r--include/linux/i2c-algo-bit.h7
-rw-r--r--include/linux/i2c-elektor.h47
-rw-r--r--include/linux/i2c-id.h12
-rw-r--r--include/linux/i2c.h28
-rw-r--r--include/linux/ide.h4
-rw-r--r--include/linux/init.h5
-rw-r--r--include/linux/ioport.h3
-rw-r--r--include/linux/kernel.h1
-rw-r--r--include/linux/mc146818rtc.h11
-rw-r--r--include/linux/mm.h3
-rw-r--r--include/linux/module.h72
-rw-r--r--include/linux/moduleparam.h2
-rw-r--r--include/linux/mtd/map.h5
-rw-r--r--include/linux/mtd/mtd.h8
-rw-r--r--include/linux/nubus.h51
-rw-r--r--include/linux/percpu.h61
-rw-r--r--include/linux/personality.h18
-rw-r--r--include/linux/sched.h1
-rw-r--r--include/linux/sensors.h690
-rw-r--r--include/linux/smp.h10
-rw-r--r--include/linux/suspend.h3
-rw-r--r--include/linux/tty.h5
-rw-r--r--include/linux/tty_driver.h2
-rw-r--r--include/linux/usb.h31
32 files changed, 250 insertions, 906 deletions
diff --git a/include/linux/ax25.h b/include/linux/ax25.h
index 6dfc8fc9116d..56c11f0dbd80 100644
--- a/include/linux/ax25.h
+++ b/include/linux/ax25.h
@@ -85,7 +85,7 @@ struct ax25_ctl_struct {
};
/* this will go away. Please do not export to user land */
-struct ax25_info_struct_depreciated {
+struct ax25_info_struct_deprecated {
unsigned int n2, n2count;
unsigned int t1, t1timer;
unsigned int t2, t2timer;
diff --git a/include/linux/bcd.h b/include/linux/bcd.h
new file mode 100644
index 000000000000..c545308125b0
--- /dev/null
+++ b/include/linux/bcd.h
@@ -0,0 +1,20 @@
+/* Permission is hereby granted to copy, modify and redistribute this code
+ * in terms of the GNU Library General Public License, Version 2 or later,
+ * at your option.
+ */
+
+/* macros to translate to/from binary and binary-coded decimal (frequently
+ * found in RTC chips).
+ */
+
+#ifndef _BCD_H
+#define _BCD_H
+
+#define BCD2BIN(val) (((val) & 0x0f) + ((val)>>4)*10)
+#define BIN2BCD(val) ((((val)/10)<<4) + (val)%10)
+
+/* backwards compat */
+#define BCD_TO_BIN(val) ((val)=BCD2BIN(val))
+#define BIN_TO_BCD(val) ((val)=BIN2BCD(val))
+
+#endif /* _BCD_H */
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
index ae1b454395b5..bd929e344d75 100644
--- a/include/linux/binfmts.h
+++ b/include/linux/binfmts.h
@@ -58,13 +58,7 @@ extern int copy_strings(int argc,char ** argv,struct linux_binprm *bprm);
extern int copy_strings_kernel(int argc,char ** argv,struct linux_binprm *bprm);
extern void compute_creds(struct linux_binprm *binprm);
extern int do_coredump(long signr, int exit_code, struct pt_regs * regs);
-extern void set_binfmt(struct linux_binfmt *new);
-
-
-#if 0
-/* this went away now */
-#define change_ldt(a,b) setup_arg_pages(a,b)
-#endif
+extern int set_binfmt(struct linux_binfmt *new);
#endif /* __KERNEL__ */
#endif /* _LINUX_BINFMTS_H */
diff --git a/include/linux/cache.h b/include/linux/cache.h
index 95faa6ec3aa7..3db3832f35cb 100644
--- a/include/linux/cache.h
+++ b/include/linux/cache.h
@@ -1,11 +1,10 @@
#ifndef __LINUX_CACHE_H
#define __LINUX_CACHE_H
+#include <linux/kernel.h>
#include <linux/config.h>
#include <asm/cache.h>
-#define ALIGN(x,a) (((x)+(a)-1)&~((a)-1))
-
#ifndef L1_CACHE_ALIGN
#define L1_CACHE_ALIGN(x) ALIGN(x, L1_CACHE_BYTES)
#endif
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index 6b19413b47a6..f88889740949 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -13,6 +13,19 @@
#define likely(x) __builtin_expect((x),1)
#define unlikely(x) __builtin_expect((x),0)
+/*
+ * Allow us to mark functions as 'deprecated' and have gcc emit a nice
+ * warning for each use, in hopes of speeding the functions removal.
+ * Usage is:
+ * int deprecated foo(void)
+ * and then gcc will emit a warning for each usage of the function.
+ */
+#if __GNUC__ >= 3
+#define __deprecated __attribute__((deprecated))
+#else
+#define __deprecated
+#endif
+
/* This macro obfuscates arithmetic on a variable address so that gcc
shouldn't recognize the original var, and make assumptions about it */
#define RELOC_HIDE(ptr, off) \
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index e93501c7a0b8..ab2890b619d0 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -104,27 +104,14 @@ static inline unsigned long cpufreq_scale(unsigned long old, u_int div, u_int mu
/*********************************************************************
- * DYNAMIC CPUFREQ INTERFACE *
- *********************************************************************/
-#ifdef CONFIG_CPU_FREQ_DYNAMIC
-/* TBD */
-#endif /* CONFIG_CPU_FREQ_DYNAMIC */
-
-
-/*********************************************************************
* CPUFREQ DRIVER INTERFACE *
*********************************************************************/
-typedef int (*cpufreq_policy_t) (struct cpufreq_policy *policy);
-
struct cpufreq_driver {
/* needed by all drivers */
- cpufreq_policy_t verify;
- cpufreq_policy_t setpolicy;
+ int (*verify) (struct cpufreq_policy *policy);
+ int (*setpolicy) (struct cpufreq_policy *policy);
struct cpufreq_policy *policy;
-#ifdef CONFIG_CPU_FREQ_DYNAMIC
- /* TBD */
-#endif
/* 2.4. compatible API */
#ifdef CONFIG_CPU_FREQ_24_API
unsigned int cpu_cur_freq[NR_CPUS];
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 23dd4c02ddec..188da2f94589 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -424,9 +424,11 @@ struct fb_info {
#define fb_readb __raw_readb
#define fb_readw __raw_readw
#define fb_readl __raw_readl
+#define fb_readq __raw_readq
#define fb_writeb __raw_writeb
#define fb_writew __raw_writew
#define fb_writel __raw_writel
+#define fb_writeq __raw_writeq
#define fb_memset memset_io
#else
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 500cb3ac421e..3fa13b80747d 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -982,15 +982,9 @@ struct super_block *get_sb_pseudo(struct file_system_type *, char *,
/* Alas, no aliases. Too much hassle with bringing module.h everywhere */
#define fops_get(fops) \
- (((fops) && (fops)->owner) \
- ? ( try_inc_mod_count((fops)->owner) ? (fops) : NULL ) \
- : (fops))
-
+ (((fops) && try_module_get((fops)->owner) ? (fops) : NULL))
#define fops_put(fops) \
-do { \
- if ((fops) && (fops)->owner) \
- __MOD_DEC_USE_COUNT((fops)->owner); \
-} while(0)
+ do { if (fops) module_put((fops)->owner); } while(0)
extern int register_filesystem(struct file_system_type *);
extern int unregister_filesystem(struct file_system_type *);
@@ -1300,6 +1294,7 @@ extern int dcache_dir_open(struct inode *, struct file *);
extern int dcache_dir_close(struct inode *, struct file *);
extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
extern int dcache_readdir(struct file *, void *, filldir_t);
+extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
extern int simple_statfs(struct super_block *, struct statfs *);
extern int simple_link(struct dentry *, struct inode *, struct dentry *);
extern int simple_unlink(struct inode *, struct dentry *);
diff --git a/include/linux/i2c-algo-bit.h b/include/linux/i2c-algo-bit.h
index 9598d2cbf718..fea550f163d9 100644
--- a/include/linux/i2c-algo-bit.h
+++ b/include/linux/i2c-algo-bit.h
@@ -42,9 +42,10 @@ struct i2c_algo_bit_data {
int (*getscl) (void *data);
/* local settings */
- int udelay;
- int mdelay;
- int timeout;
+ int udelay; /* half-clock-cycle time in microsecs */
+ /* i.e. clock is (500 / udelay) KHz */
+ int mdelay; /* in millisecs, unused */
+ int timeout; /* in jiffies */
};
#define I2C_BIT_ADAP_MAX 16
diff --git a/include/linux/i2c-elektor.h b/include/linux/i2c-elektor.h
deleted file mode 100644
index 7c9213175892..000000000000
--- a/include/linux/i2c-elektor.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* ------------------------------------------------------------------------- */
-/* i2c-elektor.c i2c-hw access for PCF8584 style isa bus adaptes */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-97 Simon G. Vogl
- 1998-99 Hans Berglund
-
- 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. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even
- Frodo Looijaard <frodol@dds.nl> */
-
-/* $Id: i2c-elektor.h,v 1.5 2001/06/05 01:46:33 mds Exp $ */
-
-#ifndef I2C_PCF_ELEKTOR_H
-#define I2C_PCF_ELEKTOR_H 1
-
-/*
- * This struct contains the hw-dependent functions of PCF8584 adapters to
- * manipulate the registers, and to init any hw-specific features.
- * vdovikin: removed: this module in real supports only one device,
- * due to missing arguments in some functions, called from the algo-pcf module.
- * Sometimes it's need to be rewriten -
- * but for now just remove this for simpler reading */
-
-/*
-struct i2c_pcf_isa {
- int pi_base;
- int pi_irq;
- int pi_clock;
- int pi_own;
-};
-*/
-
-#endif /* PCF_ELEKTOR_H */
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
index 2b6394004ea1..0061776f0402 100644
--- a/include/linux/i2c-id.h
+++ b/include/linux/i2c-id.h
@@ -145,6 +145,8 @@
#define I2C_DRIVERID_LM92 1033
#define I2C_DRIVERID_VT8231 1034
#define I2C_DRIVERID_SMARTBATT 1035
+#define I2C_DRIVERID_BMCSENSORS 1036
+#define I2C_DRIVERID_FS451 1037
/*
* ---- Adapter types ----------------------------------------------------
@@ -164,6 +166,8 @@
#define I2C_ALGO_IIC 0x080000 /* ITE IIC bus */
#define I2C_ALGO_SAA7134 0x090000
#define I2C_ALGO_MPC824X 0x0a0000 /* Motorola 8240 / 8245 */
+#define I2C_ALGO_IPMI 0x0b0000 /* IPMI dummy adapter */
+#define I2C_ALGO_IPMB 0x0c0000 /* IPMB adapter */
#define I2C_ALGO_EC 0x100000 /* ACPI embedded controller */
#define I2C_ALGO_MPC8XX 0x110000 /* MPC8xx PowerPC I2C algorithm */
@@ -196,6 +200,7 @@
#define I2C_HW_B_VOO 0x0b /* 3dfx Voodoo 3 / Banshee */
#define I2C_HW_B_PPORT 0x0c /* Primitive parallel port adapter */
#define I2C_HW_B_SAVG 0x0d /* Savage 4 */
+#define I2C_HW_B_SCX200 0x0e /* Nat'l Semi SCx200 I2C */
#define I2C_HW_B_RIVA 0x10 /* Riva based graphics cards */
#define I2C_HW_B_IOC 0x11 /* IOC bit-wiggling */
#define I2C_HW_B_TSUNA 0x12 /* DEC Tsunami chipset */
@@ -234,8 +239,15 @@
#define I2C_HW_SMBUS_SIS630 0x08
#define I2C_HW_SMBUS_SIS645 0x09
#define I2C_HW_SMBUS_AMD8111 0x0a
+#define I2C_HW_SMBUS_SCX200 0x0b
/* --- ISA pseudo-adapter */
#define I2C_HW_ISA 0x00
+/* --- IPMI pseudo-adapter */
+#define I2C_HW_IPMI 0x00
+
+/* --- IPMB adapter */
+#define I2C_HW_IPMB 0x00
+
#endif /* I2C_ID_H */
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index ab69e01bc8c3..765a95af3a4e 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -132,6 +132,7 @@ extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
*/
struct i2c_driver {
+ struct module *owner;
char name[32];
int id;
unsigned int flags; /* div., see below */
@@ -155,18 +156,6 @@ struct i2c_driver {
* with the device.
*/
int (*command)(struct i2c_client *client,unsigned int cmd, void *arg);
-
- /* These two are mainly used for bookkeeping & dynamic unloading of
- * kernel modules. inc_use tells the driver that a client is being
- * used by another module & that it should increase its ref. counter.
- * dec_use is the inverse operation.
- * NB: Make sure you have no circular dependencies, or else you get a
- * deadlock when trying to unload the modules.
- * You should use the i2c_{inc,dec}_use_client functions instead of
- * calling this function directly.
- */
- void (*inc_use)(struct i2c_client *client);
- void (*dec_use)(struct i2c_client *client);
};
/*
@@ -232,16 +221,13 @@ struct proc_dir_entry;
* with the access algorithms necessary to access it.
*/
struct i2c_adapter {
+ struct module *owner;
char name[32]; /* some useful name to identify the adapter */
unsigned int id;/* == is algo->id | hwdep.struct->id, */
/* for registered values see below */
struct i2c_algorithm *algo;/* the algorithm to access the bus */
void *algo_data;
- /* --- These may be NULL, but should increase the module use count */
- void (*inc_use)(struct i2c_adapter *);
- void (*dec_use)(struct i2c_adapter *);
-
/* --- administration stuff. */
int (*client_register)(struct i2c_client *);
int (*client_unregister)(struct i2c_client *);
@@ -319,12 +305,6 @@ extern int i2c_del_driver(struct i2c_driver *);
extern int i2c_attach_client(struct i2c_client *);
extern int i2c_detach_client(struct i2c_client *);
-/* Only call these if you grab a resource that makes unloading the
- client and the adapter it is on completely impossible. Like when a
- /proc directory is entered. */
-extern void i2c_inc_use_client(struct i2c_client *);
-extern void i2c_dec_use_client(struct i2c_client *);
-
/* New function: This is to get an i2c_client-struct for controlling the
client either by using i2c_control-function or having the
client-module export functions that can be used with the i2c_client
@@ -387,6 +367,8 @@ struct i2c_msg {
#define I2C_M_RD 0x01
#define I2C_M_NOSTART 0x4000
#define I2C_M_REV_DIR_ADDR 0x2000
+#define I2C_M_IGNORE_NAK 0x1000
+#define I2C_M_NO_RD_ACK 0x0800
short len; /* msg length */
char *buf; /* pointer to msg data */
};
@@ -395,7 +377,7 @@ struct i2c_msg {
#define I2C_FUNC_I2C 0x00000001
#define I2C_FUNC_10BIT_ADDR 0x00000002
-#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_{REV_DIR_ADDR,NOSTART} */
+#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_{REV_DIR_ADDR,NOSTART,..} */
#define I2C_FUNC_SMBUS_HWPEC_CALC 0x00000008 /* SMBus 2.0 */
#define I2C_FUNC_SMBUS_READ_WORD_DATA_PEC 0x00000800 /* SMBus 2.0 */
#define I2C_FUNC_SMBUS_WRITE_WORD_DATA_PEC 0x00001000 /* SMBus 2.0 */
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 033e94a6d6e4..2e2718ebfd98 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -360,8 +360,8 @@ extern int ide_irq_lock;
/* Currently only Atari needs it */
#ifndef IDE_ARCH_LOCK
-# define ide_release_lock(lock) do {} while (0)
-# define ide_get_lock(lock, hdlr, data) do {} while (0)
+# define ide_release_lock() do {} while (0)
+# define ide_get_lock(hdlr, data) do {} while (0)
#endif /* IDE_ARCH_LOCK */
/*
diff --git a/include/linux/init.h b/include/linux/init.h
index 46b1ef190c52..b7c6363478aa 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -147,14 +147,13 @@ struct obs_kernel_param {
#define module_init(initfn) \
static inline initcall_t __inittest(void) \
{ return initfn; } \
- int __initfn(void) __attribute__((alias(#initfn)));
+ int init_module(void) __attribute__((alias(#initfn)));
/* This is only required if you want to be unloadable. */
#define module_exit(exitfn) \
static inline exitcall_t __exittest(void) \
{ return exitfn; } \
- void __exitfn(void) __attribute__((alias(#exitfn)));
-
+ void cleanup_module(void) __attribute__((alias(#exitfn)));
#define __setup(str,func) /* nothing */
#endif
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index 020bd1596ab9..edd1eadb98b8 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -8,6 +8,7 @@
#ifndef _LINUX_IOPORT_H
#define _LINUX_IOPORT_H
+#include <linux/compiler.h>
/*
* Resources are tree-like, allowing
* nesting etc..
@@ -107,7 +108,7 @@ extern struct resource * __request_region(struct resource *, unsigned long start
#define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n))
#define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n))
-extern int __check_region(struct resource *, unsigned long, unsigned long);
+extern int __deprecated __check_region(struct resource *, unsigned long, unsigned long);
extern void __release_region(struct resource *, unsigned long, unsigned long);
#define get_ioport_list(buf) get_resource_list(&ioport_resource, buf, PAGE_SIZE)
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index f3cadd9416ad..9cb6277f5b86 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -28,6 +28,7 @@
#define STACK_MAGIC 0xdeadbeef
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+#define ALIGN(x,a) (((x)+(a)-1)&~((a)-1))
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
diff --git a/include/linux/mc146818rtc.h b/include/linux/mc146818rtc.h
index 2ec35699a8e8..cde7dbae375e 100644
--- a/include/linux/mc146818rtc.h
+++ b/include/linux/mc146818rtc.h
@@ -87,15 +87,4 @@ extern spinlock_t rtc_lock; /* serialize CMOS RAM access */
# define RTC_VRT 0x80 /* valid RAM and time */
/**********************************************************************/
-/* example: !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY)
- * determines if the following two #defines are needed
- */
-#ifndef BCD_TO_BIN
-#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
-#endif
-
-#ifndef BIN_TO_BCD
-#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
-#endif
-
#endif /* _MC146818RTC_H */
diff --git a/include/linux/mm.h b/include/linux/mm.h
index df49cb472866..70177c796b12 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -41,6 +41,9 @@ extern int page_cluster;
* per VM-area/task. A VM area is any part of the process virtual memory
* space that has a special rule for the page-fault handlers (ie a shared
* library, the executable area etc).
+ *
+ * This structure is exactly 64 bytes on ia32. Please think very, very hard
+ * before adding anything to it.
*/
struct vm_area_struct {
struct mm_struct * vm_mm; /* The address space we belong to. */
diff --git a/include/linux/module.h b/include/linux/module.h
index 2392edcc3307..8e1954a89913 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -40,12 +40,11 @@ struct kernel_symbol
char name[MODULE_NAME_LEN];
};
-#ifdef MODULE
+/* These are either module local, or the kernel's dummy ones. */
+extern int init_module(void);
+extern void cleanup_module(void);
-#ifdef KBUILD_MODNAME
-static const char __module_name[MODULE_NAME_LEN] __attribute__((section(".gnu.linkonce.modname"))) = \
- __stringify(KBUILD_MODNAME);
-#endif
+#ifdef MODULE
/* For replacement modutils, use an alias not a pointer. */
#define MODULE_GENERIC_TABLE(gtype,name) \
@@ -56,9 +55,6 @@ static const struct gtype##_id * __module_##gtype##_table \
extern const struct gtype##_id __mod_##gtype##_table \
__attribute__ ((unused, alias(__stringify(name))))
-/* This is magically filled in by the linker, but THIS_MODULE must be
- a constant so it works in initializers. */
-extern struct module __this_module;
#define THIS_MODULE (&__this_module)
#else /* !MODULE */
@@ -176,7 +172,7 @@ struct module
/* The command line arguments (may be mangled). People like
keeping pointers to this stuff */
- char args[0];
+ char *args;
};
/* FIXME: It'd be nice to isolate modules during init, too, so they
@@ -289,6 +285,22 @@ static inline const char *module_address_lookup(unsigned long addr,
}
#endif /* CONFIG_MODULES */
+#ifdef MODULE
+extern struct module __this_module;
+#ifdef KBUILD_MODNAME
+/* We make the linker do some of the work. */
+struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+ .name = __stringify(KBUILD_MODNAME),
+ .symbols = { .owner = &__this_module },
+ .init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+ .exit = cleanup_module,
+#endif
+};
+#endif /* KBUILD_MODNAME */
+#endif /* MODULE */
+
/* For archs to search exception tables */
extern struct list_head extables;
extern spinlock_t modlist_lock;
@@ -296,9 +308,20 @@ extern spinlock_t modlist_lock;
#define symbol_request(x) try_then_request_module(symbol_get(x), "symbol:" #x)
/* BELOW HERE ALL THESE ARE OBSOLETE AND WILL VANISH */
-#define __MOD_INC_USE_COUNT(mod) \
- do { __unsafe(mod); (void)try_module_get(mod); } while(0)
-#define __MOD_DEC_USE_COUNT(mod) module_put(mod)
+static inline void __deprecated __MOD_INC_USE_COUNT(struct module *module)
+{
+ __unsafe(module);
+ /*
+ * Yes, we ignore the retval here, that's why it's deprecated.
+ */
+ try_module_get(module);
+}
+
+static inline void __deprecated __MOD_DEC_USE_COUNT(struct module *module)
+{
+ module_put(module);
+}
+
#define SET_MODULE_OWNER(dev) ((dev)->owner = THIS_MODULE)
struct obsolete_modparm {
@@ -319,15 +342,21 @@ struct obsolete_modparm __parm_##var __attribute__((section("__obsparm"))) = \
/* People do this inside their init routines, when the module isn't
"live" yet. They should no longer be doing that, but
meanwhile... */
+static inline void __deprecated _MOD_INC_USE_COUNT(struct module *module)
+{
+ __unsafe(module);
+
#if defined(CONFIG_MODULE_UNLOAD) && defined(MODULE)
-#define MOD_INC_USE_COUNT \
- do { __unsafe(THIS_MODULE); local_inc(&THIS_MODULE->ref[get_cpu()].count); put_cpu(); } while (0)
+ local_inc(&module->ref[get_cpu()].count);
+ put_cpu();
#else
-#define MOD_INC_USE_COUNT \
- do { __unsafe(THIS_MODULE); (void)try_module_get(THIS_MODULE); } while (0)
+ try_module_get(module);
#endif
-#define MOD_DEC_USE_COUNT module_put(THIS_MODULE)
-#define try_inc_mod_count(mod) try_module_get(mod)
+}
+#define MOD_INC_USE_COUNT \
+ _MOD_INC_USE_COUNT(THIS_MODULE)
+#define MOD_DEC_USE_COUNT \
+ __MOD_DEC_USE_COUNT(THIS_MODULE)
#define EXPORT_NO_SYMBOLS
extern int module_dummy_usage;
#define GET_USE_COUNT(module) (module_dummy_usage)
@@ -342,13 +371,6 @@ extern int module_dummy_usage;
&& __mod_between((p),(n),(m)->module_init,(m)->init_size)) \
|| __mod_between((p),(n),(m)->module_core,(m)->core_size))
-/* Old-style "I'll just call it init_module and it'll be run at
- insert". Use module_init(myroutine) instead. */
-#ifdef MODULE
-#define init_module(voidarg) __initfn(void)
-#define cleanup_module(voidarg) __exitfn(void)
-#endif
-
/*
* The exception and symbol tables, and the lock
* to protect them.
diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
index 92a1bc154e8e..e52553263640 100644
--- a/include/linux/moduleparam.h
+++ b/include/linux/moduleparam.h
@@ -39,7 +39,7 @@ struct kparam_string {
writable. */
#define __module_param_call(prefix, name, set, get, arg, perm) \
static char __param_str_##name[] __initdata = prefix #name; \
- static struct kernel_param __param_##name \
+ static struct kernel_param const __param_##name \
__attribute__ ((unused,__section__ ("__param"))) \
= { __param_str_##name, perm, set, get, arg }
diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h
index 94ffed22315b..ad8dfcbda17d 100644
--- a/include/linux/mtd/map.h
+++ b/include/linux/mtd/map.h
@@ -81,10 +81,7 @@ static inline void map_destroy(struct mtd_info *mtd)
if (map->fldrv->destroy)
map->fldrv->destroy(mtd);
-#ifdef CONFIG_MODULES
- if (map->fldrv->module)
- __MOD_DEC_USE_COUNT(map->fldrv->module);
-#endif
+ module_put(map->fldrv->module);
kfree(mtd);
}
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index ae5bfe3e10fb..503a715fe014 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -215,20 +215,16 @@ static inline struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num)
struct mtd_info *ret;
ret = __get_mtd_device(mtd, num);
-
- if (ret && ret->module && !try_inc_mod_count(ret->module))
+ if (ret && !try_module_get(ret->module))
return NULL;
-
return ret;
}
static inline void put_mtd_device(struct mtd_info *mtd)
{
- if (mtd->module)
- __MOD_DEC_USE_COUNT(mtd->module);
+ module_put(mtd->module);
}
-
struct mtd_notifier {
void (*add)(struct mtd_info *mtd);
void (*remove)(struct mtd_info *mtd);
diff --git a/include/linux/nubus.h b/include/linux/nubus.h
index a3fd37b33fdd..870e66a96286 100644
--- a/include/linux/nubus.h
+++ b/include/linux/nubus.h
@@ -28,18 +28,18 @@ enum nubus_category {
};
enum nubus_type_network {
- NUBUS_TYPE_ETHERNET = 0x0001,
- NUBUS_TYPE_RS232 = 0x0002
+ NUBUS_TYPE_ETHERNET = 0x0001,
+ NUBUS_TYPE_RS232 = 0x0002
};
enum nubus_type_display {
- NUBUS_TYPE_VIDEO = 0x0001
+ NUBUS_TYPE_VIDEO = 0x0001
};
enum nubus_type_cpu {
- NUBUS_TYPE_68020 = 0x0003,
- NUBUS_TYPE_68030 = 0x0004,
- NUBUS_TYPE_68040 = 0x0005
+ NUBUS_TYPE_68020 = 0x0003,
+ NUBUS_TYPE_68030 = 0x0004,
+ NUBUS_TYPE_68040 = 0x0005
};
/* Known <Cat,Type,SW,HW> tuples: (according to TattleTech and Slots)
@@ -80,22 +80,24 @@ enum nubus_type_cpu {
/* Add known DrSW values here */
enum nubus_drsw {
/* NUBUS_CAT_DISPLAY */
- NUBUS_DRSW_APPLE = 0x0001,
- NUBUS_DRSW_APPLE_HIRES = 0x0013, /* MacII HiRes card driver */
+ NUBUS_DRSW_APPLE = 0x0001,
+ NUBUS_DRSW_APPLE_HIRES = 0x0013, /* MacII HiRes card driver */
/* NUBUS_CAT_NETWORK */
- NUBUS_DRSW_CABLETRON = 0x0001,
- NUBUS_DRSW_SONIC_LC = 0x0001,
- NUBUS_DRSW_KINETICS = 0x0103,
- NUBUS_DRSW_ASANTE = 0x0104,
- NUBUS_DRSW_DAYNA = 0x010b,
- NUBUS_DRSW_FARALLON = 0x010c,
- NUBUS_DRSW_APPLE_SN = 0x010f,
- NUBUS_DRSW_FOCUS = 0x011a,
- NUBUS_DRSW_ASANTE_CS = 0x011d, /* use asante SMC9194 driver */
+ NUBUS_DRSW_CABLETRON = 0x0001,
+ NUBUS_DRSW_SONIC_LC = 0x0001,
+ NUBUS_DRSW_KINETICS = 0x0103,
+ NUBUS_DRSW_ASANTE = 0x0104,
+ NUBUS_DRSW_DAYNA = 0x010b,
+ NUBUS_DRSW_FARALLON = 0x010c,
+ NUBUS_DRSW_APPLE_SN = 0x010f,
+ NUBUS_DRSW_DAYNA2 = 0x0115,
+ NUBUS_DRSW_FOCUS = 0x011a,
+ NUBUS_DRSW_ASANTE_CS = 0x011d, /* use asante SMC9194 driver */
+ NUBUS_DRSW_DAYNA_LC = 0x011e,
/* NUBUS_CAT_CPU */
- NUBUS_DRSW_NONE = 0x0000,
+ NUBUS_DRSW_NONE = 0x0000,
};
/* DrHW: Uniquely identifies the hardware interface to a board (or at
@@ -106,11 +108,13 @@ enum nubus_drsw {
enum nubus_drhw {
/* NUBUS_CAT_DISPLAY */
NUBUS_DRHW_APPLE_TFB = 0x0001, /* Toby frame buffer card */
+ NUBUS_DRHW_APPLE_HRVC = 0x0013, /* Mac II High Res Video card */
NUBUS_DRHW_APPLE_RBV1 = 0x0018, /* IIci RBV video */
NUBUS_DRHW_APPLE_MDC = 0x0019, /* Macintosh Display Card */
NUBUS_DRHW_APPLE_SONORA = 0x0022, /* Sonora built-in video */
+ NUBUS_DRHW_APPLE_JET = 0x0029, /* Jet framebuffer (DuoDock) */
NUBUS_DRHW_APPLE_VALKYRIE = 0x002e,
- NUBUS_DRHW_APPLE_JET = 0x0029, /* Jet framebuffer (DuoDock) */
+ NUBUS_DRHW_THUNDER24 = 0x02cb, /* SuperMac Thunder/24 */
/* NUBUS_CAT_NETWORK */
NUBUS_DRHW_INTERLAN = 0x0100,
@@ -119,6 +123,11 @@ enum nubus_drhw {
NUBUS_DRHW_CABLETRON = 0x0109,
NUBUS_DRHW_ASANTE_LC = 0x010f,
NUBUS_DRHW_SONIC = 0x0110,
+ NUBUS_DRHW_SONIC_NB = 0x0118,
+ NUBUS_DRHW_SONIC_LC = 0x0119,
+
+ /* NUBUS_CAT_COMMUNICATIONS */
+ NUBUS_DRHW_DOVEFAX = 0x0100,
};
/* Resource IDs: These are the identifiers for the various weird and
@@ -153,8 +162,8 @@ enum nubus_board_res_id {
NUBUS_RESID_SECONDINIT = 0x0026,
/* Not sure why Apple put these next two in here */
- NUBUS_RESID_VIDNAMES = 0x0041,
- NUBUS_RESID_VIDMODES = 0x007e
+ NUBUS_RESID_VIDNAMES = 0x0041,
+ NUBUS_RESID_VIDMODES = 0x007e
};
/* Fields within the vendor info directory */
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index a79d04de4fd5..74c3d9786874 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -1,10 +1,71 @@
#ifndef __LINUX_PERCPU_H
#define __LINUX_PERCPU_H
#include <linux/spinlock.h> /* For preempt_disable() */
+#include <linux/slab.h> /* For kmalloc_percpu() */
#include <asm/percpu.h>
/* Must be an lvalue. */
#define get_cpu_var(var) (*({ preempt_disable(); &__get_cpu_var(var); }))
#define put_cpu_var(var) preempt_enable()
+#ifdef CONFIG_SMP
+
+struct percpu_data {
+ void *ptrs[NR_CPUS];
+ void *blkp;
+};
+
+/*
+ * Use this to get to a cpu's version of the per-cpu object allocated using
+ * kmalloc_percpu. If you want to get "this cpu's version", maybe you want
+ * to use get_cpu_ptr...
+ */
+#define per_cpu_ptr(ptr, cpu) \
+({ \
+ struct percpu_data *__p = (struct percpu_data *)~(unsigned long)(ptr); \
+ (__typeof__(ptr))__p->ptrs[(cpu)]; \
+})
+
+extern void *kmalloc_percpu(size_t size, int flags);
+extern void kfree_percpu(const void *);
+extern void kmalloc_percpu_init(void);
+
+#else /* CONFIG_SMP */
+
+#define per_cpu_ptr(ptr, cpu) (ptr)
+
+static inline void *kmalloc_percpu(size_t size, int flags)
+{
+ return(kmalloc(size, flags));
+}
+static inline void kfree_percpu(const void *ptr)
+{
+ kfree(ptr);
+}
+static inline void kmalloc_percpu_init(void) { }
+
+#endif /* CONFIG_SMP */
+
+/*
+ * Use these with kmalloc_percpu. If
+ * 1. You want to operate on memory allocated by kmalloc_percpu (dereference
+ * and read/modify/write) AND
+ * 2. You want "this cpu's version" of the object AND
+ * 3. You want to do this safely since:
+ * a. On multiprocessors, you don't want to switch between cpus after
+ * you've read the current processor id due to preemption -- this would
+ * take away the implicit advantage to not have any kind of traditional
+ * serialization for per-cpu data
+ * b. On uniprocessors, you don't want another kernel thread messing
+ * up with the same per-cpu data due to preemption
+ *
+ * So, Use get_cpu_ptr to disable preemption and get pointer to the
+ * local cpu version of the per-cpu object. Use put_cpu_ptr to enable
+ * preemption. Operations on per-cpu data between get_ and put_ is
+ * then considered to be safe. And ofcourse, "Thou shalt not sleep between
+ * get_cpu_ptr and put_cpu_ptr"
+ */
+#define get_cpu_ptr(ptr) per_cpu_ptr(ptr, get_cpu())
+#define put_cpu_ptr(ptr) put_cpu()
+
#endif /* __LINUX_PERCPU_H */
diff --git a/include/linux/personality.h b/include/linux/personality.h
index ca5d403e49ff..33802c8eeedb 100644
--- a/include/linux/personality.h
+++ b/include/linux/personality.h
@@ -107,22 +107,4 @@ struct exec_domain {
#define set_personality(pers) \
((current->personality == pers) ? 0 : __set_personality(pers))
-/*
- * Load an execution domain.
- */
-#define get_exec_domain(ep) \
-do { \
- if (ep != NULL && ep->module != NULL) \
- __MOD_INC_USE_COUNT(ep->module); \
-} while (0)
-
-/*
- * Unload an execution domain.
- */
-#define put_exec_domain(ep) \
-do { \
- if (ep != NULL && ep->module != NULL) \
- __MOD_DEC_USE_COUNT(ep->module); \
-} while (0)
-
#endif /* _LINUX_PERSONALITY_H */
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 7c3bbfc255ed..9545a1957089 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -343,7 +343,6 @@ struct task_struct {
unsigned long start_time;
/* mm fault and swap info: this can arguably be seen as either mm-specific or thread-specific */
unsigned long min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap;
- int swappable:1;
/* process credentials */
uid_t uid,euid,suid,fsuid;
gid_t gid,egid,sgid,fsgid;
diff --git a/include/linux/sensors.h b/include/linux/sensors.h
deleted file mode 100644
index 31998faab1e6..000000000000
--- a/include/linux/sensors.h
+++ /dev/null
@@ -1,690 +0,0 @@
-/*
- sensors.h - Part of lm_sensors, Linux kernel modules for hardware
- monitoring
- Copyright (c) 1998, 1999 Frodo Looijaard <frodol@dds.nl>
-
- 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 SENSORS_NSENSORS_H
-#define SENSORS_NSENSORS_H
-
-#define LM_DATE "20020915"
-#define LM_VERSION "2.6.5"
-
-#include <linux/i2c-proc.h>
-
-#define LM78_SYSCTL_IN0 1000 /* Volts * 100 */
-#define LM78_SYSCTL_IN1 1001
-#define LM78_SYSCTL_IN2 1002
-#define LM78_SYSCTL_IN3 1003
-#define LM78_SYSCTL_IN4 1004
-#define LM78_SYSCTL_IN5 1005
-#define LM78_SYSCTL_IN6 1006
-#define LM78_SYSCTL_FAN1 1101 /* Rotations/min */
-#define LM78_SYSCTL_FAN2 1102
-#define LM78_SYSCTL_FAN3 1103
-#define LM78_SYSCTL_TEMP 1200 /* Degrees Celcius * 10 */
-#define LM78_SYSCTL_VID 1300 /* Volts * 100 */
-#define LM78_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define LM78_SYSCTL_ALARMS 2001 /* bitvector */
-
-#define LM78_ALARM_IN0 0x0001
-#define LM78_ALARM_IN1 0x0002
-#define LM78_ALARM_IN2 0x0004
-#define LM78_ALARM_IN3 0x0008
-#define LM78_ALARM_IN4 0x0100
-#define LM78_ALARM_IN5 0x0200
-#define LM78_ALARM_IN6 0x0400
-#define LM78_ALARM_FAN1 0x0040
-#define LM78_ALARM_FAN2 0x0080
-#define LM78_ALARM_FAN3 0x0800
-#define LM78_ALARM_TEMP 0x0010
-#define LM78_ALARM_BTI 0x0020
-#define LM78_ALARM_CHAS 0x1000
-#define LM78_ALARM_FIFO 0x2000
-#define LM78_ALARM_SMI_IN 0x4000
-
-#define W83781D_SYSCTL_IN0 1000 /* Volts * 100 */
-#define W83781D_SYSCTL_IN1 1001
-#define W83781D_SYSCTL_IN2 1002
-#define W83781D_SYSCTL_IN3 1003
-#define W83781D_SYSCTL_IN4 1004
-#define W83781D_SYSCTL_IN5 1005
-#define W83781D_SYSCTL_IN6 1006
-#define W83781D_SYSCTL_IN7 1007
-#define W83781D_SYSCTL_IN8 1008
-#define W83781D_SYSCTL_FAN1 1101 /* Rotations/min */
-#define W83781D_SYSCTL_FAN2 1102
-#define W83781D_SYSCTL_FAN3 1103
-#define W83781D_SYSCTL_TEMP1 1200 /* Degrees Celcius * 10 */
-#define W83781D_SYSCTL_TEMP2 1201 /* Degrees Celcius * 10 */
-#define W83781D_SYSCTL_TEMP3 1202 /* Degrees Celcius * 10 */
-#define W83781D_SYSCTL_VID 1300 /* Volts * 1000 */
-#define W83781D_SYSCTL_VRM 1301
-#define W83781D_SYSCTL_PWM1 1401
-#define W83781D_SYSCTL_PWM2 1402
-#define W83781D_SYSCTL_PWM3 1403
-#define W83781D_SYSCTL_PWM4 1404
-#define W83781D_SYSCTL_SENS1 1501 /* 1, 2, or Beta (3000-5000) */
-#define W83781D_SYSCTL_SENS2 1502
-#define W83781D_SYSCTL_SENS3 1503
-#define W83781D_SYSCTL_RT1 1601 /* 32-entry table */
-#define W83781D_SYSCTL_RT2 1602 /* 32-entry table */
-#define W83781D_SYSCTL_RT3 1603 /* 32-entry table */
-#define W83781D_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define W83781D_SYSCTL_ALARMS 2001 /* bitvector */
-#define W83781D_SYSCTL_BEEP 2002 /* bitvector */
-
-#define W83781D_ALARM_IN0 0x0001
-#define W83781D_ALARM_IN1 0x0002
-#define W83781D_ALARM_IN2 0x0004
-#define W83781D_ALARM_IN3 0x0008
-#define W83781D_ALARM_IN4 0x0100
-#define W83781D_ALARM_IN5 0x0200
-#define W83781D_ALARM_IN6 0x0400
-#define W83782D_ALARM_IN7 0x10000
-#define W83782D_ALARM_IN8 0x20000
-#define W83781D_ALARM_FAN1 0x0040
-#define W83781D_ALARM_FAN2 0x0080
-#define W83781D_ALARM_FAN3 0x0800
-#define W83781D_ALARM_TEMP1 0x0010
-#define W83781D_ALARM_TEMP23 0x0020 /* 781D only */
-#define W83781D_ALARM_TEMP2 0x0020 /* 782D/783S */
-#define W83781D_ALARM_TEMP3 0x2000 /* 782D only */
-#define W83781D_ALARM_CHAS 0x1000
-
-#define LM75_SYSCTL_TEMP 1200 /* Degrees Celcius * 10 */
-
-#define ADM1021_SYSCTL_TEMP 1200
-#define ADM1021_SYSCTL_REMOTE_TEMP 1201
-#define ADM1021_SYSCTL_DIE_CODE 1202
-#define ADM1021_SYSCTL_ALARMS 1203
-
-#define ADM1021_ALARM_TEMP_HIGH 0x40
-#define ADM1021_ALARM_TEMP_LOW 0x20
-#define ADM1021_ALARM_RTEMP_HIGH 0x10
-#define ADM1021_ALARM_RTEMP_LOW 0x08
-#define ADM1021_ALARM_RTEMP_NA 0x04
-
-#define GL518_SYSCTL_VDD 1000 /* Volts * 100 */
-#define GL518_SYSCTL_VIN1 1001
-#define GL518_SYSCTL_VIN2 1002
-#define GL518_SYSCTL_VIN3 1003
-#define GL518_SYSCTL_FAN1 1101 /* RPM */
-#define GL518_SYSCTL_FAN2 1102
-#define GL518_SYSCTL_TEMP 1200 /* Degrees Celcius * 10 */
-#define GL518_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define GL518_SYSCTL_ALARMS 2001 /* bitvector */
-#define GL518_SYSCTL_BEEP 2002 /* bitvector */
-#define GL518_SYSCTL_FAN1OFF 2003
-#define GL518_SYSCTL_ITERATE 2004
-
-#define GL518_ALARM_VDD 0x01
-#define GL518_ALARM_VIN1 0x02
-#define GL518_ALARM_VIN2 0x04
-#define GL518_ALARM_VIN3 0x08
-#define GL518_ALARM_TEMP 0x10
-#define GL518_ALARM_FAN1 0x20
-#define GL518_ALARM_FAN2 0x40
-
-#define GL520_SYSCTL_VDD 1000 /* Volts * 100 */
-#define GL520_SYSCTL_VIN1 1001
-#define GL520_SYSCTL_VIN2 1002
-#define GL520_SYSCTL_VIN3 1003
-#define GL520_SYSCTL_VIN4 1004
-#define GL520_SYSCTL_FAN1 1101 /* RPM */
-#define GL520_SYSCTL_FAN2 1102
-#define GL520_SYSCTL_TEMP1 1200 /* Degrees Celcius * 10 */
-#define GL520_SYSCTL_TEMP2 1201 /* Degrees Celcius * 10 */
-#define GL520_SYSCTL_VID 1300
-#define GL520_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define GL520_SYSCTL_ALARMS 2001 /* bitvector */
-#define GL520_SYSCTL_BEEP 2002 /* bitvector */
-#define GL520_SYSCTL_FAN1OFF 2003
-#define GL520_SYSCTL_CONFIG 2004
-
-#define GL520_ALARM_VDD 0x01
-#define GL520_ALARM_VIN1 0x02
-#define GL520_ALARM_VIN2 0x04
-#define GL520_ALARM_VIN3 0x08
-#define GL520_ALARM_TEMP1 0x10
-#define GL520_ALARM_FAN1 0x20
-#define GL520_ALARM_FAN2 0x40
-#define GL520_ALARM_TEMP2 0x80
-#define GL520_ALARM_VIN4 0x80
-
-#define EEPROM_SYSCTL1 1000
-#define EEPROM_SYSCTL2 1001
-#define EEPROM_SYSCTL3 1002
-#define EEPROM_SYSCTL4 1003
-#define EEPROM_SYSCTL5 1004
-#define EEPROM_SYSCTL6 1005
-#define EEPROM_SYSCTL7 1006
-#define EEPROM_SYSCTL8 1007
-#define EEPROM_SYSCTL9 1008
-#define EEPROM_SYSCTL10 1009
-#define EEPROM_SYSCTL11 1010
-#define EEPROM_SYSCTL12 1011
-#define EEPROM_SYSCTL13 1012
-#define EEPROM_SYSCTL14 1013
-#define EEPROM_SYSCTL15 1014
-#define EEPROM_SYSCTL16 1015
-
-#define LM80_SYSCTL_IN0 1000 /* Volts * 100 */
-#define LM80_SYSCTL_IN1 1001
-#define LM80_SYSCTL_IN2 1002
-#define LM80_SYSCTL_IN3 1003
-#define LM80_SYSCTL_IN4 1004
-#define LM80_SYSCTL_IN5 1005
-#define LM80_SYSCTL_IN6 1006
-#define LM80_SYSCTL_FAN1 1101 /* Rotations/min */
-#define LM80_SYSCTL_FAN2 1102
-#define LM80_SYSCTL_TEMP 1250 /* Degrees Celcius * 100 */
-#define LM80_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define LM80_SYSCTL_ALARMS 2001 /* bitvector */
-
-#define ADM9240_SYSCTL_IN0 1000 /* Volts * 100 */
-#define ADM9240_SYSCTL_IN1 1001
-#define ADM9240_SYSCTL_IN2 1002
-#define ADM9240_SYSCTL_IN3 1003
-#define ADM9240_SYSCTL_IN4 1004
-#define ADM9240_SYSCTL_IN5 1005
-#define ADM9240_SYSCTL_FAN1 1101 /* Rotations/min */
-#define ADM9240_SYSCTL_FAN2 1102
-#define ADM9240_SYSCTL_TEMP 1250 /* Degrees Celcius * 100 */
-#define ADM9240_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define ADM9240_SYSCTL_ALARMS 2001 /* bitvector */
-#define ADM9240_SYSCTL_ANALOG_OUT 2002
-#define ADM9240_SYSCTL_VID 2003
-
-#define ADM9240_ALARM_IN0 0x0001
-#define ADM9240_ALARM_IN1 0x0002
-#define ADM9240_ALARM_IN2 0x0004
-#define ADM9240_ALARM_IN3 0x0008
-#define ADM9240_ALARM_IN4 0x0100
-#define ADM9240_ALARM_IN5 0x0200
-#define ADM9240_ALARM_FAN1 0x0040
-#define ADM9240_ALARM_FAN2 0x0080
-#define ADM9240_ALARM_TEMP 0x0010
-#define ADM9240_ALARM_CHAS 0x1000
-
-#define ADM1024_SYSCTL_IN0 1000 /* Volts * 100 */
-#define ADM1024_SYSCTL_IN1 1001
-#define ADM1024_SYSCTL_IN2 1002
-#define ADM1024_SYSCTL_IN3 1003
-#define ADM1024_SYSCTL_IN4 1004
-#define ADM1024_SYSCTL_IN5 1005
-#define ADM1024_SYSCTL_FAN1 1101 /* Rotations/min */
-#define ADM1024_SYSCTL_FAN2 1102
-#define ADM1024_SYSCTL_TEMP 1250 /* Degrees Celcius * 100 */
-#define ADM1024_SYSCTL_TEMP1 1290 /* Degrees Celcius */
-#define ADM1024_SYSCTL_TEMP2 1295 /* Degrees Celcius */
-#define ADM1024_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define ADM1024_SYSCTL_ALARMS 2001 /* bitvector */
-#define ADM1024_SYSCTL_ANALOG_OUT 2002
-#define ADM1024_SYSCTL_VID 2003
-
-#define ADM1024_ALARM_IN0 0x0001
-#define ADM1024_ALARM_IN1 0x0002
-#define ADM1024_ALARM_IN2 0x0004
-#define ADM1024_ALARM_IN3 0x0008
-#define ADM1024_ALARM_IN4 0x0100
-#define ADM1024_ALARM_IN5 0x0200
-#define ADM1024_ALARM_FAN1 0x0040
-#define ADM1024_ALARM_FAN2 0x0080
-#define ADM1024_ALARM_TEMP 0x0010
-#define ADM1024_ALARM_TEMP1 0x0020
-#define ADM1024_ALARM_TEMP2 0x0001
-#define ADM1024_ALARM_CHAS 0x1000
-
-#define ADM1025_SYSCTL_IN0 1000 /* Volts * 100 */
-#define ADM1025_SYSCTL_IN1 1001
-#define ADM1025_SYSCTL_IN2 1002
-#define ADM1025_SYSCTL_IN3 1003
-#define ADM1025_SYSCTL_IN4 1004
-#define ADM1025_SYSCTL_IN5 1005
-#define ADM1025_SYSCTL_RTEMP 1251
-#define ADM1025_SYSCTL_TEMP 1250 /* Degrees Celcius * 100 */
-#define ADM1025_SYSCTL_ALARMS 2001 /* bitvector */
-#define ADM1025_SYSCTL_ANALOG_OUT 2002
-#define ADM1025_SYSCTL_VID 2003
-#define ADM1025_SYSCTL_VRM 2004
-
-#define ADM1025_ALARM_IN0 0x0001
-#define ADM1025_ALARM_IN1 0x0002
-#define ADM1025_ALARM_IN2 0x0004
-#define ADM1025_ALARM_IN3 0x0008
-#define ADM1025_ALARM_IN4 0x0100
-#define ADM1025_ALARM_IN5 0x0200
-#define ADM1025_ALARM_RTEMP 0x0020
-#define ADM1025_ALARM_TEMP 0x0010
-
-#define LTC1710_SYSCTL_SWITCH_1 1000
-#define LTC1710_SYSCTL_SWITCH_2 1001
-
-#define LM80_ALARM_IN0 0x0001
-#define LM80_ALARM_IN1 0x0002
-#define LM80_ALARM_IN2 0x0004
-#define LM80_ALARM_IN3 0x0008
-#define LM80_ALARM_IN4 0x0010
-#define LM80_ALARM_IN5 0x0020
-#define LM80_ALARM_IN6 0x0040
-#define LM80_ALARM_FAN1 0x0400
-#define LM80_ALARM_FAN2 0x0800
-#define LM80_ALARM_TEMP_HOT 0x0100
-#define LM80_ALARM_TEMP_OS 0x2000
-#define LM80_ALARM_CHAS 0x1000
-#define LM80_ALARM_BTI 0x0200
-#define LM80_ALARM_INT_IN 0x0080
-
-#define MAXI_SYSCTL_FAN1 1101 /* Rotations/min */
-#define MAXI_SYSCTL_FAN2 1102 /* Rotations/min */
-#define MAXI_SYSCTL_FAN3 1103 /* Rotations/min */
-#define MAXI_SYSCTL_FAN4 1104 /* Rotations/min */
-#define MAXI_SYSCTL_TEMP1 1201 /* Degrees Celcius */
-#define MAXI_SYSCTL_TEMP2 1202 /* Degrees Celcius */
-#define MAXI_SYSCTL_TEMP3 1203 /* Degrees Celcius */
-#define MAXI_SYSCTL_TEMP4 1204 /* Degrees Celcius */
-#define MAXI_SYSCTL_TEMP5 1205 /* Degrees Celcius */
-#define MAXI_SYSCTL_TEMP6 1206 /* Degrees Celcius */
-#define MAXI_SYSCTL_PLL 1301 /* MHz */
-#define MAXI_SYSCTL_VID1 1401 /* Volts / 6.337, for nba just Volts */
-#define MAXI_SYSCTL_VID2 1402 /* Volts */
-#define MAXI_SYSCTL_VID3 1403 /* Volts */
-#define MAXI_SYSCTL_VID4 1404 /* Volts */
-#define MAXI_SYSCTL_VID5 1405 /* Volts */
-#define MAXI_SYSCTL_LCD1 1501 /* Line 1 of LCD */
-#define MAXI_SYSCTL_LCD2 1502 /* Line 2 of LCD */
-#define MAXI_SYSCTL_LCD3 1503 /* Line 3 of LCD */
-#define MAXI_SYSCTL_LCD4 1504 /* Line 4 of LCD */
-#define MAXI_SYSCTL_ALARMS 2001 /* Bitvector (see below) */
-
-#define MAXI_ALARM_VID4 0x0001
-#define MAXI_ALARM_TEMP2 0x0002
-#define MAXI_ALARM_VID1 0x0004
-#define MAXI_ALARM_VID2 0x0008
-#define MAXI_ALARM_VID3 0x0010
-#define MAXI_ALARM_PLL 0x0080
-#define MAXI_ALARM_TEMP4 0x0100
-#define MAXI_ALARM_TEMP5 0x0200
-#define MAXI_ALARM_FAN1 0x1000
-#define MAXI_ALARM_FAN2 0x2000
-#define MAXI_ALARM_FAN3 0x4000
-
-#define MAXI_ALARM_FAN 0x0100 /* To be used with MaxiLife'99 */
-#define MAXI_ALARM_VID 0x0200 /* The MSB specifies which sensor */
-#define MAXI_ALARM_TEMP 0x0400 /* in the alarm group failed, i.e.: */
-#define MAXI_ALARM_VADD 0x0800 /* 0x0402 = TEMP2 failed = CPU2 temp */
-
-#define SIS5595_SYSCTL_IN0 1000 /* Volts * 100 */
-#define SIS5595_SYSCTL_IN1 1001
-#define SIS5595_SYSCTL_IN2 1002
-#define SIS5595_SYSCTL_IN3 1003
-#define SIS5595_SYSCTL_IN4 1004
-#define SIS5595_SYSCTL_FAN1 1101 /* Rotations/min */
-#define SIS5595_SYSCTL_FAN2 1102
-#define SIS5595_SYSCTL_TEMP 1200 /* Degrees Celcius * 10 */
-#define SIS5595_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define SIS5595_SYSCTL_ALARMS 2001 /* bitvector */
-
-#define SIS5595_ALARM_IN0 0x01
-#define SIS5595_ALARM_IN1 0x02
-#define SIS5595_ALARM_IN2 0x04
-#define SIS5595_ALARM_IN3 0x08
-#define SIS5595_ALARM_BTI 0x20
-#define SIS5595_ALARM_FAN1 0x40
-#define SIS5595_ALARM_FAN2 0x80
-#define SIS5595_ALARM_IN4 0x8000
-#define SIS5595_ALARM_TEMP 0x8000
-
-#define VIA686A_SYSCTL_IN0 1000
-#define VIA686A_SYSCTL_IN1 1001
-#define VIA686A_SYSCTL_IN2 1002
-#define VIA686A_SYSCTL_IN3 1003
-#define VIA686A_SYSCTL_IN4 1004
-#define VIA686A_SYSCTL_FAN1 1101
-#define VIA686A_SYSCTL_FAN2 1102
-#define VIA686A_SYSCTL_TEMP 1200
-#define VIA686A_SYSCTL_TEMP2 1201
-#define VIA686A_SYSCTL_TEMP3 1202
-#define VIA686A_SYSCTL_FAN_DIV 2000
-#define VIA686A_SYSCTL_ALARMS 2001
-
-#define VIA686A_ALARM_IN0 0x01
-#define VIA686A_ALARM_IN1 0x02
-#define VIA686A_ALARM_IN2 0x04
-#define VIA686A_ALARM_IN3 0x08
-#define VIA686A_ALARM_TEMP 0x10
-#define VIA686A_ALARM_FAN1 0x40
-#define VIA686A_ALARM_FAN2 0x80
-#define VIA686A_ALARM_IN4 0x100
-#define VIA686A_ALARM_TEMP2 0x800
-#define VIA686A_ALARM_CHAS 0x1000
-#define VIA686A_ALARM_TEMP3 0x8000
-
-#define ICSPLL_SYSCTL1 1000
-
-#define BT869_SYSCTL_STATUS 1000
-#define BT869_SYSCTL_NTSC 1001
-#define BT869_SYSCTL_HALF 1002
-#define BT869_SYSCTL_RES 1003
-#define BT869_SYSCTL_COLORBARS 1004
-#define BT869_SYSCTL_DEPTH 1005
-#define BT869_SYSCTL_SVIDEO 1006
-
-#define MATORB_SYSCTL_DISP 1000
-
-#define THMC50_SYSCTL_TEMP 1200 /* Degrees Celcius */
-#define THMC50_SYSCTL_REMOTE_TEMP 1201 /* Degrees Celcius */
-#define THMC50_SYSCTL_INTER 1202
-#define THMC50_SYSCTL_INTER_MASK 1203
-#define THMC50_SYSCTL_DIE_CODE 1204
-#define THMC50_SYSCTL_ANALOG_OUT 1205
-
-#define DDCMON_SYSCTL_ID 1010
-#define DDCMON_SYSCTL_SIZE 1011
-#define DDCMON_SYSCTL_SYNC 1012
-#define DDCMON_SYSCTL_TIMINGS 1013
-#define DDCMON_SYSCTL_SERIAL 1014
-
-#define LM87_SYSCTL_IN0 1000 /* Volts * 100 */
-#define LM87_SYSCTL_IN1 1001
-#define LM87_SYSCTL_IN2 1002
-#define LM87_SYSCTL_IN3 1003
-#define LM87_SYSCTL_IN4 1004
-#define LM87_SYSCTL_IN5 1005
-#define LM87_SYSCTL_AIN1 1006
-#define LM87_SYSCTL_AIN2 1007
-#define LM87_SYSCTL_FAN1 1102
-#define LM87_SYSCTL_FAN2 1103
-#define LM87_SYSCTL_TEMP1 1250 /* Degrees Celcius * 100 */
-#define LM87_SYSCTL_TEMP2 1251 /* Degrees Celcius * 100 */
-#define LM87_SYSCTL_TEMP3 1252 /* Degrees Celcius * 100 */
-#define LM87_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define LM87_SYSCTL_ALARMS 2001 /* bitvector */
-#define LM87_SYSCTL_ANALOG_OUT 2002
-#define LM87_SYSCTL_VID 2003
-#define LM87_SYSCTL_VRM 2004
-
-#define LM87_ALARM_IN0 0x0001
-#define LM87_ALARM_IN1 0x0002
-#define LM87_ALARM_IN2 0x0004
-#define LM87_ALARM_IN3 0x0008
-#define LM87_ALARM_TEMP1 0x0010
-#define LM87_ALARM_TEMP2 0x0020
-#define LM87_ALARM_TEMP3 0x0020 /* same?? */
-#define LM87_ALARM_FAN1 0x0040
-#define LM87_ALARM_FAN2 0x0080
-#define LM87_ALARM_IN4 0x0100
-#define LM87_ALARM_IN5 0x0200
-#define LM87_ALARM_RESERVED1 0x0400
-#define LM87_ALARM_RESERVED2 0x0800
-#define LM87_ALARM_CHAS 0x1000
-#define LM87_ALARM_THERM_SIG 0x2000
-#define LM87_ALARM_TEMP2_FAULT 0x4000
-#define LM87_ALARM_TEMP3_FAULT 0x08000
-
-#define PCF8574_SYSCTL_READ 1000
-#define PCF8574_SYSCTL_WRITE 1001
-
-#define MTP008_SYSCTL_IN0 1000 /* Volts * 100 */
-#define MTP008_SYSCTL_IN1 1001
-#define MTP008_SYSCTL_IN2 1002
-#define MTP008_SYSCTL_IN3 1003
-#define MTP008_SYSCTL_IN4 1004
-#define MTP008_SYSCTL_IN5 1005
-#define MTP008_SYSCTL_IN6 1006
-#define MTP008_SYSCTL_FAN1 1101 /* Rotations/min */
-#define MTP008_SYSCTL_FAN2 1102
-#define MTP008_SYSCTL_FAN3 1103
-#define MTP008_SYSCTL_TEMP1 1200 /* Degrees Celcius * 10 */
-#define MTP008_SYSCTL_TEMP2 1201 /* Degrees Celcius * 10 */
-#define MTP008_SYSCTL_TEMP3 1202 /* Degrees Celcius * 10 */
-#define MTP008_SYSCTL_VID 1300 /* Volts * 100 */
-#define MTP008_SYSCTL_PWM1 1401
-#define MTP008_SYSCTL_PWM2 1402
-#define MTP008_SYSCTL_PWM3 1403
-#define MTP008_SYSCTL_SENS1 1501 /* 1, 2, or Beta (3000-5000) */
-#define MTP008_SYSCTL_SENS2 1502
-#define MTP008_SYSCTL_SENS3 1503
-#define MTP008_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define MTP008_SYSCTL_ALARMS 2001 /* bitvector */
-#define MTP008_SYSCTL_BEEP 2002 /* bitvector */
-
-#define MTP008_ALARM_IN0 0x0001
-#define MTP008_ALARM_IN1 0x0002
-#define MTP008_ALARM_IN2 0x0004
-#define MTP008_ALARM_IN3 0x0008
-#define MTP008_ALARM_IN4 0x0100
-#define MTP008_ALARM_IN5 0x0200
-#define MTP008_ALARM_IN6 0x0400
-#define MTP008_ALARM_FAN1 0x0040
-#define MTP008_ALARM_FAN2 0x0080
-#define MTP008_ALARM_FAN3 0x0800
-#define MTP008_ALARM_TEMP1 0x0010
-#define MTP008_ALARM_TEMP2 0x0100
-#define MTP008_ALARM_TEMP3 0x0200
-
-#define DS1621_SYSCTL_TEMP 1200 /* Degrees Celcius * 10 */
-#define DS1621_SYSCTL_ALARMS 2001 /* bitvector */
-#define DS1621_ALARM_TEMP_HIGH 0x40
-#define DS1621_ALARM_TEMP_LOW 0x20
-#define DS1621_SYSCTL_ENABLE 2002
-#define DS1621_SYSCTL_CONTINUOUS 2003
-#define DS1621_SYSCTL_POLARITY 2004
-
-#define IT87_SYSCTL_IN0 1000 /* Volts * 100 */
-#define IT87_SYSCTL_IN1 1001
-#define IT87_SYSCTL_IN2 1002
-#define IT87_SYSCTL_IN3 1003
-#define IT87_SYSCTL_IN4 1004
-#define IT87_SYSCTL_IN5 1005
-#define IT87_SYSCTL_IN6 1006
-#define IT87_SYSCTL_IN7 1007
-#define IT87_SYSCTL_IN8 1008
-#define IT87_SYSCTL_FAN1 1101 /* Rotations/min */
-#define IT87_SYSCTL_FAN2 1102
-#define IT87_SYSCTL_FAN3 1103
-#define IT87_SYSCTL_TEMP1 1200 /* Degrees Celcius * 10 */
-#define IT87_SYSCTL_TEMP2 1201 /* Degrees Celcius * 10 */
-#define IT87_SYSCTL_TEMP3 1202 /* Degrees Celcius * 10 */
-#define IT87_SYSCTL_VID 1300 /* Volts * 100 */
-#define IT87_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define IT87_SYSCTL_ALARMS 2004 /* bitvector */
-
-#define IT87_ALARM_IN0 0x000100
-#define IT87_ALARM_IN1 0x000200
-#define IT87_ALARM_IN2 0x000400
-#define IT87_ALARM_IN3 0x000800
-#define IT87_ALARM_IN4 0x001000
-#define IT87_ALARM_IN5 0x002000
-#define IT87_ALARM_IN6 0x004000
-#define IT87_ALARM_IN7 0x008000
-#define IT87_ALARM_FAN1 0x0001
-#define IT87_ALARM_FAN2 0x0002
-#define IT87_ALARM_FAN3 0x0004
-#define IT87_ALARM_TEMP1 0x00010000
-#define IT87_ALARM_TEMP2 0x00020000
-#define IT87_ALARM_TEMP3 0x00040000
-
-#define FSCPOS_SYSCTL_VOLT0 1000 /* 12 volt supply */
-#define FSCPOS_SYSCTL_VOLT1 1001 /* 5 volt supply */
-#define FSCPOS_SYSCTL_VOLT2 1002 /* batterie voltage*/
-#define FSCPOS_SYSCTL_FAN0 1101 /* state, min, ripple, actual value fan 0 */
-#define FSCPOS_SYSCTL_FAN1 1102 /* state, min, ripple, actual value fan 1 */
-#define FSCPOS_SYSCTL_FAN2 1103 /* state, min, ripple, actual value fan 2 */
-#define FSCPOS_SYSCTL_TEMP0 1201 /* state and value of sensor 0, cpu die */
-#define FSCPOS_SYSCTL_TEMP1 1202 /* state and value of sensor 1, motherboard */
-#define FSCPOS_SYSCTL_TEMP2 1203 /* state and value of sensor 2, chassis */
-#define FSCPOS_SYSCTL_REV 2000 /* Revision */
-#define FSCPOS_SYSCTL_EVENT 2001 /* global event status */
-#define FSCPOS_SYSCTL_CONTROL 2002 /* global control byte */
-#define FSCPOS_SYSCTL_WDOG 2003 /* state, min, ripple, actual value fan 2 */
-
-#define FSCSCY_SYSCTL_VOLT0 1000 /* 12 volt supply */
-#define FSCSCY_SYSCTL_VOLT1 1001 /* 5 volt supply */
-#define FSCSCY_SYSCTL_VOLT2 1002 /* batterie voltage*/
-#define FSCSCY_SYSCTL_FAN0 1101 /* state, min, ripple, actual value fan 0 */
-#define FSCSCY_SYSCTL_FAN1 1102 /* state, min, ripple, actual value fan 1 */
-#define FSCSCY_SYSCTL_FAN2 1103 /* state, min, ripple, actual value fan 2 */
-#define FSCSCY_SYSCTL_FAN3 1104 /* state, min, ripple, actual value fan 3 */
-#define FSCSCY_SYSCTL_FAN4 1105 /* state, min, ripple, actual value fan 4 */
-#define FSCSCY_SYSCTL_FAN5 1106 /* state, min, ripple, actual value fan 5 */
-#define FSCSCY_SYSCTL_TEMP0 1201 /* state and value of sensor 0, cpu die */
-#define FSCSCY_SYSCTL_TEMP1 1202 /* state and value of sensor 1, motherboard */
-#define FSCSCY_SYSCTL_TEMP2 1203 /* state and value of sensor 2, chassis */
-#define FSCSCY_SYSCTL_TEMP3 1204 /* state and value of sensor 3, chassis */
-#define FSCSCY_SYSCTL_REV 2000 /* Revision */
-#define FSCSCY_SYSCTL_EVENT 2001 /* global event status */
-#define FSCSCY_SYSCTL_CONTROL 2002 /* global control byte */
-#define FSCSCY_SYSCTL_WDOG 2003 /* state, min, ripple, actual value fan 2 */
-#define FSCSCY_SYSCTL_PCILOAD 2004 /* PCILoad value */
-#define FSCSCY_SYSCTL_INTRUSION 2005 /* state, control for intrusion sensor */
-
-#define PCF8591_SYSCTL_AIN_CONF 1000 /* Analog input configuration */
-#define PCF8591_SYSCTL_CH0 1001 /* Input channel 1 */
-#define PCF8591_SYSCTL_CH1 1002 /* Input channel 2 */
-#define PCF8591_SYSCTL_CH2 1003 /* Input channel 3 */
-#define PCF8591_SYSCTL_CH3 1004 /* Input channel 4 */
-#define PCF8591_SYSCTL_AOUT_ENABLE 1005 /* Analog output enable flag */
-#define PCF8591_SYSCTL_AOUT 1006 /* Analog output */
-
-#define ARP_SYSCTL1 1000
-#define ARP_SYSCTL2 1001
-#define ARP_SYSCTL3 1002
-#define ARP_SYSCTL4 1003
-#define ARP_SYSCTL5 1004
-#define ARP_SYSCTL6 1005
-#define ARP_SYSCTL7 1006
-#define ARP_SYSCTL8 1007
-
-#define SMSC47M1_SYSCTL_FAN1 1101 /* Rotations/min */
-#define SMSC47M1_SYSCTL_FAN2 1102
-#define SMSC47M1_SYSCTL_PWM1 1401
-#define SMSC47M1_SYSCTL_PWM2 1402
-#define SMSC47M1_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */
-#define SMSC47M1_SYSCTL_ALARMS 2004 /* bitvector */
-
-#define SMSC47M1_ALARM_FAN1 0x0001
-#define SMSC47M1_ALARM_FAN2 0x0002
-
-#define VT1211_SYSCTL_IN0 1000
-#define VT1211_SYSCTL_IN1 1001
-#define VT1211_SYSCTL_IN2 1002
-#define VT1211_SYSCTL_IN3 1003
-#define VT1211_SYSCTL_IN4 1004
-#define VT1211_SYSCTL_IN5 1005
-#define VT1211_SYSCTL_IN6 1006
-#define VT1211_SYSCTL_FAN1 1101
-#define VT1211_SYSCTL_FAN2 1102
-#define VT1211_SYSCTL_TEMP 1200
-#define VT1211_SYSCTL_TEMP2 1201
-#define VT1211_SYSCTL_TEMP3 1202
-#define VT1211_SYSCTL_TEMP4 1203
-#define VT1211_SYSCTL_TEMP5 1204
-#define VT1211_SYSCTL_TEMP6 1205
-#define VT1211_SYSCTL_TEMP7 1206
-#define VT1211_SYSCTL_VID 1300
-#define VT1211_SYSCTL_PWM1 1401
-#define VT1211_SYSCTL_PWM2 1402
-#define VT1211_SYSCTL_VRM 1600
-#define VT1211_SYSCTL_UCH 1700
-#define VT1211_SYSCTL_FAN_DIV 2000
-#define VT1211_SYSCTL_ALARMS 2001
-
-#define VT1211_ALARM_IN1 0x01
-#define VT1211_ALARM_IN2 0x02
-#define VT1211_ALARM_IN5 0x04
-#define VT1211_ALARM_IN3 0x08
-#define VT1211_ALARM_TEMP 0x10
-#define VT1211_ALARM_FAN1 0x40
-#define VT1211_ALARM_FAN2 0x80
-#define VT1211_ALARM_IN4 0x100
-#define VT1211_ALARM_IN6 0x200
-#define VT1211_ALARM_TEMP2 0x800
-#define VT1211_ALARM_CHAS 0x1000
-#define VT1211_ALARM_TEMP3 0x8000
-/* duplicates */
-#define VT1211_ALARM_IN0 VT1211_ALARM_TEMP
-#define VT1211_ALARM_TEMP4 VT1211_ALARM_IN1
-#define VT1211_ALARM_TEMP5 VT1211_ALARM_IN2
-#define VT1211_ALARM_TEMP6 VT1211_ALARM_IN3
-#define VT1211_ALARM_TEMP7 VT1211_ALARM_IN4
-
-#define LM92_SYSCTL_ALARMS 2001 /* high, low, critical */
-#define LM92_SYSCTL_TEMP 1200 /* high, low, critical, hysterisis, input */
-
-#define LM92_ALARM_TEMP_HIGH 0x01
-#define LM92_ALARM_TEMP_LOW 0x02
-#define LM92_ALARM_TEMP_CRIT 0x04
-#define LM92_TEMP_HIGH 0x08
-#define LM92_TEMP_LOW 0x10
-#define LM92_TEMP_CRIT 0x20
-#define LM92_TEMP_HYST 0x40
-#define LM92_TEMP_INPUT 0x80
-
-#define VT8231_SYSCTL_IN0 1000
-#define VT8231_SYSCTL_IN1 1001
-#define VT8231_SYSCTL_IN2 1002
-#define VT8231_SYSCTL_IN3 1003
-#define VT8231_SYSCTL_IN4 1004
-#define VT8231_SYSCTL_IN5 1005
-#define VT8231_SYSCTL_IN6 1006
-#define VT8231_SYSCTL_FAN1 1101
-#define VT8231_SYSCTL_FAN2 1102
-#define VT8231_SYSCTL_TEMP 1200
-#define VT8231_SYSCTL_TEMP2 1201
-#define VT8231_SYSCTL_TEMP3 1202
-#define VT8231_SYSCTL_TEMP4 1203
-#define VT8231_SYSCTL_TEMP5 1204
-#define VT8231_SYSCTL_TEMP6 1205
-#define VT8231_SYSCTL_TEMP7 1206
-#define VT8231_SYSCTL_VID 1300
-#define VT8231_SYSCTL_PWM1 1401
-#define VT8231_SYSCTL_PWM2 1402
-#define VT8231_SYSCTL_VRM 1600
-#define VT8231_SYSCTL_UCH 1700
-#define VT8231_SYSCTL_FAN_DIV 2000
-#define VT8231_SYSCTL_ALARMS 2001
-
-#define VT8231_ALARM_IN1 0x01
-#define VT8231_ALARM_IN2 0x02
-#define VT8231_ALARM_IN5 0x04
-#define VT8231_ALARM_IN3 0x08
-#define VT8231_ALARM_TEMP 0x10
-#define VT8231_ALARM_FAN1 0x40
-#define VT8231_ALARM_FAN2 0x80
-#define VT8231_ALARM_IN4 0x100
-#define VT8231_ALARM_IN6 0x200
-#define VT8231_ALARM_TEMP2 0x800
-#define VT8231_ALARM_CHAS 0x1000
-#define VT8231_ALARM_TEMP3 0x8000
-/* duplicates */
-#define VT8231_ALARM_IN0 VT8231_ALARM_TEMP
-#define VT8231_ALARM_TEMP4 VT8231_ALARM_IN1
-#define VT8231_ALARM_TEMP5 VT8231_ALARM_IN2
-#define VT8231_ALARM_TEMP6 VT8231_ALARM_IN3
-#define VT8231_ALARM_TEMP7 VT8231_ALARM_IN4
-
-#define SMARTBATT_SYSCTL_I 1001
-#define SMARTBATT_SYSCTL_V 1002
-#define SMARTBATT_SYSCTL_TEMP 1003
-#define SMARTBATT_SYSCTL_TIME 1004
-#define SMARTBATT_SYSCTL_ALARMS 1005
-#define SMARTBATT_SYSCTL_CHARGE 1006
-
-
-#endif /* def SENSORS_SENSORS_H */
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 7a1e22b170c2..8243c6bec130 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -78,6 +78,13 @@ extern int register_cpu_notifier(struct notifier_block *nb);
extern void unregister_cpu_notifier(struct notifier_block *nb);
int cpu_up(unsigned int cpu);
+
+/*
+ * Mark the boot cpu "online" so that it can call console drivers in
+ * printk() and can access its per-cpu storage.
+ */
+void smp_prepare_boot_cpu(void);
+
#else /* !SMP */
/*
@@ -94,7 +101,8 @@ static inline void smp_send_reschedule_all(void) { }
#define cpu_online(cpu) ({ BUG_ON((cpu) != 0); 1; })
#define num_online_cpus() 1
#define num_booting_cpus() 1
-#define cpu_possible(cpu) ({ BUG_ON((cpu) != 0); 1; })
+#define cpu_possible(cpu) ({ BUG_ON((cpu) != 0); 1; })
+#define smp_prepare_boot_cpu() do {} while (0)
struct notifier_block;
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index a481f80034fa..80b4a657b49c 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -46,6 +46,9 @@ struct suspend_header {
/* mm/vmscan.c */
extern int shrink_mem(void);
+/* mm/page_alloc.c */
+extern void drain_local_pages(void);
+
/* kernel/suspend.c */
extern void software_suspend(void);
extern void software_resume(void);
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 11b82d2c98ae..ad3149de8631 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -379,9 +379,8 @@ extern void start_tty(struct tty_struct * tty);
extern int tty_register_ldisc(int disc, struct tty_ldisc *new_ldisc);
extern int tty_register_driver(struct tty_driver *driver);
extern int tty_unregister_driver(struct tty_driver *driver);
-extern void tty_register_devfs (struct tty_driver *driver, unsigned int flags,
- unsigned minor);
-extern void tty_unregister_devfs (struct tty_driver *driver, unsigned minor);
+extern void tty_register_device(struct tty_driver *driver, unsigned minor);
+extern void tty_unregister_device(struct tty_driver *driver, unsigned minor);
extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,
int buflen);
extern void tty_write_message(struct tty_struct *tty, char *msg);
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
index 806216e30a26..ad5638bbd4ed 100644
--- a/include/linux/tty_driver.h
+++ b/include/linux/tty_driver.h
@@ -227,4 +227,6 @@ extern struct list_head tty_drivers;
#define SERIAL_TYPE_NORMAL 1
#define SERIAL_TYPE_CALLOUT 2
+extern struct device_class tty_devclass;
+
#endif /* #ifdef _LINUX_TTY_DRIVER_H */
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 88557d5957a7..bcbfa72423c3 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -28,14 +28,6 @@ static __inline__ void wait_ms(unsigned int ms)
mdelay(ms);
}
-/*
- * USB device number allocation bitmap. There's one bitmap
- * per USB tree.
- */
-struct usb_devmap {
- unsigned long devicemap[128 / (8*sizeof(unsigned long))];
-};
-
struct usb_device;
/*-------------------------------------------------------------------------*/
@@ -119,12 +111,21 @@ struct usb_interface {
struct usb_driver *driver; /* driver */
kdev_t kdev; /* node this interface is bound to */
struct device dev; /* interface specific device info */
- void *private_data;
};
#define to_usb_interface(d) container_of(d, struct usb_interface, dev)
#define interface_to_usbdev(intf) \
container_of(intf->dev.parent, struct usb_device, dev)
+static inline void *usb_get_intfdata (struct usb_interface *intf)
+{
+ return dev_get_drvdata (&intf->dev);
+}
+
+static inline void usb_set_intfdata (struct usb_interface *intf, void *data)
+{
+ return dev_set_drvdata (&intf->dev, data);
+}
+
/* USB_DT_CONFIG: Configuration descriptor information.
*
* USB_DT_OTHER_SPEED_CONFIG is the same descriptor, except that the
@@ -159,10 +160,16 @@ int __usb_get_extra_descriptor(char *buffer, unsigned size,
struct usb_operations;
+/* USB device number allocation bitmap */
+struct usb_devmap {
+ unsigned long devicemap[128 / (8*sizeof(unsigned long))];
+};
+
/*
- * Allocated per bus we have
+ * Allocated per bus (tree of devices) we have:
*/
struct usb_bus {
+ struct device *controller; /* host/master side hardware */
int busnum; /* Bus number (in order of reg) */
char *bus_name; /* stable id (PCI slot_name etc) */
@@ -210,7 +217,6 @@ struct usb_device {
struct usb_tt *tt; /* low/full speed dev, highspeed hub */
int ttport; /* device port on that tt hub */
- atomic_t refcnt; /* Reference count */
struct semaphore serialize;
unsigned int toggle[2]; /* one bit for each endpoint ([0] = IN, [1] = OUT) */
@@ -254,8 +260,7 @@ struct usb_device {
extern struct usb_device *usb_alloc_dev(struct usb_device *parent, struct usb_bus *);
extern struct usb_device *usb_get_dev(struct usb_device *dev);
-extern void usb_free_dev(struct usb_device *);
-#define usb_put_dev usb_free_dev
+extern void usb_put_dev(struct usb_device *dev);
/* mostly for devices emulating SCSI over USB */
extern int usb_reset_device(struct usb_device *dev);