diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-03 00:28:37 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-03 00:28:37 -0800 |
| commit | dc2d18819ddd128d1cd6fe3519e2c0a7c466c940 (patch) | |
| tree | 1044d95894c0a45be149ef1eb77ebb262d009383 /include | |
| parent | bf6735bfb28ca749b6bef14400178fcedb7e47e3 (diff) | |
| parent | b731ec4f84bc380eb28eb534e324b4b4eeec8697 (diff) | |
Merge HP-PA update.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-parisc/dma.h | 8 | ||||
| -rw-r--r-- | include/asm-parisc/gsc.h | 31 | ||||
| -rw-r--r-- | include/asm-parisc/io.h | 12 | ||||
| -rw-r--r-- | include/asm-parisc/poll.h | 1 | ||||
| -rw-r--r-- | include/asm-parisc/processor.h | 6 | ||||
| -rw-r--r-- | include/linux/personality.h | 1 | ||||
| -rw-r--r-- | include/linux/som.h | 154 |
7 files changed, 172 insertions, 41 deletions
diff --git a/include/asm-parisc/dma.h b/include/asm-parisc/dma.h index d51c41b53d78..b087f5596ec2 100644 --- a/include/asm-parisc/dma.h +++ b/include/asm-parisc/dma.h @@ -1,4 +1,4 @@ -/* $Id: dma.h,v 1.1 2002/07/20 15:52:25 rhirst Exp $ +/* $Id: dma.h,v 1.2 1999/04/27 00:46:18 deller Exp $ * linux/include/asm/dma.h: Defines for using and allocating dma channels. * Written by Hennus Bergman, 1992. * High DMA channel support & info by Hannu Savolainen @@ -177,11 +177,7 @@ static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count) } - -/* These are in kernel/dma.c: */ -extern int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */ -extern void free_dma(unsigned int dmanr); /* release it again */ -extern int get_dma_list(char *buf); /* proc/dma support */ +#define free_dma(dmanr) #ifdef CONFIG_PCI extern int isa_dma_bridge_buggy; diff --git a/include/asm-parisc/gsc.h b/include/asm-parisc/gsc.h deleted file mode 100644 index 6ec113942029..000000000000 --- a/include/asm-parisc/gsc.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef ASM_PARISC_GSC_H -#define ASM_PARISC_GSC_H -#ifdef __KERNEL__ - -#include <linux/types.h> -#include <asm/io.h> /* temporary for __raw_{read,write} */ - -/* Please, call ioremap and use {read,write}[bwl] instead. These functions - * are not very fast. - */ -#define gsc_readb(x) __raw_readb((unsigned long)x) -#define gsc_readw(x) __raw_readw((unsigned long)x) -#define gsc_readl(x) __raw_readl((unsigned long)x) -#define gsc_writeb(x, y) __raw_writeb(x, (unsigned long)y) -#define gsc_writew(x, y) __raw_writew(x, (unsigned long)y) -#define gsc_writel(x, y) __raw_writel(x, (unsigned long)y) - -struct gsc_irq { - unsigned long txn_addr; /* IRQ "target" */ - int txn_data; /* HW "IRQ" */ - int irq; /* virtual IRQ */ -}; - -/* PA I/O Architected devices support at least 5 bits in the EIM register. */ -#define GSC_EIM_WIDTH 5 - -extern int gsc_alloc_irq(struct gsc_irq *dev); /* dev needs an irq */ -extern int gsc_claim_irq(struct gsc_irq *dev, int irq); /* dev needs this irq */ - -#endif /* __KERNEL__ */ -#endif /* LINUX_GSC_H */ diff --git a/include/asm-parisc/io.h b/include/asm-parisc/io.h index 636800b28473..ea211e3b77b6 100644 --- a/include/asm-parisc/io.h +++ b/include/asm-parisc/io.h @@ -182,6 +182,18 @@ extern void memset_io(unsigned long dest, char fill, int count); #define isa_memcpy_fromio(a,b,c) memcpy_fromio((a), EISA_BASE | (b), (c)) #define isa_memcpy_toio(a,b,c) memcpy_toio(EISA_BASE | (a), (b), (c)) +/* + * These functions support PA-RISC drivers which don't yet call ioremap(). + * They will disappear once the last of these drivers is gone. + */ +#define gsc_readb(x) __raw_readb((unsigned long)x) +#define gsc_readw(x) __raw_readw((unsigned long)x) +#define gsc_readl(x) __raw_readl((unsigned long)x) +#define gsc_writeb(x, y) __raw_writeb(x, (unsigned long)y) +#define gsc_writew(x, y) __raw_writew(x, (unsigned long)y) +#define gsc_writel(x, y) __raw_writel(x, (unsigned long)y) + + /* * XXX - We don't have csum_partial_copy_fromio() yet, so we cheat here and * just copy it. The net code will then do the checksum later. Presently diff --git a/include/asm-parisc/poll.h b/include/asm-parisc/poll.h index 55ebfcc44aae..1c1da86934cf 100644 --- a/include/asm-parisc/poll.h +++ b/include/asm-parisc/poll.h @@ -15,6 +15,7 @@ #define POLLWRNORM 0x0100 #define POLLWRBAND 0x0200 #define POLLMSG 0x0400 +#define POLLREMOVE 0x1000 struct pollfd { int fd; diff --git a/include/asm-parisc/processor.h b/include/asm-parisc/processor.h index c69b744b1576..a3cab768a4f0 100644 --- a/include/asm-parisc/processor.h +++ b/include/asm-parisc/processor.h @@ -73,10 +73,8 @@ struct system_cpuinfo_parisc { ** Per CPU data structure - ie varies per CPU. */ struct cpuinfo_parisc { - - struct irq_region *region; - unsigned long it_value; /* Interval Timer value at last timer Intr */ - unsigned long it_delta; /* Interval Timer delta (tic_10ms / HZ * 100) */ + unsigned long it_value; /* Interval Timer at last timer Intr */ + unsigned long it_delta; /* Interval delta (tic_10ms / HZ * 100) */ unsigned long irq_count; /* number of IRQ's since boot */ unsigned long irq_max_cr16; /* longest time to handle a single IRQ */ unsigned long cpuid; /* aka slot_number or set to NO_PROC_ID */ diff --git a/include/linux/personality.h b/include/linux/personality.h index 192f073b0a5a..ca5d403e49ff 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h @@ -63,6 +63,7 @@ enum { PER_SOLARIS = 0x000d | STICKY_TIMEOUTS, PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, PER_OSF4 = 0x000f, /* OSF/1 v4 */ + PER_HPUX = 0x0010, PER_MASK = 0x00ff, }; diff --git a/include/linux/som.h b/include/linux/som.h new file mode 100644 index 000000000000..166594e4e7be --- /dev/null +++ b/include/linux/som.h @@ -0,0 +1,154 @@ +#ifndef _LINUX_SOM_H +#define _LINUX_SOM_H + +/* File format definition for SOM executables / shared libraries */ + +/* we need struct timespec */ +#include <linux/time.h> + +#define SOM_PAGESIZE 4096 + +/* this is the SOM header */ +struct som_hdr { + short system_id; /* magic number - system */ + short a_magic; /* magic number - file type */ + unsigned int version_id; /* versiod ID: YYMMDDHH */ + struct timespec file_time; /* system clock */ + unsigned int entry_space; /* space for entry point */ + unsigned int entry_subspace; /* subspace for entry point */ + unsigned int entry_offset; /* offset of entry point */ + unsigned int aux_header_location; /* auxiliary header location */ + unsigned int aux_header_size; /* auxiliary header size */ + unsigned int som_length; /* length of entire SOM */ + unsigned int presumed_dp; /* compiler's DP value */ + unsigned int space_location; /* space dictionary location */ + unsigned int space_total; /* number of space entries */ + unsigned int subspace_location; /* subspace entries location */ + unsigned int subspace_total; /* number of subspace entries */ + unsigned int loader_fixup_location; /* MPE/iX loader fixup */ + unsigned int loader_fixup_total; /* number of fixup records */ + unsigned int space_strings_location; /* (sub)space names */ + unsigned int space_strings_size; /* size of strings area */ + unsigned int init_array_location; /* reserved */ + unsigned int init_array_total; /* reserved */ + unsigned int compiler_location; /* module dictionary */ + unsigned int compiler_total; /* number of modules */ + unsigned int symbol_location; /* symbol dictionary */ + unsigned int symbol_total; /* number of symbols */ + unsigned int fixup_request_location; /* fixup requests */ + unsigned int fixup_request_total; /* number of fixup requests */ + unsigned int symbol_strings_location;/* module & symbol names area */ + unsigned int symbol_strings_size; /* size of strings area */ + unsigned int unloadable_sp_location; /* unloadable spaces location */ + unsigned int unloadable_sp_size; /* size of data */ + unsigned int checksum; +}; + +/* values for system_id */ + +#define SOM_SID_PARISC_1_0 0x020b +#define SOM_SID_PARISC_1_1 0x0210 +#define SOM_SID_PARISC_2_0 0x0214 + +/* values for a_magic */ + +#define SOM_LIB_EXEC 0x0104 +#define SOM_RELOCATABLE 0x0106 +#define SOM_EXEC_NONSHARE 0x0107 +#define SOM_EXEC_SHARE 0x0108 +#define SOM_EXEC_DEMAND 0x010B +#define SOM_LIB_DYN 0x010D +#define SOM_LIB_SHARE 0x010E +#define SOM_LIB_RELOC 0x0619 + +/* values for version_id. Decimal not hex, yes. Grr. */ + +#define SOM_ID_OLD 85082112 +#define SOM_ID_NEW 87102412 + +struct aux_id { + unsigned int mandatory :1; /* the linker must understand this */ + unsigned int copy :1; /* Must be copied by the linker */ + unsigned int append :1; /* Must be merged by the linker */ + unsigned int ignore :1; /* Discard section if unknown */ + unsigned int reserved :12; + unsigned int type :16; /* Header type */ + unsigned int length; /* length of _following_ data */ +}; + +/* The Exec Auxiliary Header. Called The HP-UX Header within HP apparently. */ +struct som_exec_auxhdr { + struct aux_id som_auxhdr; + int exec_tsize; /* Text size in bytes */ + int exec_tmem; /* Address to load text at */ + int exec_tfile; /* Location of text in file */ + int exec_dsize; /* Data size in bytes */ + int exec_dmem; /* Address to load data at */ + int exec_dfile; /* Location of data in file */ + int exec_bsize; /* Uninitialised data (bss) */ + int exec_entry; /* Address to start executing */ + int exec_flags; /* loader flags */ + int exec_bfill; /* initialisation value for bss */ +}; + +/* Oh, the things people do to avoid casts. Shame it'll break with gcc's + * new aliasing rules really. + */ +union name_pt { + char * n_name; + unsigned int n_strx; +}; + +/* The Space Dictionary */ +struct space_dictionary_record { + union name_pt name; /* index to subspace name */ + unsigned int is_loadable :1; /* loadable */ + unsigned int is_defined :1; /* defined within file */ + unsigned int is_private :1; /* not sharable */ + unsigned int has_intermediate_code :1; /* contains intermediate code */ + unsigned int is_tspecific :1; /* thread specific */ + unsigned int reserved :11; /* for future expansion */ + unsigned int sort_key :8; /* for linker */ + unsigned int reserved2 :8; /* for future expansion */ + + int space_number; /* index */ + int subspace_index; /* index into subspace dict */ + unsigned int subspace_quantity; /* number of subspaces */ + int loader_fix_index; /* for loader */ + unsigned int loader_fix_quantity; /* for loader */ + int init_pointer_index; /* data pointer array index */ + unsigned int init_pointer_quantity; /* number of data pointers */ +}; + +/* The Subspace Dictionary */ +struct subspace_dictionary_record { + int space_index; + unsigned int access_control_bits :7; + unsigned int memory_resident :1; + unsigned int dup_common :1; + unsigned int is_common :1; + unsigned int quadrant :2; + unsigned int initially_frozen :1; + unsigned int is_first :1; + unsigned int code_only :1; + unsigned int sort_key :8; + unsigned int replicate_init :1; + unsigned int continuation :1; + unsigned int is_tspecific :1; + unsigned int is_comdat :1; + unsigned int reserved :4; + + int file_loc_init_value; + unsigned int initialization_length; + unsigned int subspace_start; + unsigned int subspace_length; + + unsigned int reserved2 :5; + unsigned int alignment :27; + + union name_pt name; + int fixup_request_index; + unsigned int fixup_request_quantity; +}; + +#endif /* _LINUX_SOM_H */ |
