summaryrefslogtreecommitdiffstats
path: root/sys/ia64
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Add additional cred_free_thread() calls that I had missed the first time.mini2002-07-131-0/+10
| | | | Pointed out by: jhb
* Set the thread state of the newly chosen to run thread to TDS_RUNNING injhb2002-07-122-8/+0
| | | | | | | | choosethread() in MI C code instead of doing it in in assembly in all the various cpu_switch() functions. This fixes problems on ia64 and sparc64. Reviewed by: julian, peter, benno Tested on: i386, alpha, sparc64
* Remove label_t and physadr, which seem to have never been used inmike2002-07-101-10/+0
| | | | | | FreeBSD. Submitted by: bde
* Remove an unused type.mike2002-07-091-3/+0
|
* Move __offsetof() macro from <machine/ansi.h> to <sys/cdefs.h>. It'smike2002-07-081-5/+0
| | | | | | hardly MD, since all our platforms share the same macro. It's not really compiler dependent either, but this helps in reducing <machine/ansi.h> to only type definitions.
* Add a special page zero entry point intended to be called via the singlepeter2002-07-081-0/+16
| | | | | | | | | | | | | | | threaded VM pagezero kthread outside of Giant. For some platforms, this is really easy since it can just use the direct mapped region. For others, IPI sending is involved or there are other issues, so grab Giant when needed. We still have preemption issues to deal with, but Alan Cox has an interesting suggestion on how to minimize the problem on x86. Use Luigi's hack for preserving the (lack of) priority. Turn the idle zeroing back on since it can now actually do something useful outside of Giant in many cases.
* Collect all the (now equivalent) pmap_new_proc/pmap_dispose_proc/peter2002-07-071-148/+0
| | | | | | | | | | | | | pmap_swapin_proc/pmap_swapout_proc functions from the MD pmap code and use a single equivalent MI version. There are other cleanups needed still. While here, use the UMA zone hooks to keep a cache of preinitialized proc structures handy, just like the thread system does. This eliminates one dependency on 'struct proc' being persistent even after being freed. There are some comments about things that can be factored out into ctor/dtor functions if it is worth it. For now they are mostly just doing statistics to get a feel of how it is working.
* Back out proc part of last commit. UMA manages the thread cache only, andpeter2002-07-051-8/+22
| | | | | | | | | we just have to deal with the kstack when told to. We do not have a UMA-managed cache for the proc struct and its associated upage yet. So, go back to the old lazy mechanism. Note that if UMA destroys pages that used to contain proc structures, we'll lose the corresponding upage forever. (zones never did this - once a page was allocated, it stayed attached to the proc zone forever)
* Copy from sparc64/pmap.c rev 1.64 (Retrofit changes from i386/pmap.cpeter2002-07-051-23/+9
| | | | | rev 1.328-1.331.) but for uarea only. We still have our own broken kstack code here.
* Resolve conflicts arising from the ACPI CA 20020404 import.iwasaki2002-06-301-5/+10
|
* Since printf(3) now supports the `j' conversion specifier, use thatmike2002-06-301-11/+11
| | | | | | | when printing intmax_t and uintmax_t. Forgotten by: mike Noticed by: bde
* Fix reverse ordering of locks. add a comment about locks on some platforms.julian2002-06-291-1/+1
| | | | Submitted by: jhb@freebsd.org
* Add KSE stubs to MD parts of ia64 code.julian2002-06-294-0/+69
| | | | | Dfr will fill these out when we decide to enable KSEs on ia64 (probably not immediatly)
* Add a copy of the sparc64 machine/kse.h to satisfy depencies..julian2002-06-291-0/+38
| | | | dfr will fill in the correct contents at a later time.
* Part 1 of KSE-IIIjulian2002-06-291-7/+7
| | | | | | | | | | | | | The ability to schedule multiple threads per process (one one cpu) by making ALL system calls optionally asynchronous. to come: ia64 and power-pc patches, patches for gdb, test program (in tools) Reviewed by: Almost everyone who counts (at various times, peter, jhb, matt, alfred, mini, bernd, and a cast of thousands) NOTE: this is still Beta code, and contains lots of debugging stuff. expect slight instability in signals..
* Add UMA_ZONE_VM flag to the zones which are used for pmap_enter().dfr2002-06-241-2/+2
|
* Add an MD callout like cpu_exit, but which is called after sched_lock isjake2002-06-241-0/+6
| | | | | | | | | obtained, when all other scheduling activity is suspended. This is needed on sparc64 to deactivate the vmspace of the exiting process on all cpus. Otherwise if another unrelated process gets the exact same vmspace structure allocated to it (same address), its address space will not be activated properly. This seems to fix some spontaneous signal 11 problems with smp on sparc64.
* Remove unused diagnostic function cread_free_thread().mini2002-06-241-10/+0
| | | | Approved by: alfred
* Update an 'XXX what is this?' type comment about suswintr and fuswintr.peter2002-06-202-4/+4
| | | | These are 16 bit short values used only by the profiling code.
* Deorbit suibyte(). It was only used for split address space systemspeter2002-06-202-10/+0
| | | | for supporting UIO_USERISPACE (ie: it wasn't used).
* ia32 %edx return comes from td_retval[1], not td_retval[0]peter2002-06-201-1/+1
| | | | Obtained from: dfr
* Use suword32/64 and fuword32/64 like elsewhere instead of inventingpeter2002-06-204-32/+37
| | | | suhword/fuhword.
* panic rather than fault and explode if we fail to contigmalloc a kernelpeter2002-06-201-0/+3
| | | | | stack. This is still bad(TM), but at least we have a clue when we get hit when contigmalloc fails.
* Use the canonical pmap_{new,dispose,swapin,swapout}_proc() functions,peter2002-06-201-16/+110
| | | | | in this case cut/pasted from sparc64 instead of messing with contigmalloc where it is not needed.
* Move the "- 1" into the RQB_FFS(mask) macro itself so thatpeter2002-06-201-1/+1
| | | | | | | | | | | | | | implementations can provide a base zero ffs function if they wish. This changes #define RQB_FFS(mask) (ffs64(mask)) foo = RQB_FFS(mask) - 1; to #define RQB_FFS(mask) (ffs64(mask) - 1) foo = RQB_FFS(mask); On some platforms we can get the "- 1" for free, eg: those that use the C code for ffs64(). Reviewed by: jake (in principle)
OpenPOWER on IntegriCloud