aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-m68k/oplib.h
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2009-01-16 06:58:10 -0500
committerGreg Ungerer <gerg@uclinux.org>2009-01-16 06:58:10 -0500
commit49148020bcb6910ce71417bd990a5ce7017f9bd3 (patch)
treee410cc433a69075a0254ee4000cb10d71df3a641 /include/asm-m68k/oplib.h
parentae04d1401577bb63151480a053057de58b8e10bb (diff)
m68k,m68knommu: merge header files
Merge header files for m68k and m68knommu to the single location: arch/m68k/include/asm The majority of this patch was the result of the script that is included in the changelog below. The script was originally written by Arnd Bergman and exten by me to cover a few more files. When the header files differed the script uses the following: The original m68k file is named <file>_mm.h [mm for memory manager] The m68knommu file is named <file>_no.h [no for no memory manager] The files uses the following include guard: This include gaurd works as the m68knommu toolchain set the __uClinux__ symbol - so this should work in userspace too. Merging the header files for m68k and m68knommu exposes the (unexpected?) ABI differences thus it is easier to actually identify these and thus to fix them. The commit has been build tested with both a m68k and a m68knommu toolchain - with success. The commit has also been tested with "make headers_check" and this patch fixes make headers_check for m68knommu. The script used: TARGET=arch/m68k/include/asm SOURCE=arch/m68knommu/include/asm INCLUDE="cachectl.h errno.h fcntl.h hwtest.h ioctls.h ipcbuf.h \ linkage.h math-emu.h md.h mman.h movs.h msgbuf.h openprom.h \ oplib.h poll.h posix_types.h resource.h rtc.h sembuf.h shmbuf.h \ shm.h shmparam.h socket.h sockios.h spinlock.h statfs.h stat.h \ termbits.h termios.h tlb.h types.h user.h" EQUAL="auxvec.h cputime.h device.h emergency-restart.h futex.h \ ioctl.h irq_regs.h kdebug.h local.h mutex.h percpu.h \ sections.h topology.h" NOMUUFILES="anchor.h bootstd.h coldfire.h commproc.h dbg.h \ elia.h flat.h m5206sim.h m520xsim.h m523xsim.h m5249sim.h \ m5272sim.h m527xsim.h m528xsim.h m5307sim.h m532xsim.h \ m5407sim.h m68360_enet.h m68360.h m68360_pram.h m68360_quicc.h \ m68360_regs.h MC68328.h MC68332.h MC68EZ328.h MC68VZ328.h \ mcfcache.h mcfdma.h mcfmbus.h mcfne.h mcfpci.h mcfpit.h \ mcfsim.h mcfsmc.h mcftimer.h mcfuart.h mcfwdebug.h \ nettel.h quicc_simple.h smp.h" FILES="atomic.h bitops.h bootinfo.h bug.h bugs.h byteorder.h cache.h \ cacheflush.h checksum.h current.h delay.h div64.h \ dma-mapping.h dma.h elf.h entry.h fb.h fpu.h hardirq.h hw_irq.h io.h \ irq.h kmap_types.h machdep.h mc146818rtc.h mmu.h mmu_context.h \ module.h page.h page_offset.h param.h pci.h pgalloc.h \ pgtable.h processor.h ptrace.h scatterlist.h segment.h \ setup.h sigcontext.h siginfo.h signal.h string.h system.h swab.h \ thread_info.h timex.h tlbflush.h traps.h uaccess.h ucontext.h \ unaligned.h unistd.h" mergefile() { BASE=${1%.h} git mv ${SOURCE}/$1 ${TARGET}/${BASE}_no.h git mv ${TARGET}/$1 ${TARGET}/${BASE}_mm.h cat << EOF > ${TARGET}/$1 EOF git add ${TARGET}/$1 } set -e mkdir -p ${TARGET} git mv include/asm-m68k/* ${TARGET} rmdir include/asm-m68k git rm ${SOURCE}/Kbuild for F in $INCLUDE $EQUAL; do git rm ${SOURCE}/$F done for F in $NOMUUFILES; do git mv ${SOURCE}/$F ${TARGET}/$F done for F in $FILES ; do mergefile $F done rmdir arch/m68knommu/include/asm rmdir arch/m68knommu/include Cc: Arnd Bergmann <arnd@arndb.de> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'include/asm-m68k/oplib.h')
-rw-r--r--include/asm-m68k/oplib.h291
1 files changed, 0 insertions, 291 deletions
diff --git a/include/asm-m68k/oplib.h b/include/asm-m68k/oplib.h
deleted file mode 100644
index f082d03336bd..000000000000
--- a/include/asm-m68k/oplib.h
+++ /dev/null
@@ -1,291 +0,0 @@
1/*
2 * oplib.h: Describes the interface and available routines in the
3 * Linux Prom library.
4 *
5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
6 */
7
8#ifndef __SPARC_OPLIB_H
9#define __SPARC_OPLIB_H
10
11#include <asm/openprom.h>
12
13/* The master romvec pointer... */
14extern struct linux_romvec *romvec;
15
16/* Enumeration to describe the prom major version we have detected. */
17enum prom_major_version {
18 PROM_V0, /* Original sun4c V0 prom */
19 PROM_V2, /* sun4c and early sun4m V2 prom */
20 PROM_V3, /* sun4m and later, up to sun4d/sun4e machines V3 */
21 PROM_P1275, /* IEEE compliant ISA based Sun PROM, only sun4u */
22};
23
24extern enum prom_major_version prom_vers;
25/* Revision, and firmware revision. */
26extern unsigned int prom_rev, prom_prev;
27
28/* Root node of the prom device tree, this stays constant after
29 * initialization is complete.
30 */
31extern int prom_root_node;
32
33/* Pointer to prom structure containing the device tree traversal
34 * and usage utility functions. Only prom-lib should use these,
35 * users use the interface defined by the library only!
36 */
37extern struct linux_nodeops *prom_nodeops;
38
39/* The functions... */
40
41/* You must call prom_init() before using any of the library services,
42 * preferably as early as possible. Pass it the romvec pointer.
43 */
44extern void prom_init(struct linux_romvec *rom_ptr);
45
46/* Boot argument acquisition, returns the boot command line string. */
47extern char *prom_getbootargs(void);
48
49/* Device utilities. */
50
51/* Map and unmap devices in IO space at virtual addresses. Note that the
52 * virtual address you pass is a request and the prom may put your mappings
53 * somewhere else, so check your return value as that is where your new
54 * mappings really are!
55 *
56 * Another note, these are only available on V2 or higher proms!
57 */
58extern char *prom_mapio(char *virt_hint, int io_space, unsigned int phys_addr, unsigned int num_bytes);
59extern void prom_unmapio(char *virt_addr, unsigned int num_bytes);
60
61/* Device operations. */
62
63/* Open the device described by the passed string. Note, that the format
64 * of the string is different on V0 vs. V2->higher proms. The caller must
65 * know what he/she is doing! Returns the device descriptor, an int.
66 */
67extern int prom_devopen(char *device_string);
68
69/* Close a previously opened device described by the passed integer
70 * descriptor.
71 */
72extern int prom_devclose(int device_handle);
73
74/* Do a seek operation on the device described by the passed integer
75 * descriptor.
76 */
77extern void prom_seek(int device_handle, unsigned int seek_hival,
78 unsigned int seek_lowval);
79
80/* Machine memory configuration routine. */
81
82/* This function returns a V0 format memory descriptor table, it has three
83 * entries. One for the total amount of physical ram on the machine, one
84 * for the amount of physical ram available, and one describing the virtual
85 * areas which are allocated by the prom. So, in a sense the physical
86 * available is a calculation of the total physical minus the physical mapped
87 * by the prom with virtual mappings.
88 *
89 * These lists are returned pre-sorted, this should make your life easier
90 * since the prom itself is way too lazy to do such nice things.
91 */
92extern struct linux_mem_v0 *prom_meminfo(void);
93
94/* Miscellaneous routines, don't really fit in any category per se. */
95
96/* Reboot the machine with the command line passed. */
97extern void prom_reboot(char *boot_command);
98
99/* Evaluate the forth string passed. */
100extern void prom_feval(char *forth_string);
101
102/* Enter the prom, with possibility of continuation with the 'go'
103 * command in newer proms.
104 */
105extern void prom_cmdline(void);
106
107/* Enter the prom, with no chance of continuation for the stand-alone
108 * which calls this.
109 */
110extern void prom_halt(void);
111
112/* Set the PROM 'sync' callback function to the passed function pointer.
113 * When the user gives the 'sync' command at the prom prompt while the
114 * kernel is still active, the prom will call this routine.
115 *
116 * XXX The arguments are different on V0 vs. V2->higher proms, grrr! XXX
117 */
118typedef void (*sync_func_t)(void);
119extern void prom_setsync(sync_func_t func_ptr);
120
121/* Acquire the IDPROM of the root node in the prom device tree. This
122 * gets passed a buffer where you would like it stuffed. The return value
123 * is the format type of this idprom or 0xff on error.
124 */
125extern unsigned char prom_get_idprom(char *idp_buffer, int idpbuf_size);
126
127/* Get the prom major version. */
128extern int prom_version(void);
129
130/* Get the prom plugin revision. */
131extern int prom_getrev(void);
132
133/* Get the prom firmware revision. */
134extern int prom_getprev(void);
135
136/* Character operations to/from the console.... */
137
138/* Non-blocking get character from console. */
139extern int prom_nbgetchar(void);
140
141/* Non-blocking put character to console. */
142extern int prom_nbputchar(char character);
143
144/* Blocking get character from console. */
145extern char prom_getchar(void);
146
147/* Blocking put character to console. */
148extern void prom_putchar(char character);
149
150/* Prom's internal printf routine, don't use in kernel/boot code. */
151void prom_printf(char *fmt, ...);
152
153/* Query for input device type */
154
155enum prom_input_device {
156 PROMDEV_IKBD, /* input from keyboard */
157 PROMDEV_ITTYA, /* input from ttya */
158 PROMDEV_ITTYB, /* input from ttyb */
159 PROMDEV_I_UNK,
160};
161
162extern enum prom_input_device prom_query_input_device(void);
163
164/* Query for output device type */
165
166enum prom_output_device {
167 PROMDEV_OSCREEN, /* to screen */
168 PROMDEV_OTTYA, /* to ttya */
169 PROMDEV_OTTYB, /* to ttyb */
170 PROMDEV_O_UNK,
171};
172
173extern enum prom_output_device prom_query_output_device(void);
174
175/* Multiprocessor operations... */
176
177/* Start the CPU with the given device tree node, context table, and context
178 * at the passed program counter.
179 */
180extern int prom_startcpu(int cpunode, struct linux_prom_registers *context_table,
181 int context, char *program_counter);
182
183/* Stop the CPU with the passed device tree node. */
184extern int prom_stopcpu(int cpunode);
185
186/* Idle the CPU with the passed device tree node. */
187extern int prom_idlecpu(int cpunode);
188
189/* Re-Start the CPU with the passed device tree node. */
190extern int prom_restartcpu(int cpunode);
191
192/* PROM memory allocation facilities... */
193
194/* Allocated at possibly the given virtual address a chunk of the
195 * indicated size.
196 */
197extern char *prom_alloc(char *virt_hint, unsigned int size);
198
199/* Free a previously allocated chunk. */
200extern void prom_free(char *virt_addr, unsigned int size);
201
202/* Sun4/sun4c specific memory-management startup hook. */
203
204/* Map the passed segment in the given context at the passed
205 * virtual address.
206 */
207extern void prom_putsegment(int context, unsigned long virt_addr,
208 int physical_segment);
209
210/* PROM device tree traversal functions... */
211
212/* Get the child node of the given node, or zero if no child exists. */
213extern int prom_getchild(int parent_node);
214
215/* Get the next sibling node of the given node, or zero if no further
216 * siblings exist.
217 */
218extern int prom_getsibling(int node);
219
220/* Get the length, at the passed node, of the given property type.
221 * Returns -1 on error (ie. no such property at this node).
222 */
223extern int prom_getproplen(int thisnode, char *property);
224
225/* Fetch the requested property using the given buffer. Returns
226 * the number of bytes the prom put into your buffer or -1 on error.
227 */
228extern int prom_getproperty(int thisnode, char *property,
229 char *prop_buffer, int propbuf_size);
230
231/* Acquire an integer property. */
232extern int prom_getint(int node, char *property);
233
234/* Acquire an integer property, with a default value. */
235extern int prom_getintdefault(int node, char *property, int defval);
236
237/* Acquire a boolean property, 0=FALSE 1=TRUE. */
238extern int prom_getbool(int node, char *prop);
239
240/* Acquire a string property, null string on error. */
241extern void prom_getstring(int node, char *prop, char *buf, int bufsize);
242
243/* Does the passed node have the given "name"? YES=1 NO=0 */
244extern int prom_nodematch(int thisnode, char *name);
245
246/* Search all siblings starting at the passed node for "name" matching
247 * the given string. Returns the node on success, zero on failure.
248 */
249extern int prom_searchsiblings(int node_start, char *name);
250
251/* Return the first property type, as a string, for the given node.
252 * Returns a null string on error.
253 */
254extern char *prom_firstprop(int node);
255
256/* Returns the next property after the passed property for the given
257 * node. Returns null string on failure.
258 */
259extern char *prom_nextprop(int node, char *prev_property);
260
261/* Returns 1 if the specified node has given property. */
262extern int prom_node_has_property(int node, char *property);
263
264/* Set the indicated property at the given node with the passed value.
265 * Returns the number of bytes of your value that the prom took.
266 */
267extern int prom_setprop(int node, char *prop_name, char *prop_value,
268 int value_size);
269
270extern int prom_pathtoinode(char *path);
271extern int prom_inst2pkg(int);
272
273/* Dorking with Bus ranges... */
274
275/* Adjust reg values with the passed ranges. */
276extern void prom_adjust_regs(struct linux_prom_registers *regp, int nregs,
277 struct linux_prom_ranges *rangep, int nranges);
278
279/* Adjust child ranges with the passed parent ranges. */
280extern void prom_adjust_ranges(struct linux_prom_ranges *cranges, int ncranges,
281 struct linux_prom_ranges *pranges, int npranges);
282
283/* Apply promlib probed OBIO ranges to registers. */
284extern void prom_apply_obio_ranges(struct linux_prom_registers *obioregs, int nregs);
285
286/* Apply ranges of any prom node (and optionally parent node as well) to registers. */
287extern void prom_apply_generic_ranges(int node, int parent,
288 struct linux_prom_registers *sbusregs, int nregs);
289
290
291#endif /* !(__SPARC_OPLIB_H) */