Commit Graph

187 Commits

Author SHA1 Message Date
thorpej 8abe76d2f0 Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
1998-02-04 05:12:46 +00:00
thorpej 99cc8482d1 Change the last argument of bus_dmamap_sync() from bus_dmasync_op_t to int,
and allow more than one synchronization operation to be specified in
a single call.  Dissallow mixing of PRE and POST operations.
1998-02-04 01:57:27 +00:00
thorpej 4e7c05e588 Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to
BUS_DMA_COHERENT.
1998-02-04 00:31:33 +00:00
mark b280ec0268 Update copyright. 1998-02-03 19:08:27 +00:00
mycroft b5c132e4d2 Prototype __flt_rounds() consistently. 1998-02-03 01:26:20 +00:00
thorpej 2538ed1062 Use offsetof() from libkern.h 1998-01-28 02:23:04 +00:00
mark 75b044ab61 Prefix the SPL macros to avoid clashes with userland macros (e.g. ipf). 1998-01-20 01:18:18 +00:00
mark 6924ceb598 Declare arm8_clock_config() to return an int rather than void. 1998-01-19 23:51:01 +00:00
mark 56bac34cae Declare a prototype for arm8_clock_config(). 1998-01-18 03:43:46 +00:00
thorpej b9f1b716f3 Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
1998-01-03 01:12:59 +00:00
thorpej a6f228e498 Make pmap_activate() take a struct proc *. 1998-01-02 22:36:33 +00:00
kleink 66c2794142 Add _BSD_SUSECONDS_T_ and _BSD_USECONDS_T_; do some space vs. tab formatting
cleanup
1997-11-23 20:20:53 +00:00
thorpej 0b04d28454 Mark uses of long long with /* LONGLONG */ for lint. From
Chris Demetriou <cgd@pa.dec.com>.
1997-11-05 04:36:08 +00:00
thorpej fdcd077928 asm -> __asm__ 1997-11-05 00:34:15 +00:00
thorpej 4730a8cbec Bug fixes and cleanup from Chris Demetriou <cgd@pa.dec.com>:
- fix _C_LABEL so that it actually works.
- make __RENAME use _C_LABEL.
- fix __RENAME so that it expects an unquoted argument.
- fix __indr_reference and __warn_references so that they
  supply their own final semicolon.
- define __warn_references to nothing if not GNU C (required
  by the way it's used).

The __warn_references semicolon change has to be made
so that __warn_references can be defined into nothing.
(A ; all by itself isn't a great idea.)  The __indr_reference
change was made for consistency.
1997-11-04 23:09:23 +00:00
mark 07db350668 Define __STRING and __CONCAT macros for assembly routines. 1997-10-27 00:28:09 +00:00
thorpej 665f7d1a6e Implement __RENAME() in <machine/cdefs.h> 1997-10-22 05:20:32 +00:00
mark ea1c03acd8 Fix bug in last commit that only worked with cpp -traditional. 1997-10-18 02:46:09 +00:00
mark 1cc95a3df0 Fix .type directives to use #function rather than @function.
This is due to the problem of the @ character being a single character
comment in the asm assembler. The '#' character has now been chosen
instead for future versions of GCC and GAS so lets conform now.
1997-10-17 18:27:30 +00:00
mark fb9c150c48 arm32 kernel source restructure
- Most changes are comment cleanups.
  _ iomd.h is no longer an exported header.
  - Added intr.h for MI interrupt definitions.
  - Added definitions for ARM8 cpu.
  - Added bus dma support.
1997-10-14 09:19:59 +00:00
bouyer 6ab3092b11 Add byte-swapping functions (bswap16, bswap32, bswap64) to libkern.
Only assembly version for i386 bswap16 and bswap32 for now (bswap64 uses
bswap32). Contribution of assembly versions of these are welcome.
Add byte-swapping of ext2fs metadata for big-endian systems.
Tested on i386 and sparc.
1997-10-09 15:42:19 +00:00
mark 84e72a4ba0 Removed __VM_PMAP_HACK
Added a couple of reserved field to the pmap structure.
1997-10-05 22:59:36 +00:00
mark 9461d08a78 Define a new sysarch call number ARM32_DRAIN_WRITEBUF that can be used
to drain any CPU write buffer.
1997-10-05 22:58:26 +00:00
mark 3b844ee813 Cleaned out some old junk.
Enabled .type directive in the ENTRY() macro.
1997-10-05 22:51:05 +00:00
mark 9752ea1553 Define the new format of a setjmp buffer.
Define macros for the magic numbers and for the various field.
1997-10-05 22:48:19 +00:00
leo d4713d24c2 Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
1997-09-19 13:52:37 +00:00
mark d50cd34639 Remove a dead version of the _MCOUNT_DECL macro. 1997-07-31 00:22:15 +00:00
mark 0e187069c2 The cpu_cahce_*_rng() functions take a start address and a length rather
than a start address and end address so reflect this in the macros and
prototypes.
1997-07-29 01:18:29 +00:00
mark c025aad597 Implement __indr_reference macro. 1997-07-22 14:35:22 +00:00
mark 917e4bdd0b Implement inst_unconditional_flow_transfer as a macro. 1997-07-17 02:28:39 +00:00
thorpej 0404c01c46 #define DB_AOUT_SYMBOLS 1997-06-26 01:26:56 +00:00
mrg dc6a98e92c bring mrg-vm-swap2 onto mainilne. 1997-06-12 15:09:23 +00:00
mark 323b20590a Remove some nasty casts in macros. This fixes problems accessing raw
partitions > 4GB in size.
1997-06-03 23:48:36 +00:00
gwr e2a58b69f7 Add #define __VM_PMAP_HACK as a temporary measure. 1997-05-16 21:35:30 +00:00
fvdl 115b6d92fa Define ALIGNED_POINTER 1997-02-24 23:16:53 +00:00
mark 60cab4af5d Centralise the definition of the ASM macros used to push and pull and
trapframe and irqframe structures defined here top and from the stack.
1997-02-10 03:26:28 +00:00
mark 5f3ba778ab Define parameters for the arm32_sync_icache() function. 1997-02-10 03:14:22 +00:00
mark 51495d4bf1 Updated to work with the recent changes to the MI DDB code. 1997-02-04 07:15:46 +00:00
mark 663277e00c Simplify cpu option checks now that multiple CPU types are supported in a
single kernel.
1997-02-04 06:10:48 +00:00
mark ee02ce0401 Major overhaul of handling of CPU/MMU/TLB specific functions. This allows
different ARM CPUS with different cache architectures for example to be
supported in a single kernel.
        - All CPU/MMU/TLB specific functions are now held as function
          pointers in a cpu_functions structure defined in machine/cpufunc.h
	  All coproc 15 accesses, TLB flushing, cache cleaning/flushing
          and abort correction functions are now defined in this structure.
        - cpufuncs is a global structure that is setup during initarm()
          that holds all the function pointers for the booted CPU.
	- A global variable 'cputype' now defines the probed cputype.
        - All the existing functions for manipulating CPU specific features
          have been replaced with macros defined in machine/cpufunc.h
          that will call the appropriate function in the cpu_functions
          structure.
	- CPU functions are provided for selected CPU types (config options)
          and the appropriate cpu_functions structure is chosen during
          booting, based on the probed CPU type.
	- All the required functions for existing CPU types (ARM6, ARM7 and
          SA110) have been implemented.
1997-02-04 05:50:19 +00:00
mark 6c06479d1c __P(()) -> __P((void)) on several prototypes to fix compiler warnings. 1997-01-26 01:56:20 +00:00
mark de7c5e2195 Implement the bus space interfaces for set multiple, set region and copy. 1997-01-26 01:49:01 +00:00
mark f36384ee92 Removed the cpu specific functions and include <machine/cpufunc.h> instead. 1997-01-26 01:42:48 +00:00
mark 780de160e8 Create a file for all the prototypes for the MD device drivers. 1997-01-26 01:36:56 +00:00
mark 2d1d9a0dcb Include <machine/cpufunc.h> for cpu specific prototypes e.g. tlbflush(). 1997-01-26 01:34:45 +00:00
mark b2abc423cd Create a separate header file with the prototypes for the functions that
manipulate the cpu and mmu registers.
1997-01-26 01:31:20 +00:00
mark 0449845fb5 Declare the arguments to the function pointers in the interrupt
handler structures.
1997-01-26 01:30:51 +00:00
mark bf4360262c __P(()) -> __P((void)) on several prototypes to fix some gcc warnings. 1997-01-26 01:25:42 +00:00
mark 0bebac783d Update for new bus space interface. This implementation is based on
cgd's alpha implementation. Bus tags now point to a structure of
function pointers to bus space routines rather than being an index to
one of several I/O methods making it simpler and more efficient in
handling many different busses and mapping schemes.
1997-01-13 00:33:36 +00:00
mark b34fcd542a Added prototypes for intr_clain() and intr_release().
Added const to the ih_name member of the irqhandler structure.
1997-01-06 02:19:06 +00:00
mark 763f5034bd ib_addr in the iicbus attach args should be an int not a u_int as -1
is an acceptable address.
1997-01-03 23:13:05 +00:00
mark 77f7e266f1 Added a definition for the maximum amount of kernel VM space buffers can
occupy.
1996-12-27 01:55:48 +00:00
cgd 96acdadef7 First step inn removing config_scan() and the hacks that gave devices
on indirect-config busses a (permanent) softc that they could share
between 'match' and 'attach' routines:

Define __BROKEN_INDIRECT_CONFIG so that old autoconfiguration
interfaces are used, until drivers are converted to use the new
interfaces (actually, converted back to use the _older_ interfaces)
which prohibit indirect configuration devices from receiving a softc
in their match routine that they can share with their attach routine.
1996-12-05 00:13:47 +00:00
jtc 9da5f60715 PROF -> GPROF 1996-11-30 02:48:57 +00:00
mark 5debc61be1 Added IOMD_ID macro to return the 16bit IOMD ID code. 1996-11-23 03:21:43 +00:00
mark f14bcbdac4 Added prototype for branch_taken(). 1996-11-23 03:20:18 +00:00
mark b38644ed8d Check for CPU_ARM8 when testing for comflicting CPU options. 1996-11-23 03:18:20 +00:00
jtc 16b48272c4 Define _BSD_CLOCKID_T_ and _BSD_TIMER_T_ 1996-11-15 22:38:45 +00:00
mark 7824cc4e83 Added definitions of the IOMD DMA registers. 1996-10-29 23:14:34 +00:00
mark 6ed8e72d96 Fix the pcb_fpstate field. 1996-10-17 02:37:48 +00:00
ws 31bdb14ed5 Rename recently checked in KGDB to IPKDB to resolve conflicts with older KGDB 1996-10-16 19:32:08 +00:00
mark ed4a15bc3d Added prototypes for tlb_flush(), cache_clean(), sync_caches() and
sync_icache().
Removed prototype for memset().
Added prototypes for atomic_set_bit() and atomic_clear_bit().
1996-10-15 00:44:58 +00:00
mark fcc485e573 Define a separate set of irq numbers for ARM7500 machines if RC7500 is
not defined as the ARM7500 in A7000 machines has different interrupt
numbers than the ARM7500 in RC7500 machines.
1996-10-15 00:39:23 +00:00
mark 4d21960d40 Added checks for illegal combinations of CPU_ARM6, CPU_ARM7, CPU_ARM7500,
CPU_SA110 and CPU_LATE_ABORT.
Updated the CLKF_INTR() macro for changes made to the interrupt system.
Updated some of the CPU ID codes.
Added the CPU ID for the ARM8.
1996-10-15 00:33:03 +00:00
mark 7e836e3676 splsoftclock() is now a macro rather than a function. 1996-10-15 00:26:46 +00:00
mark b352e3549b Updated fpreg_t to match changes made to fp.h 1996-10-15 00:21:36 +00:00
mark 7e6df6c20e Added a typedef for fp_extended_precision_t.
Make fp_reg_t a typedef of fp_extended_precision_t.
Rename the fp_state structure to fpe_sp_state as it describes
the single precision FPE state held in the pcb and is internal to the
kernel.
Define a new fp_state structure that is for user access to the fp
state (e.g. via ptrace()).
1996-10-15 00:15:37 +00:00
mark a7c2e7f767 Use tlb_flush() rather than tlbflush() in the pmap_update() macro. 1996-10-15 00:09:09 +00:00
mark b4c38ce254 Define the FP exeception types.
Use these types to create the bit values used for fp_except values.
1996-10-15 00:06:47 +00:00
mark c5246aee6a Updated the typedef for undef_handler_t to have a 4th argument. This
argument is a fault code integer.
1996-10-15 00:00:44 +00:00
mark 159f169ad4 Added support for the ARM7500.
Added comments to relate #ifdef and #endif
1996-10-14 23:05:34 +00:00
mark 9ddac81db7 Added definitions for evaluating the signal code argument.
Currently the code field is only valid for SIGFPE, SIGBUS and SIGSEGV.
1996-10-14 23:02:53 +00:00
mark 06083cc7b9 Updated #ifdef to reflect filename change. 1996-10-14 22:57:37 +00:00
mark f0137e2cc0 At last, a version of profile.h that works properly and allows kernel
profiling.
Define an all assembly mcount stub routine and make sure r0-r3 and lr
are preserved.
1996-10-14 22:52:49 +00:00
mark cae31931a9 Initial commit of header file defining various traps.
Define a user breakpoint trap.
1996-10-14 22:49:23 +00:00
mark f24b0a3f91 Initial commit of the header file defining the architecture specific
syscalls.
Declare ARM32_SYNC_ICACHE call that ensures that main memory and any
instruction cache are in sync.
1996-10-14 22:47:31 +00:00
mark 135f110149 Added an ioctl acknowledgement bit to the buffer record flags field.
Added a new ioctl to select either relative or absolution mouse position
reports.
1996-10-14 22:41:59 +00:00
mark 44faa9154f Added a blanktime field to the vconsole structure so the blanktime time
is managed per virtual console rather than globally.
1996-10-14 22:35:03 +00:00
mark c4d76a3f02 Added a field for cpu specific data in the cpu_t structure. 1996-10-14 22:32:45 +00:00
mark 60c2014d86 Added magic number of bootconfig structure passed from the bootloader.
Added a field for the physical address of the display memory used
by the bootloader if VRAM is not fitted.
Declare the boot_args variable extern here.
1996-10-14 22:30:19 +00:00
christos e43661dda6 use in_addr_t and in_port_t 1996-10-13 02:57:47 +00:00
mark 5b9a5a91b2 Added a macro for un-cacheable un-bufferable ptes. 1996-10-12 18:31:10 +00:00
mark 8759f643d5 Don't need to include machine/reg.h here. 1996-10-12 18:29:32 +00:00
cgd 472889f8e4 moved to aout_machdep.h (via repository copy) 1996-10-08 12:57:37 +00:00
mark 66d9ef4edb Updated with more info on the ARM7500 IOC/IOMD. 1996-08-21 20:00:50 +00:00
mark 8f541bdd1d Added a couple of comments.
Defined VM_MAXKERN_ADDRESS as the maximum address for the kernel address
argument to copyin() and copyout().
1996-06-12 19:55:04 +00:00
mark 78d05630aa Define insl() and outsl() as macros that currently just panic for the
moment.
1996-06-12 19:50:14 +00:00
mark 167d543662 Define several new macros for testing the processor mode. 1996-06-12 19:48:48 +00:00
mark 544631c0be Guard structures and prototypes with #ifndef _LOCORE
Rename the currently unused irq handler structure fields for podule
interrupts so they make more sense.
Define IPL_NONE as a positive value instead of -1 and increase the
number of IPL levels.
1996-06-12 19:47:11 +00:00
mark a2a08dd859 Removed the old QUADMOUSE_* ioctl names. Everything now uses the
generic mouse ones.
1996-06-03 22:07:39 +00:00
mark aa4be90f73 General code format tidy up.
Added missing function prototypes.
1996-06-03 22:04:40 +00:00
mark 0ba929925d Added proper definitions of quadrature mouse button register. 1996-06-03 22:03:36 +00:00
mark 258f83367c Added setsoftintr() prototype. 1996-06-03 22:00:50 +00:00
mark 0b265889c6 RCS Id police. 1996-06-03 21:58:25 +00:00
mark 515759c222 Added PLIP soft interrupt. 1996-06-03 21:57:52 +00:00
mark a1ac79c69f Added r_neg bit and removed r_copy bit from relocation_info_arm6 structure.
General tidy up of the code style in file.
1996-05-17 21:58:07 +00:00
mark 0d476cb7d0 bus memory and I/O space access functions/macros, to be used by
machine-independent code for more sane access to bus resources.
Defines:
        bus_{io,mem}_{map,unmap}
        bus_{io,mem}_{read,write}_{1,2,4,8}
        bus_io_{read,write}_multi_{1,2,4,8}
functions, and several types to go with them.
Note: The bus_io_*_8 functions are not supported.
1996-05-16 18:08:40 +00:00
mark f38ec079c3 Removed definitions of mouse buttons. These should be obtained from
iomd.h and do not need to be duplicated here.
1996-05-16 17:45:10 +00:00
mark 267415c841 Define FLT_ROUNDS properly. Guard #defines with #ifndef / #endif 1996-05-12 21:27:52 +00:00
mark 62b52adc0e Definitions of various contants and types for arm32 IEEE float point. 1996-05-12 21:26:20 +00:00