Annotation of OSKit-Mach/ChangeLog, revision 1.1

1.1     ! root        1: 2007-01-21  Ralf Wildenhues  <[email protected]>
        !             2: 
        !             3:        * doc/mach.texi: Many typos fixed.
        !             4: 
        !             5: 2004-01-15  Alfred M. Szmidt  <[email protected]>
        !             6: 
        !             7:        * Makefile.in (%-undef: %.o): Match new output format from
        !             8:        nm (binutils) 2.14.x.
        !             9: 
        !            10: 2003-03-05  Roland McGrath  <[email protected]>
        !            11: 
        !            12:        * Makefile.in (tool_prefix): Variable removed.
        !            13:        (version): @VERSION@ -> @PACKAGE_VERSION@
        !            14:        * version.c.in: Use @PACKAGE_NAME@ and @PACKAGE_VERSION@.
        !            15: 
        !            16:        * configure.in: Require 2.54 and use new form of AC_INIT.
        !            17:        Add descriptions to all AC_DEFINE and AC_DEFINE_UNQUOTED.
        !            18:        Punt AC_PROG_CC_LOCAL, just use vanilla AC_PROG_CC.
        !            19:        AC_TRY_CPP -> AC_PREPROC_IFELSE for oskit version check.
        !            20:        AC_LINK_FILES -> AC_CONFIG_LINKS.
        !            21:        Use new form of AC_OUTPUT with AC_CONFIG_FILES.
        !            22:        * acconfig.h, aclocal.m4: Files removed.
        !            23:        * configure. config.h.in: Regenerated with version 2.57.
        !            24:        * Makefile.in ($(srcdir)/config.h.in): Depend on configure.in
        !            25:        instead of acconfig.h.
        !            26: 
        !            27: 2003-03-05  Roland McGrath  <[email protected]>
        !            28: 
        !            29:        * configure.in (HAVE_I8042): New check for oskit_dev_init_i8042.
        !            30:        * oskit/ds_osenv.c (ds_osenv_init) [HAVE_I8042]: Call it.
        !            31:        * config.h.in: Add #undef.
        !            32:        * configure: Regenerated.
        !            33: 
        !            34: 2003-02-28  Roland McGrath  <[email protected]>
        !            35: 
        !            36:        * oskit/osenv_irq.c (console_irq, console_irq_handler): New variables.
        !            37:        (irq_alloc, irq_free): Implement special kludge with console_irq.
        !            38:        * oskit/ds_osenv.c (ds_osenv_init): Set console_irq before
        !            39:        initializing the minimal interrupt-driven console.
        !            40: 
        !            41: 2002-11-20  Marcus Brinkmann  <[email protected]>
        !            42: 
        !            43:        * i386/i386/io_perm.c (io_perm_device_ops): New static variable.
        !            44:        (i386_io_perm_create): Use the io_perm_device_ops for the device.
        !            45:        (i386_io_perm_modify): Check that this is really an io_perm device.
        !            46:        * iopb.h, iopb.c: Obsolete files removed.
        !            47: 
        !            48: 2002-11-12  Roland McGrath  <[email protected]>
        !            49: 
        !            50:        * oskit/ds_routines.c (dev_open_com): Revert last change.
        !            51:        The hash table should not hold a reference.
        !            52: 
        !            53: 2002-11-09  Roland McGrath  <[email protected]>
        !            54: 
        !            55:        * Makefile.in (clib-routines.o): Add `-x none' before -lc.
        !            56: 
        !            57:        * oskit/ds_routines.c (ds_notify): Deallocate two refs, not one.
        !            58:        (dev_open_com): Bump the ref_count on a new device to account for
        !            59:        the reference held in the hash table as well as the one returned.
        !            60: 
        !            61:        * i386/i386/idt.c: Include "gdt.h" instead of <oskit/x86/base_gdt.h>
        !            62:        and <oskit/x86/base_trap.h>.
        !            63: 
        !            64: 2002-11-09  Marcus Brinkmann  <[email protected]>
        !            65: 
        !            66:        * i386/i386/pcb.c (switch_context): Update the I/O permission
        !            67:        bitmap from stack_handoff() here (not only in stack_handoff()).
        !            68: 
        !            69: 2002-11-05  Roland McGrath  <[email protected]>
        !            70: 
        !            71:        * oskit/pc/osenv_bell.c (direct_cons_bell): Use a private timer
        !            72:        instead of calling `timeout'.  If a bell is already ringing,
        !            73:        turn it off for an instant before setting the new one.
        !            74: 
        !            75: 2002-10-21  Roland McGrath  <[email protected]>
        !            76: 
        !            77:        * configure.in: Check for oskit/dev/stream.h.
        !            78:        * configure, config.h.in: Regenerated.
        !            79:        * oskit/ds_routines.c (dev_open_com): Query for an oskit_streamdev_t
        !            80:        and open it.
        !            81: 
        !            82: 2002-10-03  Roland McGrath  <[email protected]>
        !            83: 
        !            84:        * i386/include/mach/i386/mach_i386.defs (i386_set_gdt, i386_get_gdt):
        !            85:        New routines.
        !            86:        * i386/i386/user_ldt.c (i386_set_gdt, i386_get_gdt): New functions.
        !            87:        * i386/i386/gdt.h (USER_GDT, USER_GDT_SLOTS): New macros.
        !            88:        * i386/i386/thread.h (struct i386_machine_state): New member user_gdt.
        !            89:        * i386/i386/pcb.c (switch_ktss): Copy those slots into the GDT.
        !            90: 
        !            91:        * i386/i386/gdt.h (KERNEL_CS, KERNEL_DS, KERNEL_TSS, KERNEL_LDT):
        !            92:        Values changed, new GDT layout not matching oskit base_gdt.h defaults.
        !            93:        (BASE_KERNEL_CS, BASE_KERNEL_DS): New macros with to oskit's values.
        !            94:        * oskit/x86/main.c (ktss): Variable moved to gdt.c.
        !            95:        (main): Don't diddle the tss here.
        !            96:        * i386/i386/gdt.c (gdt_init): Do it here instead.
        !            97:        * oskit/x86/main.c (my_exit): Restore oskit's base_gdt.
        !            98: 
        !            99:        * oskit/x86/main.c (main): BASE_TSS -> KERNEL_TSS
        !           100:        * i386/i386/mp_desc.c (mp_desc_load): Likewise.
        !           101: 
        !           102:        * i386/i386/gdt.h (USER_TSS): Macro removed (was unused).
        !           103:        (KERNEL_GS): Macro removed (value was bogus!--fix SMP later).
        !           104:        * i386/i386/i386asm.sym: Comment out KERNEL_GS.
        !           105: 
        !           106:        Remove magic %gs:0 pseudo-register support.
        !           107:        * i386/i386/ldt.h (USER_GS): Macro removed.
        !           108:        * i386/i386/pcb.c (pcb_init): Set gs to USER_DS, not USER_GS.
        !           109:        (thread_setstatus): Likewise.
        !           110:        * i386/i386/mp_desc.h (struct mp_desc_table): Remove member
        !           111:        `user_thread_register'.
        !           112:        * i386/i386/thread.h (struct i386_machine_state): Likewise.
        !           113:        * i386/i386/mp_desc.c (mp_desc_init): Don't set up USER_GS in LDT.
        !           114:        * i386/i386/ldt.c (ldt_init): Likewise.
        !           115:        * i386/intel/pmap.c (pmap_bootstrap): Don't give users access to
        !           116:        direct-mapped pages.
        !           117:        * i386/i386/user_ldt.c (i386_set_ldt): Don't cap segment limits.
        !           118: 
        !           119: 2002-07-19  Roland McGrath  <[email protected]>
        !           120: 
        !           121:        * configure.in (force_install): New substituted variable,
        !           122:        set to yes/no by --enable-force-install.
        !           123:        * Makefile.in (force-install): New variable from configure.
        !           124:        [$(force_install) = yes]: Make installed headers depend on a force
        !           125:        target.
        !           126:        * configure: Regenerated.
        !           127: 
        !           128: 2002-07-05  Roland McGrath  <[email protected]>
        !           129: 
        !           130:        * Makefile.in (kernel-%.o): Use -L$(OSKIT_LIBDIR)/.. switch.
        !           131:        Reoprted by James Morrison <[email protected]>.
        !           132: 
        !           133: 2002-06-23  Roland McGrath  <[email protected]>
        !           134: 
        !           135:        * kern/sched_prim.c (wait_hash): Macro replaced with static inline
        !           136:        function.  Use oskit_sreg_t instead of int.
        !           137: 
        !           138:        * ipc/mach_port.c (mach_port_insert_right): Type fiddle in argument
        !           139:        passing.
        !           140: 
        !           141:        * bogus/mach_ipc_compat.h (MACH_IPC_COMPAT): Define to 0.
        !           142: 
        !           143:        * alpha/alpha/pmap.h (kvtophys): Remove decl (now a macro in oskit).
        !           144: 
        !           145:        * device/net_io.c (EXTRACT_LONG, EXTRACT_SHORT, bpf_do_filter): Use
        !           146:        oskit_u32_t/s32/u16 in place of u_long/long/u_short.
        !           147: 
        !           148:        * i386/i386/mach_machine_routines.h: New file.
        !           149:        * bogus/mach_machine_routines.h (MACH_MACHINE_ROUTINES): Define to 0.
        !           150: 
        !           151:        * alpha/alpha/cpu_number.h (cpu_number): Declare only if [NCPUS > 1].
        !           152:        [! ASSEMBLER]: Include kern/cpu_number.h like i386 file does.
        !           153: 
        !           154:        * ipc/ipc_object.h: Uncomment prototypes in all decls.
        !           155:        Include "ipc_types.h" for types they use.
        !           156: 
        !           157:        * ipc/ipc_port.h: Uncomment prototypes in all decls.
        !           158: 
        !           159:        * ipc/ipc_hash.c (ipc_hash_index_t): Move typedef to ...
        !           160:        * ipc/ipc_hash.h: ... here.
        !           161:        (ipc_hash_info): Fix return and argument types in decl.
        !           162: 
        !           163: 2002-06-17  Roland McGrath  <[email protected]>
        !           164: 
        !           165:        * device/if_hdr.h: Replace ancient UCB copyright terms with current
        !           166:        approved UCB terms.
        !           167:        * include/sys/reboot.h: Likewise.
        !           168:        * include/device/disk_status.h: Likewise.
        !           169:        * include/device/tape_status.h: Likewise.
        !           170: 
        !           171:        * device/net_io.c: Remove advertising clause from UCB copyright terms.
        !           172:        * include/device/audio_status.h: Likewise.
        !           173:        * include/device/bpf.h: Likewise.
        !           174: 
        !           175: 2002-06-14  Roland McGrath  <[email protected]>
        !           176: 
        !           177:        * oskit/ds_routines.c: Fix copyright: Utah -> CMU.
        !           178:        I wrote this file and copied a little bit of CMU code, no Utah code.
        !           179: 
        !           180:        * oskit/ds_routines.c (ds_device_write): Fix typo:
        !           181:        mach_msg_number_t -> mach_msg_type_number_t
        !           182: 
        !           183: 2002-06-05  Roland McGrath  <[email protected]>
        !           184: 
        !           185:        * ipc/ipc_hash.h: Include "ipc_types.h", "ipc_object.h" for types.
        !           186:        [MACH_IPC_DEBUG]: Include <mach_debug/hash_info.h> for types.
        !           187: 
        !           188: 2002-06-02  Roland McGrath  <[email protected]>
        !           189: 
        !           190:        * oskit/ds_routines.c (DEV_PTR_HASH): uintptr_t -> natural_t
        !           191: 
        !           192:        * oskit/ds_routines.c (DEV_PTR_HASH): unsigned int -> uintptr_t
        !           193:        (ds_device_write): unsigned int -> mach_msg_number_t
        !           194: 
        !           195:        * alpha/alpha/ast.h: Fix obsolescent #endif syntax.
        !           196: 
        !           197: 2002-06-01  Roland McGrath  <[email protected]>
        !           198: 
        !           199:        * ipc/ipc_hash.h (ipc_hash_local_delete): Uncomment prototype decls.
        !           200: 
        !           201:        * kern/mach_clock.c (clock_interrupt): Remove bogus debugging hack.
        !           202: 
        !           203: 2002-05-28  Roland McGrath  <[email protected]>
        !           204: 
        !           205:        * include/device/device.defs
        !           206:        (xxx_device_set_status, xxx_device_get_status, xxx_device_set_filter):
        !           207:        Replace these routines with skips.
        !           208:        [MACH_KERNEL]: Remove simport <kern/compat_xxx_defs.h>.
        !           209: 
        !           210:        * kern/boot_script.c, kern/boot_script.h: Files updated from
        !           211:        versions in hurd/boot (64 bit fixes).
        !           212: 
        !           213:        * alpha/alpha/alpha_cpu.S: Use "alphaasm.h" instead of "assym.s".
        !           214:        * alpha/alpha/context.S: Likewise.
        !           215:        * alpha/alpha/locore.S: Likewise.
        !           216: 
        !           217:        * Makefile.in (objs): New target.
        !           218: 
        !           219:        * alpha/alpha/alphaasm.sym: New file.
        !           220:        * alpha/alpha/task.h: New file.
        !           221:        * alpha/alpha/context.h (jmp_buf): Define as `struct jmp_buf' too.
        !           222: 
        !           223:        * kern/zalloc.h: Remove #include <machine/zalloc.h>.
        !           224: 
        !           225:        * alpha/alpha/prom_interface.h: Fix obsolescent #else/#endif syntax.
        !           226:        * alpha/alpha/pmap.c: Likewise.
        !           227:        * alpha/alpha/pmap.h: Likewise.
        !           228:        * alpha/alpha/pcb.c: Likewise.
        !           229:        * alpha/alpha/context.h: Likewise.
        !           230:        * alpha/alpha/thread.h: Likewise.
        !           231:        * alpha/include/mach/alpha/alpha_instruction.h: Likewise.
        !           232:        * alpha/include/mach/alpha/vm_param.h: Likewise.
        !           233:        * alpha/include/mach/alpha/vm_types.h: Likewise.
        !           234:        * alpha/include/mach/alpha/boolean.h: Likewise.
        !           235:        * alpha/include/mach/alpha/kern_return.h: Likewise.
        !           236:        * alpha/include/mach/alpha/thread_status.h: Likewise.
        !           237:        * alpha/include/mach/alpha/syscall_sw.h: Likewise.
        !           238:        * alpha/include/mach/alpha/exception.h: Likewise.
        !           239:        * alpha/alpha/alpha_copyin.S: Likewise.
        !           240:        * alpha/alpha/machspl.h: Likewise.
        !           241:        * alpha/alpha/trap.c: Likewise.
        !           242:        * alpha/alpha/alpha_instruction.c: Likewise.
        !           243:        * alpha/alpha/alpha_init.c: Likewise.
        !           244:        * alpha/alpha/setjmp.h: Likewise.
        !           245:        * alpha/alpha/vm_tuning.h: Likewise.
        !           246: 
        !           247:        * alpha/Makefrag: New file.
        !           248:        * alpha/Files: New file.
        !           249:        * alpha/Subdirs: New file.
        !           250: 
        !           251:        Alpha support files verbatim from CMU release MK83a.
        !           252:        * alpha/include/mach/alpha/alpha_instruction.h: New file.
        !           253:        * alpha/include/mach/alpha/asm.h: New file.
        !           254:        * alpha/include/mach/alpha/boolean.h: New file.
        !           255:        * alpha/include/mach/alpha/exception.h: New file.
        !           256:        * alpha/include/mach/alpha/kern_return.h: New file.
        !           257:        * alpha/include/mach/alpha/machine_types.defs: New file.
        !           258:        * alpha/include/mach/alpha/syscall_sw.h: New file.
        !           259:        * alpha/include/mach/alpha/thread_status.h: New file.
        !           260:        * alpha/include/mach/alpha/vm_param.h: New file.
        !           261:        * alpha/include/mach/alpha/vm_types.h: New file.
        !           262:        * alpha/alpha/alpha_cache.S: New file.
        !           263:        * alpha/alpha/alpha_copyin.S: New file.
        !           264:        * alpha/alpha/alpha_cpu.S: New file.
        !           265:        * alpha/alpha/alpha_cpu.h: New file.
        !           266:        * alpha/alpha/alpha_init.c: New file.
        !           267:        * alpha/alpha/alpha_instruction.c: New file.
        !           268:        * alpha/alpha/alpha_lock.S: New file.
        !           269:        * alpha/alpha/alpha_mem_ops.c: New file.
        !           270:        * alpha/alpha/alpha_misc.c: New file.
        !           271:        * alpha/alpha/alpha_scb.c: New file.
        !           272:        * alpha/alpha/alpha_scb.h: New file.
        !           273:        * alpha/alpha/alpha_startup.c: New file.
        !           274:        * alpha/alpha/ast.h: New file.
        !           275:        * alpha/alpha/ast_check.c: New file.
        !           276:        * alpha/alpha/ast_types.h: New file.
        !           277:        * alpha/alpha/autoconf.c: New file.
        !           278:        * alpha/alpha/c_misc.c: New file.
        !           279:        * alpha/alpha/clock.c: New file.
        !           280:        * alpha/alpha/clock.h: New file.
        !           281:        * alpha/alpha/context.S: New file.
        !           282:        * alpha/alpha/context.h: New file.
        !           283:        * alpha/alpha/cpu_number.h: New file.
        !           284:        * alpha/alpha/frame.h: New file.
        !           285:        * alpha/alpha/lock.h: New file.
        !           286:        * alpha/alpha/locore.S: New file.
        !           287:        * alpha/alpha/mach_param.h: New file.
        !           288:        * alpha/alpha/machspl.h: New file.
        !           289:        * alpha/alpha/parse_args.c: New file.
        !           290:        * alpha/alpha/pcb.c: New file.
        !           291:        * alpha/alpha/pmap.c: New file.
        !           292:        * alpha/alpha/pmap.h: New file.
        !           293:        * alpha/alpha/prom_interface.S: New file.
        !           294:        * alpha/alpha/prom_interface.h: New file.
        !           295:        * alpha/alpha/prom_routines.S: New file.
        !           296:        * alpha/alpha/prom_routines.h: New file.
        !           297:        * alpha/alpha/setjmp.h: New file.
        !           298:        * alpha/alpha/start.S: New file.
        !           299:        * alpha/alpha/supage.S: New file.
        !           300:        * alpha/alpha/thread.h: New file.
        !           301:        * alpha/alpha/time_stamp.h: New file.
        !           302:        * alpha/alpha/trap.c: New file.
        !           303:        * alpha/alpha/trap.h: New file.
        !           304:        * alpha/alpha/vm_tuning.h: New file.
        !           305:        * alpha/dec/ln_copy.c: New file.
        !           306: 
        !           307:        * configure.in (VERSION): Set to 1.90 for mainlining of OSKit-Mach.
        !           308:        * configure: Regenerated.
        !           309: 
        !           310: 2002-05-22  Roland McGrath  <[email protected]>
        !           311: 
        !           312:        * oskit/x86/main.c (machine_idle): New function.
        !           313:        * bogus/power_save.h (POWER_SAVE): Define to 1.
        !           314: 
        !           315:        * oskit/x86/main.c (iopb_init, iopb_destroy): Functions removed.
        !           316:        (i386_io_port_add, i386_io_port_remove, i386_io_port_list): Likewise.
        !           317: 
        !           318: 2002-05-20  Roland McGrath  <[email protected]>
        !           319: 
        !           320:        * configure.in (systype): Grok alpha.
        !           321:        * configure: Regenerated.
        !           322:        * Makefile.in (all-archs): Add alpha.
        !           323:        (oskit-dirs-alpha): New variable.
        !           324: 
        !           325: 2002-04-28  Roland McGrath  <[email protected]>
        !           326: 
        !           327:        * configure.in [$MAXCPUS > 1] (SMP_LIBS): Substitute this after
        !           328:        checking for -loskit_smp.
        !           329:        * configure: Regenerated.
        !           330:        * Makefile.in (SMP_LIBS): New variable, substituted by configure.
        !           331:        (OSKIT_LIBS): Use it in place of literal -loskit_smp.
        !           332: 
        !           333: 2002-04-21  Roland McGrath  <[email protected]>
        !           334: 
        !           335:        * i386/i386/mp_desc.c (mp_desc_load): Avoid newlines inside strings.
        !           336: 
        !           337: 2002-04-21  Roland McGrath  <[email protected]>
        !           338: 
        !           339:        * i386/intel/pmap.c (pmap_bootstrap): Set INTEL_PTE_USER in pte
        !           340:        entries as well as pde entries.
        !           341:        Reported by Jeroen Dekkers <[email protected]>.
        !           342: 
        !           343: 2002-04-07  Roland McGrath  <[email protected]>
        !           344: 
        !           345:        Provide a new special segment to user tasks so %gs:0 points to one
        !           346:        writable word, a different word on each CPU, saved by thread switching.
        !           347:        * i386/i386/ldt.h (USER_GS): New macro.
        !           348:        * i386/i386/ldt.c (ldt_init): Set USER_GS to point at global variable
        !           349:        `user_thread_register'.
        !           350:        * i386/i386/mp_desc.h (struct mp_desc_table): New member
        !           351:        `user_thread_register'.
        !           352:        * i386/i386/mp_desc.c (mp_desc_init): Set USER_GS descriptor in LDT to
        !           353:        point at that member.
        !           354:        * i386/intel/pmap.c (pmap_bootstrap): Make direct-mapped pages
        !           355:        accessible in user mode.
        !           356:        * i386/i386/user_ldt.c (i386_set_ldt): Silently cap user segment
        !           357:        limits to VM_MAX_ADDRESS.
        !           358:        * i386/i386/thread.h (struct i386_machine_state): New member
        !           359:        `user_thread_register'.
        !           360:        * i386/i386/pcb.c (pcb_init, thread_setstatus): Set user threads' %gs
        !           361:        register to USER_GS rather than USER_DS.
        !           362:        (switch_ktss): Take new arg OLD_PCB.
        !           363:        Don't do set_ldt at all if old and new match.
        !           364:        Switch the per-CPU user thread variable into OLD_PCB and out of PCB.
        !           365:        (stack_handoff, load_context, switch_context): Update callers.
        !           366:        * i386/i386/user_ldt.c (i386_set_ldt): Likewise.
        !           367: 
        !           368: 2002-03-11  Marcus Brinkmann  <[email protected]>
        !           369: 
        !           370:        * i386/i386/machine_task.c (machine_task_module_init): Set
        !           371:        ZONE_COLLECTABLE and ZONE_EXHAUSTIBLE flags for the iopb zone.
        !           372:        Requested by Roland McGrath <[email protected]>.
        !           373: 
        !           374: 2002-02-27  Marcus Brinkmann  <[email protected]>
        !           375: 
        !           376:        * bogus/mach_machine_routines.h (MACH_MACHINE_ROUTINES): Set to 1.
        !           377:        * i386/i386/io_perm.h: New file.
        !           378:        * i386/i386/io_perm.c: New file.
        !           379:        * i386/i386/machine_task.c: New file.
        !           380:        * i386/Makefrag (i386-files): Add io_perm.c and machine_task.c.
        !           381:        * i386/i386/mp_desc.h: Include `machine/tss.h' instead
        !           382:        `oskit/x86/tss.h'.
        !           383:        (struct mp_desc_table): Change type of ktss to struct task_tss.
        !           384:        (mp_ktss): Likewise for array of pointers to the struct.
        !           385:        * i386/i386/mp_desc.c: Include `machine/tss.h' and `machine/io_perm.h'.
        !           386:        (mp_ktss): Change type to array of struct task_tss.
        !           387:        (mp_desc_init): Cast pointer to x86_tss into pointer to task_tss,
        !           388:        and use size of struct task_tss instead size of struct x86_tss.
        !           389:        Initialize the task_tss structure.
        !           390:        * i386/i386/pcb.c: Include `stddef.h' and `machine/tss.h'.
        !           391:        (iopb_create, iopb_destroy): Prototypes removed.
        !           392:        (curr_ktss): Cast pointer to base_tss to pointer to struct
        !           393:        task_tss.
        !           394:        (switch_ktss): Always use kernel TSS.
        !           395:        (update_ktss_iopb): New function.
        !           396:        (stack_handoff): Call update_ktss_iopb.
        !           397:        (pcb_module_init): Do not call iopb_init.
        !           398:        (pcb_terminate): Do not call iopb_destroy.
        !           399:        (thread_setstatus): Remove local variable tss.
        !           400:        (thread_getstatus): Rewrite i386_ISA_PORT_MAP_STATE case handler.
        !           401:        * i386/i386/task.h: New file.
        !           402:        * i386/i386/thread.h: Do not include `i386/iopb.h'.
        !           403:        (struct i386_machine_state): Remove member io_tss.
        !           404:        * i386/i386/tss.h: New file.
        !           405:        * i386/include/mach/i386/mach_i386.defs: Do not include
        !           406:        `mach/machine/mach_i386_types.h'.
        !           407:        [KERNEL_SERVER]: Include `machine/io_perm.h'.  Define intran,
        !           408:        outtran and destructor.
        !           409:        (io_port_t): New type.
        !           410:        (io_perm_t): Likewise.
        !           411:        (i386_io_port_add): Interface removed.
        !           412:        (i386_io_port_remove): Likewise.
        !           413:        (i386_io_port_list): Likewise.
        !           414:        (i386_io_perm_create): New interface.
        !           415:        (i386_io_perm_modify): Likewise.
        !           416:        * i386/include/mach/i386/mach_i386_types.h [MACH_KERNEL]: Include
        !           417:        `i386/io_perm.h'.
        !           418:        [!MACH_KERNEL]: Define types io_port_t and io_perm_t.
        !           419:        * kern/task.c (task_init): Call machine_task_module_init.
        !           420:        (task_create): Call machine_task_init.
        !           421:        (task_deallocate): Call machine_task_terminate.
        !           422:        (task_collect_scan): Call machine_task_collect.
        !           423:        * task.h: Include `machine/task.h'.
        !           424:        (struct task): Add member machine.
        !           425:        * oskit/x86/main.c: Include `i386/io_perm.h' and `machine/tss.h'.
        !           426:        (ktss): New static global variable that replaces base_tss at link
        !           427:        time.
        !           428:        (main): Rename base_tss to ktss and set it up to include an I/O
        !           429:        permission bitmap.
        !           430:        * oskit/ds_oskit.h [__i386__]: Include `machine/io_perm.h'.
        !           431:        (struct device) [__i386__]: Add a structure with io_perm range
        !           432:        to the com union.
        !           433:        * oskit/ds_routines.c (dev_open_alloc): Remove static attribute.
        !           434:        (setup_no_senders): Likewise.
        !           435: 
        !           436: 2002-02-28  Marcus Brinkmann <[email protected]>
        !           437: 
        !           438:        * oskit/ds_routines.c (device_deallocate): Allow DEVICE->com_device
        !           439:        to be NULL for simple pseudo device handlers.
        !           440: 
        !           441: 2002-03-05  Roland McGrath  <[email protected]>
        !           442: 
        !           443:        * oskit/ds_request.h (ds_request_init, ds_asyncio_ready): Declare them.
        !           444:        * oskit/ds_oskit.h (oskit_softint, kmsg_init, ds_netdev_open):
        !           445:        Declare them.
        !           446:        * oskit/kmsg.c (kmsg_init): Fix declaration.
        !           447: 
        !           448:        * oskit/ds_mem.c (ds_mem_map): If OFFSET and SIZE are both zero,
        !           449:        map the whole thing.
        !           450: 
        !           451: 2002-03-04  Roland McGrath  <[email protected]>
        !           452: 
        !           453:        * oskit/ds_routines.c (ds_device_write): If the write_inband routine
        !           454:        returns an error other than MIG_NO_REPLY, send an asynchronous reply
        !           455:        and return MIG_NO_REPLY to prevent caller from destroying the message.
        !           456: 
        !           457: 2002-03-03  Michael Teichgraeber  <[email protected]>
        !           458: 
        !           459:        * include/device/device_error_reply.defs: Changed subsystem name
        !           460:        to device_error_reply.
        !           461:        * oskit/ds_asyncio.c: Include "device_reply.h", "device_error_reply.h".
        !           462: 
        !           463:        * oskit/ds_asyncio.c (new_request): Removed unused variable(s).
        !           464:        (ds_asyncio_complete_write_inband_1): Likewise.
        !           465:        (ds_asyncio_write_inband): Likewise.
        !           466:        * oskit/ds_partition.c (ds_blkpart_get_status): Likewise.
        !           467:        * oskit/ds_net.c (ds_netdev_open): Likewise.
        !           468:        * oskit/ds_stream.c (ds_stream_read_inband): Likewise.
        !           469: 
        !           470: 2002-02-28  Roland McGrath  <[email protected]>
        !           471: 
        !           472:        * oskit/ds_osenv.c (ds_osenv_init): Pass missing argument to
        !           473:        oskit_create_osenv_sleep.
        !           474: 
        !           475:        * oskit/ds_asyncio.c (listener_notify): Add missing return.
        !           476: 
        !           477:        * oskit/ds_net.c (ds_net_get_status): Remove unused variable.
        !           478: 
        !           479:        * oskit/ds_osenv.c: Include <oskit/dev/dev.h>,
        !           480:        <oskit/dev/osenv_irq.h>,<oskit/dev/osenv_intr.h>,
        !           481:        <oskit/dev/osenv_sleep.h>.
        !           482: 
        !           483:        * oskit/x86/main.c: Include <string.h>.
        !           484:        * oskit/ds_block.c: Likewise.
        !           485:        * oskit/osenv_irq.c: Likewise.
        !           486:        * oskit/ds_mem.c: Likewise.
        !           487:        * oskit/ds_net.c: Likewise.
        !           488:        * oskit/ds_asyncio.c: Likewise.
        !           489: 
        !           490:        * oskit/osenv_log.c: Include <string.h>, <oskit/c/stdio.h>,
        !           491:        <oskit/base_critical.h>.
        !           492: 
        !           493:        * oskit/osenv_mem.c: Include <string.h>.
        !           494:        (pmap_startup): Remove unused variable.
        !           495: 
        !           496:        * ipc/ipc_entry.c: Terminate comment.
        !           497:        * i386/i386/locore.S: Likewise.
        !           498:        * ipc/fipc.c: Likewise.
        !           499: 
        !           500: 2002-02-18  Roland McGrath  <[email protected]>
        !           501: 
        !           502:        * i386/i386/mp_desc.c (mp_desc_load): Set %gs to KERNEL_GS, not zero.
        !           503: 
        !           504: 2001-12-12  Roland McGrath  <[email protected]>
        !           505: 
        !           506:        * oskit/ds_routines.c (ds_device_read): Remove old debugging crap.
        !           507: 
        !           508: 2001-12-10  Roland McGrath  <[email protected]>
        !           509: 
        !           510:        * oskit/ds_mem.c (ds_mem_read_inband, ds_mem_write_inband):
        !           511:        Check RECNUM and COUNT so as not to be fooled by overflow.
        !           512:        Apply offset to DEV->com.mem.pa before checking direct_mapped.
        !           513:        Check that both ends of the range are direct_mapped.
        !           514:        (ds_mem_map): Check OFFSET and SIZE so as not to be fooled by overflow.
        !           515: 
        !           516:        * oskit/ds_oskit.h (INVALREC): Disable panic definition.
        !           517: 
        !           518: 2001-12-10  Roland McGrath  <[email protected]>
        !           519: 
        !           520:        * oskit/ds_routines.c (special_mem_device): New argument MODE;
        !           521:        use that instead of hardcoding D_READ.
        !           522:        (ds_device_open): Changed callers.
        !           523: 
        !           524: 2001-11-23  Roland McGrath  <[email protected]>
        !           525: 
        !           526:        * oskit/ds_routines.c (device_deallocate): Do nothing if argument
        !           527:        is DEVICE_NULL.
        !           528: 
        !           529: 2001-10-20  Roland McGrath  <[email protected]>
        !           530: 
        !           531:        * Merged from gnumach: -j oskit-fork-20011007 -j oskit-fork-20011019.
        !           532:        CVS tags oskit-premerge-20011019 and oskit-postmerge-20011019 mark the
        !           533:        oskit-branch state before and after this merge.
        !           534: 
        !           535: 2001-10-19  Roland McGrath  <[email protected]>
        !           536: 
        !           537:        * i386/i386/mp_desc.c (mp_desc_init): Use kvtolin on addresses in
        !           538:        segment descriptors.
        !           539: 
        !           540: 2001-10-10  Roland McGrath  <[email protected]>
        !           541: 
        !           542:        * oskit/ds_osenv.c (ds_osenv_init): Don't call direct_cons_set_flags.
        !           543:        * oskit/ds_routines.c (ds_device_open): Call it here instead.
        !           544:        Motivated by Kevin Kreamer <[email protected]>.
        !           545: 
        !           546: 2001-10-07  Roland McGrath  <[email protected]>
        !           547: 
        !           548:        * Merged from gnumach: -j oskit-fork-20010405 -j oskit-fork-20011007.
        !           549:        CVS tags oskit-premerge-20011007 and oskit-postmerge-20011007 mark the
        !           550:        oskit-branch state before and after this merge.
        !           551: 
        !           552: 2001-10-07  Roland McGrath  <[email protected]>
        !           553: 
        !           554:        * oskit/osenv_softirq.c: New file,
        !           555:        contributed by Daniel Wagner <[email protected]>
        !           556:        * oskit/pc/osenv_timer.c (softclock_oskit): Call oskit_softint.
        !           557:        * Makefile.in (osenv-overrides): Add osenv_softirq.
        !           558: 
        !           559: 2001-10-03  Roland McGrath  <[email protected]>
        !           560: 
        !           561:        * oskit/ds_routines.c (no_device_ops): New variable.
        !           562:        * oskit/ds_oskit.h: Declare it.
        !           563: 
        !           564:        * oskit/ds_routines.c (ds_device_write_inband): Check for D_WRITE here.
        !           565: 
        !           566:        * configure.in: Check for mbchk, set MBCHK.
        !           567:        * Makefile.in (MBCHK): New variable, substituted by configure.
        !           568:        (check): Run mbchk on the kernel.
        !           569: 
        !           570:        * cpus.h: Moved to ...
        !           571:        * bogus/cpus.h: ... here.
        !           572:        * Makefile.in (clean): Avoid removing config.h.
        !           573:        These problems reported by Gordon Matzigkeit <[email protected]>.
        !           574: 
        !           575: 2001-09-26  Roland McGrath  <[email protected]>
        !           576: 
        !           577:        * oskit/ds_mem.c (direct_mapped): Page 0 is not direct mapped.
        !           578: 
        !           579: 2001-08-20  Roland McGrath  <[email protected]>
        !           580: 
        !           581:        * kern/bootstrap.c (bootstrap_create): Doc fix, whitespace cleanup.
        !           582: 
        !           583: 2001-08-20  Roland McGrath  <[email protected]>
        !           584: 
        !           585:        * kern/bootstrap.c (bootstrap_create): Set ${kernel-command-line}
        !           586:        rather than ${multiboot-cmdline}, to match Hurd's serverboot.
        !           587: 
        !           588: 2001-08-20  Roland McGrath  <[email protected]>
        !           589: 
        !           590:        * kern/bootstrap.c (boot_read, read_exec): Use phystokv to access
        !           591:        module data addresses.
        !           592:        (boot_script_exec_cmd): Return a value.
        !           593:        (boot_script_task_create, boot_script_task_resume): Add \n to err msg.
        !           594:        (user_bootstrap): Remove spurious & in thread_wakeup arg.
        !           595:        These bugs all reported by Neal H Walfield <[email protected]>.
        !           596: 
        !           597: 2001-08-18  Roland McGrath  <[email protected]>
        !           598: 
        !           599:        * kern/bootstrap.c (bootstrap_create): Pass &BMODS[0] to
        !           600:        bootstrap_exec_compat, not the module data address.
        !           601: 
        !           602: 2001-08-17  Roland McGrath  <[email protected]>
        !           603: 
        !           604:        * kern/bootstrap.c (boot_script_exec_cmd, user_bootstrap):
        !           605:        Synchronize so boot_script_exec_cmd doesn't return until
        !           606:        the thread running user_bootstrap has done its job.
        !           607:        (bootstrap_create): Set boot script variable "multiboot-cmdline".
        !           608: 
        !           609:        * kern/bootstrap.c (boot_script_insert_task_port): New function.
        !           610:        (boot_script_insert_task_port): Rewritten using task_insert_send_right.
        !           611:        (bootstrap_create): Set up boot script variable values.
        !           612: 
        !           613:        * kern/bootstrap.c: Largely rewritten, using Hurd boot_script code.
        !           614: 
        !           615:        * Makefile.in ($(srcdir)/configure, $(srcdir)/config.h.in):
        !           616:        Use $(srcdir) in deps.
        !           617:        (Makefile, config.h, config.status): Likewise.
        !           618: 
        !           619:        * kern/strings.c, kern/strings.h: Files removed.
        !           620:        * Makefile.in (kern-cfiles): Remove strings.c.
        !           621:        (kern-hfiles): Remove strings.h.
        !           622:        * kern/bootstrap.c: <kern/strings.h> -> <string.h>
        !           623: 
        !           624:        * Makefile.in (DEFINES): Add -DOSKIT_MACH=1.
        !           625: 
        !           626: 2001-08-16  Roland McGrath  <[email protected]>
        !           627: 
        !           628:        * Makefile.in (k%nel.o, kernel.o, oskit-kern%.o): Insert a
        !           629:        -L$(OSKIT_LIBDIR)/.. switch before the oskit libraries.
        !           630: 
        !           631: 2001-06-02  Roland McGrath  <[email protected]>
        !           632: 
        !           633:        * i386/i386/locore.S (alltraps): Don't conditionalize pushl %gs
        !           634:        on [MULTIPROCESSOR].  Reported by Jeroen Dekkers <[email protected]>.
        !           635: 
        !           636:        * i386/i386/locore.S (mach_call_call) [DEBUG]: Remove syscall_trace
        !           637:        code.  Reported by Jeroen Dekkers <[email protected]>.
        !           638: 
        !           639: 2001-05-31  Roland McGrath  <[email protected]>
        !           640: 
        !           641:        * i386/i386/mp_desc.c (interrupt_stack, int_stack_top): Initialize
        !           642:        these' first elements to &base_stack_start,&base_stack_end.
        !           643:        (interrupt_stack_alloc): Remove counting loop with unused results.
        !           644:        Problem found by Jeroen Dekkers <[email protected]>.
        !           645: 
        !           646: 2001-02-03  Roland McGrath  <[email protected]>
        !           647: 
        !           648:        * configure.in: Substitute LDFLAGS.
        !           649:        * Makefile.in (LDFLAGS): Substitute configure value.
        !           650: 
        !           651:        * configure.in (OSKIT_LIBDIR): Don't override environment value.
        !           652: 
        !           653:        * Makefile.in (mach-headers): Remove boot.h, which is gone.
        !           654:        (mach-exec-headers): Variable removed.
        !           655:        (installed-headers): Don't use it.
        !           656:        (mach-headers): Remove multiboot.h
        !           657:        * i386/Makefrag (i386-installed-headers): Remove dead files.
        !           658:        (installed-headers): Don't touch this.
        !           659: 
        !           660: 2001-01-11  Roland McGrath  <[email protected]>
        !           661: 
        !           662:        * oskit/ds_block.c (ds_blkio_get_status): Implement DEV_GET_RECORDS.
        !           663: 
        !           664: 2000-12-21  Roland McGrath  <[email protected]>
        !           665: 
        !           666:        * oskit/x86/main.c (CR4_PGE): #undef and define to 0x80,
        !           667:        since the oskit's value is incorrect.
        !           668: 
        !           669: 2000-10-29  Roland McGrath  <[email protected]>
        !           670: 
        !           671:        Remove numerous dead header files.
        !           672:        Suggested by Igor Khavkine <[email protected]>.
        !           673:        * kern/elf-load.c: Dead file removed.
        !           674:        * Makefile.in (kern-cfiles): Remove elf-load.c.
        !           675:        (OSKIT_LIBS): Add -loskit_exec.
        !           676:        * i386/i386/pcb.c: <mach/exec/exec.h> -> #include <oskit/exec/exec.h>
        !           677:        * i386/i386/idt-gen.h: Dead file removed.
        !           678:        * i386/i386at/idt.h: Dead file removed.
        !           679:        * i386/include/mach/i386/exec/elf.h: Dead file removed.
        !           680:        * i386/include/mach/i386/multiboot.h: Dead file removed.
        !           681:        * include/mach/boot.h: Dead file removed.
        !           682:        * include/mach/exec/a.out.h: Dead file removed.
        !           683:        * include/mach/exec/elf.h: Dead file removed.
        !           684:        * include/mach/exec/exec.h: Dead file removed.
        !           685:        * include/mach/multiboot.h: Dead file removed.
        !           686: 
        !           687:        * Makefile.in (clib-routines): Add ffs, needed when not inlined.
        !           688:        Reported by Igor Khavkine <[email protected]>.
        !           689: 
        !           690: 2000-10-27  Roland McGrath  <[email protected]>
        !           691: 
        !           692:        * oskit/x86/main.c (main): Don't #define master_cpu here.
        !           693:        * kern/cpu_number.h [NCPUS == 1] (master_cpu): Define as a macro.
        !           694:        Move variable decl to [NCPUS != 1].
        !           695: 
        !           696:        * oskit/smp-glue.c: New file.
        !           697:        * Makefile.in (oskit-cfiles): Add it.
        !           698: 
        !           699:        * configure.in (MAXCPUS): Fix quoting of [] pattern in case statement.
        !           700:        * configure: Regenerated.
        !           701: 
        !           702:        * i386/Makefrag (i386-files): Add back ast_check.c.
        !           703:        * i386/i386/ast_check.c (cause_ast_check): Call interrupt_processor.
        !           704: 
        !           705:        * i386/i386/mp_desc.c (interrupt_stack_alloc): Don't set
        !           706:        int_stack_high here.  Call init_alloc separately for each CPU.
        !           707:        * oskit/osenv_mem.c (init_alloc): New function.
        !           708: 
        !           709:        * i386/i386/cswitch.S: Use EXT macro on interrupt_stack.
        !           710: 
        !           711:        * i386/i386/cpu_number.h [NCPUS > 1] (cpu_number, CPU_NUMBER):
        !           712:        Define these loading the value from %gs:0.
        !           713:        * i386/i386/locore.S (all_traps, all_intrs, return_to_iret,
        !           714:        ast_from_interrupt, syscall) [MULTIPROCESSOR]: When restoring
        !           715:        kernel segment registers, put KERNEL_GS in %gs.
        !           716:        * i386/i386/gdt.h (KERNEL_GS): New macro.
        !           717:        * i386/i386/i386asm.sym: Emit KERNEL_GS.
        !           718:        * i386/i386/gdt.c (gdt_init): Set up KERNEL_GS segment to point to
        !           719:        master_cpu.
        !           720:        * i386/i386/mp_desc.h (struct mp_desc_table): New member `cpu_number'.
        !           721:        * i386/i386/mp_desc.c (mp_desc_init): Set up KERNEL_GS segment to
        !           722:        point to this CPU's cpu_number slot, and store MYCPU there.
        !           723: 
        !           724:        * oskit/ds_oskit.h (DEV_LOCK_INIT, DEV_LOCK, DEV_UNLOCK): New macros.
        !           725: 
        !           726:        * oskit/osenv_mem.c (smp_map_range): Add necessary cast.
        !           727: 
        !           728:        * Makefile.in (OSKIT_LIBS): Add -loskit_smp.
        !           729: 
        !           730:        * oskit/ds_routines.c (device_deallocate):
        !           731:        dev_number_lock -> dev_hash_lock
        !           732: 
        !           733:        * oskit/x86/main.c: Include <kern/cpu_number.h> for master_cpu decl.
        !           734:        * i386/i386/mp_desc.h: Include <oskit/x86/base_idt.h> for IDTSZ decl.
        !           735:        Include <oskit/base_stack.h>.
        !           736:        Declare mp_desc_load to return void.
        !           737:        * i386/i386/mp_desc.c: Use struct x86_desc instead of i386_desc.
        !           738:        (mp_desc_init): Replace ktss with base_tss.
        !           739:        (interrupt_stack_alloc): base_stack -> base_stack_start
        !           740: 
        !           741: 2000-10-26  Roland McGrath  <[email protected]>
        !           742: 
        !           743:        * oskit/osenv_synch.c (osenv_intr_save_disable): New function.
        !           744: 
        !           745:        * i386/i386/mp_desc.h: Declare int_stack_high here.
        !           746: 
        !           747: 2000-10-09  Roland McGrath  <[email protected]>
        !           748: 
        !           749:        On the road to getting NCPUS > 1 to work in oskit-mach.
        !           750:        * oskit/x86/main.c (int_stack_top, int_stack_bottom): Remove defns.
        !           751:        (setup_machine_slot): New function, broken out of main.
        !           752:        (main): Call it.
        !           753:        Include <oskit/smp.h>
        !           754:        (main) [NCPUS > 1]: Initialize oskit smp library and our mp_desc
        !           755:        structures.
        !           756:        * i386/i386/mp_desc.c: Use oskit includes.
        !           757:        (interrupt_stack, int_stack_top, int_stack_high): Make unconditional.
        !           758:        (eintstack, eintstack): Decls removed.
        !           759:        (interrupt_stack_alloc): Use base_stack instead.
        !           760:        (mp_ktss, mp_gdt): Let these go in bss.
        !           761:        (mp_desc_init): Use memcpy instead of bcopy.
        !           762:        (mp_desc_load): New function.
        !           763:        * oskit/osenv_mem.c [NCPUS > 1] (smp_map_range): New function.
        !           764: 
        !           765: 2000-10-01  Roland McGrath  <[email protected]>
        !           766: 
        !           767:        * oskit/osenv_mem.c (free_for_oskit): Copy assert on FLAGS
        !           768:        consistency from alloc_for_oskit.
        !           769: 
        !           770: 2000-09-17  Roland McGrath  <[email protected]>
        !           771: 
        !           772:        * oskit/x86/main.c (main): Set CR4_PGE bit here, after paging_enable.
        !           773:        * i386/intel/pmap.c (pmap_bootstrap): Not here, since it's before
        !           774:        paging is enabled, and that is verboten.  Still check the feature
        !           775:        flag and initialize kernel_pte_global here.
        !           776: 
        !           777: 2000-03-20  Roland McGrath  <[email protected]>
        !           778: 
        !           779:        * Makefile.in (oskit-kern%.o): Pattern rule replaces oskit-kernel.o
        !           780:        target rule.
        !           781:        (kern%): Pattern rule replaces kernel target rule.
        !           782:        (kernel-%.o): New pattern rule, like kernel.o rule.
        !           783:        (init-%.c): New pattern rule.
        !           784: 
        !           785: 2000-02-07  Roland McGrath  <[email protected]>
        !           786: 
        !           787:        * oskit/osenv_mem.c (alloc_for_oskit): Add to lmm_wants_pages, rather
        !           788:        than resetting it.
        !           789:        (consider_lmm_collect): Separate the conditions, so we always check
        !           790:        vm_page_unqueued_count against lmm_wants_pages first.  As another
        !           791:        separate condition, if lmm_want_pages is nonzero, clear it and then
        !           792:        thread_wakeup on it.  Check to move pages into the VM system is now
        !           793:        a final independent conditional.
        !           794: 
        !           795: 2000-02-06  Roland McGrath  <[email protected]>
        !           796: 
        !           797:        * Drivers.macros: File removed; obsolete in this branch.
        !           798: 
        !           799:        * oskit/osenv_mem.c (consider_lmm_collect): Fix fencepost error in
        !           800:        loop calling vm_page_grab.  After putting memory back into the LMM,
        !           801:        wake up threads blocked on &lmm_wants_pages.
        !           802:        (alloc_for_oskit): After waking from &lmm_wants_pages block, loop
        !           803:        to retry LMM allocation.
        !           804: 
        !           805: 2000-02-05  Roland McGrath  <[email protected]>
        !           806: 
        !           807:        * version.c (version): Call it 1.2.91-OSKit now.
        !           808:        * debian/changelog: Likewise.
        !           809: 
        !           810:        * Makefile.in (device-files): Remove obsolete files ds_routines.c and
        !           811:        dev_forward.defs.
        !           812:        (dist): Punt old rules and just run dpkg-buildpackage.
        !           813:        * Makefile.in (oskit-cfiles): Add ds_routines.c here.
        !           814: 
        !           815:        * Makefile.in (config.h): Depend on stamp-configh.
        !           816:        (stamp-configh): New target to run config.status for config.h update.
        !           817: 
        !           818:        * i386/Makefrag (install-headers, i386-install-headers,
        !           819:        install-kernel, i386-install-kernel): Rules removed.
        !           820: 
        !           821:        * i386/i386/locore.S (dr6, dr0, dr1, dr2, dr3, dr_msk, dr_addr):
        !           822:        Remove these obsolete entry points and variables.
        !           823:        (null_idt, null_idtr, cpu_shutdown): These too.
        !           824: 
        !           825:        * oskit/osenv_irq.c: Don't #include <stdio.h>!
        !           826: 
        !           827: 2000-01-28  Roland McGrath  <[email protected]>
        !           828: 
        !           829:        * i386/i386/trap.c (user_page_fault_continue): Disable a debugging
        !           830:        printf.
        !           831: 
        !           832: 2000-01-25  Roland McGrath  <[email protected]>
        !           833: 
        !           834:        * configure.in: Remove check for host_os.  It does not matter.
        !           835:        * configure: Regenerated.
        !           836: 
        !           837: 1999-11-25  Roland McGrath  <[email protected]>
        !           838: 
        !           839:        Drastically revamp hardware support using the Flux OSKit.
        !           840:        Numerous new and changed files, and many files and whole
        !           841:        subdirectory trees removed.  All old device drivers are removed,
        !           842:        replaced using the OSKit device driver libraries.
        !           843:        All the changes on this page are a unified interdependent set
        !           844:        of changes turning GNUmach into OSKit-Mach, but since there
        !           845:        are so many changes I have put them in separate paragraphs
        !           846:        roughly divided by topic.
        !           847: 
        !           848:        * oskit: New subdirectory of support code using OSKit interfaces,
        !           849:        and providing OSKit bottom-end interfaces for using components in Mach.
        !           850:        * oskit/ds_asyncio.c: New file.
        !           851:        * oskit/ds_block.c: New file.
        !           852:        * oskit/ds_bus.c: New file.
        !           853:        * oskit/ds_mem.c: New file.
        !           854:        * oskit/ds_net.c: New file.
        !           855:        * oskit/ds_osenv.c: New file.
        !           856:        * oskit/ds_oskit.h: New file.
        !           857:        * oskit/ds_partition.c: New file.
        !           858:        * oskit/ds_request.c: New file.
        !           859:        * oskit/ds_request.h: New file.
        !           860:        * oskit/ds_routines.c: New file.
        !           861:        * oskit/ds_stream.c: New file.
        !           862:        * oskit/osenv_irq.c: New file.
        !           863:        * oskit/osenv_log.c: New file.
        !           864:        * oskit/osenv_mem.c: New file.
        !           865:        * oskit/osenv_sleep.c: New file.
        !           866:        * oskit/osenv_synch.c: New file.
        !           867:        * oskit/pc/osenv_bell.c: New file.
        !           868:        * oskit/pc/osenv_timer.c: New file.
        !           869:        * oskit/x86/main.c: New file.
        !           870:        * oskit/kmsg.c: New file.  This is an oskit-based kernel logging
        !           871:        device in the style of Linux's /proc/kmsg magical file.  It is the
        !           872:        backend used for all logging output from oskit components.
        !           873: 
        !           874:        Front-end changes for device and miscellaneous support code changes:
        !           875:        * device/dev_hdr.h: Rewritten.
        !           876:        * device/dev_pager.c: Revamped to support only the new uniform
        !           877:        oskit-based device_t interface, one flavor of pager.
        !           878:        Commented out unused routines.
        !           879:        * device/device_init.c (device_service_create): Don't call
        !           880:        dev_lookup_init.
        !           881:        * device/net_io.c (if_init_queues): Moved here from defunct subrs.c.
        !           882:        (net_set_filter): Call net_kmsg_more before successful return, to
        !           883:        make sure the very first packet buffer gets allocated.
        !           884:        * kern/startup.c: Remove XPR cruft, panic_init, printf_init.
        !           885:        * kern/syscall_sw.c: Add some missing headers.
        !           886:        * kern/mach_clock.c: Deliver oskit clock ticks at splsoftclock.
        !           887: 
        !           888:        Miscellaneous cleanups & changes to use convenient OSKit facilities.
        !           889:        * i386/i386/cswitch.S: Assembler macro nits.
        !           890:        * i386/i386/fpu.c, i386/i386/fpu.h: Magic instruction macro nits.
        !           891:        * i386/i386/fpe_linkage.c: Use OSKit structure and constant names.
        !           892:        * i386/i386/i386sym.sym: Likewise.
        !           893:        * i386/i386/idt-gen.h: Likewise.
        !           894:        * i386/i386/idt.c: Likewise.
        !           895:        * i386/i386/idt_inittab.S: Likewise.
        !           896:        * i386/i386/gdt.c: Likewise.
        !           897:        * i386/i386/gdt.h: Likewise.
        !           898:        * i386/i386/ldt.c: Likewise.
        !           899:        * i386/i386/ldt.h: Likewise.
        !           900:        * i386/i386/user_ldt.h: Likewise.
        !           901:        * i386/i386/user_ldt.c: Likewise.
        !           902:        * i386/i386/locore.S: Likewise.
        !           903:        * i386/i386/iopb.c: Likewise.
        !           904:        * i386/i386/iopb.h: Likewise.
        !           905:        * i386/i386/mp_desc.c: Likewise.
        !           906:        * i386/i386/mp_desc.h: Likewise.
        !           907:        * i386/i386/io_emulate.c: Likewise.
        !           908:        * i386/i386/io_emulate.h: Likewise.
        !           909:        * i386/i386/pcb.c: Likewise.
        !           910:        * i386/i386/pit.c: Likewise.
        !           911:        * i386/i386/pic.c: Likewise.
        !           912:        * i386/i386/spl.S: Likewise.
        !           913:        * i386/i386/thread.h: Likewise.
        !           914:        * i386/i386at/int_init.c: Likewise.
        !           915:        * i386/i386at/interrupt.S: Likewise.
        !           916:        * i386/i386at/pic_isa.c: Likewise.
        !           917:        * kern/kalloc.c: Likewise.
        !           918:        * i386/intel/pmap.h: Likewise.
        !           919:        * i386/i386/trap.c: Likewise.  Remove much cruft, TTD & KDB.
        !           920:        Call oskit gdb_trap handler if enabled.
        !           921:        * i386/i386/vm_param.h: Use <oskit/x86/base_vm.h> for defns.
        !           922:        * i386/i386/hardclock.c: Clean up unused PS2 & LINUX_DEV cruft.
        !           923:        * i386/include/mach/i386/vm_param.h: #undef PAGE_SHIFT in case of
        !           924:        conflicting defn from the oskit.
        !           925:        * kern/assert.h: Rewritten using <oskit/c/assert.h>.
        !           926:        * kern/debug.h: Use <oskit/gdb.h>.
        !           927:        * kern/machine.c: Likewise.
        !           928:        * kern/bootstrap.c: Use oskit headers for multiboot and exec stuff.
        !           929:        (boot_info): Fix type, not a pointer.
        !           930:        (bootstrap_create): Fix uses.
        !           931:        (get_compat_strings): Initialize to "UNKNOWN" in case nothing seen.
        !           932:        (user_bootstrap): Increase buffer sizes for device/file name prompts.
        !           933:        * vm/vm_object.c: Remove XPR cruft.
        !           934: 
        !           935:        Changes to the physical page pool code to share a pool of available
        !           936:        memory kept in contiguous chunks with oskit code (drivers).
        !           937:        The pageout daemon moves memory between the shared pool (the LMM)
        !           938:        and the vm_page_queue_free list to keep some available for either
        !           939:        use, but vm_page_grab can always steal a page directly from the LMM
        !           940:        if the pageout daemon is not keeping the free list full enough.
        !           941:        The interesting action here goes on in oskit/osenv_mem.c.
        !           942:        * vm/vm_page.h (vm_page_queue_free_count, vm_page_unqueued_count):
        !           943:        Declare new variables.
        !           944:        (vm_page_free_count): Now a macro.
        !           945:        * vm/vm_pageout.c (vm_pageout_scan): Call consider_lmm_collect.
        !           946:        * vm/vm_resident.c: Remove XPR cruft.
        !           947:        (vm_page_queue_free_count, vm_page_unqueued_count): New variables.
        !           948:        (vm_page_free_count): Variable removed.
        !           949:        (pmap_startup): Commented out.
        !           950:        (vm_page_grab): When the queue is empty, call vm_page_grab_oskit_page.
        !           951:        Also wakeup the pageout daemon whenever
        !           952:        vm_page_queue_free_count < vm_page_unqueued_count.
        !           953:        (vm_page_release): Use vm_page_queue_free_count for vm_page_free_count.
        !           954:        (vm_page_module_init): Make the vm_page_zone collectable.
        !           955: 
        !           956:        * i386/intel/pmap.c: Use oskit types, macros, and variables that apply.
        !           957:        (INVALIDATE_TLB): Macro replaced with inline function.
        !           958:        Attempt to use INVLPG instruction if available.
        !           959:        (kernel_pte_global): New variable.
        !           960:        (pmap_bootstrap): Set it if processor supports INTEL_PTE_GLOBAL
        !           961:        bit, and set PGE flag in %cr4 to enable using it.  Use it for
        !           962:        page table entries in the kernel portion of address space.
        !           963:        (pmap_create): Use pmap_page_table_page_alloc to get a
        !           964:        direct-mapped physical page for the page directory.
        !           965:        (pmap_destroy): Deallocate accordingly.
        !           966:        (pmap_enter): Zero-fill new page table pages.
        !           967:        Use kernel_pte_global if allocating in the kernel_pmap.
        !           968: 
        !           969:        * ipc/mach_port.c (mach_port_insert_right): IO_VALID -> IP_VALID.
        !           970:        * kern/ipc_tt.c (mach_ports_register): Add a cast.
        !           971: 
        !           972:        Associated configure/build changes for reorganizations.
        !           973:        * configure.in: Generate config.h file instead of -D switches.
        !           974:        (--enable-kdb, --enable-kmsg): Options removed.
        !           975:        (--enable-smp): New argument, sets MAXCPUS, defines NCPUS.
        !           976:        (--enable-fpe): New argument, defines FPE.
        !           977:        Add check for a sufficiently new installed oskit version.
        !           978:        (OSKIT_LIBDIR): New variable, substituted.
        !           979:        Comment out AC_CONFIG_SUBDIRS call.
        !           980:        * configure: Regenerated.
        !           981:        * acconfig.h, config.h.in: New files, used by autoheader and configure.
        !           982:        * cpus.h: New file, uses configure-generated config.h for values.
        !           983:        * include/device/device_error_reply.defs: New file.
        !           984:        * device/device_error_reply.cli: New file.  Well-typed error replies.
        !           985:        * version.c (version): Changed to "GNUmach 1.2.90-OSKit".
        !           986:        * Makefile.in, i386/Makefrag: Substantially revamped for many added
        !           987:        and removed modules, new linking rules to use oskit libraries.
        !           988:        * i386/Files, i386/Subdirs: Updated.
        !           989: 
        !           990:        Removed all old device drivers, hardware support code, and
        !           991:        miscellaneous things that can be replaced by using OSKit libraries.
        !           992:        Also removed much cruft that was already unused in GNUmach.
        !           993:        Removed unused "XPR" kernel logging facility.
        !           994:        * chips, ddb, linux, scsi, util: Whole directory trees all removed.
        !           995:        * device/blkio.c: Obsolete file removed.
        !           996:        * device/buf.h: Likewise.
        !           997:        * device/chario.c: Likewise.
        !           998:        * device/cirbuf.c: Likewise.
        !           999:        * device/cirbuf.h: Likewise.
        !          1000:        * device/conf.h: Likewise.
        !          1001:        * device/cons.c: Likewise.
        !          1002:        * device/cons.h: Likewise.
        !          1003:        * device/dev_forward.defs: Likewise.
        !          1004:        * device/dev_lookup.c: Likewise.
        !          1005:        * device/dev_name.c: Likewise.
        !          1006:        * device/dk_label.c: Likewise.
        !          1007:        * device/ds_routines.c: Likewise.
        !          1008:        * device/errno.h: Likewise.
        !          1009:        * device/io_req.h: Likewise.
        !          1010:        * device/kmsg.c: Likewise.
        !          1011:        * device/kmsg.h: Likewise.
        !          1012:        * device/param.h: Likewise.
        !          1013:        * device/subrs.c: Likewise.
        !          1014:        * device/tty.h: Likewise.
        !          1015:        * i386/Makefile.in: Likewise.
        !          1016:        * i386/README-Drivers: Likewise.
        !          1017:        * i386/configure: Likewise.
        !          1018:        * i386/configure.in: Likewise.
        !          1019:        * i386/i386/_setjmp.S: Likewise.
        !          1020:        * i386/i386/db_disasm.c: Likewise.
        !          1021:        * i386/i386/db_interface.c: Likewise.
        !          1022:        * i386/i386/db_machdep.h: Likewise.
        !          1023:        * i386/i386/db_trace.c: Likewise.
        !          1024:        * i386/i386/debug.h: Likewise.
        !          1025:        * i386/i386/debug_i386.c: Likewise.
        !          1026:        * i386/i386/debug_trace.S: Likewise.
        !          1027:        * i386/i386/fpe.b: Likewise.
        !          1028:        * i386/i386/fpe.b_elf: Likewise.
        !          1029:        * i386/i386/io_map.c: Likewise.
        !          1030:        * i386/i386/ktss.c: Likewise.
        !          1031:        * i386/i386/ktss.h: Likewise.
        !          1032:        * i386/i386/kttd_interface.c: Likewise.
        !          1033:        * i386/i386/kttd_machdep.h: Likewise.
        !          1034:        * i386/i386/loose_ends.c: Likewise.
        !          1035:        * i386/i386/pic.h: Likewise.
        !          1036:        * i386/i386/pit.h: Likewise.
        !          1037:        * i386/i386/proc_reg.h: Likewise.
        !          1038:        * i386/i386/seg.c: Likewise.
        !          1039:        * i386/i386/seg.h: Likewise.
        !          1040:        * i386/i386/setjmp.h: Likewise.
        !          1041:        * i386/i386/timer.h: Likewise.
        !          1042:        * i386/i386/tss.h: Likewise.
        !          1043:        * i386/i386/xpr.h: Likewise.
        !          1044:        * i386/i386at/asm_startup.h: Likewise.
        !          1045:        * i386/i386at/autoconf.c: Likewise.
        !          1046:        * i386/i386at/blit.c: Likewise.
        !          1047:        * i386/i386at/blitreg.h: Likewise.
        !          1048:        * i386/i386at/blituser.h: Likewise.
        !          1049:        * i386/i386at/blitvar.h: Likewise.
        !          1050:        * i386/i386at/boothdr.S: Likewise.
        !          1051:        * i386/i386at/com.c: Likewise.
        !          1052:        * i386/i386at/comreg.h: Likewise.
        !          1053:        * i386/i386at/conf.c: Likewise.
        !          1054:        * i386/i386at/cons_conf.c: Likewise.
        !          1055:        * i386/i386at/cram.h: Likewise.
        !          1056:        * i386/i386at/dev_hdr.h: Likewise.
        !          1057:        * i386/i386at/device_emul.h: Likewise.
        !          1058:        * i386/i386at/disk.h: Likewise.
        !          1059:        * i386/i386at/ds8390.h: Likewise.
        !          1060:        * i386/i386at/eisa.h: Likewise.
        !          1061:        * i386/i386at/fd.c: Likewise.
        !          1062:        * i386/i386at/fdreg.h: Likewise.
        !          1063:        * i386/i386at/i386at_ds_routines.c: Likewise.
        !          1064:        * i386/i386at/i8250.h: Likewise.
        !          1065:        * i386/i386at/i82586.h: Likewise.
        !          1066:        * i386/i386at/if_3c501.c: Likewise.
        !          1067:        * i386/i386at/if_3c501.h: Likewise.
        !          1068:        * i386/i386at/if_3c503.h: Likewise.
        !          1069:        * i386/i386at/if_de6c.c: Likewise.
        !          1070:        * i386/i386at/if_de6c.h: Likewise.
        !          1071:        * i386/i386at/if_de6s.S: Likewise.
        !          1072:        * i386/i386at/if_ne.c: Likewise.
        !          1073:        * i386/i386at/if_nereg.h: Likewise.
        !          1074:        * i386/i386at/if_ns8390.c: Likewise.
        !          1075:        * i386/i386at/if_ns8390.h: Likewise.
        !          1076:        * i386/i386at/if_par.c: Likewise.
        !          1077:        * i386/i386at/if_par.h: Likewise.
        !          1078:        * i386/i386at/if_pc586.c: Likewise.
        !          1079:        * i386/i386at/if_pc586.h: Likewise.
        !          1080:        * i386/i386at/if_wd8003.h: Likewise.
        !          1081:        * i386/i386at/immc.c: Likewise.
        !          1082:        * i386/i386at/iopl.c: Likewise.
        !          1083:        * i386/i386at/kd.c: Likewise.
        !          1084:        * i386/i386at/kd.h: Likewise.
        !          1085:        * i386/i386at/kd_event.c: Likewise.
        !          1086:        * i386/i386at/kd_mouse.c: Likewise.
        !          1087:        * i386/i386at/kd_queue.c: Likewise.
        !          1088:        * i386/i386at/kd_queue.h: Likewise.
        !          1089:        * i386/i386at/kdasm.S: Likewise.
        !          1090:        * i386/i386at/kdsoft.h: Likewise.
        !          1091:        * i386/i386at/lpr.c: Likewise.
        !          1092:        * i386/i386at/lprreg.h: Likewise.
        !          1093:        * i386/i386at/model_dep.c: Likewise.
        !          1094:        * i386/i386at/nfd.c: Likewise.
        !          1095:        * i386/i386at/nfdreg.h: Likewise.
        !          1096:        * i386/i386at/nhd.c: Likewise.
        !          1097:        * i386/i386at/nhdreg.h: Likewise.
        !          1098:        * i386/i386at/phys_mem_grab_page.c: Likewise.
        !          1099:        * i386/i386at/rtc.c: Likewise.
        !          1100:        * i386/i386at/rtc.h: Likewise.
        !          1101:        * kern/debug.c: Likewise.
        !          1102:        * kern/printf.c: Likewise.
        !          1103:        * kern/xpr.c: Likewise.
        !          1104:        * kern/xpr.h: Likewise.
        !          1105: 
        !          1106:        * debian/control, debian/rules: First crack at setting things up to
        !          1107:        build an oskit-mach package instead of gnumach.
        !          1108: 
        !          1109: Older changes in ChangeLog.1
        !          1110: 
        !          1111: Local variables:
        !          1112: mode: change-log
        !          1113: fill-column: 75
        !          1114: End:

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.