[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnumach ChangeLog i386/Makefrag.am i386/i386/kt... [gnumach-1-branch]
From: |
Thomas Schwinge |
Subject: |
gnumach ChangeLog i386/Makefrag.am i386/i386/kt... [gnumach-1-branch] |
Date: |
Mon, 07 May 2007 22:04:54 +0000 |
CVSROOT: /cvsroot/hurd
Module name: gnumach
Branch: gnumach-1-branch
Changes by: Thomas Schwinge <tschwinge> 07/05/07 22:04:54
Modified files:
. : ChangeLog
i386 : Makefrag.am
i386/i386 : ktss.c ktss.h locore.S mp_desc.c mp_desc.h
pcb.c thread.h tss.h
i386/i386at : kd.c
i386/include/mach/i386: mach_i386.defs mach_i386_types.h
kern : task.c task.h
Added files:
i386/i386 : io_perm.c io_perm.h machine_task.c task.h
include : stddef.h
Removed files:
i386/i386 : io_port.h iopb.c iopb.h
Log message:
2007-05-07 Thomas Schwinge <address@hidden>
[bug #15295 --- ``Mach lets processes write to I/O ports'']
* i386/Makefrag.am (libkernel_a_SOURCES): Add
`i386/i386/io_perm.c',
`i386/i386/io_perm.h', `i386/i386/machine_task.c',
`i386/i386/task.h'
and remove `i386/i386/io_port.h', `i386/i386/iopb.c',
`i386/i386/iopb.h'.
* i386/i386/io_port.h: Remove file.
* i386/i386at/kd.c: Don't include <i386/io_port.h>.
(vga_port_list, kd_io_device, kd_io_map_open, kd_io_map_close):
Don't
define and don't use anymore.
* include/stddef.h: New file.
* i386/i386/io_perm.c: Include <string.h>,
<device/device_emul.h>,
<ipc/ipc_space.h> and don't include <oskit/ds_oskit.h>.
(io_perm_device_emulation_ops): New variable.
(dev_open_alloc, setup_no_senders): Remove declarations.
(convert_io_perm_to_port, convert_port_to_io_perm,
io_perm_deallocate):
Rewrite.
(no_senders): New function.
(i386_io_perm_create, i386_io_perm_modify): Rewrite partially,
to adapt
to the GNU Mach environment.
* i386/i386/io_perm.h: Include <device/dev_hdr.h> and
<ipc/ipc_types.h>.
(io_perm, io_perm_t): New structure and accompanying type
definition.
(IO_PERM_NULL): Define.
* i386/i386/locore.S (ktss): Move variable to...
* i386/i386/ktss.c: ... here, make it a ``struct task_tss''.
(ktss_init): Initialize the `task_tss' structure and the i/o
permission
bit map.
* i386/i386/ktss.h: Adapt to that.
* i386/i386/machine_task.c (machine_task_module_init): Adapt
the `zinit'
call to the GNU Mach environment.
* i386/i386/mp_desc.c: Include <machine/ktss.h>.
* i386/i386/tss.h: Include <machine/io_perm.h>.
(task_tss): New structure, equivalent to the OSKit-Mach one.
* i386/include/mach/i386/mach_i386.defs: Don't include
<device/device_types.defs>.
(device_list_t): Remove type.
* i386/include/mach/i386/mach_i386_types.h (device_list_t):
Remove type
definition.
2007-05-07 Marcus Brinkmann <address@hidden>
[bug #15295 --- ``Mach lets processes write to I/O ports'']
* i386/i386/iopb.h, i386/i386/iopb.c: Obsolete files removed.
* i386/i386/pcb.c (switch_context): Update the I/O permission
bitmap from stack_handoff() here (not only in stack_handoff()).
* i386/i386/machine_task.c (machine_task_module_init): Set
ZONE_COLLECTABLE and ZONE_EXHAUSTIBLE flags for the iopb zone.
Requested by Roland McGrath <address@hidden>.
* i386/i386/io_perm.h: New file.
* i386/i386/io_perm.c: New file.
* i386/i386/machine_task.c: New file.
* i386/i386/mp_desc.h: (struct mp_desc_table): Change type of
ktss to
struct task_tss.
(mp_ktss): Likewise for array of pointers to the struct.
* i386/i386/mp_desc.c: Include `machine/tss.h' and
`machine/io_perm.h'.
(mp_ktss): Change type to array of struct task_tss.
(mp_desc_init): Cast pointer to x86_tss into pointer to
task_tss,
and use size of struct task_tss instead size of struct x86_tss.
Initialize the task_tss structure.
* i386/i386/pcb.c: Include `stddef.h' and `machine/tss.h'.
(iopb_create, iopb_destroy): Prototypes removed.
(curr_ktss): Cast pointer to base_tss to pointer to struct
task_tss.
(switch_ktss): Always use kernel TSS.
(update_ktss_iopb): New function.
(stack_handoff): Call update_ktss_iopb.
(pcb_module_init): Do not call iopb_init.
(pcb_terminate): Do not call iopb_destroy.
(thread_setstatus): Remove local variable tss.
(thread_getstatus): Rewrite i386_ISA_PORT_MAP_STATE case
handler.
* i386/i386/task.h: New file.
* i386/i386/thread.h: Do not include `i386/iopb.h'.
(struct i386_machine_state): Remove member io_tss.
* i386/include/mach/i386/mach_i386.defs [KERNEL_SERVER]: Include
`machine/io_perm.h'. Define intran, outtran and destructor.
(io_port_t): New type.
(io_perm_t): Likewise.
(i386_io_port_add): Interface removed.
(i386_io_port_remove): Likewise.
(i386_io_port_list): Likewise.
(i386_io_perm_create): New interface.
(i386_io_perm_modify): Likewise.
* i386/include/mach/i386/mach_i386_types.h [MACH_KERNEL]:
Include
`i386/io_perm.h'.
[!MACH_KERNEL]: Define types io_port_t and io_perm_t.
* kern/task.c (task_init): Call machine_task_module_init.
(task_create): Call machine_task_init.
(task_deallocate): Call machine_task_terminate.
(task_collect_scan): Call machine_task_collect.
* task.h: Include `machine/task.h'.
(struct task): Add member machine.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnumach/ChangeLog?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.128.2.273&r2=1.128.2.274
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/Makefrag.am?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1.2.9&r2=1.1.2.10
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/ktss.c?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1.1.1.4.1&r2=1.1.1.1.4.2
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/ktss.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.2&r2=1.2.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/locore.S?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.6.2.7&r2=1.6.2.8
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/mp_desc.c?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1.1.1.4.5&r2=1.1.1.1.4.6
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/mp_desc.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.2.2.2&r2=1.2.2.3
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/pcb.c?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.2.4.9&r2=1.2.4.10
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/thread.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.3.2.1&r2=1.3.2.2
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/tss.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1&r2=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/io_perm.c?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.3.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/io_perm.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.2.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/machine_task.c?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.2.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/task.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.2.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/io_port.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1.1.1.4.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/iopb.c?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1.1.1.4.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386/iopb.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1.1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/i386at/kd.c?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.5.2.12&r2=1.5.2.13
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/include/mach/i386/mach_i386.defs?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.2.2.2&r2=1.2.2.3
http://cvs.savannah.gnu.org/viewcvs/gnumach/i386/include/mach/i386/mach_i386_types.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.1.1.1&r2=1.1.1.1.4.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/include/stddef.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnumach/kern/task.c?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.3.4.7&r2=1.3.4.8
http://cvs.savannah.gnu.org/viewcvs/gnumach/kern/task.h?cvsroot=hurd&only_with_tag=gnumach-1-branch&r1=1.3.2.5&r2=1.3.2.6
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnumach ChangeLog i386/Makefrag.am i386/i386/kt... [gnumach-1-branch],
Thomas Schwinge <=