summaryrefslogtreecommitdiffstats
path: root/sys/ia64
Commit message (Collapse)AuthorAgeFilesLines
* (This commit touches about 15 disk device drivers in a very consistentphk2002-09-201-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and predictable way, and I apologize if I have gotten it wrong anywhere, getting prior review on a patch like this is not feasible, considering the number of people involved and hardware availability etc.) If struct disklabel is the messenger: kill the messenger. Inside struct disk we had a struct disklabel which disk drivers used to communicate certain metrics to the disklayer above (GEOM or the disk mini-layer). This commit changes this communication to use four explicit fields instead. Amongst the benefits is that the fields do not get overwritten by wrong or bogus on-disk disklabels. Once that is clear, <sys/disk.h> which is included in the drivers no longer need to pull <sys/disklabel.h> and <sys/diskslice.h> in, the few places that needs them, have gotten explicit #includes for them. The disklabel inside struct disk is now only for internal use in the disk mini-layer, so instead of embedding it, we malloc it as we need it. This concludes (modulus any mistakes) the series of disklabel related commits. I belive it all amounts to a NOP for all the rest of you :-) Sponsored by: DARPA & NAI Labs.
* For reasons now lost in historical fog, the bounds_check_with_label()phk2002-09-201-62/+0
| | | | | | | | | | | | function were put in i386/i386/machdep.c from where it has been cut and pasted to other architectures with only minor corruption. Disklabel is really a MI format in many ways, at least it certainly is when you operate on struct disklabel. Put bounds_check_with_label() back in subr_disklabel.c where it belongs. Sponsored by: DARPA & NAI Labs.
* Implement db_print_backtrace() if DDB is compiled into the kernel. Thisjhb2002-09-191-0/+5
| | | | | | | | | | | | | | | | | | | | MD function is just a wrapper around db_stack_trace_cmd() that prints out a backtrace of curthread. Currently, this function is only implemented on i386 and alpha (and the alpha version isn't quite tested yet, will do that in a bit). Other changes: - For i386, fix a bug in the raw frame address case. The eip we extract from the passed in frame address does not match the frame we received. Thus, instead of printing a bogus frame with the wrong eip, go ahead and advance frame down to the same frame as the eip we are using. - For alpha, attempt to add a way of doing a raw trace for alpha. Instead of passing a frame address in 'addr', pass in a pointer to a structure containing PC and KSP and use those to start the backtrace. The alpha db_print_backtrace() uses asm to read in the current PC and KSP values into such a request. Tested on: i386 Requested by: many
* Implement C99's va_copy() macro.mike2002-09-181-0/+3
|
* Initiate deorbit burn for the i386-only a.out related support. Moves arepeter2002-09-173-33/+1
| | | | | | | | | | | | | | | under way to move the remnants of the a.out toolchain to ports. As the comment in src/Makefile said, this stuff is deprecated and one should not expect this to remain beyond 4.0-REL. It has already lasted WAY beyond that. Notable exceptions: gcc - I have not touched the a.out generation stuff there. ldd/ldconfig - still have some code to interface with a.out rtld. old as/ld/etc - I have not removed these yet, pending their move to ports. some includes - necessary for ldd/ldconfig for now. Tested on: i386 (extensively), alpha
* Allocate KSEs and KSEGRPs separatly and remove them from the proc structure.julian2002-09-151-1/+1
| | | | | | | | | next step is to allow > 1 to be allocated per process. This would give multi-processor threads. (when the rest of the infrastructure is in place) While doing this I noticed libkvm and sys/kern/kern_proc.c:fill_kinfo_proc are diverging more than they should.. corrective action needed soon.
* Use "options " rather than "options<tab>".kuriyama2002-09-092-4/+4
|
* Fill out two fields (si_pid, si_uid) in the siginfo structure handed backjmallett2002-09-071-0/+2
| | | | | | | | | | | | | | | | to userland in the signal handler that were not being iflled out before, but should and can be. This part of sendsig could be slightly refactored to use an MI interface, or ideally, *sendsig*() would have an API change to accept a siginfo_t, which would be filled out by an MI function in the level above sendsig, and said MI function would make a small call into MD code to fill out the MD parts (some of which may be bogus, such as the si_addr stuff in some places). This would eventually make it possible for parts of the kernel sending signals to set up a siginfo with meaningful information. Reviewed by: mux MFC after: 2 weeks
* Zap the implementations of the i386-aout specific cpu_coredump function.peter2002-09-071-22/+0
| | | | Most of the non-i386 platforms had rather broken implementations anyway.
* Make this compilepeter2002-09-031-1/+3
|
* Now that _BSD_CLK_TCK_ and _BSD_CLOCKS_PER_SEC_ are the same on allmike2002-09-031-54/+0
| | | | | architectures, move the definition directly into <time.h> and finish the removal of <machine/ansi.h>.
* Align _BSD_CLK_TCK_ and _BSD_CLOCKS_PER_SEC_ with most othermike2002-09-021-2/+2
| | | | | platforms. This introduces some binary incompatibilities for dynamically linked programs which make use of clock(3) and times(3).
* o Remove an initialized but unused variable from pmap_remove_all().alc2002-09-021-2/+0
|
* Sync up: remove device counts.marcel2002-09-011-2/+2
|
* Added fields for VM_MIN_ADDRESS, PS_STRINGS and stack protections tojake2002-09-013-14/+34
| | | | | | sysentvec. Initialized all fields of all sysentvecs, which will allow them to be used instead of constants in more places. Provided stack fixup routines for emulations that previously used the default.
* Take a shot at fixing up a whole stack of style and other embarresingpeter2002-08-311-11/+7
| | | | | unforced errors that Bruce identified. I have not yet addressed all of his concerns.
* Do not use an object for the pte and pv zones on ia64 because it overridespeter2002-08-311-2/+5
| | | | | | | the pmap_allocf() function that we provide above. We still use the limits via other means. Submitted by: jeff
* Change hw.physmem and hw.usermem to unsigned long like they used to bepeter2002-08-302-11/+18
| | | | | | | | | | | | | in the original hardwired sysctl implementation. The buf size calculator still overflows an integer on machines with large KVA (eg: ia64) where the number of pages does not fit into an int. Use 'long' there. Change Maxmem and physmem and related variables to 'long', mostly for completeness. Machines are not likely to overflow 'int' pages in the near term, but then again, 640K ought to be enough for anybody. This comes for free on 32 bit machines, so why not?
* Renamed poorly named setregs to exec_setregs. Moved its prototype tojake2002-08-292-2/+2
| | | | imgact.h with the other exec support functions.
* Fixed printf format errors.jake2002-08-293-5/+5
|
* o Retire pmap_pageable(). It's an advisory routine that nonealc2002-08-251-21/+0
| | | | of our platforms implements.
* s/_BSD_VA_LIST_/__va_list/. The former type doesn't exist anymore.marcel2002-08-231-1/+1
|
* Move several MI types from <machine/_types.h> to <sys/_types.h>.mike2002-08-231-37/+0
| | | | | | | | | | | | | | | | These types are unlikely to ever become very MD. They include: clockid_t, ct_rune_t, fflags_t, intrmask_t, mbstate_t, off_t, pid_t, rune_t, socklen_t, timer_t, wchar_t, and wint_t. While moving them, make a few adjustments (submitted by bde): o __ct_rune_t needs to be precisely `int', not necessarily __int32_t, since the arg type of the ctype functions is int. o __rune_t, __wchar_t and __wint_t inherit this via a typedef of __ct_rune_t. o Some minor wording changes in the comment blocks for ct_rune_t and mbstate_t. Submitted by: bde (partially)
* Convert NEXUS_ACCESSOR to use the __BUS_ACCESSORmux2002-08-221-14/+2
| | | | | | macro instead of reimplementing it. Approved by: peter
* o Merge <machine/ansi.h> and <machine/types.h> into a new headermike2002-08-216-176/+149
| | | | | | | | | | | | | | | | | | | | | called <machine/_types.h>. o <machine/ansi.h> will continue to live so it can define MD clock macros, which are only MD because of gratuitous differences between architectures. o Change all headers to make use of this. This mainly involves changing: #ifdef _BSD_FOO_T_ typedef _BSD_FOO_T_ foo_t; #undef _BSD_FOO_T_ #endif to: #ifndef _FOO_T_DECLARED typedef __foo_t foo_t; #define _FOO_T_DECLARED #endif Concept by: bde Reviewed by: jake, obrien
* Correct one more errant whitespace nit that crept in during changesrwatson2002-08-201-1/+1
| | | | in the arguments to vn_rdwr(). Hopefully the last.
* remove unit counts from atkbdc, pckbd, scpeter2002-08-201-2/+2
|
* Correct a minor whitespace nit that sneaked in with my previous commit.rwatson2002-08-151-1/+1
|
* In order to better support flexible and extensible access control,rwatson2002-08-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | make a series of modifications to the credential arguments relating to file read and write operations to cliarfy which credential is used for what: - Change fo_read() and fo_write() to accept "active_cred" instead of "cred", and change the semantics of consumers of fo_read() and fo_write() to pass the active credential of the thread requesting an operation rather than the cached file cred. The cached file cred is still available in fo_read() and fo_write() consumers via fp->f_cred. These changes largely in sys_generic.c. For each implementation of fo_read() and fo_write(), update cred usage to reflect this change and maintain current semantics: - badfo_readwrite() unchanged - kqueue_read/write() unchanged pipe_read/write() now authorize MAC using active_cred rather than td->td_ucred - soo_read/write() unchanged - vn_read/write() now authorize MAC using active_cred but VOP_READ/WRITE() with fp->f_cred Modify vn_rdwr() to accept two credential arguments instead of a single credential: active_cred and file_cred. Use active_cred for MAC authorization, and select a credential for use in VOP_READ/WRITE() based on whether file_cred is NULL or not. If file_cred is provided, authorize the VOP using that cred, otherwise the active credential, matching current semantics. Modify current vn_rdwr() consumers to pass a file_cred if used in the context of a struct file, and to always pass active_cred. When vn_rdwr() is used without a file_cred, pass NOCRED. These changes should maintain current semantics for read/write, but avoid a redundant passing of fp->f_cred, as well as making it more clear what the origin of each credential is in file descriptor read/write operations. Follow-up commits will make similar changes to other file descriptor operations, and modify the MAC framework to pass both credentials to MAC policy modules so they can implement either semantic for revocation. Obtained from: TrustedBSD Project Sponsored by: DARPA, NAI Labs
* o Remove the setting and clearing of the PG_MAPPED flag from the alpha andalc2002-08-101-5/+2
| | | | | ia64 pmap. o Remove the PG_MAPPED flag's declaration.
* My quad cpu itanium2 box has its cpu's numbered with a lid startingpeter2002-08-101-2/+2
| | | | at 192. Masking off bottom 4 bits is not very good here.
* Make ppp(4) devices clonable and unloadable.brooks2002-08-091-1/+1
|
* o Introduce pmap_page_is_mapped(). Its purpose is to obsoletealc2002-08-071-0/+1
| | | | the PG_MAPPED flag.
* Ignore memory above 4GB for now due to unpleasant pci issues.peter2002-08-031-0/+15
|
* o Lock page queue accesses by vm_page_deactivate().alc2002-08-021-3/+15
|
* Resolve conflicts arising from the ACPI CA 20020725 import.iwasaki2002-07-301-0/+115
|
* Create a new header <machine/_stdint.h> for storing MD parts ofmike2002-07-294-231/+171
| | | | | | | | | <stdint.h>. Previously, parts were defined in <machine/ansi.h> and <machine/limits.h>. This resulted in two problems: (1) Defining macros in <machine/ansi.h> gets in the way of that header only defining types. (2) Defining C99 limits in <machine/limits.h> adds pollution to <limits.h>.
* de-count pcipeter2002-07-231-1/+1
|
* - Pass the VM_ALLOC_WIRED flag to vm_page_alloc() in pmap_growkernel() soarr2002-07-231-5/+2
| | | | | | that we can avoid a call to vm_page_lock_queues(). Approved by: peter
* Add explicit unit count on 'device pci' for ahc/ahdpeter2002-07-211-1/+1
|
* Change the max IRQ from 63 to 255. I realize we have to block some outpeter2002-07-201-1/+1
| | | | | still for the IPI vectors, but 63 isn't enough. There is an fxp at IRQ 86 on the Itanium2 box I have.
* Regeneratepeter2002-07-203-1596/+311
|
* Infrastructure tweaks to allow having both an Elf32 and an Elf64 executablepeter2002-07-2010-1888/+2650
| | | | | | | | | | | | | | | handler in the kernel at the same time. Also, allow for the exec_new_vmspace() code to build a different sized vmspace depending on the executable environment. This is a big help for execing i386 binaries on ia64. The ELF exec code grows the ability to map partial pages when there is a page size difference, eg: emulating 4K pages on 8K or 16K hardware pages. Flesh out the i386 emulation support for ia64. At this point, the only binary that I know of that fails is cvsup, because the cvsup runtime tries to execute code in pages not marked executable. Obtained from: dfr (mostly, many tweaks from me).
* Fix a transcription typo. s/ACPI_PTR/ACPI_POINTER/peter2002-07-171-1/+1
|
* Fix some typos in 1.68 from over a week ago.peter2002-07-171-2/+1
|
* Cap the initial PV and PTE table preallocations. Otherwise we explodepeter2002-07-171-1/+4
| | | | | | | | | | on the Itanium2 system I have when we use up *all* of the initial 256MB direct mapped region before we are ready to dynamically expand it. The machine that I have has 4 cpus and a very big hole in the middle. This makes the bogus '(last_address - first_address) / PAGE_SIZE' calculations especially dangerous and caused many millions of initial PV/PTE's to be preallocated.
* Be sure to use a logical address for the SAL table. For some reason thepeter2002-07-171-1/+2
| | | | | phsysical address is still mapped at this stage of boot on the Itanium1 SDV boxes we have. But Itanium2 does *not* let us get away with this.
* Update for new ACPICA import. Gah.peter2002-07-171-3/+3
|
* Various comment and minor style fixes. No actual content changes.jhb2002-07-161-12/+9
| | | | Inspired by: bde
* o Lock page queue accesses by vm_page_wire().alc2002-07-141-0/+2
|
OpenPOWER on IntegriCloud