Annotation of tme/ChangeLog, revision 1.1.1.4

1.1.1.4 ! root        1: Thu Sep 06 23:35:41 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !             2: 
        !             3:        * Release 0.6 out.
        !             4: 
        !             5:        * TODO: Updated. 
        !             6: 
        !             7:        * ic/ncr53c9x.c: Fixed some comments. 
        !             8:        (_tme_ncr53c9x_scsi_cycle): When we transfer in from the SCSI bus, if
        !             9:        we need to detect the the transfer residual based on the data
        !            10:        transferred, try to update the transfer residual. 
        !            11: 
        !            12:        * machine/sun4/sun44c-mmu.c (_tme_sun44c_buserr_common): A bus error
        !            13:        that is asynchronous for the CPU isn't reported as a hard fault to the
        !            14:        CPU, but if the initiator is another bus master, it is reported to
        !            15:        that master as a hard fault. 
        !            16: 
        !            17:        * scsi/scsi-tape.c (tme_scsi_tape_cdb_xfer0): In the NetBSD PR
        !            18:        pkg/34536 hack, only clear the Illegal Length Indicator (ILI) flag. 
        !            19:        More importantly, this preserves the filemark flag, which is needed
        !            20:        for SunOS tape installs to work. 
        !            21: 
        !            22: Sun Aug 26 14:02:04 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !            23: 
        !            24:        * configure.in: Bumped version to 0.6. 
        !            25:        Now check for the alignment of long, when it's 64 bits.  Added support
        !            26:        for sun4 systems. 
        !            27: 
        !            28:        * ic/ieee754/ieee754-precision.sh: Added some missing ${prefix}es to
        !            29:        the variable names in the precision-independent statements. 
        !            30: 
        !            31: Sat Aug 25 23:12:31 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !            32: 
        !            33:        * generic/fb.c (_tme_fb_xlat_colors_get_set): If the colors that the
        !            34:        destination framebuffer needs to allocate don't depend on the source
        !            35:        framebuffer, return a colorset signature that destination framebuffers
        !            36:        can use to avoid reallocating the same set of colors repeatedly.  When
        !            37:        the number of colors to allocate is clearly more than the destination
        !            38:        could ever allocate, and source pixels are mapped to intensities,
        !            39:        remove some of the less significant bits of the source intensities to
        !            40:        reduce the number of colors needed.  Now give a distinct pixel value
        !            41:        for each distinct color we ask for, especially when we're asking for a
        !            42:        lot of duplicate colors as the result of reducing the range of the
        !            43:        source intensities (see above). 
        !            44: 
        !            45:        * host/gtk/gtk-display.c (_tme_gtk_display_menu_radio): Added. 
        !            46: 
        !            47:        * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Now only
        !            48:        reallocate the GdkImage when the framebuffer size changes, and the
        !            49:        colors when the final mapping from source color to destination pixel
        !            50:        changes.  When allocating colors, now only allocate distinct colors. 
        !            51:        (_tme_gtk_screen_submenu_scaling): Added. 
        !            52:        (_tme_gtk_screen_new): Now use _tme_gtk_display_menu_radio() to create
        !            53:        the scaling submenu. 
        !            54: 
        !            55:        * ic/i825x6.c: Added a union to fix an aliasing problem with
        !            56:        TME_I825X6_RX_BUFFER_NEXT().  From skrll@netbsd.org        !            57:        (_tme_i825x6_rx_buffers_add): Now busy a TLB before checking if it's
        !            58:        valid and useful, and unbusy it for filling if it's not.  After
        !            59:        filling it, loop to busy and check it again.  When we're done with the
        !            60:        TLB entry, unbusy it. 
        !            61:        (_tme_i825x6_callout_ca): When the receive unit is being started,
        !            62:        always abort it first, unless it was already idle.  Before, we
        !            63:        wouldn't abort it if it was out of resources, which was wrong since
        !            64:        it's possible to run out of receive frame descriptors but not receive
        !            65:        buffers. 
        !            66:        (_tme_i825x6_callout_cu): Don't abort() for a DIAGNOSE command.  From
        !            67:        sigmfsk@aol.com in NetBSD PR pkg/35305. 
        !            68:        (_tme_i825x6_signal): Don't assume that xor-ing the level out of the
        !            69:        signal value leaves only the base signal; use TME_BUS_SIGNAL_WHICH()
        !            70:        instead. 
        !            71:        (_tme_i825x6_read): Keep track of the transmit packet's size in a new
        !            72:        variable, since the DMA read and write helper macros destroy rc.  From
        !            73:        sigmfsk@aol.com in NetBSD PR pkg/35305. 
        !            74: 
        !            75:        * ic/z8530.c (_tme_z8530_channel_reset): On a hardware reset, clear
        !            76:        the IUS bits and reset RR2.  Now take a pointer to the structure for
        !            77:        the whole chip, since some registers are common to both channels.  All
        !            78:        callers changed. 
        !            79:        (_tme_z8530_channel_init): Now take a pointer to the structure for the
        !            80:        whole chip, since some registers are common to both channels.  All
        !            81:        callers changed. 
        !            82:        (_tme_z8530_rr0_update): Fixed a bug where we would use the RR15 value
        !            83:        where we meant to use the WR15 value. 
        !            84:        (_tme_z8530_rr2_update):
        !            85:        (_tme_z8530_int_pending): Added. 
        !            86:        (_tme_z8530_intack): Now use _tme_z8530_int_pending() to see if an
        !            87:        interrupt is pending, and call _tme_z8530_rr2_update() to update RR2
        !            88:        and get the vector to use.  Now check a socket flag to see if the IEI
        !            89:        pin is tied low. 
        !            90:        (_tme_z8530_callout): Now use _tme_z8530_int_pending() to see if an
        !            91:        interrupt is pending. 
        !            92:        (_tme_z8530_bus_cycle): When an interrupt is acknowledged, call
        !            93:        _tme_z8530_rr2_update() to update RR2. 
        !            94: 
        !            95:        * ic/m68k/m6888x-auto.sh: No longer use the IEEE754 sub function to
        !            96:        implement fcmp, use a specific m6888x function instead. 
        !            97: 
        !            98:        * ic/m68k/m6888x.c (tme_m68k_fpgen): Fixed a bug where a byte or word
        !            99:        source operand in a register would get sign-extended and stored back
        !           100:        into the register, destroying the other parts of the register. 
        !           101:        (_tme_m6888x_fcmp): Added. 
        !           102:        (tme_m68k_fmove_rm): We don't use TME_M68K_INSN_OP1(), so there's no
        !           103:        need to set _op1. 
        !           104:        (tme_m68k_fmovem): Fixed a serious bug where we wouldn't advance the
        !           105:        effective address after storing the last 32-bit word of a register's
        !           106:        value. 
        !           107:        (tme_m68k_fsave): Fixed a buffer overflow bug where we could write the
        !           108:        BIU flags outside of the frame structure. 
        !           109: 
        !           110:        * ic/m68k/m68k-insns-auto.sh: The cmpm, addx, and subx instructions
        !           111:        access the source operand before the destination operand, and we had
        !           112:        it backwards.  Now generate the wrapper functions for a move of an
        !           113:        address register to a predecrement or postincrement EA with that same
        !           114:        address register. 
        !           115:        (tme_m68k_movem_${name}${size}): Now calculate the total size of the
        !           116:        transfer early, so we can correctly emulate the behavior of storing
        !           117:        the same address register used in a predecrement EA on the different
        !           118:        CPUs. 
        !           119:        (tme_m68k_moves${size}): Now when storing the same address register
        !           120:        used in a predecrement EA, store the original value.  The BCD math
        !           121:        functions can only fault when they access memory, and they must
        !           122:        advance an address register right after it's used, in case the same
        !           123:        address register is used for the other operand. 
        !           124: 
        !           125:        * ic/m68k/m68k-insns.c (tme_m68k_tas): Removed the
        !           126:        TME_M68K_INSN_CANFAULT, since tme_m68k_rmw_start() does this if
        !           127:        needed. 
        !           128:        (tme_m68k_cmp2_chk2): Fixed several bugs.  From sigmfsk@aol.com in
        !           129:        NetBSD PR pkg/33969. 
        !           130: 
        !           131:        * ic/m68k/m68k-iset-expand.pl: As a special exception, expand a move
        !           132:        instruction that moves an address register into a predecrement or
        !           133:        postincrement EA with the same address register, to use a move wrapper
        !           134:        function. 
        !           135: 
        !           136:        * ic/m68k/m68k-iset.txt: Fixed a bug in decoding cas instructions -
        !           137:        their size field actually doesn't work like any other. 
        !           138: 
        !           139:        * ic/m68k/m68k-misc.c (tme_m68k_go_slow): Only make the first and last
        !           140:        valid fast pointers from the TLB entry if it supports fast reading. 
        !           141:        (tme_m68k_rmw_start): Fixed a bug where we would mark an instruction
        !           142:        as possibly faulting, even when we wouldn't make any normal bus cycle
        !           143:        calls. 
        !           144:        Corrected a byteswapping macro. 
        !           145:        (tme_m68k_rmw_finish): Corrected a byteswapping macro. 
        !           146: 
        !           147:        * ic/m68k/m68k-opmap-make.pl: Now recognize the
        !           148:        move-same-address-register-to-predecrement and -postincrement
        !           149:        functions wherever the move function is recognized. 
        !           150: 
        !           151:        * libtme/threads-sjlj.c: In struct tme_sjlj_thread, when GTK is in use
        !           152:        track the current timeout handle, and have space for some fixed
        !           153:        timeout handles.  We no longer track a single timeout tag, since
        !           154:        removing a timeout that hasn't fired yet may not prevent it from
        !           155:        firing.  Now, for each file descriptor, track a different thread for
        !           156:        each file descriptor condition. 
        !           157:        (tme_sjlj_threads_init): Initialize the file descriptor condition to
        !           158:        threads mapping. 
        !           159:        (tme_sjlj_dispatch_timeout) [HAVE_GTK]: Now remove no longer used
        !           160:        timeouts when they occur naturally, and free their timeout handles. 
        !           161:        (tme_sjlj_dispatch_fd): Now dispatch different threads depending on
        !           162:        the file descriptor conditions that are present. 
        !           163:        (tme_sjlj_threads_run): Now always do a select, even if there are no
        !           164:        threads blocking on file descriptors.  Now make a GdkInputCondition
        !           165:        value for each file descriptor that is ready, for
        !           166:        tme_sjlj_dispatch_fd(). 
        !           167:        (tme_sjlj_thread_create) [HAVE_GTK]: Now initialize the timeout
        !           168:        handles. 
        !           169:        (tme_sjlj_yield): Now correctly track a different thread for each file
        !           170:        descriptor condition, since there are often different threads managing
        !           171:        the same file descriptor.  When GTK is in use, timeouts can actually
        !           172:        expire up to 1ms early, so account for this, and no longer try to
        !           173:        remove an old timeout now, since it may still fire anyways.  Instead,
        !           174:        allocate and use another timeout handle, which will be managed by
        !           175:        tme_sjlj_dispatch_timeout(). 
        !           176: 
        !           177:        * machine/sun/sun-obie.c (_tme_sun_obie_bus_signal): Fixed a bug where
        !           178:        instead of managing the INTR bit in the CSR, we were just passing the
        !           179:        i82586's interrupt signal through to the mainbus.  This was breaking
        !           180:        SunOS.  Found by sigmfsk@aol.com in NetBSD PR pkg/35305.  Now also
        !           181:        pass a reset signal from obio up to the i82586. 
        !           182:        (_tme_sun_obie_connections_new): Now use _tme_sun_obie_bus_signal to
        !           183:        handle bus signals coming from obio. 
        !           184: 
        !           185:        * scsi/emulexmt02.c (_tme_emulexmt02_cdb_mode_sense): Now use
        !           186:        TME_EMULEXMT02_BLOCK_SIZE instead of the hard-coded constant. 
        !           187:        (_tme_emulexmt02_cdb_mode_select): Avoid a gcc warning about a
        !           188:        comparison whose result is always known due to the limited range of a
        !           189:        type. 
        !           190:        (tme_scsi_tape_emulexmt02_init): Now provide the fixed block size to
        !           191:        the machine-independent code. 
        !           192: 
        !           193:        * scsi/scsi-cdb.c (tme_scsi_device_mode_select_data): Added. 
        !           194:        (_tme_scsi_device_make_inquiry_string): Fixed a type to get better
        !           195:        type agreement.  From tsutsui@ceres.dti.ne.jp in NetBSD PR pkg/34113. 
        !           196: 
        !           197:        * scsi/scsi-tape.c (tme_scsi_tape_cdb_xfer0): Don't pad out a block
        !           198:        with zeroes if the filemark indication is set. 
        !           199:        (_tme_scsi_tape_mode_select_data):
        !           200:        (tme_scsi_tape_cdb_mode_select): Avoid a gcc warning about a
        !           201:        comparison whose result is always known due to the limited range of a
        !           202:        type. 
        !           203: 
        !           204:        * tme/generic/fb.h: Now define TME_FB_COLORSET_NONE. 
        !           205: 
        !           206: Sat Aug 25 19:52:23 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           207: 
        !           208:        * host/gtk/gtk-display.h: Now store a colorset signature in struct
        !           209:        tme_gtk_screen.  Define struct tme_gtk_display_menu_item, and added a
        !           210:        prototype for _tme_gtk_display_menu_radio(). 
        !           211: 
        !           212: Fri Aug 24 01:21:50 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           213: 
        !           214:        * acinclude.m4 (AC_CHECK_ALIGNOF): Some compilers will do a smaller
        !           215:        read than you expect, if they know that the value read will only be
        !           216:        used at a smaller size later.  A little math on the value read
        !           217:        discourages this. 
        !           218:        (AC_CHECK_SHIFTMAX): Don't create the center value with one
        !           219:        expression, which would do the shifting in type int.  Defeat any
        !           220:        constant optimizations on the shift count by using sscanf to
        !           221:        initialize it. 
        !           222: 
        !           223:        * generic/float-auto.sh (tme_float_infinity_${_builtin_type}):
        !           224:        (tme_float_negative_zero_${_builtin_type}): Added. 
        !           225:        (tme_float_radix${radix}_mantissa_exponent_${_builtin_type}): If the
        !           226:        value is a zero, just return the same value.  Fixed a bug where we
        !           227:        would return a mantissa that was exactly the radix (instead of
        !           228:        reducing it again to 1). 
        !           229: 
        !           230:        * host/posix/posix-serial.c (_tme_posix_serial_th_ctrl): If a TIOCMGET
        !           231:        ioctl fails, be sure to use a zero modem state instead of garbage. 
        !           232: 
        !           233:        * ic/am7930.c (_tme_am7930_bus_cycle): Fixed a bug where we used
        !           234:        TME_BUS16_LOG2 but the device is only eight bits wide. 
        !           235: 
        !           236:        * ic/ieee754/ieee754-misc-auto.sh (tme_ieee754_${precision}_value_to_builtin):
        !           237:        Use the new tme_float_infinity_${_builtin_type}() and
        !           238:        tme_float_negative_${_builtin_type}() functions to get built-in
        !           239:        infinities and negative zeroes. 
        !           240:        (tme_ieee754_${precision}_value_from_builtin): Detect a negative zero
        !           241:        using a bit-for-bit comparison to a positive zero, since the C
        !           242:        equality operator may treat all zeroes as equal.  Fixed a bug where
        !           243:        roundup in a builtin-to-integer cast would affect the conversion. 
        !           244:        Removed an extraneous assignment to factor in the shell script. 
        !           245: 
        !           246:        * ic/sparc/sparc-misc.c (tme_sparc32_dump_memory): To avoid an
        !           247:        assertion failure with TLB lock debugging turned on, now save, set,
        !           248:        and restore the busy flag on the DTLB entry that the load function
        !           249:        will use (assuming that it will only use one). 
        !           250: 
        !           251:        * machine/sun2/sun2-mainbus.c (tme_machine_sun2,zs): Override the
        !           252:        default z8530 socket flags - on a sun2, the IEI lines are tied low. 
        !           253: 
        !           254:        * machine/sun3/SUN3-CARRERA: Removed the "delay 10000" option from
        !           255:        bpf1, to speed things up in general - however it is still needed when
        !           256:        netbooting NetBSD, to avoid a race condition in the kernel RARP client
        !           257:        (when the RARP response comes back before the tsleep() starts, the
        !           258:        wakeup() is lost). 
        !           259: 
        !           260:        * machine/sun3/sun3-mainbus.c (machine/sun3/sun3-mainbus.c): Now
        !           261:        propagate a reset signal from the m68k out to the busses. 
        !           262: 
        !           263:        * tme/threads.h: Now include <sys/time.h>. 
        !           264: 
        !           265:        * tme/generic/float.h: Added prototypes for
        !           266:        tme_float_infinity_${_builtin_type}() and
        !           267:        tme_float_negative_zero_${_builtin_type}(). 
        !           268: 
        !           269:        * tme/ic/z8530.h: Started a set of socket flags, and added the
        !           270:        tme_z8530_socket_flags to struct tme_z8530_socket. 
        !           271: 
        !           272:        * tme/machine/sun.h: In TME_SUN_Z8530_SOCKET_INIT, supply a default
        !           273:        value for the z8530 socket flags. 
        !           274: 
        !           275: Thu Mar 29 01:56:40 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           276: 
        !           277:        * generic/fb-xlat-auto.sh: Fixed bugs where we would use the wrong
        !           278:        masks with TME_FB_XLAT_MAP_LINEAR_SCALE() when we needed to scale
        !           279:        large intensities down into a lookup range,
        !           280: 
        !           281:        * host/posix/posix-serial.c (_tme_posix_serial_th_reader): If we get
        !           282:        EOF, exit the thread. 
        !           283: 
        !           284:        * ic/m68k/m68k-impl.h: Keep the m68k TLB array pointers in unions with
        !           285:        regular bus TLB pointers, to avoid any aliasing problems when
        !           286:        allocating them. 
        !           287: 
        !           288:        * ic/m68k/m68k-misc.c (_tme_m68k_connection_make): When allocating the
        !           289:        m68k TLB arrays, pass pointers to the regular bus TLB pointers in
        !           290:        unions in struct tme_m68k, to avoid any aliasing problems. 
        !           291: 
        !           292:        * ic/sparc/sparc-execute.c (_TME_SPARC_EXECUTE_NAME): Cast a constant
        !           293:        to an unsigned type to silence a gcc warning. 
        !           294: 
        !           295:        * ic/sparc/sparc-impl.h: Keep the sparc TLB array pointers in unions
        !           296:        with regular bus TLB pointers, to avoid any aliasing problems when
        !           297:        allocating them. 
        !           298: 
        !           299:        * ic/sparc/sparc-insns-auto.sh: In the jmpl instructions, cast a
        !           300:        constant to an unsigned type to silence a gcc warning. 
        !           301: 
        !           302:        * ic/sparc/sparc-insns.c (tme_sparc32_rdpsr):
        !           303:        (tme_sparc32_wrpsr): Cast constants to an unsigned type to silence a
        !           304:        gcc warning. 
        !           305: 
        !           306:        * ic/sparc/sparc-misc.c (_tme_sparc_connection_make): When allocating
        !           307:        the TLB arrays, pass pointers to the regular bus TLB pointers in
        !           308:        unions in struct tme_sparc, to avoid any aliasing problems. 
        !           309:        (tme_sparc32_trap): Cast a constant to an unsigned type to silence a
        !           310:        gcc warning. 
        !           311:        (tme_sparc32_dump_memory): Added. 
        !           312: 
        !           313:        * machine/sun/sun-fb.c (TME_SUNFB_S4_REG): Added. 
        !           314:        (tme_bt458_omap_best): Fixed a bug where we would use the final loop
        !           315:        counter as the best colormap index. 
        !           316:        (_tme_sunfb_callout): Reworked to handled failed callouts better, and
        !           317:        added support for calling out framebuffer interrupts. 
        !           318:        (_tme_sunfb_callout_thread): The callout thread is now always present,
        !           319:        running when a condition is notified. 
        !           320:        (tme_sunfb_memory_update): Now notify the callout thread to call out
        !           321:        an interrupt if one is now pending. 
        !           322:        (tme_sunfb_bus_cycle_bt458): Now support 8-bit and 32-bit accesses. 
        !           323:        Schedule a mode change callout whenever the colormap or overlay map
        !           324:        changes.  Fixed bugs where we wouldn't read and write the bt458
        !           325:        register set correctly. 
        !           326:        (tme_sunfb_bus_cycle_s4): If a write covers the status register, clear
        !           327:        any pending interrupt.  Call _tme_sunfb_callout() to make any
        !           328:        callouts. 
        !           329:        (tme_sunfb_new): Initialize the callout thread condition, and create
        !           330:        the callout thread. 
        !           331:        (tme_sun_cgthree): Set the correct sunfb flags for a cgthree.  Fixed a
        !           332:        bug where we wouldn't initialize the bt458 colormap pointers to point
        !           333:        to the colormap. 
        !           334: 
        !           335:        * machine/sun/sun-fb.h: Since the callout thread is always present,
        !           336:        removed the flag that marked when it was.  Added flags for specifying
        !           337:        which byte in a 32-bit access to an 8-bit register is used.  In struct
        !           338:        tme_sunfb now track whether or not the framebuffer interrupt is
        !           339:        asserted, added a condition for notifying the callout thread, and
        !           340:        added an alias for the first S4 basic register. 
        !           341: 
        !           342:        * machine/sun/sun-keyboards.txt: Removed the acute keysym from the US
        !           343:        type 4 keyboard.  Its definition is the same as apostrophe, and it was
        !           344:        causing problems on hosts that actually have acute.  This is really a
        !           345:        bug in the keyboard emulation. 
        !           346: 
        !           347:        * machine/sun4/SUN4-75: Many changes. 
        !           348: 
        !           349:        * machine/sun4/sun44c-cache.c (_tme_sun44c_cache_new): Cast some
        !           350:        expressions in comparisons to an unsigned type, to silence a gcc
        !           351:        warning. 
        !           352: 
        !           353:        * machine/sun4/sun44c-control.c (_tme_sun44c_control_cycle_handler):
        !           354:        Cast a promoted expression to an unsigned type in a ternary operator
        !           355:        expression to silence a gcc warning. 
        !           356: 
        !           357:        * scsi/scsi-cdrom.c (tme_scsi_cdrom_cdb_read_toc):
        !           358:        (tme_scsi_cdrom_cdb_mode_sense): Cast some expressions to unsigned
        !           359:        types to silence a gcc warning. 
        !           360: 
        !           361: Sun Mar 25 21:18:50 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           362: 
        !           363:        * dist/softfloat/softfloat/bits64/softfloat.c (float128_rem): Added a
        !           364:        cast to get better type agreement.  From tsutsui@ceres.dti.ne.jp in
        !           365:        NetBSD PR pkg/34113. 
        !           366: 
        !           367:        * generic/bus-el.c (_tme_bus_intack): Now unlock the bus before
        !           368:        calling a device's interrupt acknowledge function, to avoid a
        !           369:        deadlock. 
        !           370: 
        !           371:        * ic/am7990.c (_tme_am7990_receive): Added a cast to avoid a
        !           372:        signed/unsigned comparison. 
        !           373: 
        !           374: Sat Mar 03 15:36:15 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           375: 
        !           376:        * host/gtk/gtk-mouse.c (_tme_gtk_mouse_mouse_event): Now discard
        !           377:        double- and triple-click button events, since normal button press and
        !           378:        release events are always generated also. 
        !           379: 
        !           380:        * machine/sun/sun-cgtwo.c (_tme_suncg2_callout): Fixed a bug where we
        !           381:        tested the wrong variable for the mode change callout bit. 
        !           382: 
        !           383: Wed Feb 21 01:52:28 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           384: 
        !           385:        * host/bsd/bsd-bpf.c (_tme_bsd_bpf_callout): Now check that the packet
        !           386:        being written has a reasonable size, and that the write succeeds. 
        !           387:        From sigmfsk@aol.com in NetBSD PR pkg/35305. 
        !           388: 
        !           389:        * host/gtk/gtk-display.h: Changed the signedness of the
        !           390:        tme_gtk_screen_mouse_warp_x and tme_gtk_screen_mouse_warp_y members to
        !           391:        get better type agreement.  From tsutsui@ceres.dti.ne.jp in NetBSD PR
        !           392:        pkg/34113. 
        !           393: 
        !           394:        * host/gtk/gtk-mouse.c: Changed some types to get better type
        !           395:        agreement.  From tsutsui@ceres.dti.ne.jp in NetBSD PR pkg/34113. 
        !           396: 
        !           397:        * host/gtk/gtk-screen.c (_tme_gtk_gdkimage_scanline_pad): Removed the
        !           398:        if that tests for the eight-bit case.  This avoids a gcc4 warning
        !           399:        about a possible missing return value, even though the possibility of
        !           400:        that was zero. 
        !           401: 
        !           402:        * ic/i825x6reg.h: The size mask in an i82586 TBD is 0x3fff (it's
        !           403:        0x7fff on a i82596).  From sigmfsk@aol.com in NetBSD PR pkg/35305. 
        !           404: 
        !           405:        * ic/ncr53c9x.c (_tme_ncr53c9x_stimreg_msec): Fixed a gcc4 warning. 
        !           406: 
        !           407:        * ic/ieee754/ieee754-ops-auto.sh: Now perform negation by multiplying
        !           408:        the source operand by -1, which correctly negates 0.0 into -0.0.  From
        !           409:        sigmfsk@aol.com in NetBSD PR pkg/34616. 
        !           410: 
        !           411:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Simplified how
        !           412:        PC-relative EAs are calculated.  This should fix NetBSD PR pkg/34538. 
        !           413: 
        !           414:        * ic/sparc/sparc-misc.c (tme_sparc_new): Increased the instruction
        !           415:        burst size to 800. 
        !           416:        (tme_sparc_do_reset): Now poison all idle type state to force the idle
        !           417:        type to retrain, since we may be booting a new kernel. 
        !           418: 
        !           419:        * libtme/module.c (tme_module_open): Changed the signedness of
        !           420:        tokens_count to get better type agreement.  From
        !           421:        tsutsui@ceres.dti.ne.jp in NetBSD PR pkg/34113. 
        !           422: 
        !           423:        * machine/sun/sun-si.c (_tme_sun_si_bus_cycle_regs): Fixed an
        !           424:        uninitialized variable bug that wasn't noticed by gcc3, because the
        !           425:        value was never used.  From tsutsui@ceres.dti.ne.jp in NetBSD PR
        !           426:        pkg/34113. 
        !           427:        (tme_sun_si): Changed a type to get better type agreement.  From
        !           428:        tsutsui@ceres.dti.ne.jp in NetBSD PR pkg/34113. 
        !           429: 
        !           430:        * tme/memory.h (tme_memory_atomic_pointer_write): Fixed a bug where we
        !           431:        tried to use a ternary operator expression as an lvalue. 
        !           432: 
        !           433: Fri Feb 16 02:50:23 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           434: 
        !           435:        * host/bsd/bsd-bpf.c (_tme_bsd_bpf_read): Fixed a bug where we would
        !           436:        drop packets or pass garbage packets because we weren't using
        !           437:        BPF_WORDALIGN() to determine the offset of the next packet.  Added
        !           438:        code to try to detect and strip off any CRC accidentally passed up
        !           439:        through BPF from a host network device driver. 
        !           440: 
        !           441:        * ic/m68k/m68010.c (_tme_m68010_rte): A zero returned by
        !           442:        tme_m68k_sequence_fill() or tme_m68k_insn_buffer_fill() also means a
        !           443:        format error. 
        !           444: 
        !           445:        * ic/m68k/m68020.c (_tme_m68020_rte): A zero returned by
        !           446:        tme_m68k_sequence_fill() or tme_m68k_insn_buffer_fill() also means a
        !           447:        format error. 
        !           448: 
        !           449:        * ic/m68k/m68k-execute.c ic/m68k/m68k-impl.h
        !           450:          ic/m68k/m68k-insns-auto.sh ic/m68k/m68k-insns.c
        !           451:          ic/m68k/m68k-misc-auto.sh ic/m68k/m68k-misc.c:
        !           452: 
        !           453:          Although I hate doing this, many changes to convert the m68k
        !           454:          emulation to the new TLB and memory discipline.  This has mainly
        !           455:          affected fast instruction fetching and memory access.  Fast
        !           456:          instruction fetches now happen directly into the instruction buffer,
        !           457:          with some optimizations to lessen the penalty for that.  Fast
        !           458:          fetches are now kept entirely out of the transfer accounting, and
        !           459:          the functions that empty and fill the instruction buffer from an
        !           460:          exception frame are also simpler now. 
        !           461:          All memory access functions now busy and unbusy a TLB entry and use
        !           462:          the generic memory access functions when doing fast transfers. 
        !           463:          The tme_m68k_rmw_start() and tme_m68k_rmw_finish() are completely
        !           464:          changed for the new TLB discipline.  All of the atomic instructions
        !           465:          are also completely changed.  All callouts are now wrapped in
        !           466:          tme_m68k_callout_unlock() and tme_m68k_callout_relock(), which will
        !           467:          unbusy and rebusy any instruction TLB entry for the fast executor,
        !           468:          and poison the fast executor if that TLB entry is now invalid. 
        !           469: 
        !           470: Thu Feb 15 02:15:41 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           471: 
        !           472:        * generic/keyboard.c (_tme_keysym_state_get):
        !           473:        (tme_keyboard_buffer_in_macro):
        !           474:        (tme_keyboard_buffer_out_map):
        !           475:        (tme_keyboard_buffer_out_mode):
        !           476:        (_tme_keyboard_buffer_in2):
        !           477:        (_tme_keyboard_buffer_in0): Use tme_keyboard_hash_data_from_keyval()
        !           478:        to convert a tme_keyboard_keyval_t to a tme_hash_data_t. 
        !           479: 
        !           480:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_x11_new):
        !           481:        (_tme_gtk_keyboard_key_event): Use
        !           482:        tme_keyboard_hash_data_from_keyval() and
        !           483:        tme_keyboard_hash_data_to_keyval() to convert between
        !           484:        tme_keyboard_keyval_t and tme_hash_data_t. 
        !           485: 
        !           486:        * machine/sun/sun-bwtwo.c: Removed much code, which became the new
        !           487:        generic Sun framebuffer code.  The remaining bwtwo code now uses this
        !           488:        generic support.  Added support for the SBus bwtwo. 
        !           489: 
        !           490:        * machine/sun/sun-cgtwo.c (_tme_suncg2_validate_bitmaps):
        !           491:        (_tme_suncg2_validate_pixmap): Don't attempt to translate using
        !           492:        unsigned longs on 64-bit hosts. 
        !           493:        (_tme_suncg2_mode_change): Don't try to make any sense of the case
        !           494:        where the pixel colors don't select any bitmap.  In this case, or when
        !           495:        multiple bitmaps seem to be selected, just display the pixmap. 
        !           496: 
        !           497:        * machine/sun2/sun2-control.c (_TME_SUN2_REG_ACCESSED): Silence a
        !           498:        warning about comparing an unsigned quantity to be greater than or
        !           499:        equal to zero.  This would happen on 64-bit big-endian systems, due to
        !           500:        their particular struct tme_ic register layout. 
        !           501: 
        !           502:        * machine/sun2/sun2-mmu.c (_tme_sun2_mmu_reset): Now busy and
        !           503:        unbusy-fill the reset TLBs, so they are marked valid. 
        !           504: 
        !           505:        * machine/sun4/sun4-impl.h: Added a prototype for _tme_sun4_reset(). 
        !           506: 
        !           507:        * machine/sun4/sun4-mainbus.c (_tme_sun4_reset): Added. 
        !           508:        (_tme_sun4_command): Now use _tme_sun4_reset() to do the reset. 
        !           509:        (tme_machine_sun4): Fixed the usage string. 
        !           510: 
        !           511:        * machine/sun4/sun44c-control.c (_tme_sun44c_control_cycle_handler): A
        !           512:        write to the software reset bit in the enable register clears all
        !           513:        other bits in the register, and now call _tme_sun4_reset() to do the
        !           514:        reset. 
        !           515: 
        !           516:        * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Skip any SCSI connection that
        !           517:        isn't waiting on any events and has no actions to take. 
        !           518: 
        !           519:        * tme/hash.h: Added macros for converting between tme_hash_data_t and
        !           520:        some integral types. 
        !           521: 
        !           522:        * tme/generic/ethernet.h: Define some Ethernet packet types. 
        !           523: 
        !           524:        * tme/generic/keyboard.h: Added macros to convert between a keyval and
        !           525:        a tme_hash_data_t. 
        !           526: 
        !           527:        * tme/scsi/scsi-cdb.h: Define extended sense key, ASC, and ASCQ
        !           528:        values.  Define struct tme_scsi_device_mode_blocks and give a
        !           529:        prototype for tme_scsi_device_mode_select_data(). 
        !           530: 
        !           531: Mon Feb 12 23:50:36 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           532: 
        !           533:        * generic/bus.c (tme_bus_tlb_map): Fixed a word-size bug, where the
        !           534:        address offset was kept as a tme_bus_addr_t.  Since this offset can be
        !           535:        negative, and it's used in pointer arithmetic, it has to be a signed
        !           536:        long. 
        !           537: 
        !           538:        * generic/fb-xlat-auto.sh (TME_FB_XLAT_SHIFT_DST): Now detect when we
        !           539:        shifted a tme_uint32_t by 32 on an architecture where SHIFTMAX_INT32_T
        !           540:        is less than 32, and force the shifted result to zero. 
        !           541: 
        !           542:        * ic/ncr5380.c (_tme_ncr5380_bus_tlb_fill): Fixed a bug where we
        !           543:        wouldn't notice a TLB that was invalid. 
        !           544: 
        !           545:        * ic/ieee754/ieee754-misc-auto.sh (tme_ieee754_${precision}_value_builtin_set):
        !           546:        When rewriting x to be an infinity, don't set the float format until
        !           547:        the end, because we still need to test the original format x's sign. 
        !           548:        After converting a native result to the best native format for the
        !           549:        IEEE754 precision, don't forget to update x's float format. 
        !           550:        (tme_ieee754_${precision}_value_to_builtin): When the format has an
        !           551:        explicit integer bit, don't treat it as a fraction bit when the
        !           552:        exponent is the biased maximum. 
        !           553: 
        !           554:        * ic/m68k/m68k-bus-auto.sh: Fixed a bug where tme_m68k_router_32 was
        !           555:        defined static. 
        !           556: 
        !           557:        * ic/sparc/sparc-misc-auto.sh: Make sure that TME_SPARC_IREG_FPX is
        !           558:        aligned to four, since it is often used as a register pair, and the
        !           559:        ldd/std functions expect the first register of a pair (and later, some
        !           560:        quad load/store functions) to be aligned. 
        !           561: 
        !           562:        * machine/sun/sun-si.c (_tme_sun_si_tlb_fill_regs): Fixed a bug where
        !           563:        we were filling TLBs that supported fast reading.  We can't support
        !           564:        fast reading, because we have to fault on byte accesses, to support
        !           565:        the SunOS sc/si probes. 
        !           566: 
        !           567: Tue Jan 30 22:57:08 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           568: 
        !           569:        * ic/am7990.c (_tme_am7990_init): Now log the init.  Fixed a bug where
        !           570:        we wouldn't start reading the Ethernet again after exiting loopback
        !           571:        mode. 
        !           572:        (_tme_am7990_start): Now log the start. 
        !           573:        (_tme_am7990_receive): Append dummy CRC bytes to each received frame. 
        !           574:        Log receive MISS and BUFF errors. 
        !           575:        (_tme_am7990_transmit): Log transmit BUFF errors. 
        !           576:        (_tme_am7990_bus_cycle): Log writes to CSRs other than CSR0. 
        !           577: 
        !           578: Sun Jan 21 15:45:01 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           579: 
        !           580:        * libtme/misc.c (tme_misc_tokenize):
        !           581:        (_tme_misc_number_parse): Don't use the ctype macros with a char,
        !           582:        since it will be sign-extended to an int. 
        !           583: 
        !           584:        * libtme/module.c (tme_module_open): Don't use the ctype macros with a
        !           585:        char, since it will be sign-extended to an int. 
        !           586: 
        !           587:        * serial/serial-kb.c (tme_serial_,kb,keyboard): Don't use the ctype
        !           588:        macros with a char, since it will be sign-extended to an int. 
        !           589: 
        !           590: Fri Jan 19 01:01:07 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           591: 
        !           592:        * host/gtk/gtk-display.h: In struct tme_gtk_display, track the next
        !           593:        keysym to try in the unused keysym allocator. 
        !           594: 
        !           595:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_lookup): Don't consider a
        !           596:        conversion of a string to a keysym successful unless the keysym
        !           597:        reverses to that same string. 
        !           598:        Fixed a bug in the code that tries to allocate an unused keysym for an
        !           599:        unknown string, where we would repeatedly allocate the first unused
        !           600:        keysym over and over again. 
        !           601: 
        !           602:        * ic/sparc/sparc-impl.h: Increased the size of the ITLB hash. 
        !           603: 
        !           604:        * ic/sparc/sparc-insns-auto.sh: Now emit code in the load and store
        !           605:        functions to track DTLB fills under _TME_SPARC_STATS. 
        !           606: 
        !           607:        * machine/sun/sun-keyboards.txt: Added a map for the US type 4
        !           608:        keyboard. 
        !           609: 
        !           610:        * scsi/cdrom-tme.c:
        !           611:        * scsi/scsi-cdrom.c:
        !           612:        * tme/scsi/scsi-cdrom.h: Added. 
        !           613: 
        !           614:        * scsi/scsi-device.c (tme_scsi_device_check_condition): Added. 
        !           615: 
        !           616:        * tme/scsi/scsi-device.h: Added a prototype for
        !           617:        tme_scsi_device_check_condition(). 
        !           618: 
        !           619: Thu Jan 18 02:15:49 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           620: 
        !           621:        * tme/common.h: Added definitions of __tme_predict_true() and
        !           622:        __tme_predict_false() for gcc>=2.96. 
        !           623: 
        !           624: Sun Jan 14 16:53:04 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           625: 
        !           626:        * generic/bus-el.c (tme_generic,bus): Fixed a printf string.  Some
        !           627:        changes to silence gcc -Wuninitialized. 
        !           628: 
        !           629:        * ic/sparc/Makefile.am: Added sparc-fpu-auto.sh to EXTRA_DIST. 
        !           630: 
        !           631:        * ic/sparc/sparc-execute.c (_TME_SPARC_EXECUTE_NAME): In NetBSD 3.x,
        !           632:        the idle loop wrpsrs use %l1 instead of %g1, and the annulled wrpsr
        !           633:        writes IPL_SCHED << 8, not PSR_PIL. 
        !           634: 
        !           635:        * ic/sparc/sparc-fpu-auto.sh: Removed the parameter lists from some
        !           636:        macro #undefs. 
        !           637: 
        !           638:        * ic/sparc/sparc-fpu.c (tme_sparc_fpu_new): Removed the parameter list
        !           639:        from a macro #undef. 
        !           640: 
        !           641:        * ic/sparc/sparc-insns.c (tme_sparc32_wrpsr): Updated the
        !           642:        netbsd32-type-0 idle type comment. 
        !           643: 
        !           644:        * ic/sparc/sparc-misc.c (tme_sparc_new): Increased the burst size. 
        !           645: 
        !           646:        * libtme/threads-sjlj.c (tme_sjlj_yield) [HAVE_GTK]: Fixed a bug where
        !           647:        we could round the number of microseconds to a whole second and leave
        !           648:        it that way. 
        !           649: 
        !           650:        * machine/Makefile.am: Added the sun4 directory to DIST_SUBDIRS. 
        !           651: 
        !           652:        * machine/sun/sun-fb.c (tme_bt458_omap_best): Fixed a bug caught by
        !           653:        gcc -Wuninitialized. 
        !           654: 
        !           655:        * scsi/Makefile.am: Added scsi-cdrom.c and cdrom-tme.c to
        !           656:        tme_scsi_la_SOURCES. 
        !           657: 
        !           658:        * scsi/scsi-tape.c (_tme_scsi_tape_mode_select_data): Fixed a bug
        !           659:        caught by gcc -Wuninitialized. 
        !           660: 
        !           661:        * tme/scsi/Makefile.am: Now install scsi-cdrom.h. 
        !           662: 
        !           663: Mon Jan 08 00:59:04 2007  Matthew Fredette  <fredette@alum.mit.edu>
        !           664: 
        !           665:        * bus/Makefile.am: Added sbus to DIST_SUBDIRS. 
        !           666: 
        !           667:        * bus/sbus/Makefile.am:
        !           668:        * bus/sbus/sun-fbs4.c:
        !           669:        * tme/ic/bt458.h: Added. 
        !           670: 
        !           671:        * generic/scsi.c (tme_scsi_phase_resid): Added. 
        !           672: 
        !           673:        * ic/Makefile.am: Added sparc to DIST_SUBDIRS. 
        !           674:        Now build tme_ic_ncr53c9x.la, tme_ic_mk48txx.la, tme_ic_nec765.la,
        !           675:        tme_ic_am7930.la, tme_ic_am7990.la, and tme_ic_lsi64854.la. 
        !           676: 
        !           677:        * ic/ncr53c9x.c: Added tme_ncr53c9x_transfer_resid_detect_state to
        !           678:        struct tme_ncr53c9x, for detecting the SCSI transfer residual while
        !           679:        data is being transferred. 
        !           680:        (_tme_ncr53c9x_cs_monitor_phase): Now take a new argument that will
        !           681:        force the phase to be checked, even if there isn't any SCSI transfer
        !           682:        residual.  All callers changed. 
        !           683:        (_TME_NCR53C9X_CS_MONITOR_PHASE): Now check the phase immediately. 
        !           684:        (_TME_NCR53C9X_CS_TRANSFER): Now initialize the transfer residual
        !           685:        detect state to zero. 
        !           686:        (_tme_ncr53c9x_update): In TME_NCR53C9X_CMD_TRANSFER, fixed bugs for
        !           687:        the MESSAGE IN phase, and simplified the sequence for the MESSAGE OUT
        !           688:        phase.  Fixed many bugs for all of the target selection commands. 
        !           689:        (_tme_ncr53c9x_callout): When we're detecting the transfer residual
        !           690:        while data is being transferred, we can't transfer more than one byte
        !           691:        at a time from a TLB that only supports slow reading, and also call
        !           692:        tme_scsi_phase_resid() to do the detection. 
        !           693:        Don't hold ACK on a transfer unless it definitely includes the last
        !           694:        byte of the transfer. 
        !           695:        (_tme_ncr53c9x_scsi_cycle): Fixed a bug where we wouldn't note an
        !           696:        automatically asserted ACK or ATN in the active SCSI cycle. 
        !           697:        (_tme_ncr53c9x_bus_cycle): Fixed a bug where we wouldn't add to the
        !           698:        data FIFO at the head. 
        !           699: 
        !           700:        * ic/nec765.c (_tme_nec765_bus_cycle): More correctly alias reads and
        !           701:        writes to register number two on an i82072 to the MSR and DRS,
        !           702:        respectively.  This allows both the NetBSD fdc and the SunOS fd
        !           703:        drivers to work.
        !           704: 
        !           705:        * ic/sparc/sparc-execute.c: Now define tme_sparc_idle_type_pc
        !           706:        appropriately for the version. 
        !           707:        (_TME_SPARC_EXECUTE_NAME): When we begin a new instruction burst, if
        !           708:        the first instruction in the burst is the beginning of the idle loop,
        !           709:        go idle. 
        !           710:        Check an annulled instruction for the netbsd32-type-0 idle type. 
        !           711:        Check a branch for the sunos32-type-0 idle type.  Fixed a bug where
        !           712:        repeated annulled instructions could cause the instruction burst to
        !           713:        never finish. 
        !           714: 
        !           715:        * ic/sparc/sparc-fpu-auto.sh: Avoid a gcc -Wuninitialized warning by
        !           716:        setting fpreg_rd_format even for an unimplemented operation. 
        !           717: 
        !           718:        * ic/sparc/sparc-impl.h: Added support for idle types. 
        !           719: 
        !           720:        * ic/sparc/sparc-insns-auto.sh: In the slow read and write functions,
        !           721:        fixed a bug found by gcc -Wuninitialized in the unusual case where
        !           722:        this cycle is part fast, part slow, where we would use use an
        !           723:        uninitialized resid. 
        !           724: 
        !           725:        * ic/sparc/sparc-insns.c (tme_sparc32_rdasr): To avoid a gcc
        !           726:        -Wuninitialized warning, for an unimplemented rdasr set value to zero
        !           727:        even though we abort(). 
        !           728:        (tme_sparc32_rdpsr): Added support for the sunos32-type-0 idle type. 
        !           729:        (tme_sparc32_wrpsr): Added support for the sunos32-type-0 and
        !           730:        netbsd32-type-0 idle types. 
        !           731: 
        !           732:        * ic/sparc/sparc-misc.c (_tme_sparc_command):
        !           733:        (tme_sparc_do_idle): tme_sparc_fetch_nearby): Added. 
        !           734:        (tme_sparc_new): Now set _tme_sparc_command to handle commands. 
        !           735:        Poison the initial idle type state. 
        !           736: 
        !           737:        * machine/sun/sun-cgtwo.c: Use the new generic tme_sunfb_ functions
        !           738:        and macros instead of the older tme_sun_fb_p4_ functions. 
        !           739: 
        !           740:        * machine/sun/sun-fb.c: Replaced the old tme_sun_fb_p4_ functions with
        !           741:        the new generic tme_sunfb_ functions, and added support for more
        !           742:        sizes. 
        !           743:        Added all of the new generic Sun framebuffer support, including some
        !           744:        out-of-place Bt458 support. 
        !           745:        (tme_sun_cgthree): Added. 
        !           746: 
        !           747:        * machine/sun/sun-fb.h: Removed most of the P4-specific definitions. 
        !           748:        Added many definitions for a generic Sun framebuffer, including some
        !           749:        P4 and S4 specifics. 
        !           750: 
        !           751:        * machine/sun4/sun4-mainbus.c (tme_machine_sun4,bwtwo):
        !           752:        (tme_machine_sun4,si):
        !           753:        (tme_machine_sun4,cgtwo): Removed. 
        !           754: 
        !           755:        * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Added an assert to the
        !           756:        bulk-copy code to check that the target is always in sequence step
        !           757:        one. 
        !           758: 
        !           759:        * scsi/scsi-device.c (_tme_scsi_device_cycle): Now log the message in
        !           760:        a MESSAGE_OUT phase.  Now extended messages have their own dispatch
        !           761:        array. 
        !           762:        (tme_scsi_device_target_mc): Added. 
        !           763:        (tme_scsi_device_new): By default, a new device will reject
        !           764:        synchronous negotiation. 
        !           765: 
        !           766:        * scsi/scsi-msg.c (tme_scsi_device_msg_target_reject): Added. 
        !           767: 
        !           768:        * tme/generic/scsi.h: Added the prototype for tme_scsi_phase_resid(). 
        !           769: 
        !           770:        * tme/ic/Makefile.am: Added bt458.h to tmeicinclude_HEADERS. 
        !           771: 
        !           772:        * tme/machine/sun.h: Added a prototype for tme_sun_cgthree(). 
        !           773: 
        !           774:        * tme/scsi/scsi-device.h: Now define TME_SCSI_DEVICE_DO_MSG_EXT(). 
        !           775:        Added a dispatch array for extended messages to struct
        !           776:        tme_scsi_device. 
        !           777:        Now declare tme_scsi_device_target_mc(). 
        !           778: 
        !           779:        * tme/scsi/scsi-msg.h: Now define TME_SCSI_MSG_EXT_SDTR.  Now declare
        !           780:        tme_scsi_device_msg_target_reject(). 
        !           781: 
        !           782: Sun Nov 26 16:37:55 2006  Matthew Fredette  <fredette@alum.mit.edu>
        !           783: 
        !           784:        * generic/bus.c (tme_bus_tlb_fill): Fixed bugs in the support for bus
        !           785:        connections with nonzero sourced-address masks. 
        !           786: 
        !           787:        * ic/am7930.c:
        !           788:        * ic/am7990.c: Added. 
        !           789: 
        !           790:        * ic/mk48txx.c (_tme_mk48txx_bus_cycle): Added support for a
        !           791:        platform's year zero. 
        !           792: 
        !           793:        * ic/ieee754/ieee754-misc-auto.sh: Removed the simple
        !           794:        tme_ieee754_PRECISION_to_int32 functions in favor of the ops versions. 
        !           795: 
        !           796:        * ic/ieee754/ieee754-ops-auto.sh: Now emit ops for from_int32 and
        !           797:        from_int64.  Now allow an op to override the type of its first source
        !           798:        operand.  Made the generation of the preprocessor condition more
        !           799:        general.  Added some more support for integral source operands.  Fixed
        !           800:        a bug in substituting in softfloat function names. 
        !           801: 
        !           802:        * ic/sparc/sparc-fpu-auto.sh: Fixed the ops that convert between
        !           803:        integer and floating-point to use the regular IEEE754 ops. 
        !           804: 
        !           805:        * machine/sun4/sun4-mainbus.c (tme_machine_sun4,clock): Now set the
        !           806:        sun4 year zero in the mk48txx socket. 
        !           807: 
        !           808:        * scsi/scsi-bus.c (_tme_scsi_bus_callout): Now clear the actions and
        !           809:        events for a connection before they are called out, to prevent calling
        !           810:        them out again. 
        !           811:        Added support for the cycle marker bit. 
        !           812:        (_tme_scsi_bus_cycle): Added support for the cycle marker bit.  Added
        !           813:        support for TME_SCSI_ACTION_SELECT_WITH_ATN and
        !           814:        TME_SCSI_ACTION_DMA_INITIATOR_HOLD_ACK.  Moved the bulk DMA copy code
        !           815:        inside the slow initiator DMA code.  This allows the normal target and
        !           816:        initiator slow DMA code to always handle the boundaries of a transfer,
        !           817:        which (especially in the initiator hold ACK case) can be important. 
        !           818: 
        !           819:        * scsi/scsi-tape.c: Added the tme generic SCSI-1 tape to the list. 
        !           820:        (tme_scsi_tape_cdb_xfer0): Added a big hack to quickly fix NetBSD PR
        !           821:        pkg/34536. 
        !           822:        (_tme_scsi_tape_mode_select_data): Added. 
        !           823:        (tme_scsi_tape_cdb_block_limits):
        !           824:        (tme_scsi_tape_cdb_mode_select): Implemented. 
        !           825: 
        !           826:        * tme/common.h: Replaced the old TME_FIELD_MASK_EXTRACTS macros with a
        !           827:        single smarter version. 
        !           828:        Now TME_FIELD_MASK_DEPOSITU masks the value being deposited. 
        !           829: 
        !           830:        * tme/memory.h [!TME_THREADS_COOPERATIVE]: Now define
        !           831:        TME_MEMORY_BUS_BOUNDARY to be sizeof(tme_uint8_t), to avoid some
        !           832:        compiler warnings when the previous value of zero was used in some
        !           833:        comparisons. 
        !           834: 
        !           835:        * tme/generic/ethernet.h: Fixed a bug where the source address field
        !           836:        was named tme_ethernet_header_size. 
        !           837: 
        !           838:        * tme/generic/scsi.h: Renumbered the SCSI actions to allow for future
        !           839:        expansion, and also to add TME_SCSI_ACTION_DMA_INITIATOR_HOLD_ACK,
        !           840:        TME_SCSI_ACTION_SELECT_WITH_ATN, and TME_SCSI_ACTION_CYCLE_MARKER. 
        !           841: 
        !           842:        * tme/ic/mk48txx.h: Added tme_mk48txx_socket_year_zero to the socket
        !           843:        structure. 
        !           844: 
        !           845:        * tme/scsi/scsi-device.h: Expanded tme_scsi_device_data to 256 bytes,
        !           846:        to hold a large MODE SELECT parameter list. 
        !           847: 
        !           848: Thu Nov 16 02:54:40 2006  Matthew Fredette  <fredette@alum.mit.edu>
        !           849: 
        !           850:        * generic/bus-el.c (_tme_bus_connections_new): Added support for the
        !           851:        'slot', 'offset', 'controller', and 'dma-offset' arguments. 
        !           852:        (TME_ELEMENT_SUB_NEW_DECL(tme_generic,bus)): Added real argument
        !           853:        processing, and added support for the arguments that define bus slots. 
        !           854: 
        !           855:        * generic/bus.c (tme_bus_tlb_fill): If this bus has a controller, and
        !           856:        the TLB fill request isn't from the controller, pass the TLB fill on
        !           857:        to the controller. 
        !           858:        (tme_bus_connection_make): Added support for making a connection to a
        !           859:        bus controller. 
        !           860: 
        !           861:        * generic/ethernet.c (tme_ethernet_chunks_copy): Made the destination
        !           862:        chunks structures const. 
        !           863:        (tme_ethernet_crc32_el): Added. 
        !           864: 
        !           865:        * ic/lsi64854.c ic/ncr53c9x.c ic/nec765.c machine/sun4/sun4-fdc.c
        !           866:          scsi/tape-tme.c tme/ic/nec765.h:
        !           867: 
        !           868:          Added. 
        !           869: 
        !           870:        * ic/ncr5380.c (_tme_ncr5380_signal): Now use TME_BUS_SIGNAL_WHICH()
        !           871:        to remove the flags from a bus signal. 
        !           872: 
        !           873:        * ic/z8530.c (_tme_z8530_channel_reset): Now have
        !           874:        TME_Z8530_RR1_ALL_SENT in the reset value for RR1. 
        !           875:        (_tme_z8530_bus_cycle): Now clear TME_Z8530_RR1_ALL_SENT when transmit
        !           876:        data is written. 
        !           877:        (_tme_z8530_read): Now set TME_Z8530_RR1_ALL_SENT when all transmit
        !           878:        data has been written. 
        !           879: 
        !           880:        * ic/ieee754/ieee754-misc-auto.sh: Now emit prototypes for the
        !           881:        functions that convert floats to 32-bit integers. 
        !           882: 
        !           883:        * ic/ieee754/ieee754-misc.c (tme_ieee754_fpreg_format): Added. 
        !           884: 
        !           885:        * ic/sparc/cy7c601.c (TME_ELEMENT_X_NEW_DECL(tme_ic_,sparc,cy7c601)):
        !           886:        The common CY7C601 has a PSR version of 1.  Use the default slow
        !           887:        instruction fetch function. 
        !           888: 
        !           889:        * ic/sparc/mb86900.c (TME_ELEMENT_X_NEW_DECL(tme_ic_,sparc,mb86900)):
        !           890:        Use the default slow instruction fetch function. 
        !           891: 
        !           892:        * ic/sparc/sparc-execute.c (_TME_SPARC_EXECUTE_NAME): Now save the ASI
        !           893:        mask for instructions in the CPU state. 
        !           894:        Now fetch all instructions with tme_memory_bus_read32(), which gives
        !           895:        all needed behavior (when threads are cooperative,
        !           896:        tme_memory_atomic_read32 means a function call).  Now log call
        !           897:        instructions, which makes reconstructing code flow possible. 
        !           898: 
        !           899:        * ic/sparc/sparc-fpu.c (tme_sparc_fpu_new): Fixed a bug where the FPU
        !           900:        version wasn't being put into the FSR. 
        !           901: 
        !           902:        * ic/sparc/sparc-impl.h: Now define TME_SPARC_SLOW_FLAG_INSN and
        !           903:        TME_SPARC_SLOW_FLAG_NO_FAULTS for the slow load and store functions. 
        !           904:        Now _tme_sparc_bus_fault/tme_sparc32_bus_fault get the flags passed to
        !           905:        the slow load/store function.  Added a prototype for
        !           906:        tme_sparc32_fetch_slow(). 
        !           907: 
        !           908:        * ic/sparc/sparc-insns-auto.sh: For the instructions that have
        !           909:        add-style condition codes, changed the calculation of C to match the
        !           910:        V8 architecture manual.  In the memory access instructions, instead of
        !           911:        using a tme_memory_atomic_ function, use a tme_memory_bus_ function,
        !           912:        which is how it should always have been.  Log jmpl instructions that
        !           913:        act as call or return instructions, which makes reconstructing code
        !           914:        flow possible.  In the slow load/store functions, use the ASI mask for
        !           915:        instructions if the instruction flag is specified, and allow the
        !           916:        CPU-specific bus fault handler to cancel a fault. 
        !           917: 
        !           918:        * ic/sparc/sparc-insns.c (tme_sparc32_rett): Fixed a bug where a user
        !           919:        PS wasn't restored into S correctly.  Fixed a bug where we wouldn't
        !           920:        redispatch after changing the PSR. 
        !           921:        (tme_sparc32_ticc): Fixed a bug where we thought the trap number was
        !           922:        in rd, instead of from rs1 + rs2. 
        !           923: 
        !           924:        * ic/sparc/sparc-misc.c (tme_sparc32_fetch_slow): Added. 
        !           925:        (tme_sparc32_bus_fault): When a fault happens during an instruction
        !           926:        fetch, ignore the fault if we're supposed to, otherwise return an
        !           927:        instruction access exception instead of a data access exception. 
        !           928: 
        !           929:        * libtme/module.c (_tme_modules_find): Fixed a bug where we wouldn't
        !           930:        check the LTDL_SHLIBPATH_VAR directory for modules. 
        !           931: 
        !           932:        * libtme/threads-sjlj.c (tme_sjlj_cond_sleep_yield): Added. 
        !           933: 
        !           934:        * machine/sun/sun-mmu.c: In struct tme_sun_mmu, added members for MMUs
        !           935:        with an address space hole. 
        !           936:        (tme_sun_mmu_new): If this MMU has an address space hole, adjust the
        !           937:        number of address bits and save a mask with the last significant
        !           938:        address bit set. 
        !           939:        (_tme_sun_mmu_lookup): If this MMU has an address space hole, and the
        !           940:        address to look up is in the hole, return the hole PTE. 
        !           941:        (tme_sun_mmu_pte_set):
        !           942:        (tme_sun_mmu_segmap_get):
        !           943:        (tme_sun_mmu_segmap_set): Handle addresses in an address space hole. 
        !           944:        (tme_sun_mmu_tlb_fill): Fixed a bug in the previous commit that would
        !           945:        not remember TLBs filled from invalid PTEs for later invalidation when
        !           946:        those PTEs are made valid.  However, don't remember TLBs filled in the
        !           947:        address hole. 
        !           948: 
        !           949:        * machine/sun/sun-si.c (_tme_sun_si_tlb_fill): Now use
        !           950:        tme_bus_tlb_initialize() to make a TLB entry passed on the stack
        !           951:        invalid, since tme_bus_tlb_invalidate() assumes that the TLB's locks
        !           952:        have been constructed. 
        !           953: 
        !           954:        * machine/sun4/Makefile.am: Added sun4-fdc.c to
        !           955:        tme_machine_sun4_la_SOURCES. 
        !           956: 
        !           957:        * machine/sun4/sun4-mainbus.c (_tme_sun4_connections_new): Only fill
        !           958:        the TLB set allocator on a bus connection for an actual bus, not the
        !           959:        other devices. 
        !           960: 
        !           961:        * machine/sun4/sun4-timer.c (_tme_sun4_timer_reset): Fixed a
        !           962:        TME_SUN4_IS_SUN4C to TME_SUN4_IS_SUN44C. 
        !           963:        (_tme_sun4_timer_cycle_control): Fixed a bug where we had the counter
        !           964:        values counting down, not up.  Fixed a TME_SUN4_IS_SUN4C to
        !           965:        TME_SUN4_IS_SUN44C.  Now log for all registers, and make the minimum
        !           966:        log level much higher to filter out these messages. 
        !           967: 
        !           968:        * machine/sun4/sun44c-mmu.c (_tme_sun44c_buserr_log): On a sun4c, add
        !           969:        0xf0000000 to the physical address displayed. 
        !           970:        (_tme_sun44c_tlb_fill_mmu):
        !           971:        (_tme_sun44c_tlb_fill_pte): Before a TLB has been filled, it has no
        !           972:        fault handlers, and since the TLB might be on the stack its handler
        !           973:        count is garbage, so always thread the initiator's bus connection down
        !           974:        as the first fault handler private value. 
        !           975: 
        !           976:        * scsi/Makefile.am: Added tape-tme.c to tme_scsi_la_SOURCES. 
        !           977: 
        !           978:        * scsi/scsi-device.c (tme_scsi_device_target_phase): Bumped the log
        !           979:        level for the various data phases so it's easier to filter the
        !           980:        messages out. 
        !           981:        (_tme_scsi_device_cycle): Fixed a bug in handling the length byte of
        !           982:        an extended message. 
        !           983: 
        !           984:        * serial/Makefile.am: Added serial-sink.c to tme_serial_kb_la_SOURCES. 
        !           985: 
        !           986:        * tme/Makefile.am: Replaced atomics.h with memory.h in
        !           987:        pkginclude_HEADERS. 
        !           988: 
        !           989:        * tme/connection.h: Now define TME_CONNECTION_BUS_SPARC. 
        !           990: 
        !           991:        * tme/threads.h: Now define TME_THREADS_COOPERATIVE to TRUE.  Now
        !           992:        define tme_thread_suspend_others() and tme_thread_resume_others(). 
        !           993:        [!TME_NO_DEBUG_LOCKS]: When __FILE__ and __LINE__ aren't defined,
        !           994:        fixed a bug where we would pass in NULL for __LINE__, instead of zero. 
        !           995:        Added a prototype for tme_sjlj_cond_sleep_yield(), and the
        !           996:        tme_cond_sleep_yield() macro.  Removed the old atomic memory access
        !           997:        support. 
        !           998: 
        !           999:        * tme/generic/bus.h: Now define
        !          1000:        TME_BUS_CONNECTION_INT_FLAG_ADDRESSABLE and
        !          1001:        TME_BUS_CONNECTION_INT_FLAG_CONTROLLER.  Now define struct
        !          1002:        tme_bus_slot.  In struct tme_bus, keep a list of struct tme_bus_slot,
        !          1003:        and track up to one bus connection that is the "controller" of the
        !          1004:        bus. 
        !          1005: 
        !          1006:        * tme/generic/ethernet.h: Added a const to the prototype for
        !          1007:        tme_ethernet_chunks_copy(), and added a prototype for
        !          1008:        tme_ethernet_crc32_el(). 
        !          1009: 
        !          1010:        * tme/generic/ic.h: Quadrupled the value of TME_IC_REGS_SIZE, to
        !          1011:        support the SPARC emulations and their large register sets.  In struct
        !          1012:        tme_ic, fixed the definitions for the 64-bit register members, to
        !          1013:        divide the TME_IC_REGS_SIZE by eight instead of sixteen. 
        !          1014: 
        !          1015:        * tme/ic/Makefile.am: Added sparc.h, mk48txx.h, and nec765.h to
        !          1016:        tmeicinclude_HEADERS. 
        !          1017: 
        !          1018:        * tme/ic/ieee754.h: Now define macros describing an IEEE754 register
        !          1019:        file.  Added a prototype for tme_ieee754_fpreg_format(). 
        !          1020: 
        !          1021:        * tme/machine/sun.h: Now define TME_SUN_IDPROM_OFF_MACHTYPE, and
        !          1022:        macros for some possible machine and architecture types.  In struct
        !          1023:        tme_sun_mmu_info, added tme_sun_mmu_info_topindex_bits, for describing
        !          1024:        either the number of top address bits for region, or for the address
        !          1025:        hole. 
        !          1026: 
        !          1027:        * tme/scsi/scsi-tape.h: In struct tme_scsi_tape, added members for
        !          1028:        describing the minimum, maximum, and current block sizes. 
        !          1029: 
        !          1030:        * tmesh/tmesh-cmds.c (_tmesh_command_alias): Added. 
        !          1031:        (tmesh_eval): Now dispatch an 'alias' command. 
        !          1032: 
        !          1033:        * tmesh/tmesh-impl.h: Now define TMESH_COMMAND_ALIAS. 
        !          1034: 
        !          1035:        * tmesh/tmesh-input.y: Added support for scanning and parsing the new
        !          1036:        'alias' command. 
        !          1037: 
        !          1038: Sat Sep 30 13:48:38 2006  Matthew Fredette  <fredette@alum.mit.edu>
        !          1039: 
        !          1040:        * bus/multibus/3c400.c bus/multibus/sun-mie.c bus/multibus/sun-sc.c
        !          1041:          generic/bus-device-auto.sh generic/bus-device.c generic/bus-el.c
        !          1042:          generic/bus.c host/posix/posix-memory.c host/posix/posix-serial.c
        !          1043:          ic/am9513.c ic/i825x6.c ic/isil7170.c ic/mm58167.c ic/ncr5380.c
        !          1044:          ic/z8530.c libtme/Makefile.am libtme/memory-auto.sh
        !          1045:          machine/sun/sun-bwtwo.c machine/sun/sun-cgtwo.c
        !          1046:          machine/sun/sun-mmu.c machine/sun/sun-obie.c machine/sun/sun-si.c
        !          1047:          machine/sun2/sun2-impl.h machine/sun2/sun2-mmu.c
        !          1048:          machine/sun3/sun3-impl.h machine/sun3/sun3-mmu.c tme/connection.h
        !          1049:          tme/memory.h tme/tme.h tme/generic/bus-device.h tme/generic/bus.h
        !          1050:          tme/ic/m68k.h tme/machine/sun.h:
        !          1051: 
        !          1052:          Changed how atomic values are handled.  Removed the TME_ATOMIC_ set
        !          1053:          of macros, which may or may not use a rwlock to serialize access to
        !          1054:          a value, and added the tme_memory_atomic_ set of macros, which
        !          1055:          always requires an rwlock argument. 
        !          1056:          This tme_memory_atomic_ set of macros also takes a compile-time
        !          1057:          minimum alignment hint, covers a wide range of math operations, and
        !          1058:          is guaranteed to work atomically for any access, no matter what the
        !          1059:          actual alignment. 
        !          1060:          Added the tme_memory_bus_ set of macros, which work just like the
        !          1061:          tme_memory_atomic_ macros but only within a certain bus size - i.e.,
        !          1062:          if a 32-bit bus size is specified, and an access crosses one
        !          1063:          32-bit-aligned address boundary, the access will be split into two
        !          1064:          atomic accesses. 
        !          1065:          The tme_memory_atomic_ and tme_memory_bus_ macros should better
        !          1066:          enable emulation on a non-cooperative threading host someday.  Added
        !          1067:          the tme_memory_ set of macros, which don't access memory atomically
        !          1068:          but still take the same compile-time minimum-alignment hint and are
        !          1069:          guaranteed to work for any actual alignment.  This has caused
        !          1070:          significant fallout in all TLB handling, since the first and last
        !          1071:          address fields in a TLB were previously TME_ATOMICs, and TLBs were
        !          1072:          invalidated by atomically updating these first to be greater than
        !          1073:          last. 
        !          1074:          This method would not have worked in a non-cooperative threading
        !          1075:          host.  First, it was impossible to update both first and last
        !          1076:          address fields simultaneously, and second, it was impossible to know
        !          1077:          if anyone was using, or had committed to using, the TLB while you
        !          1078:          were invalidating it.  Without knowing that the TLB can't be used
        !          1079:          after invalidation, the invalidator can't continue and make other
        !          1080:          changes that would give incorrect behavior if the TLB *is* actually
        !          1081:          used later. 
        !          1082:          So, TLBs have a new discipline.  They have "busy" and "invalid"
        !          1083:          atomic flags.  Before a TLB entry is used, its busy flag is marked
        !          1084:          true, and its invalid flag is checked.  If the invalid flag is true,
        !          1085:          the TLB is unbusied and prepared for filling (see
        !          1086:          tme_bus_tlb_unbusy_fill() and tme_bus_tlb_invalidate() for how they
        !          1087:          synchronize and avoid interesting races), otherwise the TLB entry is
        !          1088:          valid and won't be invalidated until its busy flag is set to false. 
        !          1089:          To make this truly thread-safe, someday all slow bus cycle handlers
        !          1090:          will have to take a TLB entry somehow, so they can correctly busy
        !          1091:          the TLB entry before making the access. 
        !          1092: 
        !          1093:        * generic/ethernet.c generic/keyboard.c generic/mouse.c
        !          1094:          libtme/element.c scsi/acb4000.c serial/serial-kb.c:
        !          1095: 
        !          1096:          Now explicitly include errno.h. 
        !          1097: 
        !          1098:        * host/bsd/bsd-bpf.c host/posix/posix-tape.c serial/serial-kb.h
        !          1099:          serial/serial-ms.h tme/scsi/scsi-device.h:
        !          1100: 
        !          1101:          Now explicitly include tme/threads.h. 
        !          1102: 
        !          1103:        * ic/mk48txx.c ic/sparc/Makefile.am ic/sparc/cy7c601.c
        !          1104:          ic/sparc/mb86900.c ic/sparc/sparc-bus-auto.sh
        !          1105:          ic/sparc/sparc-execute.c ic/sparc/sparc-fpu-auto.sh
        !          1106:          ic/sparc/sparc-fpu.c ic/sparc/sparc-impl.h
        !          1107:          ic/sparc/sparc-insns-auto.sh ic/sparc/sparc-insns.c
        !          1108:          ic/sparc/sparc-misc-auto.sh ic/sparc/sparc-misc.c
        !          1109:          machine/sun4/Makefile.am machine/sun4/SUN4-75
        !          1110:          machine/sun4/sun4-impl.h machine/sun4/sun4-mainbus.c
        !          1111:          machine/sun4/sun4-timer.c machine/sun4/sun44c-cache.c
        !          1112:          machine/sun4/sun44c-control.c machine/sun4/sun44c-memerr.c
        !          1113:          machine/sun4/sun44c-mmu.c serial/serial-sink.c tme/ic/mk48txx.h
        !          1114:          tme/ic/sparc.h:
        !          1115: 
        !          1116:          Added. 
        !          1117: 
        !          1118:        * machine/sun3/sun3-mainbus.c (_tme_sun3_command): Fixed a bug where
        !          1119:        we wouldn't reset the VME bus. 
        !          1120: 
        !          1121:        * tme/atomics.h: Removed. 
        !          1122: 
        !          1123: Sun Dec 04 22:53:37 2005  Matthew Fredette  <fredette@alum.mit.edu>
        !          1124: 
        !          1125:        * ic/ncr5380.c: Fixed a bug in the TME_NCR5380_REG_PUT macro. 
        !          1126:        (_tme_ncr5380_reg_put): Now declared static. 
        !          1127:        (_tme_ncr5380_callout): Fixed a comment.  Fixed a bug where we
        !          1128:        wouldn't set the residual in the SCSI DMA structure. 
        !          1129: 
        !          1130:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed a bug where
        !          1131:        we would call the slow executor inside a return() statement. 
        !          1132: 
        !          1133:        * machine/sun/sun-cgtwo.c (_tme_suncg2_validate_bitmaps): Fixed a bug
        !          1134:        where we were processing the pixmap into the bitmaps from
        !          1135:        left-to-right, instead of from right-to-left like the individual pixel
        !          1136:        bit translation requires. 
        !          1137: 
        !          1138:        * machine/sun/sun-si.c (tme_sun_si): Now fail and display the usage if
        !          1139:        no si type is given.  Fixed the usage string. 
        !          1140: 
        !          1141: Sat Jun 11 13:47:23 2005  Matthew Fredette  <fredette@alum.mit.edu>
        !          1142: 
        !          1143:        * machine/sun/sun-mmu.c: Removed the invalid segment member of the MMU
        !          1144:        structure, since the hardware doesn't have the notion of an invalid
        !          1145:        segment. 
        !          1146:        (tme_sun_mmu_new): Now initialize the segment map with the last PMEG
        !          1147:        number. 
        !          1148:        (tme_sun_mmu_pte_get):
        !          1149:        (tme_sun_mmu_pte_set):
        !          1150:        (tme_sun_mmu_segmap_set): Removed checks for the invalid segment. 
        !          1151: 
        !          1152:        * machine/sun2/sun2-mmu.c (_tme_sun2_mmu_new): Now zero the MMU
        !          1153:        information structure first, and don't provide the invalid segment
        !          1154:        number. 
        !          1155: 
        !          1156:        * machine/sun3/sun3-mmu.c (_tme_sun3_mmu_new): Now zero the MMU
        !          1157:        information structure first, and don't provide the invalid segment
        !          1158:        number. 
        !          1159: 
        !          1160:        * tme/machine/sun.h: Removed tme_sun_mmu_info_seginv from struct
        !          1161:        tme_sun_mmu_info. 
        !          1162: 
1.1.1.3   root     1163: Sun May 15 01:24:11 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1164: 
                   1165:        * Release 0.4 out.
                   1166: 
                   1167:        * configure.in: Fixed a bug where StaticGray, StaticColor, and
                   1168:        PseudoColor visuals would be considered indexed.  This would cause the
                   1169:        translation functions to incorrectly try to map intensities into pixel
                   1170:        subfields. 
                   1171: 
                   1172: Sat May 14 22:28:29 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1173: 
                   1174:        * TODO: Updated. 
                   1175: 
                   1176:        * acinclude.m4 (AC_CHECK_FUNC_LONG): Added. 
                   1177: 
                   1178:        * configure.in: Now check for sys/bswap.h, bswap16(), and bswap32(). 
                   1179:        Now check for isinff(). 
                   1180:        Instead of taking a set of host display formats in the environment
                   1181:        variable TME_DISPLAYS, now take the configure argument
                   1182:        --with-tme-host-displays.  When debugging is disabled, to get best
                   1183:        performance now define macros that preprocess out a lot of debugging
                   1184:        code.  Debugging now defaults to disabled. 
                   1185: 
                   1186:        * generic/float.c [!HAVE_ISINFF] (isinff): Added. 
                   1187: 
                   1188:        * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Now initially
                   1189:        try to allocate new colors.  For any colors that fail, try to allocate
                   1190:        best-match colors.  Warn if even best-match colors could not be
                   1191:        allocated. 
                   1192: 
                   1193:        * ic/ieee754/ieee754-misc.c: Declare more single- and double-precision
                   1194:        constants. 
                   1195: 
                   1196:        * tme/common.h: Now include <sys/bswap.h> for the byteswapping
                   1197:        functions.  When the host is big-endian, try to use bswap16() and
                   1198:        bswap32() for byteswapping functions, otherwise define them.  Now
                   1199:        define little-endian conversion functions on big-endian hosts. 
                   1200: 
                   1201:        * tme/generic/float.h: Corrected some HAVE_ macros to _TME_HAVE_
                   1202:        macros.  Now include float.h and limits.h.  Added a prototype for
                   1203:        isinff(). 
                   1204: 
                   1205: Sat May 14 19:18:42 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1206: 
                   1207:        * generic/fb-xlat-auto.sh: Fixed a bug in the initialization of
                   1208:        dst_masks_default, that was causing incorrect halving translation on
                   1209:        PseudoColor hosts. 
                   1210: 
                   1211:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_lookup): Fixed a bug in
                   1212:        the warning message when a keysym can't be generated by the host
                   1213:        keyboard. 
                   1214: 
                   1215:        * ic/ieee754/Makefile.am: Added -lm to libtme_ieee754_la_LDFLAGS. 
                   1216: 
                   1217:        * ic/m68k/m68k-opmap-dump.c:
                   1218:        * machine/sun3/sun3-carrera-eeprom.txt: Added. 
                   1219: 
                   1220:        * ic/m68k/m68k-opmap-make.pl: The previous opcode map functions were
                   1221:        too big (or complicated?) to be compiled in a reasonable amount of
                   1222:        time on slower machines.  Now compress the functions down by
                   1223:        initializing similar roots close to each other, and in groups whenever
                   1224:        possible.  This cuts down on the amount of params[] refilling and
                   1225:        function calls, and decreases the size of m68k-opmap.c by almost half. 
                   1226: 
                   1227:        * machine/sun3/Makefile.am: Added sun3-carrera-eeprom.txt to
                   1228:        examples_DATA. 
                   1229: 
                   1230:        * serial/serial-kb.c (_tme_serial_kb_connection_make): When a keyboard
                   1231:        macro can't be parsed, instead of aborting, just log a complaint. 
                   1232: 
                   1233: Sat May 14 01:43:33 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1234: 
                   1235:        * acinclude.m4 (AC_CHECK_FLOAT_FORMAT): Fixed a tme_uint16_t, which
                   1236:        was causing failures on big-endian systems. 
                   1237: 
                   1238:        * ic/ieee754/softfloat-tme.c: Swapped some declarations that were with
                   1239:        the wrong comments. 
                   1240: 
                   1241:        * tme/ic/ieee754.h: Declare more single- and double-precision
                   1242:        constants. 
                   1243: 
                   1244: Wed May 11 00:15:42 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1245: 
                   1246:        * dist/softfloat/softfloat/bits64/softfloat-macros (add192):
                   1247:        (sub192): Fixed some gcc3 signed/unsigned comparison warnings. 
                   1248: 
                   1249:        * dist/softfloat/softfloat/bits64/softfloat.c (roundAndPackFloatx80):
                   1250:        Fixed a gcc3 signed/unsigned comparison warning. 
                   1251: 
                   1252:        * ic/i825x6.c (_tme_i825x6_callout_ru):
                   1253:        (_tme_i825x6_callout): Fixed some gcc3 signed/unsigned comparison
                   1254:        warnings. 
                   1255: 
                   1256:        * ic/ieee754/ieee754-misc-auto.sh: Fixed a gcc3 signed/unsigned
                   1257:        comparison warning. 
                   1258: 
                   1259:        * machine/sun3/sun3-mainbus.c (_tme_sun3_bus_intack): Make signal
                   1260:        unsigned, to fix gcc3 signed/unsigned comparison warnings. 
                   1261: 
                   1262:        * tme/generic/float.h (tme_float_is_negative): Fixed all conditional
                   1263:        arms to be conditional expressions, to keep the type of the whole
                   1264:        expression int. 
                   1265: 
                   1266: Tue May 10 11:15:26 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1267: 
                   1268:        * machine/sun3/SUN3-CARRERA: Disable obie0 by default. 
                   1269: 
                   1270: Tue May 10 00:38:19 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1271: 
                   1272:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_attach): Connect the
                   1273:        key_press and key_release events with gtk_signal_connect_after, so we
                   1274:        can stop the event from propagating up to parents, where a GtkWindow
                   1275:        parent will do strange things with arrow key presses. 
                   1276: 
                   1277:        * ic/isil7170.c (_tme_isil7170_bus_cycle): Fixed an off-by-one bug in
                   1278:        the month register. 
                   1279: 
                   1280:        * machine/sun3/SUN3-CARRERA: Disable the serial console by default. 
                   1281: 
                   1282: Mon May 09 02:01:02 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1283: 
                   1284:        * machine/sun/sun-cgtwo.c (_tme_suncg2_bus_cycle_regs): Wrap the
                   1285:        rasterop register log in #ifndef TME_NO_LOG, since the rasterop
                   1286:        register names array doesn't exist otherwise. 
                   1287: 
                   1288: Mon May 09 01:59:03 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1289: 
                   1290:        * generic/ethernet.c (tme_ethernet_chunks_copy): Fixed a bug where the
                   1291:        size of the destination buffer would get loaded with the size of the
                   1292:        source buffer. 
                   1293: 
                   1294:        * generic/fb.c (_tme_fb_xlat_colors_get_set): Fixed a bug where the
                   1295:        number of colors allocated wasn't being saved. 
                   1296: 
                   1297:        * ic/i825x6.c (_tme_i825x6_fbl_refill): Now tolerate a Receive Buffer
                   1298:        with zero size. 
                   1299:        (_tme_i825x6_callout_ru): Initialize rbd_size early, since its value
                   1300:        is decreased early when a fake receive buffer is made from the RFD
                   1301:        Ethernet header space. 
                   1302: 
                   1303: Sat Apr 30 15:22:25 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1304: 
                   1305:        * configure.in: Now determine the default display depth with xwininfo
                   1306:        -root, assuming that the root window is at the default depth.  If the
                   1307:        depth is greater than one, also determine the visual class and any
                   1308:        subfield masks, and include this information in the destination image
                   1309:        key.  Add support for color framebuffer images on the sun3. 
                   1310: 
                   1311:        * generic/bus.c (_tme_bus_cycle_xfer_resp_least_lane):
                   1312:        (tme_bus_cycle_xfer_reg): Added. 
                   1313: 
                   1314:        * generic/fb-xlat-auto.sh: Added support for color source and
                   1315:        destination images. 
                   1316: 
                   1317:        * generic/fb.c (tme_fb_xlat_best):
                   1318:        (tme_fb_xlat_is_optimal): Now consider source image class, mapping
                   1319:        type, mapping size, and subfield masks, and destination image mapping
                   1320:        type and subfield masks. 
                   1321:        (_tme_fb_xlat_colors_get_set):
                   1322:        (tme_fb_xlat_colors_get):
                   1323:        (tme_fb_xlat_colors_set): Added. 
                   1324: 
                   1325:        * host/gtk/gtk-display.h: Removed the monochrome invert mask from
                   1326:        struct tme_gtk_display.  Inversion is now specified by the
                   1327:        framebuffer. 
                   1328: 
                   1329:        * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Added color
                   1330:        support.  Now we determine the destination image class, mapping, and
                   1331:        any subfield masks.  We choose a translation function based on image
                   1332:        classes, mappings, and subfield masks, and allocate colors on behalf
                   1333:        of the translation function. 
                   1334: 
                   1335:        * ic/m68k/m68020.c (_tme_m68020_exception): Fixed a bug where a 32-bit
                   1336:        fetch wasn't marking the B stage as faulted. 
                   1337: 
                   1338:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed a bug with
                   1339:        the instruction buffer.  Before, when the slow executor would take a
                   1340:        fault in the middle of a 32-bit instruction fetch, the successfully
                   1341:        fetched first 16 bits wouldn't get put in the instruction buffer by
                   1342:        the fault processing, because a fetch was only accounted for once it
                   1343:        fully succeeded.  When the fetch was resumed, the first 16 bits was
                   1344:        lost.  Now, a slow executor fetch is accounted for before it begins,
                   1345:        which guarantees that any partially fetched instruction makes it into
                   1346:        the instruction buffer. 
                   1347: 
                   1348:        * ic/m68k/m68k-misc-auto.sh: Now, we update the instruction buffer
                   1349:        fetch total and sizes values before we do the actual fetch, because we
                   1350:        may transfer a few bytes and then fault.  Without this, those few
                   1351:        bytes wouldn't get saved in the exception stack frame by
                   1352:        tme_m68k_insn_buffer_xfer(), because it wouldn't know about the fetch. 
                   1353:        Later, when the instruction would be resumed, tme_m68k_fetch32() won't
                   1354:        refetch them, because it knows they've already been fetched and thinks
                   1355:        they're still in the instruction buffer. 
                   1356: 
                   1357:        * machine/sun/Makefile.am: Now build sun-cgtwo.c for
                   1358:        libtme_machine_sun.la. 
                   1359: 
                   1360:        * machine/sun/sun-bwtwo.c (_tme_sunbw2_connections_new): Fill in the
                   1361:        new parts of the struct tme_fb_connection. 
                   1362:        (tme_sun_bwtwo): Fixed a bug in the argument processing. 
                   1363: 
                   1364:        * machine/sun/sun-cgtwo.c: Added. 
                   1365: 
                   1366:        * machine/sun2/SUN2-MULTIBUS: Since the Emulex emulation changed
                   1367:        slightly, make sure that NetBSD will still probe this as an Emulex. 
                   1368: 
                   1369:        * machine/sun3/SUN3-CARRERA: Added support for the cgthree board. 
                   1370: 
                   1371:        * machine/sun3/sun3-mainbus.c (tme_machine_sun3,cgtwo): Added. 
                   1372: 
                   1373:        * machine/sun3/sun3-mmu.c (_tme_sun3_tlb_fill_mmu): Temporarily work
                   1374:        around a bug in NetBSD/sun3 where the cgtwo is mapped at the wrong
                   1375:        physical address. 
                   1376: 
                   1377:        * tme/generic/bus.h: Added a prototype for tme_bus_cycle_xfer_reg(). 
                   1378: 
                   1379:        * tme/generic/fb.h: Added macros for the different image classes,
                   1380:        mapping types, and default subfield masks.  Also added macros for the
                   1381:        "any" subfield mask, and for the mask of the maximum index value. 
                   1382:        Expanded struct tme_fb_connection and struct tme_fb_xlat to include
                   1383:        image class, subfield masks, and mapping information.  Added
                   1384:        prototypes for tme_fb_xlat_colors_get() and tme_fb_xlat_colors_set(). 
                   1385: 
                   1386:        * tme/machine/sun.h: Added a prototype for tme_sun_cgtwo(). 
                   1387: 
                   1388: Wed Mar 23 12:42:56 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1389: 
                   1390:        * ic/ieee754/ieee754-ops-auto.sh: Now emit ops for log, log10, and
                   1391:        exp. 
                   1392: 
                   1393:        * ic/m68k/m68010.c: TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68010): Now
                   1394:        call tme_m68k_opcodes_init_m68010() to initialize the opcode table. 
                   1395: 
                   1396:        * ic/m68k/m68020.c: TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68020): Now
                   1397:        call tme_m68k_opcodes_init_m68020() to initialize the opcode table. 
                   1398: 
                   1399:        * ic/m68k/m6888x.c (tme_m68k_fbcc): Fixed a bug in calculating the
                   1400:        target PC; the displacement is always added to the original PC plus
                   1401:        two.  Now always take a 32-bit displacement as a proper operand. 
                   1402: 
                   1403:        * ic/m68k/m68k-execute.c: Simplified how instructions are decoded and
                   1404:        executed.  Now, the first 16-bit instruction word is used to directly
                   1405:        index an array of 32-bit integers, each of which gives the
                   1406:        instruction's function number, the function's arguments, immediate
                   1407:        fetching and EA calculation information, and a single
                   1408:        special-operation escape bit.  Only two types of immediate fetches are
                   1409:        supported: a 16-bit fetch, sign-extended to 32 bits, and a 32-bit
                   1410:        fetch.  All of this speeds things up dramatically. 
                   1411:        [_TME_M68K_STATS]: Keep statistics on executed instructions. 
                   1412: 
                   1413:        * ic/m68k/m68k-impl.h: Removed TME_M68K_SIZE_SUBMAP_X,
                   1414:        TME_M68K_SIZE_16U8, TME_M68K_SIZE_16S32, TME_M68K_OPNUM_SUBMAP_X,
                   1415:        TME_M68K_OPNUM_UNDEF, and the list of special opcodes, all of which
                   1416:        were used only in the old opcode maps. 
                   1417:        Added macros for the decoded instruction parameters in the new opcode
                   1418:        maps. 
                   1419:        Removed the data structures used by the old opcode maps.  The EA
                   1420:        register is now a proper IC register.  Added statistics to struct
                   1421:        tme_m68k.  Removed the declarations of the small immediate arrays. 
                   1422:        The small immediates are now proper IC registers.  Added declarations
                   1423:        of the different CPUs' opcode maps and their initialization functions,
                   1424:        and the instruction function array.  Added declarations for
                   1425:        tme_m68k_bccl(), tme_m68k_bsrl(), tme_m68k_divl() and tme_m68k_mull(). 
                   1426: 
                   1427:        * ic/m68k/m68k-insns.c (tme_m68k_bccl):
                   1428:        (tme_m68k_bsrl):
                   1429:        (tme_m68k_link):
                   1430:        (tme_m68k_rtd): Now that the opcode map supports 16-bit immediates
                   1431:        sign-extended to 32 bits, always take a proper 32-bit operand. 
                   1432: 
                   1433:        * ic/m68k/m68k-iset.txt: Now that the opcode map supports 16-bit
                   1434:        immediates sign-extended to 32 bits again, make rtd and the 16-bit
                   1435:        versions of link, bsr, bcc, and fbcc take this kind of immediate. 
                   1436: 
                   1437:        * ic/m68k/m68k-misc.c (tme_m68k_exception): Now log a message when a
                   1438:        double fault causes a processor halt. 
                   1439: 
                   1440:        * ic/m68k/m68k-opmap-make.pl: The initial rewrite of the opcode map
                   1441:        generation resulted in an enormous opcode map source file, and,
                   1442:        because the instruction function pointers were in the map entries
                   1443:        directly, an opcode map array that wasn't 64-bit friendly. 
                   1444:        Now, the instruction function pointers are in a small separate array
                   1445:        which is indexed by eight bits in the 32-bit opcode parameter
                   1446:        information, which is all that remains in the opcode map.  To make
                   1447:        room for these eight bits, the first EA mode and reg fields are not
                   1448:        stored (and are instead are swapped in by the instruction executer
                   1449:        after the instruction function has been fetched), and the special
                   1450:        operation field has been reduced to a single bit.  To shrink the
                   1451:        opcode map sources, we take advantage of the fact that each of the
                   1452:        1024 aligned sets of 64 opcodes (a "root") uses one of a small number
                   1453:        of patterns to initialize itself (for m68000 through m68020, there are
                   1454:        only 37 such patterns), and we generate a function to initialize the
                   1455:        parameters in that pattern.  Also, each CPU uses the previous CPU's
                   1456:        opcode initialization function to initialize the bulk of its opcode
                   1457:        map, making changes only as needed. 
                   1458:        All of this has reduced the size of the opcode map source file
                   1459:        dramatically. 
                   1460:        Also, support for 16-bit immediates, sign-extended to 32 bits, has
                   1461:        been added again. 
                   1462: 
                   1463: Tue Mar 15 02:56:58 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1464: 
                   1465:        * ic/m68k/m6888x.c (tme_m68k_fbcc): All 16-bit immediates are now
                   1466:        sign-extended to 32-bits in a fixed immediate register. 
                   1467: 
                   1468:        * ic/m68k/m68k-insns.c (_tme_m68k_bcc):
                   1469:        (tme_m68k_bccl):
                   1470:        (_tme_m68k_bsr):
                   1471:        (tme_m68k_bsrl): Added. 
                   1472:        (tme_m68k_bcc): Now just use _tme_m68k_bcc. 
                   1473:        (tme_m68k_bsr): Now just use _tme_m68k_bsr. 
                   1474:        (tme_m68k_link): Now handle the 16-bit variant explicitly. 
                   1475:        (tme_m68k_rtd): Now handle our 16-bit argument correctly. 
                   1476:        (tme_m68k_mull):
                   1477:        (tme_m68k_divl): Added. 
                   1478: 
                   1479: Thu Mar 10 13:29:42 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1480: 
                   1481:        * ic/m68k/m68010.c: Now define _TME_M68K_EXECUTE_OPMAP to
                   1482:        tme_m68k_opcodes_m68010 when compiling the executors. 
                   1483:        TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68010): No longer call
                   1484:        _tme_m68010_decoder_map_init(). 
                   1485: 
                   1486:        * ic/m68k/m68020.c: Now define _TME_M68K_EXECUTE_OPMAP to
                   1487:        tme_m68k_opcodes_m68020 when compiling the executors. 
                   1488:        TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68020): No longer call
                   1489:        _tme_m68020_decoder_map_init(). 
                   1490: 
                   1491:        * ic/m68k/m68k-insns-auto.sh: cas2 now gets its specop2 as a 16-bit
                   1492:        operand.  moves now must do its own memory cycles, and EA
                   1493:        postincrement and predecrement. 
                   1494:        Now track memory statistics in the memory functions. 
                   1495: 
                   1496:        * ic/m68k/m68k-iset.txt: Many simplifications, and some expansions, to
                   1497:        enable faster instruction dispatching.  Eliminated all specops except
                   1498:        for specop16 and fpgen, eliminated the #16S32 immediate type (all
                   1499:        16-bit immediates are now sign-expanded to 32 bits), and bcc and bsr
                   1500:        are now expanded (multiple iset lines may expand to the same pattern,
                   1501:        with the first one winning, but also with a system of * understood by
                   1502:        m68k-opmap-make.pl to count the correct number of duplicates). 
                   1503: 
                   1504:        * ic/m68k/m68k-misc-auto.sh: Now define a 96-bit register for
                   1505:        immediates.  Now define registers for the constants zero through
                   1506:        eight. 
                   1507: 
                   1508:        * ic/m68k/m68k-misc.c: Removed the small immediates arrays. 
                   1509:        (_tme_m68k_connection_break): Now return zero, to silence a warning
                   1510:        (?). 
                   1511:        (tme_m68k_new): Increased the instruction burst size to 200.  This
                   1512:        dramatically improves performance.  Now initialize the small
                   1513:        immediates. 
                   1514:        (tme_m68k_redispatch): Count redispatch statistics. 
                   1515:        (tme_m68k_tlb_fill): Count TLB fill statistics. 
                   1516:        (tme_m68k_dump): No longer display the specop2 value. 
                   1517: 
                   1518:        * ic/m68k/m68k-opmap-make.pl (operand_final): Removed. 
                   1519: 
                   1520:        * ic/m68k/m68k-opmap-make.pl: Rewritten to support much faster
                   1521:        dispatching of instructions.  Now each CPU gets an independent
                   1522:        64K-entry array, indexed by first instruction word, that yields a
                   1523:        function pointer and 32 bits of parameter information.  This
                   1524:        information includes struct tme_m68k-relative offsets for the
                   1525:        function's operands, EA and immediate fetching information, and specop
                   1526:        information. 
                   1527: 
                   1528: Fri Feb 18 04:12:55 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1529: 
                   1530:        * bus/multibus/sun-mie.c (_tme_sun_mie_tlb_set_allocate): Atomic
                   1531:        variable changes. 
                   1532:        (_tme_sun_mie_tlb_fill): Don't invalidate a TLB entry if it happens to
                   1533:        be the same as the one we're filling. 
                   1534: 
                   1535:        * bus/multibus/sun-sc.c (_tme_sun_sc_bus_cycle_dma): Fixed a bug where
                   1536:        we would do 16-bit accesses in 8-bit mode. 
                   1537:        (_tme_sun_sc_intack): Added. 
                   1538:        (_tme_sun_sc_cycle_new):
                   1539:        (_tme_sun_sc_callout):
                   1540:        (_tme_sun_sc_bus_cycle_data_reg):
                   1541:        (_tme_sun_sc_bus_cycle_icr):
                   1542:        (_tme_sun_sc_scsi_cycle): Mostly mechanical changes to support the new
                   1543:        events/actions SCSI bus interface. 
                   1544:        (_tme_sun_sc_connection_make_scsi): No longer get any predefined SCSI
                   1545:        sequences. 
                   1546:        (_tme_sun_sc_connections_new): No longer provide a predefined SCSI
                   1547:        sequence function. 
                   1548:        (tme_bus_multibus,sun_sc): Added support for the "vme" argument. 
                   1549: 
                   1550:        * generic/fb-xlat-auto.sh: Fixed a serious bug where we would decide
                   1551:        that FIFOs are always aligned, even when the FIFO's bits per pixel
                   1552:        value isn't known at compile time. 
                   1553:        Fixed a bug where xlat_run would get decremented during every loop
                   1554:        iteration, instead of only after every translated source 32-bit word. 
                   1555:        When the loop isn't unrolled for source pixels, this causes xlat_run
                   1556:        to go negative too early, which can stop translation. 
                   1557: 
                   1558:        * generic/scsi.c (tme_scsi_connection_score): No longer score based on
                   1559:        a predefined SCSI sequence function. 
                   1560: 
                   1561:        * ic/m68k/Makefile.am: Now build the m6888x support, which depends on
                   1562:        the ieee754 support. 
                   1563: 
                   1564:        * ic/m68k/m68k-impl.h:
                   1565:        * tme/ic/m68k.h: Added m6888x support. 
                   1566: 
                   1567:        * ic/m68k/m68k-iset.txt: Added the floating-point instructions. 
                   1568: 
                   1569:        * ic/m68k/m68k-misc.c (_tme_m6888x_enable): Added. 
                   1570:        (_tme_m68k_connection_score): A bus must not provide an m6888x enable
                   1571:        function. 
                   1572:        (_tme_m68k_connections_new): A m68k provides an m6888x enable
                   1573:        function. 
                   1574:        (tme_m68k_new): Now pass FPU arguments to tme_m68k_fpu_new(), and
                   1575:        display the FPU usage with tme_m68k_fpu_usage(). 
                   1576:        (tme_m68k_do_reset): Reset any FPU. 
                   1577: 
                   1578:        * machine/sun2/SUN2-MULTIBUS: Make the bpf attachment for ie0 delay
                   1579:        packets slightly.  This works around a sleep/wakeup race condition in
                   1580:        the NetBSD kernel RARP code. 
                   1581:        Changed the type of the bwtwo from obmem to multibus, since the bwtwo
                   1582:        implementation is now common to all sun machines. 
                   1583: 
                   1584:        * machine/sun3/SUN3-CARRERA: Now define an unknown-compliance m68881. 
                   1585:        Now use the revision 3.0 ROM. 
                   1586:        Increased the size of the VME bus to the full 4GB.  Commented out the
                   1587:        sc0 attachment, in favor of the new si0 attachment. 
                   1588:        To support stock NetBSD 1.6*, make the Emulex tape respond to INQUIRY
                   1589:        commands in a normal way. 
                   1590: 
                   1591:        * machine/sun3/sun3-control.c (_tme_sun3_control_cycle_handler): Call
                   1592:        out changes to the FPU and DVMA enable bits.  Silently ignore an
                   1593:        attempt to enable the Sun FPA. 
                   1594: 
                   1595:        * machine/sun3/sun3-impl.h: Now track the active DVMA TLBs, so that
                   1596:        they can be invalidated when DVMA is enabled or disabled.  Atomic
                   1597:        variable fixes, and a prototype for _tme_sun3_mmu_sdvma_change(). 
                   1598: 
                   1599:        * machine/sun3/sun3-mmu.c (_tme_sun3_cycle_dummy):
                   1600:        (_tme_sun3_sdvma_disabled):
                   1601:        (_tme_sun3_mmu_sdvma_change): Added. 
                   1602:        (_tme_sun3_bus_tlb_fill): Now track TLB entries filled for DVMA space. 
                   1603:        Entries that are filled while DVMA is disabled generate a VME bus
                   1604:        fault.  For now, bus cycles to unmapped DVMA addresses are ignored. 
                   1605:        (_tme_sun3_tlb_fill_mmu): Apparently the magic obio mapping of the
                   1606:        PROM works over a PROM-sized region starting at 0x100000.  Made some
                   1607:        changes to silence -Wuninitialized. 
                   1608:        (_tme_sun3_mmu_tlb_set_allocate): Atomic variable changes. 
                   1609: 
                   1610:        * scsi/scsi-bus.c: Replaced the idea of a SCSI sequence with the much
                   1611:        simpler idea of a bus agent waiting for one or more SCSI events to
                   1612:        happen, then taking one or more SCSI actions. 
                   1613:        (_tme_scsi_bus_callout): Now call out the events triggered and actions
                   1614:        taken to the connection. 
                   1615:        (_tme_scsi_bus_cycle): Now take the events to wait on and the actions
                   1616:        to take from the connection.  A connection waits until one of its
                   1617:        events triggers, then some part of its actions are taken.  There is
                   1618:        now support for half and full SCSI bus arbitration, and reselection. 
                   1619:        (_tme_scsi_bus_sequence_get): Removed. 
                   1620:        (_tme_scsi_bus_connection_score):
                   1621:        (_tme_scsi_bus_connections_new): We can't provide a predefined
                   1622:        sequence function any more, or score a connection based on one. 
                   1623: 
                   1624:        * scsi/scsi-device.c (_tme_scsi_device_callout):
                   1625:        (_tme_scsi_device_cycle): More or less mechanical changes to support
                   1626:        the new events/actions SCSI bus interface.  Fixed a bug where we would
                   1627:        go past the end of the message dispatch array for IDENTIFY messages. 
                   1628:        (tme_scsi_device_connections_new): Removed the predefined SCSI
                   1629:        sequence member assignment. 
                   1630: 
                   1631:        * scsi/scsi-tape.c (tme_scsi_tape_cdb_inquiry): It looks like
                   1632:        nonexistent LUNs are reported as "unsupported", and not "not present". 
                   1633:        Now identify as a SCSI-1 device, and be sure not to return more data
                   1634:        than the initiator requested. 
                   1635: 
                   1636:        * tme/common.h: Now declare _tme_volatile. 
                   1637:        Added some missing parentheses to _TME_FIELD_DEPOSIT().  Fixed a bug
                   1638:        in the definition of the tme_value64_uint32s[] member of union
                   1639:        tme_value64. 
                   1640:        Added definitions for tme_value64_imul() and tme_value64_idiv(). 
                   1641: 
                   1642:        * tme/generic/Makefile.am: Now install float.h. 
                   1643: 
                   1644:        * tme/generic/bus.h: Now define TME_BUS_SIGNAL_DRQ and
                   1645:        TME_BUS_SIGNAL_DACK. 
                   1646: 
                   1647:        * tme/generic/scsi.h: Now define TME_SCSI_ID_SELECTED() and
                   1648:        TME_SCSI_ID_RESELECTED(), to determine if an ID is being selected or
                   1649:        reselected.  Replaced the idea of a SCSI sequence with the much
                   1650:        simpler idea of a bus agent waiting for one or more SCSI events to
                   1651:        happen, then taking one or more SCSI actions. 
                   1652: 
                   1653:        * tme/ic/Makefile.am: Now install i825x6.h and ieee754.h. 
                   1654: 
                   1655:        * tme/machine/sun.h: Added a prototype for tme_sun_si(). 
                   1656: 
                   1657:        * tme/scsi/scsi-device.h: Removed the old predefined SCSI sequences
                   1658:        from struct scsi_device. 
                   1659: 
                   1660:        * tme/scsi/scsi-msg.h: Now define TME_SCSI_MSG_IDENTIFY_LUN_MASK, for
                   1661:        getting the LUN out of an IDENTIFY message. 
                   1662: 
                   1663:        * tmesh/tmesh-input.y: Now define YYMAXDEPTH, to silence -Wundef. 
                   1664: 
                   1665: Thu Feb 17 13:42:44 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1666: 
                   1667:        * Makefile.am: Added tools/ to SUBDIRS, and dist/ to EXTRA_DIST. 
                   1668:        Added a dist-hook target to clean the CVS directories out of dist/. 
                   1669: 
                   1670:        * acinclude.m4 (AC_CHECK_FLOAT_FORMAT):
                   1671:        (AC_CHECK_FLOAT_LIMITS): Added. 
                   1672: 
                   1673:        * configure.in: Bumped version to 0.4. 
                   1674:        Now check for limits.h and float.h.  Check for volatile, float,
                   1675:        double, and long double, and the signal handler type. 
                   1676:        Added ieee754 and ncr5380 to the list of sun3 ICs.  When using gcc,
                   1677:        now use -Wundef when compiling with warnings, and set the no strict
                   1678:        aliasing flag.  Add the floating point format configuration to
                   1679:        tmeconfig.h. 
                   1680: 
                   1681:        * generic/Makefile.am: Now build float.c and float-auto.c, and include
                   1682:        float-auto.sh and float-auto.c in the distribution. 
                   1683: 
                   1684:        * generic/bus-el.c generic/bus.c machine/sun/sun-mmu.c
                   1685:          machine/sun/sun-obie.c machine/sun2/sun2-impl.h
                   1686:          machine/sun2/sun2-mmu.c tme/atomics.h tme/generic/bus.h
                   1687:          tme/machine/sun.h:
                   1688: 
                   1689:          Cleaned up atomic variables.  Now atomic variables declared with
                   1690:          TME_ATOMIC and TME_ATOMIC_POINTER_TYPE are volatile.  To do this
                   1691:          right, TME_ATOMIC_POINTER_TYPE changed to take just the base type
                   1692:          pointed to, so there has been some fallout. 
                   1693: 
                   1694:        * generic/float-auto.sh generic/float.c ic/ncr5380.c
                   1695:          ic/ieee754/Makefile.am ic/ieee754/ieee754-misc-auto.sh
                   1696:          ic/ieee754/ieee754-misc.c ic/ieee754/ieee754-ops-auto.sh
                   1697:          ic/ieee754/ieee754-precision.sh ic/ieee754/softfloat-tme.c
                   1698:          ic/ieee754/softfloat-tme.h ic/m68k/m6888x-auto.sh ic/m68k/m6888x.c
                   1699:          machine/sun/sun-si.c tme/generic/float.h tme/ic/ieee754.h
                   1700:          tools/Makefile.am:
                   1701: 
                   1702:          Added. 
                   1703: 
                   1704:        * host/posix/posix-disk.c (tme_host_posix,disk): Only probe for the
                   1705:        block size if the device is a character device.  If we have mmap
                   1706:        support, the block size for all devices must be some multiple of the
                   1707:        page size - this fixes a bug where we would try to mmap()
                   1708:        non-page-sized regions at non-page boundaries. 
                   1709: 
                   1710:        * ic/Makefile.am: Added ieee754 to the list of distribution
                   1711:        subdirectories.  Now build ncr5380.c. 
                   1712:        Added i825x6reg.h to the list of i825x6 sources. 
                   1713: 
                   1714:        * ic/m68k/m68020.c (_tme_m68020_exception):
                   1715:        (_tme_m68020_rte): Fixed bugs in the handling of bus fault frames for
                   1716:        instruction fetches.  Previously, we would always fault on stage B,
                   1717:        and only on stage C for a 32-bit fetch.  This was supposed to be the
                   1718:        other way around.  Also, an address error doesn't set a fault bit,
                   1719:        only a rerun bit. 
                   1720: 
                   1721:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed some bugs
                   1722:        caught by gcc -Wuninitialized. 
                   1723: 
                   1724:        * ic/m68k/m68k-opmap-make.pl: Fixed a bug where the illegal opcode
                   1725:        wouldn't get the 'illegal' specop. 
                   1726: 
                   1727:        * libtme/threads-sjlj.c [HAVE_GTK]: Define G_ENABLE_DEBUG if it isn't
                   1728:        defined, to silence -Wundef. 
                   1729: 
                   1730:        * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Fixed a serious bug
                   1731:        where any page marked as modified was given out as writable, even if
                   1732:        it wasn't marked as writable.  SunOS likes to set page table entries
                   1733:        that are modified, but not writable, and this bug was preventing
                   1734:        proper copy-on-write behavior. 
                   1735: 
                   1736:        * machine/sun2/Makefile.am: No longer build sun2-bwtwo.c. 
                   1737: 
                   1738:        * machine/sun2/sun2-bwtwo.c: Removed. 
                   1739: 
                   1740:        * machine/sun2/sun2-mainbus.c (_tme_sun2_connections_new): Fixed bugs
                   1741:        in forming the list of free buses. 
                   1742:        (tme_machine_sun2,zs): Now use the standard Sun z8530 socket
                   1743:        definition. 
                   1744:        (tme_machine_sun2,bwtwo): Added. 
                   1745: 
                   1746:        * machine/sun3/sun3-mainbus.c (_tme_sun3_bus_signal): Apparently,
                   1747:        SunOS likes to set both the level 5 and level 7 clock interrupt enable
                   1748:        bits.  The level 5 bit seems to take precedence. 
                   1749:        (_tme_sun3_connection_score): Insist on a m68020 or better. 
                   1750:        (tme_machine_sun3,si): Added. 
                   1751: 
                   1752:        * scsi/emulexmt02.c (_tme_emulexmt02_cdb_request_sense): Fixed a bug
                   1753:        where we weren't putting the Emulex error code in the sense. 
                   1754:        (_tme_emulexmt02_cdb_inquiry): Added a hack to make this tape usable
                   1755:        to install SunOS 4.1.1. 
                   1756:        (tme_scsi_tape_emulexmt02_init): If the user specified a vendor of
                   1757:        EMULEX, use the normal INQUIRY CDB handling, instead of returning the
                   1758:        useless Emulex INQUIRY data.  Now return an illegal command for a
                   1759:        RESERVE CDB. 
                   1760: 
                   1761: Thu Feb 17 02:14:57 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1762: 
                   1763:        * ic/m68k/m68k-insns.c (tme_m68k_bfffo): Fixed a bug where we were
                   1764:        using ffs(), which finds the least significant bit set, and not the
                   1765:        most significant bit set.  Now find the most significant bit set. 
                   1766: 
                   1767:        * ic/m68k/m68k-verify.c (_tme_m68k_verify_end): Added better support
                   1768:        for verifying bitfield instructions.  Don't try to verify
                   1769:        floating-point instructions. 
                   1770:        (tme_m68k_verify_end_branch): Now leave the m68k structure unchanged. 
                   1771: 
                   1772:        * machine/sun/Makefile.am: Added sun-fb.h and sun-si.c to the sources
                   1773:        list.  Added tme-sun-eeprom.pl to the distribution. 
                   1774: 
                   1775: Wed Jan 26 13:13:29 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1776: 
                   1777:        * host/gtk/gtk-display.h: If G_ENABLE_DEBUG isn't defined, define it
                   1778:        to zero.  Some GTK installations apparently require this. 
                   1779: 
                   1780:        * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Allocate a
                   1781:        GdkImage with the extra scanlines needed to hold the overtranslation
                   1782:        that the automatically generated functions do. 
                   1783: 
                   1784:        * ic/isil7170.c: Include <time.h> and not <sys/types.h> to get struct
                   1785:        tm. 
                   1786: 
                   1787:        * ic/m68k/m68020.c (_tme_m68020_exception): Store the memory Z buffer. 
                   1788:        (_tme_m68020_rte): Restore the memory Z buffer. 
                   1789: 
                   1790:        * libtme/module.c (tme_module_open): Fixed a bug where were freeing
                   1791:        the tokens array twice. 
                   1792: 
                   1793:        * scsi/scsi-msg.c (tme_scsi_device_msg_identify): Now set the
                   1794:        addressed LUN. 
                   1795: 
                   1796: Sun Jan 16 01:24:37 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1797: 
                   1798:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Added support for
                   1799:        executing floating-point general instructions. 
                   1800: 
                   1801: Fri Jan 14 12:27:41 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1802: 
                   1803:        * dist/softfloat/processors/386-GCC.h
                   1804:          dist/softfloat/processors/SPARC-GCC.h
                   1805:          dist/softfloat/softfloat/README.txt
                   1806:          dist/softfloat/softfloat/SoftFloat-history.txt
                   1807:          dist/softfloat/softfloat/SoftFloat-source.txt
                   1808:          dist/softfloat/softfloat/SoftFloat.txt
                   1809:          dist/softfloat/softfloat/timesoftfloat.txt
                   1810:          dist/softfloat/softfloat/bits32/softfloat-macros
                   1811:          dist/softfloat/softfloat/bits32/softfloat.c
                   1812:          dist/softfloat/softfloat/bits32/timesoftfloat.c
                   1813:          dist/softfloat/softfloat/bits32/386-Win32-GCC/Makefile
                   1814:          dist/softfloat/softfloat/bits32/386-Win32-GCC/milieu.h
                   1815:          dist/softfloat/softfloat/bits32/386-Win32-GCC/softfloat-specialize
                   1816:          dist/softfloat/softfloat/bits32/386-Win32-GCC/softfloat.h
                   1817:          dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/Makefile
                   1818:          dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/milieu.h
                   1819:          dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/softfloat-specialize
                   1820:          dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/softfloat.h
                   1821:          dist/softfloat/softfloat/bits32/templates/Makefile
                   1822:          dist/softfloat/softfloat/bits32/templates/milieu.h
                   1823:          dist/softfloat/softfloat/bits32/templates/softfloat-specialize
                   1824:          dist/softfloat/softfloat/bits32/templates/softfloat.h
                   1825:          dist/softfloat/softfloat/bits64/softfloat-macros
                   1826:          dist/softfloat/softfloat/bits64/softfloat.c
                   1827:          dist/softfloat/softfloat/bits64/timesoftfloat.c
                   1828:          dist/softfloat/softfloat/bits64/386-Win32-GCC/Makefile
                   1829:          dist/softfloat/softfloat/bits64/386-Win32-GCC/milieu.h
                   1830:          dist/softfloat/softfloat/bits64/386-Win32-GCC/softfloat-specialize
                   1831:          dist/softfloat/softfloat/bits64/386-Win32-GCC/softfloat.h
                   1832:          dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/Makefile
                   1833:          dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/milieu.h
                   1834:          dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/softfloat-specialize
                   1835:          dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/softfloat.h
                   1836:          dist/softfloat/softfloat/bits64/templates/Makefile
                   1837:          dist/softfloat/softfloat/bits64/templates/milieu.h
                   1838:          dist/softfloat/softfloat/bits64/templates/softfloat-specialize
                   1839:          dist/softfloat/softfloat/bits64/templates/softfloat.h:
                   1840: 
                   1841:          Import of SoftFloat Release 2b. 
                   1842: 
                   1843:        * dist/softfloat/softfloat/bits32/softfloat.c:
                   1844:        * dist/softfloat/softfloat/bits64/softfloat.c: Added the tme/softfloat
                   1845:        glue and removed some unused variables. 
                   1846: 
                   1847: Fri Jan 14 11:44:18 2005  Matthew Fredette  <fredette@alum.mit.edu>
                   1848: 
                   1849:        * machine/sun/tme-sun-eeprom.pl: Make selftest-#megs default to zero. 
                   1850:        * tools/tme-binary-struct.pl.in: When standard input is a terminal, we
                   1851:        don't read any input. 
                   1852: 
                   1853: Thu Aug 19 12:27:24 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   1854: 
                   1855:        * TODO: Updated. 
                   1856: 
                   1857:        * acinclude.m4 (AC_CHECK_SHIFTSIGNED): Added. 
                   1858: 
                   1859:        * configure.in: Use AC_CHECK_SHIFTSIGNED() to see if right shifts of
                   1860:        signed integrals preserve sign. 
                   1861:        Added support for sun3 systems. 
                   1862: 
                   1863:        * generic/bus-el.c (_tme_bus_intack): If a device doesn't acknowledge
                   1864:        interrupts, return any user-specified vector on the bus connection
                   1865:        before falling back to the undefined vector. 
                   1866:        (_tme_bus_connections_new): Now allow the user to specify a vector on
                   1867:        the bus connection. 
                   1868:        (tme_generic,bus): Added a hack that allows the user to specify a 4GB
                   1869:        bus on a 32-bit system. 
                   1870: 
                   1871:        * ic/Makefile.am: Now build tme_ic_isil7170.la. 
                   1872: 
                   1873:        * ic/i825x6.c (_tme_i825x6_callout_cu): Added a missing break
                   1874:        statement to a switch arm. 
                   1875: 
                   1876:        * ic/isil7170.c ic/m68k/m68020.c machine/sun/sun-bwtwo.c
                   1877:          machine/sun/sun-fb.c machine/sun/sun-fb.h machine/sun/sun-obie.c
                   1878:          machine/sun/tme-sun-eeprom.pl machine/sun3/Makefile.am
                   1879:          machine/sun3/SUN3-CARRERA machine/sun3/sun3-control.c
                   1880:          machine/sun3/sun3-impl.h machine/sun3/sun3-mainbus.c
                   1881:          machine/sun3/sun3-mmu.c tme/ic/isil7170.h
                   1882:          tools/tme-binary-struct.pl.in:
                   1883: 
                   1884:          Added. 
                   1885: 
                   1886:        * ic/m68k/Makefile.am: Removed an inadvertent m68k-verify.c from
                   1887:        tme_ic_m68k_la_SOURCES. 
                   1888: 
                   1889:        * ic/m68k/Makefile.am: Now compile m68020.c. 
                   1890: 
                   1891:        * ic/m68k/m68k-misc.c (tme_m68000_exception_process):
                   1892:        (tme_m68020_exception_process): For illegal instruction exceptions,
                   1893:        now use the line A or line F vector as appropriate. 
                   1894:        (tme_m68k_rte_start): Added some TME_M68K_SEQUENCE_RESTARTING
                   1895:        protection. 
                   1896: 
                   1897:        * libtme/threads-sjlj.c: Removed the unused
                   1898:        tme_sjlj_thread_cond_notified field from the thread structure. 
                   1899:        (tme_sjlj_thread_create): Initialize the thread's linkage in the
                   1900:        timeout list. 
                   1901: 
                   1902:        * machine/Makefile.am: Added the sun3 directory to DIST_SUBDIRS. 
                   1903: 
                   1904:        * machine/sun/Makefile.am: Now build sun-bwtwo.c, sun-fb.c, and
                   1905:        sun-obie.c for libtme_machine_sun.la. 
                   1906:        Now make the tme-sun-eeprom script. 
                   1907: 
                   1908:        * machine/sun/sun-keyboards.txt: Added a map for the type 3 keyboard. 
                   1909: 
                   1910:        * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Don't invalidate the
                   1911:        old TLB entry if it happens to be the same one we're filling. 
                   1912: 
                   1913:        * tme/common.h: Now define TME_FIELD_MASK_EXTRACTU and the internal
                   1914:        _TME_FIELD_MASK_FACTOR, for extracting field values using a mask. 
                   1915: 
                   1916:        * tme/generic/bus.h: Now define TME_BUS_CYCLE_SYNCHRONOUS_EVENT.  Now
                   1917:        track a single interrupt vector for a connection, for those
                   1918:        connections that only use a single, nonprogrammable vector. 
                   1919: 
                   1920:        * tme/ic/Makefile.am: Now install isil7170.h. 
                   1921: 
                   1922:        * tme/machine/sun.h: To allow for more code sharing, now define
                   1923:        TME_SUN_Z8530_SIZE and TME_SUN_Z8530_SOCKET_INIT.  Added prototypes
                   1924:        for tme_sun_obie() and tme_sun_bwtwo(). 
                   1925: 
                   1926: Wed Aug 11 12:30:28 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   1927: 
                   1928:        * ic/m68k/m68010.c: Removed GROUPn_ from the TME_M68K_EXCEPTION_ macro
                   1929:        names, since those group numbers applied to only the 68000 and 68010. 
                   1930:        Also added the new TME_M68K_VECTOR_ macros. 
                   1931: 
                   1932:        * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed problems with
                   1933:        the way that tracing is handled, to enable support for 68020 tracing
                   1934:        and its new trace exception frame format.  Fixed a bug in the code
                   1935:        that detects a 32-bit branch.  Fixed a bug in decoding the divul and
                   1936:        mulul extension words.  Added missing declarations for some variables
                   1937:        used in 68020 effective address calculation. 
                   1938: 
                   1939:        * ic/m68k/m68k-impl.h: Replaced TME_M68K_FLAG_T with TME_M68K_FLAG_T0
                   1940:        and TME_M68K_FLAG_T1, and use them wherever possible.  Removed the
                   1941:        GROUPn_ from the TME_M68K_EXCEPTION_ macros, since the original group
                   1942:        numbers were specific to the 68000 and 68010.  Added more exception
                   1943:        frame format identifier macros.  Added new macros for the exception
                   1944:        vectors. 
                   1945:        (TME_M68K_INSN_BRANCH):
                   1946:        (TME_M68K_INSN_CHANGE_SR): Improved tracing support. 
                   1947: 
                   1948:        * ic/m68k/m68k-insns-auto.sh: The old asr expansion (which was the
                   1949:        same as the lsr expansion, but with a signed operand and result) had
                   1950:        bugs and also required that right shifts of a signed operand be
                   1951:        arithmetic.  Added a new expansion that fixes these problems. 
                   1952:        Removed the _GROUPn from the TME_M68K_EXCEPTION_ macro names, since
                   1953:        the group numbers were specific to the 68000 and 68010.  Also added
                   1954:        the new TME_M68K_VECTOR_ macros. 
                   1955:        In the bus-cycle functions, recognize the
                   1956:        TME_BUS_CYCLE_SYNCHRONOUS_EVENT pseudo-error, and make it force the
                   1957:        executer to check external events before executing the next
                   1958:        instruction. 
                   1959: 
                   1960:        * ic/m68k/m68k-insns.c: Removed the _GROUPn from the
                   1961:        TME_M68K_EXCEPTION_ macro names, since the group numbers were specific
                   1962:        to the 68000 and 68010.  Also added the new TME_M68K_VECTOR_ macros. 
                   1963:        Where applicable, store the current PC as the last PC before setting
                   1964:        the next PC as the current PC.  This supports format 2 exception
                   1965:        frames, which stack the address of the instruction that caused the
                   1966:        exception. 
                   1967:        (tme_m68k_movec): Added support for the 68020 control registers. 
                   1968: 
                   1969:        * ic/m68k/m68k-misc-auto.sh: Create registers for the next program
                   1970:        counter, the 68020 cacr and caar, and the always-zero register. 
                   1971: 
                   1972:        * ic/m68k/m68k-misc.c: Removed the _GROUPn from the
                   1973:        TME_M68K_EXCEPTION_ macro names, since the group numbers were specific
                   1974:        to the 68000 and 68010.  Also added the new TME_M68K_VECTOR_ macros. 
                   1975:        (_tme_m68k_bus_interrupt):
                   1976:        (tme_m68k_external_check): Implement a system that prevents NMI from
                   1977:        being repeatedly accepted.  If the interrupt priority mask is already
                   1978:        seven, only accept an NMI on a transition from deasserted to asserted. 
                   1979:        (tme_m68k_new): Now set the mask of T bits used by the processor. 
                   1980:        (tme_m68k_do_reset): Now clear the E and F bits in the 68020 cacr. 
                   1981:        Fixed a bug where we loaded the initial SSP and PC from supervisor
                   1982:        data space instead of the correct supervisor program space. 
                   1983:        (tme_m68k_change_sr): Only recognize the M bit on a 68020 or greater,
                   1984:        and fixed bugs in the selection of the correct stack pointer control
                   1985:        register. 
                   1986:        (tme_m68k_exception_process): Renamed to tme_m68000_exception_process,
                   1987:        since the grouping and priority it implements are specific to the
                   1988:        68000 and 68010. 
                   1989:        (tme_m68020_exception_process): Added. 
                   1990:        (tme_m68k_bitfield_offset): Simplified the bitfield byte offset
                   1991:        calculation for negative bit offsets. 
                   1992:        (tme_m68k_bitfield_width): Don't bother masking a bitfield width that
                   1993:        was encoded in the instruction; it can't be greater than 31. 
                   1994:        (_tme_m68k_bitfield_read): If the bitfield is in memory, note that the
                   1995:        current instruction can fault.  Fixed bugs where we assumed that
                   1996:        TME_BIT(32) is zero mod 2^32, when it may be 1 because of shift
                   1997:        limiting, which would cause us to fail to mask and/or sign-extend a
                   1998:        32-bit bitfield value correctly. 
                   1999:        (tme_m68k_bitfield_write_unsigned): Fixed a bug where we wouldn't mask
                   2000:        the value we were given before setting the flags.  Fixed bugs where we
                   2001:        assumed that TME_BIT(32) is zero mod 2^32, when it may be 1 because of
                   2002:        shift limiting.  If the bitfield is in memory, note that the current
                   2003:        instruction can fault. 
                   2004: 
                   2005:        * ic/m68k/m68k-verify.c (tme_m68k_verify_mem_any): Fixed a bug where
                   2006:        we wouldn't properly verify transfers of endianless data. 
                   2007:        (tme_m68k_verify_init): Now set up a full 32-bit address space. 
                   2008:        (_tme_m68k_verify_end): Store %a7 back in its proper stack pointer
                   2009:        control register, so we can verify changes to the control registers. 
                   2010:        Ignore extra verifier memory reads on bitfield instructions; the
                   2011:        verifier bitfield implementation often reads addresses not covered by
                   2012:        the bitfield. 
                   2013: 
                   2014: Mon May 17 11:57:01 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2015: 
                   2016:        * host/bsd/bsd-bpf.c: Added support for the "delay" option, which
                   2017:        delays all incoming packets for a user-specified number of
                   2018:        microseconds. 
                   2019:        (_tme_bsd_bpf_read): Fixed a bug where a TME_ETHERNET_READ_PEEK read
                   2020:        would discard the read packet. 
                   2021: 
                   2022: Fri May 14 00:56:19 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2023: 
                   2024:        * host/bsd/bsd-bpf.c: Removed the unused tme_bsd_bpf_cond_writer
                   2025:        structure member. 
                   2026:        (tme_host_bsd,bpf): Fixed a bug where we weren't initializing the
                   2027:        tme_bsd_bpf_conf_reader condition. 
                   2028: 
                   2029: Tue May 11 12:03:36 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2030: 
                   2031:        * ic/i825x6.c: Added some logging. 
                   2032:        (_tme_i825x6_callout_ru): Don't set the B bit in RFD status fields. 
                   2033: 
                   2034:        * libtme/misc.c (_tme_misc_number_parse): Some changes to silence gcc
                   2035:        -Wuninitialized. 
                   2036: 
                   2037: Tue May 04 01:17:27 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2038: 
                   2039:        * bus/multibus/sun-mie.c:
                   2040:        * ic/i825x6.c:
                   2041:        * ic/i825x6reg.h:
                   2042:        * tme/ic/i825x6.h: Added. 
                   2043: 
                   2044:        * machine/sun2/SUN2-MULTIBUS: Added commands to create ie0. 
                   2045: 
                   2046: Fri Apr 30 12:11:36 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2047: 
                   2048:        * bus/multibus/3c400.c bus/multibus/sun-sc.c generic/bus-el.c
                   2049:          ic/am9513.c ic/z8530.c ic/m68k/m68k-insns.c ic/m68k/m68k-misc.c
                   2050:          machine/sun2/sun2-mainbus.c tme/generic/bus.h:
                   2051: 
                   2052:          Reworked bus signals in several ways: Added the notion of the bus
                   2053:          signals set.  Every bus should support multiple device-specific bus
                   2054:          signals sets, added by elements connecting to the bus.  This enables
                   2055:          elements to pass these device-specific bus signals to each other. 
                   2056:          Now bus signals are only specified as either asserted or negated,
                   2057:          and devices almost never signal edges.  For devices that only drive
                   2058:          signals either high or low, you can exclusive-or
                   2059:          TME_BUS_SIGNAL_LEVEL_ASSERTED with either TME_BUS_SIGNAL_LEVEL_HIGH
                   2060:          or TME_BUS_SIGNAL_LEVEL_LOW as appropriate, and provide that to the
                   2061:          device such that the device only needs to exclusive-or that with the
                   2062:          signal level to get the right asserted or negated level.  Also
                   2063:          expanded the number of generic bits in a signal value, and improved
                   2064:          the set of macros used to compose and decompose signal values. 
                   2065: 
                   2066:        * bus/multibus/sun-sc.c generic/bus.c ic/m68k/m68k-misc.c
                   2067:          machine/sun/sun-mmu.c tme/generic/bus.h:
                   2068: 
                   2069:          Made changes to the TLB protocol, to better support reentrant
                   2070:          devices.  Now, a TLB entry passed to a fill function is expected to
                   2071:          be local on the stack, and it "reserves" the real, backing TLB entry
                   2072:          in the device's state.  This prevents the case where a device tries
                   2073:          to fill the same backing TLB entry at the same time in two or more
                   2074:          threads.  TLB fill functions for devices that need to invalidate
                   2075:          outstanding TLBs always invalidate the backing TLB entry.  After a
                   2076:          TLB fill has finished, the caller checks its reservation on the
                   2077:          real, backing TLB, and copies the local TLB back if the reservation
                   2078:          has not been broken.  Devices that want to use a TLB entry
                   2079:          immediately after the fill function returns must use the local TLB,
                   2080:          since it cannot have been invalidated yet.  Also made fixes to TLB
                   2081:          entry users that avoid rereading fields that are destroyed by
                   2082:          invalidation, after the device has committed to using the TLB entry,
                   2083:          since invalidation can happen at any time.  Also made the TLB
                   2084:          tme_bus_tlb_emulator_off_read member const. 
                   2085: 
                   2086:        * generic/Makefile.am:
                   2087:        * generic/bus-device.c:
                   2088:        * tme/generic/bus-device.h: Added generic bus-device support for real
                   2089:        bus interfaces and bus-mastering. 
                   2090: 
                   2091: Fri Apr 30 01:46:01 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2092: 
                   2093:        * TODO: Updated. 
                   2094: 
                   2095:        * configure.in: Added the i825x6 to the list of ICs for the sun2. 
                   2096: 
                   2097:        * bus/multibus/Makefile.am: Now compile sun-mie.c. 
                   2098: 
                   2099:        * ic/Makefile.am: Now build tme_ic_i825x6.la. 
                   2100: 
                   2101:        * tme/common.h: Added the TME_X_VERSION versioning macros.  Simplified
                   2102:        the definition of TME_RANGES_OVERLAP. 
                   2103: 
                   2104:        * tme/generic/ethernet.h: Now define TME_ETHERNET_LENGTH_SIZE and
                   2105:        TME_ETHERNET_HEADER_SIZE. 
                   2106: 
                   2107:        * tme/ic/m68k.h: Removed the ancient tme_m68k_tlb_bus_wrlock_on_read
                   2108:        macro. 
                   2109: 
                   2110: Sun Mar 28 23:38:28 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2111: 
                   2112:        * generic/bus-device-auto.sh: Added. 
                   2113: 
                   2114: Fri Feb 20 12:42:11 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2115: 
                   2116:        * ic/m68k/m68k-execute.c [_TME_M68K_EXECUTE_FAST]: Make the fast
                   2117:        emulator load pointers const. 
                   2118: 
                   2119: Fri Jan 09 03:42:48 2004  Matthew Fredette  <fredette@alum.mit.edu>
                   2120: 
                   2121:        * generic/bus-el.c ic/am9513.c ic/m68k/m68k-misc.c
                   2122:          machine/sun2/sun2-mainbus.c tme/generic/bus.h:
                   2123: 
                   2124:          Increased the possible number of signal flag bits. 
                   2125:          (TME_BUS_SIGNAL_WHICH): Renamed to TME_BUS_SIGNAL_INDEX, all callers
                   2126:          changed, and added a new macro with the same old name that simply
                   2127:          masks off the signal flag bits. 
                   2128:          (TME_BUS_SIGNAL_WHICH_INT): Renamed to TME_BUS_SIGNAL_INDEX_INT, all
                   2129:          callers changed. 
                   2130: 
                   2131:        * generic/bus.c (tme_bus_addr_parse_any): Now use
                   2132:        tme_misc_unumber_parse_any(). 
                   2133: 
                   2134:        * generic/disk.c (tme_disk_dimension_parse): Now use
                   2135:        tme_misc_unumber_parse(). 
                   2136: 
                   2137:        * generic/fb-xlat-auto.sh: No longer emit some pixel-doubling code in
                   2138:        optimized translation functions for formats for 24 or more bits per
                   2139:        pixel, because that code would expand to shifts of more than 32 bits,
                   2140:        tripping gcc -Werror. 
                   2141: 
                   2142:        * host/gtk/gtk-screen.c (_tme_gtk_gdkimage_bipp): Fixed a bug where
                   2143:        this would fail when bipp > depth, which is common on deep
                   2144:        framebuffers. 
                   2145: 
                   2146:        * libtme/misc.c (_tme_misc_number_parse):
                   2147:        (tme_misc_unumber_parse_any):
                   2148:        (tme_misc_number_parse_any):
                   2149:        (tme_misc_unumber_parse):
                   2150:        (tme_misc_number_parse): Added. 
                   2151: 
                   2152:        * tme/misc.h: Added prototypes for tme_misc_unumber_parse_any,
                   2153:        tme_misc_number_parse_any, tme_misc_unumber_parse, and
                   2154:        tme_misc_number_parse. 
                   2155: 
1.1.1.2   root     2156: Wed Oct 29 02:03:26 2003  Matthew Fredette  <fredette@alum.mit.edu.>
                   2157:  
                   2158:        * Release 0.2 out.
1.1       root     2159: 
1.1.1.2   root     2160:        * host/gtk/gtk-screen.c: Some quick changes for GTK 2 compatibility. 
1.1       root     2161: 
1.1.1.2   root     2162: Sat Oct 25 17:08:02 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2163: 
                   2164:        * ic/am9513.c ic/mm58167.c ic/z8530.c ic/z8530reg.h
                   2165:          ic/m68k/m68k-execute.c ic/m68k/m68k-insns.c ic/m68k/m68k-iset.txt
                   2166:          ic/m68k/m68k-misc.c ic/m68k/m68k-verify.c tmesh/tmesh-cmds.c
                   2167:          tmesh/tmesh-util.c:
                   2168: 
                   2169:          RCS Id, header comment, and license sweep. 
                   2170: 
                   2171: Thu Oct 16 03:02:11 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2172: 
                   2173:        * configure.in: Now check for size_t. 
                   2174:        Now make sure that <net/bpf.h> defines BIOCSHDRCMPLT before deciding
                   2175:        that bpf support is present. 
                   2176: 
                   2177:        * generic/bus.c generic/keyboard.c host/bsd/bsd-bpf.c
                   2178:          host/bsd/bsd-if.c host/gtk/gtk-display.h host/gtk/gtk-keyboard.c
                   2179:          host/posix/posix-tape.c ic/am9513.c ic/m68k/m68k-impl.h
                   2180:          libtme/log-prf.c machine/sun2/sun2-mmu.c scsi/scsi-cdb.c
                   2181:          scsi/scsi-tape.c serial/kb-sun.c serial/serial-kb.c
                   2182:          serial/serial-ms.c tme/generic/keyboard.h tme/scsi/scsi-device.h
                   2183:          tmesh/tmesh-cmds.c tmesh/tmesh.c:
                   2184: 
                   2185:          Fixed many small bugs caught by the gcc3 -Wall -Wuninitialized. 
                   2186: 
                   2187:        * host/posix/posix-disk.c: Fixed various type problems found by gcc3. 
                   2188: 
                   2189:        * scsi/acb4000.c (_tme_acb4000_cdb_bad): Fixed a bug where we set the
                   2190:        amount of valid sense to TRUE instead of to a byte count. 
                   2191: 
                   2192:        * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Work around an aliasing
                   2193:        warning. 
                   2194: 
                   2195:        * tme/common.h: Fixed a bug where tme_value64_set had a conditional
                   2196:        with two different result types. 
                   2197:        When included by the implementation, now try to bring in standard
                   2198:        headers to get string and memory function prototypes.  Added an
                   2199:        incomplete list of prototypes for when standard headers aren't
                   2200:        available. 
                   2201: 
                   2202: Mon Sep 29 11:42:56 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2203: 
                   2204:        * generic/fb-xlat-auto.sh: Added many comments, clarified some obscure
                   2205:        code, and fixed a bug where unoptimized halving translators wouldn't
                   2206:        shift the source FIFOs by two pixels when they had to. 
                   2207: 
                   2208: Wed Sep 10 01:49:22 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2209: 
                   2210:        * generic/fb-xlat-auto.sh: Fixed various bugs when the destination
                   2211:        FIFOs may not be aligned, and when doubling.  These bugs were mostly
                   2212:        found by inspection, and the fixes haven't been tested. 
                   2213: 
                   2214: Mon Sep 01 14:58:57 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2215: 
                   2216:        * configure.in: Changed the version number. 
                   2217:        Now only build the bsd host modules on BSD-like systems. 
                   2218: 
                   2219:        * generic/keyboard.c (_tme_keyboard_buffer_in0): Now examine any
                   2220:        keycode on the user's event to determine if an earlier press of a
                   2221:        different keysym from the same keycode has actually released. 
                   2222: 
                   2223:        * host/gtk/gtk-display.h: Now keep a mapping from keysym to keycode,
                   2224:        for those keysyms that can only be generated by one keycode. 
                   2225: 
                   2226:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_x11_new):
                   2227:        (_tme_gtk_keyboard_key_event):
                   2228:        (_tme_gtk_keyboard_new): Now keep a mapping from keysym to keycode,
                   2229:        for those keysyms that can only be generated by one keycode, and add
                   2230:        that keycode to key events. 
                   2231: 
                   2232:        * host/posix/posix-tape.c: Some changes to silence gcc
                   2233:        -Wuninitialized. 
                   2234: 
                   2235:        * host/posix/posix-tape.c (_tme_posix_tape_xfer1): When we hit the end
                   2236:        of the media, don't try to skip ahead to a nonexistent next segment. 
                   2237: 
                   2238:        * libtme/hash.c (_tme_hash_lookup_internal): When the lookup succeeds,
                   2239:        be sure to return the handle the bucket. 
                   2240: 
                   2241:        * libtme/log.c: Fixed many of the non-stdarg declarations of the
                   2242:        variable-argument functions. 
                   2243: 
                   2244:        * machine/sun2/SUN2-MULTIBUS: Now set a fixed key rate on kbd0, to
                   2245:        work around a bug in NetBSD where only the first of simultaneously
                   2246:        received keycodes will be processed. 
                   2247: 
                   2248:        * serial/serial-kb.c (_tme_serial_kb_callout): Cleaned up the code
                   2249:        that translates keyboard events into serial data, and added support
                   2250:        for rate-limiting. 
                   2251:        (_tme_serial_kb_th_rate): Added. 
                   2252:        (_tme_serial_kb_serial_read):
                   2253:        ((tme_serial_,kb,keyboard): Added support for rate-limiting. 
                   2254: 
                   2255:        * serial/serial-kb.h: Added various members to control rate-limiting. 
                   2256: 
                   2257:        * tme/generic/keyboard.h: A keyboard event for a keysym can now
                   2258:        include the related keycode.  This is for handling the case of a key
                   2259:        release giving a different keysym than the key press did because
                   2260:        modifiers changed in between. 
                   2261: 
                   2262: Sat Aug 23 13:50:34 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2263: 
                   2264:        * generic/Makefile.am: Be sure to distribute fb-xlat-auto.sh. 
                   2265:        * generic/keyboard.c (_tme_keyboard_debug):
                   2266:        (tme_keyboard_buffer_new): Changes to support logging debug messages. 
                   2267: 
                   2268:        * host/gtk/Makefile.am:
                   2269:        * serial/Makefile.am:
                   2270:        * tme/generic/Makefile.am: Added some headers that weren't getting
                   2271:        distributed. 
                   2272: 
                   2273:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_new): Allow the keyboard
                   2274:        buffer to log messages using our log handle. 
                   2275: 
                   2276:        * host/posix/posix-tape.c: Changes to silence various gcc warnings. 
                   2277: 
                   2278:        * libtme/module.c: Added a hack to support older installed libltdls
                   2279:        that don't define lt_ptr. 
                   2280: 
                   2281:        * libtme/threads-sjlj.c: Fixed uses of struct fd_set. 
                   2282: 
                   2283:        * tme/common.h: Now include <netinet/in.h> for the byteswapping
                   2284:        functions. 
                   2285: 
                   2286:        * tme/generic/keyboard.h: Users can now give a log handle to the
                   2287:        keyboard buffer, for logging debug messages. 
                   2288: 
                   2289: Fri Aug 22 16:39:30 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2290: 
                   2291:        * serial/serial-kb.c (tme_serial_,kb,keyboard): Give the element's log
                   2292:        handle to the keyboard buffer, to enable debugging. 
                   2293: 
                   2294: Tue Aug 12 23:00:40 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2295: 
                   2296:        * machine/sun/Makefile.am: Now install sun-keyboards.txt and
                   2297:        my-sun-macros.txt. 
                   2298: 
                   2299:        * machine/sun/my-sun-macros.txt:
                   2300:        * machine/sun/sun-keyboards.txt: Added. 
                   2301: 
                   2302:        * machine/sun2/Makefile.am: Removed some old targets and dependencies. 
                   2303: 
                   2304:        * machine/sun2/SUN2-MULTIBUS: Reorganized and added more comments. 
                   2305:        As-is, this now represents the common case of local disk, no network. 
                   2306: 
                   2307: Fri Aug 08 13:33:45 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2308: 
                   2309:        * tmesh/tmesh.c (main): Added support for the --noninteractive option. 
                   2310:        Fixed a bug where we wouldn't report meaningful file and line number
                   2311:        information on early errors. 
                   2312: 
                   2313: Thu Aug 07 22:14:46 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2314: 
                   2315:        * bus/multibus/sun-sc.c (_tme_sun_sc_bus_cycle_data_reg): Added. 
                   2316:        (_tme_sun_sc_bus_cycle_data):
                   2317:        (_tme_sun_sc_bus_cycle_cmd_stat): Now use
                   2318:        _tme_sun_sc_bus_cycle_data_reg to run the bus cycle. 
                   2319:        (_tme_sun_sc_tlb_fill): The data register can't allow fast reading. 
                   2320: 
                   2321:        * host/posix/posix-disk.c (_tme_posix_disk_buffer_get): Now honor a
                   2322:        device's block size. 
                   2323:        (tme_host_posix,disk): If the disk image is a character device, see if
                   2324:        it has a minimum block size. 
                   2325: 
                   2326:        * host/posix/posix-tape.c (__tme_posix_tape_command): Fixed a bug
                   2327:        where an error return value wouldn't get returned.  Fixed a bug where
                   2328:        a LOAD control would get called out even when an error occured during
                   2329:        loading. 
                   2330: 
                   2331:        * scsi/emulexmt02.c: Replaced blocksize with block_size for
                   2332:        consistency. 
                   2333:        (_tme_emulexmt02_cdb_block_limits): Added. 
                   2334:        (tme_scsi,tape): Now handle the BLOCK LIMITS command. 
                   2335: 
                   2336:        * scsi/scsi-cdb.c (tme_scsi_device_cdb_illegal): Added. 
                   2337:        (_tme_scsi_device_make_inquiry_string): Added. 
                   2338:        (tme_scsi_device_make_inquiry_data): Added. 
                   2339:        (tme_scsi_device_cdb_inquiry): Removed. 
                   2340: 
                   2341:        * scsi/scsi-device.c (tme_scsi_device_address_lun_aware): Always allow
                   2342:        an INQUIRY command, even for a LUN that isn't defined. 
                   2343:        (tme_scsi_device_new): Set a NULL handler for the INQUIRY command by
                   2344:        default. 
                   2345: 
                   2346:        * scsi/scsi-disk.c: Renamed the tme-scsi-2 disk type to tme-scsi-1, to
                   2347:        reflect that it's a SCSI-1 disk. 
                   2348:        (tme_scsi_disk_cdb_inquiry): Added. 
                   2349:        (tme_scsi_disk_cdb_mode_sense):
                   2350:        (tme_scsi_disk_cdb_start_stop):
                   2351:        (tme_scsi_disk_cdb_prevent_allow):
                   2352:        (tme_scsi_disk_cdb_read_capacity): Crudely implemented these commands. 
                   2353:        (tme_scsi_disk_cdb_read1):
                   2354:        (tme_scsi_disk_cdb_write1): Implemented these commands. 
                   2355:        (_tme_scsi_disk_control): Made public. 
                   2356:        (_tme_scsi_disk_connection_break): Made public. 
                   2357:        (_tme_scsi_disk_connection_make): Made public. 
                   2358:        (_tme_scsi_disk_connections_new): Made public. 
                   2359:        (tme_scsi,disk): Install the disk handler for the INQUIRY command. 
                   2360: 
                   2361:        * scsi/scsi-tape.c (tme_scsi_tape_cdb_inquiry): Added. 
                   2362:        (tme_scsi_tape_cdb_load_unload):
                   2363:        ((tme_scsi_tape_cdb_prevent_allow): Made these command handlers do
                   2364:        nothing, for now. 
                   2365:        (tme_scsi,tape): Install the tape handler for the INQUIRY command. 
                   2366: 
                   2367:        * tme/generic/disk.h: Define some disk controls. 
                   2368: 
                   2369:        * tme/scsi/scsi-cdb.h: Define various macros, types, and prototypes
                   2370:        for generating INQUIRY response data. 
                   2371: 
                   2372:        * tme/scsi/scsi-disk.h: Added some prototypes for some now-public
                   2373:        functions. 
                   2374: 
                   2375:        * tme/scsi/scsi-tape.h: Added a prototype for
                   2376:        tme_scsi_tape_cdb_inquiry. 
                   2377: 
                   2378: Tue Aug 05 03:41:31 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2379: 
                   2380:        * bus/multibus/sun-sc.c (_tme_sun_sc_scsi_cycle): If we're not
                   2381:        starting DMA, be sure to call out a wait-change cycle instead,
                   2382:        otherwise we can miss SCSI bus transitions. 
                   2383: 
                   2384:        * generic/Makefile.am: Now compile tape.c
                   2385: 
                   2386:        * generic/tape.c host/posix/posix-tape.c scsi/emulexmt02.c
                   2387:          scsi/scsi-tape.c tme/generic/tape.h tme/scsi/scsi-tape.h:
                   2388: 
                   2389:          Added. 
                   2390: 
                   2391:        * host/posix/Makefile.am: Now compile posix-tape.c. 
                   2392: 
                   2393:        * ic/z8530.c (_tme_z8530_bus_cycle): Added support for the WR0 reset
                   2394:        Rx interrupt command. 
                   2395: 
                   2396:        * ic/m68k/m68k-impl.h: Now always declare tme_m68k_verify_hook. 
                   2397: 
                   2398:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug in the V bit calculation in
                   2399:        the asl insns. 
                   2400: 
                   2401:        * ic/m68k/m68k-misc.c (tme_m68k_verify_hook): Now always compile this
                   2402:        function. 
                   2403: 
                   2404:        * ic/m68k/m68k-verify.c (_tme_m68k_verify_end): Ignore the T bits when
                   2405:        verifying %sr. 
                   2406: 
                   2407:        * machine/sun2/SUN2-MULTIBUS: Updated. 
                   2408: 
                   2409:        * scsi/Makefile.am: Now compile emulexmt02.c and scsi-tape.c. 
                   2410: 
                   2411:        * scsi/acb4000.c (_tme_acb4000_address_lun): When marking a
                   2412:        nonextended sense as valid we now have to indicate how many bytes it
                   2413:        contains. 
                   2414: 
                   2415:        * scsi/acb4000.c:
                   2416:        * tme/scsi/scsi-device.h: Fixed a comment. 
                   2417: 
                   2418:        * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Now be more universal about
                   2419:        remembering the last SCSI bus state we called out to each connection,
                   2420:        and call out whenever that state changes and the connection wants a
                   2421:        callout.  When a connection gives us an empty DMA sequence, instead of
                   2422:        aborting just immediately call out.  When a connection is in a DMA
                   2423:        sequence and the bus gets reset, try to reset on behalf of the
                   2424:        connection. 
                   2425: 
                   2426:        * scsi/scsi-cdb.c (tme_scsi_device_cdb_request_sense): Now require
                   2427:        that the valid marker for nonextended senses give the length of the
                   2428:        sense. 
                   2429: 
                   2430:        * scsi/scsi-device.c (tme_scsi_device_target_phase): Now log up to 128
                   2431:        bytes of output in various phases. 
                   2432:        (_tme_scsi_device_cycle): Now log short transfers. 
                   2433:        (tme_scsi_device_target_dsmf): Fixed a comment. 
                   2434: 
                   2435:        * scsi/scsi-disk.c (_tme_scsi_disk_connections_new): Fixed a usage
                   2436:        string. 
                   2437:        (tme_disk,new): Fixed a comment. 
                   2438: 
                   2439:        * serial/ms-mssystems.c: Removed the 3-byte packet support, since it's
                   2440:        apparently only found on the Tadpole SPARCbooks. 
                   2441: 
                   2442:        * serial/serial-ms.c (_tme_serial_ms_serial_config): Now store the
                   2443:        peer's serial configuration. 
                   2444: 
                   2445:        * serial/serial-ms.h: Now store the peer's serial configuration. 
                   2446: 
                   2447:        * tme/connection.h: Now define TME_CONNECTION_TAPE. 
                   2448: 
                   2449:        * tme/generic/Makefile.am: Now install tape.h. 
                   2450: 
                   2451:        * tme/scsi/Makefile.am: Now install scsi-tape.h. 
                   2452: 
                   2453: Thu Jul 31 19:03:16 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2454: 
                   2455:        * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Fixed some uses of dma_in to
                   2456:        dma; caught by gcc -Wuninitialized. 
                   2457: 
                   2458:        * tmesh/tmesh-cmds.c (_tmesh_command_log): Wrapped some otherwise
                   2459:        unused declarations in !TME_NO_LOG. 
                   2460: 
                   2461: Thu Jul 31 01:47:46 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2462: 
                   2463:        * generic/Makefile.am: Now compile mouse.c. 
                   2464: 
                   2465:        * generic/fb.c (tme_fb_xlat_best): Fixed a bug where we wouldn't
                   2466:        reject translation functions that don't match the question. 
                   2467: 
                   2468:        * generic/keyboard.c: Fixed a comment. 
                   2469: 
                   2470:        * generic/mouse.c host/gtk/gtk-mouse.c serial/ms-mssystems.c
                   2471:          serial/serial-ms.c serial/serial-ms.h tme/generic/mouse.h:
                   2472: 
                   2473:          Added. 
                   2474: 
                   2475:        * host/gtk/Makefile.am: Now compile gtk-mouse.c. 
                   2476: 
                   2477:        * host/gtk/gtk-display.c:
                   2478:        * host/gtk/gtk-display.h:
                   2479:        * host/gtk/gtk-keyboard.c: Many changes to add mouse support. 
                   2480: 
                   2481:        * host/gtk/gtk-screen.c: Many changes to improve the user interface. 
                   2482:        Now include a menu for changing the scaling factor.  Fixed bugs with
                   2483:        respect to event masks, mostly by adding an event box. 
                   2484: 
                   2485:        * ic/z8530.c (_tme_z8530_callout): Fixed a bug that caused us to never
                   2486:        check the callouts on channel B. 
                   2487: 
                   2488:        * ic/m68k/m68k-insns.c (tme_m68k_reset): Added a crude implementation
                   2489:        of the reset instruction. 
                   2490: 
                   2491:        * machine/sun2/SUN2-MULTIBUS: Updated. 
                   2492: 
                   2493:        * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_signal): Instead of
                   2494:        aborting, just ignore the RESET signal from the CPU for now. 
                   2495: 
                   2496:        * serial/Makefile.am: Now compile serial-ms.c and ms-mssystems.c. 
                   2497: 
                   2498:        * tme/connection.h: Now define TME_CONNECTION_MOUSE. 
                   2499: 
                   2500: Tue Jul 29 18:33:14 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2501: 
                   2502:        * Makefile.am:
                   2503:        * tme/Makefile.am: Added scsi to SUBDIRS. 
                   2504: 
                   2505:        * configure.in: If long on the target is 64-bits, use it as our 64-bit
                   2506:        type.  Substitute the scsi Makefiles. 
                   2507: 
                   2508:        * bus/multibus/3c400.c (TME_3C400_CSR_PUT_3c400): Corrected a
                   2509:        tme_betoh_u16 into a tme_htobe_u16. 
                   2510: 
                   2511:        * bus/multibus/Makefile.am: Now compile sun-sc.c. 
                   2512: 
                   2513:        * bus/multibus/sun-sc.c generic/disk.c generic/scsi.c
                   2514:          host/posix/posix-disk.c scsi/Makefile.am scsi/acb4000.c
                   2515:          scsi/disk-tme.c scsi/scsi-bus.c scsi/scsi-cdb.c scsi/scsi-device.c
                   2516:          scsi/scsi-disk.c scsi/scsi-msg.c tme/generic/disk.h
                   2517:          tme/generic/scsi.h tme/scsi/Makefile.am tme/scsi/scsi-cdb.h
                   2518:          tme/scsi/scsi-device.h tme/scsi/scsi-disk.h tme/scsi/scsi-msg.h:
                   2519: 
                   2520:          Added. 
                   2521: 
                   2522:        * generic/Makefile.am: Now compile disk.c and scsi.c. 
                   2523: 
                   2524:        * generic/bus-device.c:
                   2525:        * generic/bus-el.c: Fixed a comment. 
                   2526: 
                   2527:        * host/posix/Makefile.am: Now compile posix-disk.c. 
                   2528: 
                   2529:        * host/posix/posix-memory.c:
                   2530:        * host/posix/posix-serial.c: Fixed comments. 
                   2531: 
                   2532:        * ic/mm58167.c: Fixed many significant problems with this emulation,
                   2533:        most notably that the size of the chip was not calculated correctly at
                   2534:        all.  We now report with microsecond resolution, since SunOS's probe
                   2535:        routine requires this. 
                   2536: 
                   2537:        * ic/z8530.c (_tme_z8530_intack): Simplified and fixed bugs in how
                   2538:        variable interrupt vectors are computed.  For now, since there's no
                   2539:        emulation of the IEI pin, we just behave as if it's always tied low,
                   2540:        so we never put any vector on the bus during a hard interrupt
                   2541:        acknowledge. 
                   2542:        (_tme_z8530_bus_cycle): Now ignore all WR0 CRC reset commands.  Now
                   2543:        support the WR0 transmitter reset command.  Now support reads of RR10
                   2544:        and RR14. 
                   2545: 
                   2546:        * ic/m68k/m68k-insns-auto.sh: The movem instructions cannot fault when
                   2547:        the register mask is zero.  Now that we generally have a 64-bit type
                   2548:        available, fixed various bugs in the 64-bit multiply and divide
                   2549:        instructions. 
                   2550: 
                   2551:        * ic/m68k/m68k-insns.c (tme_m68k_movec): Now appropriately mask values
                   2552:        loaded into control registers.  movec only has a long version, and
                   2553:        SunOS on the Sun-2 doesn't necessarily clear the remainder of the data
                   2554:        register it uses to load %sfc and %dfc. 
                   2555: 
                   2556:        * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug
                   2557:        where the T bits weren't cleared.  This bug was found by SunOS on the
                   2558:        sun2, which starts at least init in usermode with tracing enabled. 
                   2559: 
                   2560:        * ic/m68k/m68k-verify.c (tme_m68k_verify_init): Now assume that the
                   2561:        CPU generates 28-bit addresses.  SunOS 3 on the Sun-2 does this. 
                   2562: 
                   2563:        * machine/sun/tme-sun-idprom.pl: Added support for the obscure
                   2564:        Roadrunner-MB1. 
                   2565: 
                   2566:        * machine/sun2/sun2-bwtwo.c: Fixed various comments. 
                   2567:        Because SunOS's probe routine fails otherwise, added support for the
                   2568:        entire 2KB page starting at the CSR to appear undecoded, i.e., to look
                   2569:        like the CSR repeated 1024 times. 
                   2570: 
                   2571:        * machine/sun2/sun2-impl.h: Now define TME_SUN2_DVMA_SIZE_MBMEM and
                   2572:        TME_SUN2_DVMA_SIZE_VME. 
                   2573:        Now make struct tme_sun2_bus_connection public, since the bus DVMA TLB
                   2574:        filler needs to know which bus it's filling for. 
                   2575: 
                   2576:        * machine/sun2/sun2-mainbus.c (_tme_sun2_connections_new): When making
                   2577:        the connections for the mbmem or vme buses, be sure to set the last
                   2578:        address that we decode on the bus, for DVMA purposes. 
                   2579: 
                   2580:        * machine/sun2/sun2-mmu.c (_tme_sun2_bus_tlb_fill): Fixed many bugs
                   2581:        involving filling TLB entries for bus's DVMA regions. 
                   2582:        (_tme_sun2_mmu_pte_set): Added a missing protection. 
                   2583: 
                   2584:        * tme/common.h: Added some crude support for 64-bit math, even for
                   2585:        compilers that offer no 64-bit type at all. 
                   2586: 
                   2587:        * tme/connection.h: Now define TME_CONNECTION_SCSI and
                   2588:        TME_CONNECTION_DISK. 
                   2589: 
                   2590:        * tme/generic/Makefile.am: Added more headers. 
                   2591: 
                   2592:        * tme/generic/bus-device.h: Corrected a comment. 
                   2593: 
                   2594:        * tme/generic/ic.h: Corrected the 64-bit support. 
                   2595: 
                   2596:        * tmesh/tmesh-cmds.c (_tmesh_command_log): Added. 
                   2597: 
                   2598:        * tmesh/tmesh-impl.h: Now define TMESH_COMMAND_LOG. 
                   2599: 
                   2600:        * tmesh/tmesh-input.y: Added support for parsing the `log' command. 
                   2601: 
                   2602: Tue Jul 22 18:30:31 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2603: 
                   2604:        * generic/fb-xlat-auto.sh: Changes to silence gcc -Wuninitialized. 
                   2605:        * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_lookup): Changes to
                   2606:        silence gcc -Wuninitialized. 
                   2607: 
                   2608:        * libtme/module.c (tme_module_open): Changes to silence gcc
                   2609:        -Wuninitialized. 
                   2610: 
                   2611:        * libtme/threads-sjlj.c (tme_sjlj_dispatch): Declared some locals
                   2612:        volatile to silence gcc's setjmp-related warning. 
                   2613: 
                   2614: Fri Jun 27 21:30:37 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2615: 
                   2616:        * Makefile.am: Added the serial directory to SUBDIRS. 
                   2617:        * configure.in: Many changes to support framebuffer emulation and X11
                   2618:        and gtk elements.  Also added some serial elements support. 
                   2619: 
                   2620:        * generic/Makefile.am: Now create fb-xlat-auto.c and build fb.c and
                   2621:        keyboard.c. 
                   2622: 
                   2623:        * generic/bus-device.c:
                   2624:        * generic/bus-el.c:
                   2625:        * generic/bus.c: Although I hate doing this, various changes to
                   2626:        support a single bus connection connecting to a bus region sparsely. 
                   2627: 
                   2628:        * generic/fb-xlat-auto.sh: Now declare src_bypb to include one more
                   2629:        extra line of data, to make a total of two. 
                   2630:        Fixed a bug where translating and halving would really translate every
                   2631:        line twice.  Now when we reach the end of a line we skip the next
                   2632:        line, to move to the next pair of lines. 
                   2633: 
                   2634:        * generic/fb.c generic/keyboard.c host/gtk/Makefile.am
                   2635:          host/gtk/gtk-display.c host/gtk/gtk-display.h
                   2636:          host/gtk/gtk-keyboard.c host/gtk/gtk-screen.c libtme/hash.c
                   2637:          machine/sun2/sun2-bwtwo.c serial/Makefile.am serial/kb-sun.c
                   2638:          serial/serial-kb.c serial/serial-kb.h tme/hash.h tme/misc.h
                   2639:          tme/generic/fb.h tme/generic/keyboard.h:
                   2640: 
                   2641:          Added. 
                   2642: 
                   2643:        * generic/keyboard.c: Disabled debug output. 
                   2644: 
                   2645:        * host/Makefile.am: Added gtk to DIST_SUBDIRS. 
                   2646: 
                   2647:        * ic/am9513.c (_tme_am9513_th_timer): Removed a newline from a log
                   2648:        statement. 
                   2649: 
                   2650:        * ic/z8530.c (_tme_z8530_channel_reset): Fixed an incorrect reset
                   2651:        value for RR3. 
                   2652:        (_tme_z8530_config): Simply ignore a peer's request to change the
                   2653:        serial configuration. 
                   2654: 
                   2655:        * ic/m68k/m68k-execute.c: To fix a problem where m68k execution could
                   2656:        possibly never yield (by oscillating back and forth between fast and
                   2657:        slow execution, for example) we make sure that we never run more than
                   2658:        _tme_m68k_instruction_burst before checking for external interrupts
                   2659:        and yielding. 
                   2660: 
                   2661:        * ic/m68k/m68k-impl.h: Now in addition to _tme_m68k_instruction_burst,
                   2662:        the maximum burst length, there is
                   2663:        _tme_m68k_instruction_burst_remaining, which is the maximum number of
                   2664:        instructions remaining in the current burst. 
                   2665: 
                   2666:        * ic/m68k/m68k-iset-expand.pl:
                   2667:        * ic/m68k/m68k-opmap-make.pl: Made the RCS keywords, copyright and
                   2668:        license like other files. 
                   2669: 
                   2670:        * ic/m68k/m68k-misc.c (tme_m68k_new): Now initialize the new
                   2671:        _tme_m68k_instruction_burst_remaining struct member. 
                   2672: 
                   2673:        * libtme/Makefile.am: Now compile hash.c, and use the GTK CFLAGS. 
                   2674: 
                   2675:        * libtme/misc.c (tme_misc_tokenize):
                   2676:        (tme_free_string_array): Added. 
                   2677: 
                   2678:        * libtme/module.c (tme_module_open): Now use tme_misc_tokenize to
                   2679:        tokenize. 
                   2680: 
                   2681:        * libtme/threads-sjlj.c: Although I hate doing this, many changes to
                   2682:        support using the GTK event loop. 
                   2683: 
                   2684:        * machine/sun2/Makefile.am: Now build sun2-bwtwo.c. 
                   2685: 
                   2686:        * machine/sun2/SUN2-MULTIBUS: Added commands to create a real physical
                   2687:        console. 
                   2688: 
                   2689:        * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge
                   2690:        interrupts on the obmem bus too, since the bwtwo z8530s are there. 
                   2691: 
                   2692:        * tme/Makefile.am: Now install misc.h and hash.h. 
                   2693: 
                   2694:        * tme/common.h: Now define tme_letoh_u16() and tme_letoh_u32(x). 
                   2695:        Declare tme_free_string_array(). 
                   2696: 
                   2697:        * tme/connection.h: Add connection types for keyboards and
                   2698:        framebuffers. 
                   2699: 
                   2700:        * tme/threads.h: Under _TME_HAVE_GTK, declare tme_threads_gtk_init. 
                   2701: 
                   2702:        * tme/tme.h: Now include <tme/hash.h> and <tme/misc.h>. 
                   2703: 
                   2704:        * tme/generic/Makefile.am: Now install fb.h and keyboard.h. 
                   2705: 
                   2706:        * tme/generic/bus-device.h:
                   2707:        * tme/generic/bus.h: Changes to support a single bus connection
                   2708:        connecting to a bus region sparsely. 
                   2709: 
                   2710:        * tmesh/Makefile.am: Now link with the GTK libraries. 
                   2711: 
                   2712: Fri Jun 27 01:37:57 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2713: 
                   2714:        * generic/fb-xlat-auto.sh: Added. 
                   2715: 
                   2716: Thu Jun 26 13:16:12 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2717: 
                   2718:        * tme/generic/ic.h: Fixed grammar in a comment. 
                   2719: 
                   2720: Sun May 18 02:40:56 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2721: 
                   2722:        * configure.in: Changed the version number to 0.0; this is very alpha. 
                   2723:        There are now fewer include directories under tme/; many unnecessary
                   2724:        headers that belonged to modules were removed. 
                   2725: 
                   2726:        * bus/multibus/3c400.c: No longer include <tme/bus/multibus/3c400.h>. 
                   2727: 
                   2728:        * bus/multibus/Makefile.am generic/Makefile.am host/bsd/Makefile.am
                   2729:          host/posix/Makefile.am ic/Makefile.am ic/m68k/Makefile.am
                   2730:          libtme/Makefile.am machine/sun/Makefile.am machine/sun2/Makefile.am
                   2731:          tmesh/Makefile.am:
                   2732: 
                   2733:          Added library and module versioning. 
                   2734: 
                   2735:        * host/bsd/bsd-bpf.c:
                   2736:        * host/bsd/bsd-if.c: Now include "bsd-impl.h" instead of
                   2737:        <tme/host/bsd.h>. 
                   2738: 
                   2739:        * host/bsd/bsd-impl.h:
                   2740:        * machine/sun/tme-sun-idprom.pl: Added. 
                   2741: 
                   2742:        * machine/sun2/SUN2-MULTIBUS: Changed the extension on the PROM and
                   2743:        IDPROM files from .dat to .bin. 
                   2744: 
                   2745:        * machine/sun2/SUN2-MULTIBUS: Changed the name of the PROM filename to
                   2746:        match the documentation. 
                   2747: 
                   2748:        * tme/Makefile.am: Removed the host and bus include directories; they
                   2749:        don't exist anymore. 
                   2750: 
                   2751: Sat May 17 20:34:07 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2752: 
                   2753:        * acinclude.m4: Added an RCS Id and a short comment. 
                   2754:        * configure.in: Added an RCS Id, the copyright, and license.  Do a
                   2755:        real path search for perl. 
                   2756: 
                   2757:        * libtme/log-prf.c:
                   2758:        * libtme/module.c:
                   2759:        * machine/sun2/sun2-mainbus.c: Changes to silence gcc -Wuninitialized. 
1.1       root     2760: 
                   2761: Fri May 16 21:48:16 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2762: 
1.1.1.2   root     2763:        * Makefile.am TODO acconfig.h configure.in modules bus/Makefile.am
                   2764:          bus/multibus/3c400.c bus/multibus/Makefile.am generic/Makefile.am
                   2765:          generic/bus-device.c generic/bus-el.c generic/bus.c
                   2766:          host/bsd/Makefile.am host/bsd/bsd-bpf.c host/posix/Makefile.am
                   2767:          host/posix/posix-memory.c host/posix/posix-serial.c ic/Makefile.am
                   2768:          ic/am9513.c ic/mm58167.c ic/z8530.c ic/m68k/Makefile.am
                   2769:          ic/m68k/m68010.c ic/m68k/m68k-impl.h ic/m68k/m68k-insns-auto.sh
                   2770:          ic/m68k/m68k-misc.c libtme/Makefile.am libtme/alloc.c
                   2771:          libtme/element.c libtme/log-prf.c libtme/log.c libtme/misc.c
                   2772:          libtme/module.c libtme/threads-sjlj.c machine/Makefile.am
                   2773:          machine/sun/Makefile.am machine/sun/sun-mmu.c
                   2774:          machine/sun2/Makefile.am machine/sun2/SUN2-MULTIBUS
                   2775:          machine/sun2/sun2-impl.h machine/sun2/sun2-mainbus.c
                   2776:          machine/sun2/sun2-mmu.c tme/Makefile.am tme/common.h
                   2777:          tme/connection.h tme/element.h tme/log.h tme/module.h tme/tme.h
                   2778:          tme/tmesh.h tme/generic/bus-device.h tme/generic/bus.h
                   2779:          tme/ic/am9513.h tme/ic/m68k.h tme/ic/mm58167.h tme/ic/z8530.h
                   2780:          tmesh/Makefile.am tmesh/tmesh-cmds.c tmesh/tmesh-impl.h
                   2781:          tmesh/tmesh-input.y tmesh/tmesh-util.c tmesh/tmesh.c:
                   2782: 
                   2783:          By far, this is the worst bulk commit I've ever done.  Many changes
                   2784:          to simplify the element interface as much as possible, to do modules
                   2785:          better, and to do logging better.  Fixed a small number of actual
                   2786:          bugs.  Also converted to modern autoconf and automake, because the
                   2787:          module support requires modern libtool.  Also added the main libtme,
                   2788:          libtmesh, and tmesh itself. 
                   2789: 
                   2790:        * ic/m68k/m68k-verify.c: Now include <stdio.h>. 
1.1       root     2791: 
                   2792: Fri May 16 17:50:17 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2793: 
1.1.1.2   root     2794:        * acinclude.m4 (AC_CHECK_ALIGNOF): Now takes only a size, in bits, to
                   2795:        check the alignment for.  Before, it used to take a string of the form
                   2796:        intN_t, which wouldn't work on systems that don't define an intN_t
                   2797:        type.  When cross-compiling, assume the target requires alignment
                   2798:        equal to the size.  Now use AC_DEFINE_UNQUOTED's third argument to
                   2799:        specify the config.h.in comment. 
                   2800:        (AC_CHECK_SHIFTMAX): Added. 
                   2801:        (AC_SYS_SOCKADDR_SA_LEN): Now use AC_DEFINE_UNQUOTED's third argument
                   2802:        to specify the config.h.in comment. 
1.1       root     2803: 
                   2804: Thu May 15 15:52:08 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2805: 
1.1.1.2   root     2806:        * ic/m68k/m68k-insns-auto.sh: Fixed bugs in the shift and rotate
                   2807:        insns, where we might try to shift by an amount greater than the
                   2808:        maximum meaningful shift for a given size. 
                   2809: 
                   2810: Sat May 10 15:41:23 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2811: 
                   2812:        * acinclude.m4 (AC_CHECK_ALIGNOF): Fixed a bug where this would stop
                   2813:        on the first misalignment, instead of continuing to find the true
                   2814:        minimum alignment.  For example, this would have found the minimum
                   2815:        32-bit alignment to be 4 instead of 2 on a 68000 or 68010, stopping on
                   2816:        the misaligned address 3. 
                   2817: 
                   2818:        * configure.in ic/Makefile.am ic/m68k/Makefile.am machine/Makefile.am
                   2819:          machine/sun2/Makefile.am tme/Makefile.am:
                   2820: 
                   2821:          Some early distribution work. 
                   2822: 
                   2823:        * ic/m68k/m68k-insns-auto.sh:
                   2824:        * ic/m68k/m68k-misc-auto.sh: Fixed some bad macro and type name
                   2825:        references. 
                   2826: 
                   2827:        * ic/m68k/m68k-insns-auto.sh:
                   2828:        * ic/m68k/m68k-misc-auto.sh: Handled the rename of the aligned and
                   2829:        unaligned memory access rwlocking macros, and use the new
                   2830:        tme_memory_sequence_ rwlocking macros.  Generally made things a little
                   2831:        easier to read, although we do rely on the optimizer to do the right
                   2832:        thing somewhat more. 
                   2833: 
1.1       root     2834:        * tme/threads.h: Renamed the memory-access locking functions to be
1.1.1.2   root     2835:        tme_memory_HOW_WHATlock, where HOW is aligned or unaligned, and WHAT
                   2836:        is rd or wr.  Now define the tme_memory_sequence_WHATlock macros, used
                   2837:        when doing a sequence of memory accesses that must appear to be
                   2838:        atomic. 
                   2839:        Now define TME_SEQUENCE_ACCESS_NOT_COSTLIER as TRUE if locking for a
                   2840:        sequence and locking for an aligned access have the same cost, else
                   2841:        define it as FALSE. 
1.1       root     2842: 
                   2843: Sat May 10 00:31:32 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2844: 
1.1.1.2   root     2845:        * ic/m68k/m68k-insns-auto.sh: Overhauled the shift instructions to not
                   2846:        use loops. 
                   2847: 
                   2848: Fri May 09 17:45:06 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2849: 
                   2850:        * ic/m68k/m68k-execute.c: As an optimization, now require the
                   2851:        individual insn functions to use TME_M68K_INSN_CANFAULT if they may
                   2852:        fault, instead of figuring out every time if an insn can fault or not. 
                   2853:        Check that insn functions have set it if they need it, and left it
                   2854:        unset if they do not need it. 
                   2855: 
                   2856:        * ic/m68k/m68k-execute.c: Made some changes to somewhat optimize
                   2857:        certain effective address calculations. 
                   2858: 
                   2859:        * ic/m68k/m68k-impl.h: Now define TME_M68K_INSN_CANFAULT. 
                   2860: 
                   2861:        * ic/m68k/m68k-impl.h: Renumbered the TME_M68K_SIZE_ macros slightly
                   2862:        to enable an optimization on effective address
                   2863:        predecrement/postincrement calculation.  Grew the memory transfer
                   2864:        function arrays to match. 
                   2865:        Moved the generic IC data structure to the top of the m68k structure,
                   2866:        to enable register indexing to happen without an offset. 
                   2867:        Removed _tme_m68k_areg_increment, it's no longer needed. 
                   2868: 
                   2869:        * ic/m68k/m68k-insns-auto.sh:
                   2870:        * ic/m68k/m68k-insns.c: Now use TME_M68K_INSN_CANFAULT where it's
                   2871:        needed.  Also fixed some random restarting bugs in some insns. 
1.1       root     2872: 
1.1.1.2   root     2873:        * ic/m68k/m68k-misc.c: Removed _tme_m68k_areg_increment, it's no
                   2874:        longer needed.  Grew the memory transfer function arrays to match the
                   2875:        renumbering of the TME_M68K_SIZE_ macros, and added some preprocessor
                   2876:        error checking on those macros. 
1.1       root     2877: 
1.1.1.2   root     2878: Fri May 09 14:36:16 2003  Matthew Fredette  <fredette@alum.mit.edu>
1.1       root     2879: 
1.1.1.2   root     2880:        * bus/multibus/3c400.c generic/bus-device.c generic/bus-el.c
                   2881:          generic/bus.c host/posix/posix-memory.c ic/am9513.c ic/mm58167.c
                   2882:          ic/z8530.c tme/generic/bus-device.h tme/generic/bus.h:
                   2883: 
                   2884:          Bulk change to no longer require bus connections to have a
                   2885:          power-of-two width.  This is largely a name change, renaming
                   2886:          address_mask to address_last, as nothing depended on the
                   2887:          address_mask being all-bits-one. 
                   2888: 
                   2889:        * bus/multibus/3c400.c (_tme_3c400_callout): Make buffer status values
                   2890:        have the minimum Ethernet frame size. 
                   2891: 
                   2892:        * ic/am9513.c: Now include <stdio.h>, in case
                   2893:        TME_AM9513_TRACK_INT_RATE is defined. 
                   2894: 
                   2895:        * ic/am9513.c: Under TME_AM9513_TRACK_INT_RATE, periodically report
                   2896:        the interrupt rates achieved by the various timers. 
                   2897: 
                   2898:        * machine/sun2/sun2-mmu.c (_tme_sun2_m68k_tlb_fill): Because
                   2899:        supervisor and user accesses go through different context registers,
                   2900:        TLBs are generally only ever valid for the supervisor or the user, but
                   2901:        not both.  Fixed a bug where a TLB for a user-visible page would be
                   2902:        marked as good for the supervisor even if the mapping isn't the same
                   2903:        in the system context. 
                   2904: 
                   2905:        * tme/generic/ethernet.h: Now define TME_ETHERNET_CRC_SIZE. 
                   2906: 
                   2907: Thu May 08 23:37:55 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2908: 
                   2909:        * ic/m68k/m68k-insns-auto.sh: Fixed bugs, found by the verifier, in
                   2910:        the SR and CCR immediate instructions. 
                   2911: 
                   2912:        * ic/m68k/m68k-verify.c: Now keep a short ring of PCs verified. 
                   2913: 
                   2914: Thu May 08 19:22:10 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2915: 
                   2916:        * ic/z8530.c (_tme_z8530_intack): Changes to silence -Wuninitialized. 
                   2917:        * ic/m68k/Makefile.am: No longer define _TME_M68K_OPW_OK. 
                   2918:        * ic/m68k/m68k-execute.c: Changes to support verifying restarted
                   2919:        instructions. 
                   2920: 
                   2921:        * ic/m68k/m68k-impl.h: Fixed the definitions of the dummy
                   2922:        tme_m68k_verify_ macros. 
                   2923: 
                   2924:        * ic/m68k/m68k-impl.h: Now call tme_m68k_verify_end_branch inside
                   2925:        TME_M68K_INSN_BRANCH.  Added a unique identifier member to the
                   2926:        sequence structure.  Made a few functions take a const struct tme_m68k
                   2927:        *.  Made changes to the verifier to support verifying restarted
                   2928:        instructions. 
                   2929: 
                   2930:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug found by the verifier, where
                   2931:        the movem instructions weren't following the EA discipline correctly
                   2932:        and so would transfer to the wrong addresses after a restart. 
                   2933: 
                   2934:        * ic/m68k/m68k-misc.c (tme_m68k_go_slow): Now take a const struct
                   2935:        tme_m68k *. 
1.1       root     2936:        (tme_m68k_sequence_empty):
1.1.1.2   root     2937:        (tme_m68k_sequence_fill): Made the argument that's supposed to be
                   2938:        read-only const.  Under _TME_M68K_VERIFY, save and restore the
                   2939:        sequence unique identifier. 
                   2940: 
                   2941:        * ic/m68k/m68k-verify.c: Many changes to support verifying
                   2942:        instructions that ended only after they were restarted because of one
                   2943:        or more bus faults. 
1.1       root     2944: 
                   2945: Thu May 08 13:35:43 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2946: 
1.1.1.2   root     2947:        * ic/m68k/m68k-execute.c:
                   2948:        * ic/m68k/m68k-impl.h:
                   2949:        * ic/m68k/m68k-misc.c: Replaced _TME_M68K_OPW_OK bits with new
                   2950:        _TME_M68K_VERIFY bits. 
                   2951: 
                   2952:        * ic/m68k/m68k-insns-auto.sh: In all memory access functions, added
                   2953:        calls to the verifier.  Fixed a bug in the divide routines, found by
                   2954:        the verifier - the N flag in set based on the final small quotient,
                   2955:        not on the big one. 
                   2956: 
                   2957:        * ic/m68k/m68k-misc-auto.sh: Now define TME_M68K_IREG32_COUNT. 
1.1       root     2958: 
1.1.1.2   root     2959:        * ic/m68k/m68k-verify.c: Added. 
1.1       root     2960: 
1.1.1.2   root     2961: Wed May 07 02:37:05 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   2962: 
                   2963:        * generic/bus-el.c (_tme_bus_connections_new): Store the final bus
                   2964:        interrupt signal number, not the raw ipl. 
1.1       root     2965: 
                   2966:        * ic/z8530.c: Although I hate doing this, too many changes to go into
1.1.1.2   root     2967:        detail.  Much work to support interrupt driven operation. 
                   2968: 
                   2969:        * ic/z8530reg.h: Added definitions for RR3. 
                   2970: 
                   2971:        * ic/m68k/m68k-impl.h: Fixed a serious bug in the TME_M68K_FLAG_SR
                   2972:        definition that would zero part of the interrupt mask. 
                   2973: 
                   2974:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug where negx wasn't preserving
                   2975:        the Z flag if the result was zero. 
                   2976: 
                   2977:        * machine/sun2/sun2-test.c (main): Fixed a bug where the zs0 ipl arg
                   2978:        was getting lost. 
1.1       root     2979: 
1.1.1.2   root     2980: Mon May 05 23:20:11 2003  Matthew Fredette  <fredette@alum.mit.edu>
1.1       root     2981: 
1.1.1.2   root     2982:        * TODO: Updated. 
1.1       root     2983: 
1.1.1.2   root     2984:        * generic/serial.c (tme_serial_buffer_copyout): Fixed a bug where if
                   2985:        we were copying to a NULL buffer and the copyout wrapped in the ring
                   2986:        buffer, we would do pointer arithmetic on the NULL. 
1.1       root     2987: 
1.1.1.2   root     2988:        * ic/m68k/m68010.c (_tme_m68010_rte): Fixed a bug where we forgot to
                   2989:        recover the group 0 function code and address for the cycle restart. 
                   2990:        Fixed a bug where we wouldn't reset to extract our internal state from
                   2991:        the stack buffer. 
1.1       root     2992: 
1.1.1.2   root     2993:        * ic/m68k/m68k-insns-auto.sh: Fixed several instructions that trap or
                   2994:        do trap-like things to update PC to be the PC of the following
                   2995:        instruction before trapping. 
                   2996:        (tme_m68k_read_mem): Fixed a memcpy direction bug. 
1.1       root     2997: 
1.1.1.2   root     2998:        * ic/m68k/m68k-insns.c: Fixed several instructions that trap or do
                   2999:        trap-like things to update PC to be the PC of the following
                   3000:        instruction before trapping. 
1.1       root     3001: 
1.1.1.2   root     3002:        * libtme/threads-sjlj.c (tme_sjlj_cond_notify): Fixed a bug where we
                   3003:        would cancel a thread's wait condition instead of notifying the
                   3004:        thread. 
1.1       root     3005: 
1.1.1.2   root     3006:        * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Support the new
                   3007:        expansive MMU PTE protections. 
1.1       root     3008: 
1.1.1.2   root     3009:        * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge
                   3010:        soft interrupts. 
                   3011:        (tme_machine_sun2_clock_new): Fixed a bug where we had the Timer 2
                   3012:        output miswired. 
1.1       root     3013: 
1.1.1.2   root     3014:        * machine/sun2/sun2-mmu.c: Many changes to support the new full
                   3015:        understanding of sun2 PTE protections. 
1.1       root     3016: 
1.1.1.2   root     3017:        * tme/machine/sun.h: Expanded on the generic PTE protections, to
                   3018:        support the more expressive sun2 protections. 
1.1       root     3019: 
1.1.1.2   root     3020: Sun May 04 22:46:12 2003  Matthew Fredette  <fredette@alum.mit.edu>
1.1       root     3021: 
1.1.1.2   root     3022:        * ic/am9513.c (_tme_am9513_counters_disarm): Added. 
                   3023:        (_tme_am9513_th_timer): Try to avoid 32-bit integer overflow when
                   3024:        calculating the sleep time. 
                   3025:        (_tme_am9513_bus_cycle): Now support the disarm timers command. 
1.1       root     3026: 
1.1.1.2   root     3027:        * ic/mm58167.c: Changes to silence -Wuninitialized. 
1.1       root     3028: 
1.1.1.2   root     3029:        * ic/mm58167.c:
                   3030:        * tme/ic/mm58167.h: Added. 
1.1       root     3031: 
1.1.1.2   root     3032:        * ic/z8530.c: Although I hate doing this, too much work to go into
                   3033:        detail.  Did more groundwork for eventually generating interrupts. 
1.1       root     3034: 
1.1.1.2   root     3035:        * ic/m68k/m68k-execute.c: Now wrap the execute hook call in
                   3036:        _TME_M68K_OPW_OK. 
1.1       root     3037: 
1.1.1.2   root     3038:        * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug
                   3039:        where the new ipl mask was put into the sr at the wrong position. 
                   3040: 
                   3041:        * machine/sun2/sun2-mainbus.c (tme_machine_sun2_tod_new): Added. 
                   3042: 
                   3043:        * machine/sun2/sun2-mmu.c (_tme_sun2_obbus_fault_handler): Removed. 
1.1       root     3044:        (_tme_sun2_bus_fault_handler):
                   3045:        (_tme_sun2_obio_fault_handler):
1.1.1.2   root     3046:        (_tme_sun2_obmem_fault_handler): Added. 
1.1       root     3047:        (_tme_sun2_multibus_fault_handler): Now just call
1.1.1.2   root     3048:        _tme_sun2_bus_fault_handler. 
                   3049:        (_tme_sun2_tlb_fill_mmu): Use the new bus-specific fault handlers. 
                   3050: 
                   3051:        * machine/sun2/sun2-test.c: Now create and connect the TOD chip. 
                   3052: 
                   3053:        * tme/ic/Makefile.am: Updated. 
1.1       root     3054: 
                   3055: Sat May 03 19:27:07 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3056: 
1.1.1.2   root     3057:        * TODO: Updated. 
                   3058: 
                   3059:        * ic/m68k/m68k-execute.c: Fixed multiple bugs in the handling of brief
                   3060:        EA extension words. 
                   3061: 
                   3062:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug where subx and addx didn't
                   3063:        take the (previous) X flag into account when calculating flags. 
                   3064: 
                   3065:        * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Now
                   3066:        call _tme_sun2_ipl_check whenever the enable register is written. 
                   3067: 
                   3068:        * machine/sun2/sun2-impl.h: Added macros for the enable register bits. 
                   3069: 
                   3070:        * machine/sun2/sun2-mainbus.c (_tme_sun2_ipl_check): Added. 
                   3071:        (_tme_sun2_bus_signal): Now call _tme_sun2_ipl_check to update the ipl
                   3072:        driven to the CPU. 
                   3073: 
                   3074: Fri May 02 17:37:10 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3075: 
                   3076:        * TODO: Updated. 
                   3077: 
                   3078:        * acconfig.h acinclude.m4 bus/multibus/3c400.c
                   3079:          bus/multibus/Makefile.am generic/ethernet.c host/bsd/Makefile.am
                   3080:          host/bsd/bsd-bpf.c host/bsd/bsd-if.c tme/generic/ethernet.h:
                   3081: 
                   3082:          Added. 
                   3083: 
                   3084:        * configure.in: Now check for minimum alignments.  Now check for
                   3085:        various headers and other things needed by the BSD code. 
                   3086: 
                   3087:        * bus/Makefile.am:
                   3088:        * generic/Makefile.am:
                   3089:        * host/Makefile.am:
                   3090:        * tme/generic/Makefile.am: Added support for new components. 
                   3091: 
                   3092:        * bus/multibus/3c400.c (_tme_3c400): Some changes to silence
                   3093:        -Wuninitialized. 
                   3094: 
                   3095:        * host/posix/posix-serial.c: Fixed some indentation, and one 0 to a
                   3096:        TME_OK. 
                   3097: 
1.1       root     3098:        * ic/am9513.c (_tme_am9513_counters_load):
1.1.1.2   root     3099:        (_tme_am9513_counters_arm): Added. 
                   3100:        (_tme_am9513_th_timer): Try to avoid multiplication overflow when
                   3101:        calculating the number of basic ticks that have elapsed.  Try to
                   3102:        handle armed and unarmed counters correctly. 
                   3103:        (_tme_am9513_bus_cycle): Now load and arm counters correctly. 
                   3104:        (tme_ic_am9513_new): Calculate the number of basic ticks in a
                   3105:        millisecond for the benefit of the timer thread. 
                   3106: 
                   3107:        * ic/m68k/m68010.c (_tme_m68010_rte): tme_m68k_rte_finish no longer
                   3108:        touches the sequence at all, so before calling it make sure the
                   3109:        sequence is exactly what it's supposed to be. 
                   3110: 
                   3111:        * ic/m68k/m68k-execute.c: In the fast executor, assert that the ITLB
                   3112:        entry allows fast reading for the current PC or that the PC is one
                   3113:        greater than the last address covered by the entry.  Fixed the
                   3114:        fast-fetch-failed code to more correctly simulate a group 0 exception
                   3115:        and associated RTE. 
                   3116: 
                   3117:        * ic/m68k/m68k-insns-auto.sh: Cleaned up and fixed the code generated
                   3118:        for cmpm, addx, and subx.  At least, cmpm wasn't getting its address
                   3119:        registers postincremented, and addx and subx weren't treating the Z
                   3120:        flag properly.  In the fetch insns, take the address to fetch from as
                   3121:        an argument, instead of using the real ic->tme_m68k_ireg_pc with
                   3122:        tme_m68k_read
1.1       root     3123:        (which could actually update it, if recovering from a group 0
                   3124:        exception!)
                   3125: 
1.1.1.2   root     3126:        * ic/m68k/m68k-misc-auto.sh: The slow-executor fetch macros now call
                   3127:        the fetch insns with the PC to fetch from. 
1.1       root     3128: 
1.1.1.2   root     3129:        * ic/m68k/m68k-misc.c (tme_m68k_rte_finish): No longer do anything
                   3130:        with the sequence at all, just redispatch it. 
                   3131:        (tme_m68k_sequence_fill): Now set the sequence next-transfer to one,
                   3132:        to force a restart in case later code doesn't. 
                   3133:        (tme_m68k_insn_buffer_xfer): The insn buffer is kept in host byte
                   3134:        order, not big-endian byte order. 
                   3135: 
                   3136:        * libtme/threads-sjlj.c: No longer track and relock a mutex that was
                   3137:        held when tme_sjlj_cond_wait_yield was called; the thread itself will
                   3138:        relock the mutex when it is restarted. 
                   3139: 
                   3140:        * machine/sun2/Makefile.am: Now build and link against the Multibus
                   3141:        and BSD libraries. 
                   3142: 
                   3143:        * machine/sun2/sun2-test.c (tme_memdup): Added. 
                   3144:        (connect_elements): Now start the new convention of initializing the
                   3145:        new-connections lists to NULL and letting the new-connections
                   3146:        functions add elements incrementally. 
1.1       root     3147:        (main): Now create the ec0 and bpf0 elements and add them to the
1.1.1.2   root     3148:        machine. 
1.1       root     3149: 
1.1.1.2   root     3150:        * tme/common.h: Added a macro for tme_dup and a prototype for
                   3151:        tme_memdup. 
1.1       root     3152: 
1.1.1.2   root     3153:        * tme/connection.h: Now define TME_CONNECTION_ETHERNET. 
                   3154: 
                   3155:        * tme/threads.h: Fixed a bug where the tme_thread_write macro was
                   3156:        defined to be the read syscall. 
1.1       root     3157: 
                   3158: Tue Apr 29 20:28:05 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3159: 
1.1.1.2   root     3160:        * AUTHORS:
                   3161:        * COPYING:
                   3162:        * NEWS:
                   3163:        * README: Added. 
                   3164: 
                   3165:        * generic/bus-device.c generic/bus-el.c host/posix/posix-serial.c
                   3166:          ic/z8530.c ic/m68k/m68k-misc.c machine/sun2/sun2-mainbus.c:
                   3167: 
                   3168:          In all connections_new functions, add the new connection
                   3169:          possibilities to the list rooted at *_conns, instead of always
                   3170:          replacing the list. 
                   3171: 
                   3172:        * generic/bus-el.c host/posix/posix-memory.c ic/am9513.c
                   3173:          ic/m68k/m68k-execute.c ic/m68k/m68k-insns-auto.sh
                   3174:          ic/m68k/m68k-insns.c machine/sun2/sun2-mainbus.c:
1.1       root     3175: 
1.1.1.2   root     3176:          Changes to silence -Wuninitialized. 
                   3177: 
                   3178:        * generic/serial.c:
                   3179:        * tme/generic/serial.h: Removed all instances of gen- in comments. 
                   3180: 
                   3181:        * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Fixed bugs
                   3182:        in scanning the input for various escape-like sequences, especially
                   3183:        for the escaped break signal. 
                   3184: 
                   3185:        * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Simplified
                   3186:        the code that decides to call out that we are readable. 
1.1       root     3187:        (_tme_posix_serial_ctrl): Always try to call out reads if the
1.1.1.2   root     3188:        connection says it's readable, even if we already knew that. 
                   3189:        (_tme_posix_serial_read): Fixed a bug where we would clear everything
                   3190:        *except* TME_SERIAL_CTRL_OK_READ, instead of clearing only that bit. 
                   3191:        (tme_host_posix_serial_new): Return EINVAL on bad arguments. 
                   3192: 
                   3193:        * ic/Makefile.am: Now define DIST_SUBDIRS. 
                   3194: 
                   3195:        * ic/z8530.c (_tme_z8530_callout): Fixed a bug where we would use an
                   3196:        uninitialized chan variable to find WR9, which actually only exists in
                   3197:        channel A anyways. 
1.1       root     3198:        (_tme_z8530_ctrl): Now always try to call out reads if the connection
1.1.1.2   root     3199:        says it's readable. 
                   3200: 
                   3201:        * libtme/threads-sjlj.c: Wrap all of the rwlock operations in
                   3202:        !TME_NO_DEBUG_LOCKS. 
                   3203:        (tme_sjlj_threads_run): Changes to silence -Wuninitialized. 
1.1       root     3204: 
1.1.1.2   root     3205:        * tme/Makefile.am:
                   3206:        * tme/generic/Makefile.am: Now install roughly the correct files into
                   3207:        the correct place. 
1.1       root     3208: 
1.1.1.2   root     3209:        * tme/atomics.h: Fixed a bug where TME_ATOMIC_POINTER_TYPE was adding
                   3210:        an extra *. 
1.1       root     3211: 
1.1.1.2   root     3212:        * tme/element.h: Fixed bugs in the TME_NO_LOG versions of TME_LOG_X
                   3213:        and TME_LOG_FINISH. 
                   3214: 
                   3215: Tue Apr 29 03:24:17 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3216: 
                   3217:        * TODO:
                   3218:        * machine/sun2/sun2-test.c: Updated. 
                   3219: 
                   3220:        * generic/bus-device.c: Support the new generic bus signal interface. 
1.1       root     3221:        (tme_bus_device_connection_score):
                   3222:        (tme_bus_device_connection_make):
1.1.1.2   root     3223:        (tme_bus_device_connection_break): These are now public. 
1.1       root     3224: 
1.1.1.2   root     3225:        * generic/bus-el.c: Added support for the new generic bus signal
                   3226:        interface. 
                   3227:        (_tme_bus_line_raise): Removed. 
1.1       root     3228:        (_tme_bus_signal):
1.1.1.2   root     3229:        (_tme_bus_intack): Added. 
1.1       root     3230: 
1.1.1.2   root     3231:        * generic/serial.c: Removed all uses of TME_ATOMIC. 
                   3232:        (tme_serial_buffer_copyout): Fixed a bug where we would overwrite
                   3233:        data_flags with -1 early, resulting in our returning no data. 
1.1       root     3234: 
1.1.1.2   root     3235:        * host/posix/posix-serial.c: Too much work to go into detail. 
                   3236:        Everything is at least sketched out. 
1.1       root     3237: 
                   3238:        * ic/am9513.c (_tme_am9513_callout):
1.1.1.2   root     3239:        (_tme_am9513_th_timer): Added. 
                   3240:        (_tme_am9513_bus_cycle): Now properly handle the Clear Toggle Output
                   3241:        command, and log it correctly.  Lock the new mutex on entry, call
                   3242:        _tme_am9513_callout if needed before exit, and unlock the mutex on
                   3243:        exit. 
                   3244:        (tme_ic_am9513_new): Start the new timer thread. 
1.1       root     3245: 
                   3246:        * ic/z8530.c: Too many changes to go into detail.  Highlights include
1.1.1.2   root     3247:        a real bus cycle handler, real channels, real serial connections, real
                   3248:        threads.  Everything seems to be at least sketched out. 
                   3249: 
                   3250:        * ic/z8530reg.h: Added. 
                   3251: 
                   3252:        * ic/m68k/m68k-execute.c: Fixed a bug where we were using the return
                   3253:        value of tme_mutex_trylock as a truth value. 
                   3254: 
                   3255:        * ic/m68k/m68k-misc.c: Changed to support the new generic bus signal
                   3256:        interface and the new m68k bus interrupt interface. 
                   3257: 
                   3258:        * libtme/threads-sjlj.c (tme_sjlj_threads_run): Fixed a bug where we
                   3259:        wouldn't lock the mutex before returning from a condition wait.  Fixed
                   3260:        a bug where we would block in select(2) instead of calling it with a
                   3261:        zero timeout. 
                   3262:        (tme_sjlj_cond_wait_yield): Remember the mutex the thread had locked
                   3263:        so it can be relocked when the thread resumes. 
                   3264:        (tme_sjlj_select_yield): Fixed bugs where we would treat the nfds
                   3265:        argument as the maximum fd, instead of the maximum fd plus one.  Fixed
                   3266:        a bug where we couldn't handle NULL descriptor sets. 
1.1       root     3267:        (tme_sjlj_read_yield):
                   3268:        (tme_sjlj_write_yield):
                   3269:        (tme_sjlj_read_yield):
                   3270:        (tme_sjlj_rwlock_init):
                   3271:        (tme_sjlj_rwlock_lock):
1.1.1.2   root     3272:        (tme_sjlj_rwlock_unlock): Added. 
1.1       root     3273: 
1.1.1.2   root     3274:        * machine/sun2/sun2-impl.h: Now track the interrupts asserted in the
                   3275:        system, and the last ipl asserted to the CPU. 
1.1       root     3276: 
                   3277:        * machine/sun2/sun2-mainbus.c (_tme_sun2_line_reset):
                   3278:        (_tme_sun2_line_halt):
1.1.1.2   root     3279:        (_tme_sun2_line_interrupt): Removed. 
1.1       root     3280:        (_tme_sun2_bus_signal):
1.1.1.2   root     3281:        (_tme_sun2_bus_intack): Added. 
                   3282:        (_tme_sun2_power): Use the generic bus signal interface to reset
                   3283:        everything. 
                   3284:        (tme_machine_sun2_clock_new): Store how the Am9513 output pins are
                   3285:        connected to bus interrupt lines. 
                   3286: 
                   3287:        * machine/sun2/sun2-mmu.c (_tme_sun2_multibus_fault_handler): Added a
                   3288:        hack to avoid an mbmem bus error when accessed through virtual
                   3289:        0xffffffff, which apparently happens in the PROM NMI routine when it
                   3290:        polls the keyboard, even if it didn't probe a keyboard. 
                   3291: 
                   3292:        * tme/element.h: Fixed various const to _tme_const. 
                   3293: 
                   3294:        * tme/threads.h: Redid the setjmp/longjmp rwlock operations.  Added
                   3295:        various new function prototypes and macros. 
                   3296: 
                   3297:        * tme/generic/bus-device.h: Support the new generic bus signal
                   3298:        interface.  The tme_bus_device_connection_score,
                   3299:        tme_bus_device_connection_make, and tme_bus_device_connection_break
                   3300:        functions are now public.  Fixed a const to _tme_const. 
                   3301: 
                   3302:        * tme/generic/bus.h: Added the new generic bus signal and interrupt
                   3303:        acknowledge interfaces.  Fixed various const to _tme_const. 
                   3304: 
                   3305:        * tme/generic/serial.h: Now define TME_SERIAL_CTRL_OK_READ.  Removed
                   3306:        the write method from a serial connection.  All data transfer happens
                   3307:        with reads, with control signals to indicate when reads are OK. 
                   3308:        Removed the TME_ATOMIC use in struct tme_serial_buffer. 
1.1       root     3309:        (tme_serial_buffer_is_empty):
1.1.1.2   root     3310:        (tme_serial_buffer_is_full): Added. 
                   3311: 
                   3312:        * tme/ic/am9513.h: struct tme_am9513_socket now holds the basic clock
                   3313:        provided to the chip, and a mapping of its output pins to bus signals. 
                   3314:        Fixed a const to _tme_const. 
                   3315: 
                   3316:        * tme/ic/m68k.h: Now define some m68k IPL constant macros.  Add the
                   3317:        new m68k bus interrupt method.  Fixed various const to _tme_const. 
                   3318: 
                   3319:        * tme/ic/z8530.h: Made the channel letters lowercase in structure
                   3320:        member names.  Fixed a const to _tme_const. 
                   3321: 
                   3322: Sat Apr 26 21:46:16 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3323: 
                   3324:        * Makefile.am TODO configure.in generic/Makefile.am
                   3325:          generic/bus-device.c generic/bus-el.c generic/bus.c generic/serial.c
                   3326:          host/posix/posix-memory.c host/posix/posix-serial.c ic/am9513.c
                   3327:          ic/z8530.c ic/i386/i386-decode.c ic/i386/i386-misc-auto-make.sh
                   3328:          ic/i386/i386-opmaps-make.sh ic/i386/i386-save.c
                   3329:          ic/i386/i386-uinsns-auto-make.sh ic/i386/i386-uinsns.c
                   3330:          ic/i386/i386.h tme/generic/Makefile.am tme/generic/bus-device.h
                   3331:          tme/generic/bus.h tme/generic/ic.h tme/generic/serial.h
                   3332:          tme/ic/am9513.h tme/ic/z8530.h:
                   3333: 
                   3334:          Added. 
                   3335: 
                   3336:        * bus/Makefile.am host/posix/Makefile.am ic/m68k/Makefile.am
                   3337:          machine/Makefile.am machine/sun/Makefile.am machine/sun2/Makefile.am
                   3338:          machine/sun2/sun2-test.c:
1.1       root     3339: 
1.1.1.2   root     3340:          Updated. 
1.1       root     3341: 
1.1.1.2   root     3342:        * bus/bus-device.c bus/bus.c tme/bus-device.h tme/bus.h tme/ic.h:
                   3343: 
                   3344:          Removed. 
                   3345: 
                   3346:        * host/posix/memory.c: Renamed to posix-memory.c. 
                   3347: 
                   3348:        * ic/m68k/m68k-execute.c: Under _TME_M68K_EXECUTE_FAST, at the
                   3349:        beginning of each instruction we do have to check if our ITLB has been
                   3350:        invalidated, as it might have been by some random (control) memory
                   3351:        cycle we just did. 
                   3352:        Fixed bugs in the predecrement and postincrement EA handlers. 
                   3353: 
                   3354:        * ic/m68k/m68k-impl.h:
                   3355:        * machine/sun2/sun2-impl.h: Now include <tme/generic/ic.h>. 
                   3356: 
                   3357:        * ic/m68k/m68k-impl.h: Added support for logging. 
                   3358: 
                   3359:        * ic/m68k/m68k-insns-auto.sh: Fixed a serious movem bug where we would
                   3360:        start at bit 1 in the mask, and not bit 0. 
                   3361:        In all memory transfer functions, log the transfer.  Made the bus
                   3362:        cycle functions "work correctly".  Fixed bugs in the generated divide
                   3363:        instructions. 
                   3364: 
                   3365:        * ic/m68k/m68k-insns.c (tme_m68k_swap): Fixed a bug where this
                   3366:        wouldn't work on big-endian systems. 
1.1       root     3367:        (tme_m68k_link):
1.1.1.2   root     3368:        (tme_m68k_unlk): Fixed serious bugs where we simply didn't do what
                   3369:        these instructions are supposed to do. 
1.1       root     3370: 
1.1.1.2   root     3371:        * ic/m68k/m68k-iset.txt: On the 68010 and up, the move_from_sr and
                   3372:        move_from_ccr instructions don't read memory before writing it.  Fixed
                   3373:        bugs in the encoding of the register bit-shifting with a register
                   3374:        count instructions. 
                   3375: 
                   3376:        * ic/m68k/m68k-misc.c (tme_m68k_idle): Use the renamed
                   3377:        tme_cond_wait_yield function. 
                   3378:        (tme_m68k_new): Store the element in the IC. 
                   3379:        (tme_m68k_go_slow): Use the TME_M68K_TLB_OK_FAST_READ to check for a
                   3380:        bad TLB entry. 
                   3381:        (tme_m68k_exception_process): Don't insist on there being exceptions
                   3382:        to process.  CPU-specific exception processors may handle them all,
                   3383:        yet still use this function to redispatch. 
                   3384:        (_tme_m68k_execute_hook): Added. 
1.1       root     3385: 
                   3386:        * libtme/threads-sjlj.c (_tme_sjlj_then):
                   3387:        (_tme_sjlj_timeout):
                   3388:        (tme_sjlj_sleep_yield):
1.1.1.2   root     3389:        (tme_sjlj_select_yield): Added. 
                   3390:        (tme_sjlj_threads_run): Cleaned up the threads dispatcher to support
                   3391:        threads waiting on classic select(2) fd sets,
                   3392:        (tme_sjlj_cond_wait_yield): Renamed from tme_sjlj_cond_wait. 
                   3393:        (tme_sjlj_sleep): This function no longer yields. 
                   3394: 
                   3395:        * machine/sun/sun-mmu.c: Added some logging. 
                   3396:        Disabled the explicit SEGINV support, for now.  It appears that the
                   3397:        hardware MMU doesn't have a notion of an invalid PMEG.  Now call the
                   3398:        post-MMU TLB fillers with the PTE struct and the virtual address. 
                   3399: 
                   3400:        * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Don't
                   3401:        bother to fill the segmap register unless this is a read. 
1.1       root     3402: 
1.1.1.2   root     3403:        * machine/sun2/sun2-impl.h: Now include <tme/generic/bus.h>.  Added
                   3404:        some support for logging. 
                   3405: 
                   3406:        * machine/sun2/sun2-mainbus.c: Added some support for logging. 
1.1       root     3407:        (tme_machine_sun2_clock_new):
1.1.1.2   root     3408:        (tme_machine_sun2_zs_new): Added. 
1.1       root     3409: 
                   3410:        * machine/sun2/sun2-mmu.c: Too much to go into detail.  Highlights:
1.1.1.2   root     3411:        Added some logging support. 
                   3412:        Made the bus error behavior more correct.  On the sun2, obio and obmem
                   3413:        don't generate bus errors.  Now the post-MMU TLB filler takes the
                   3414:        original PTE entry and the original virtual address. 
                   3415: 
                   3416:        * tme/connection.h: Now define TME_CONNECTION_SERIAL. 
                   3417: 
                   3418:        * tme/element.h: Added logging support. 
                   3419: 
1.1       root     3420:        * tme/ic.h: Now include <tme/generic/bus.h>
1.1.1.2   root     3421: 
                   3422:        * tme/threads.h: Defined more of the tme threads API. 
                   3423: 
                   3424:        * tme/ic/m68k.h: Now include <tme/generic/bus.h>. 
                   3425: 
                   3426:        * tme/machine/sun.h: Added support for logging. 
                   3427:        Changed the interface to pass the whole PTE struct to the post-MMU TLB
                   3428:        fillers. 
1.1       root     3429: 
                   3430: Sat Apr 26 14:44:07 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3431: 
1.1.1.2   root     3432:        * bus/bus.c (tme_bus_cycle_xfer): Fixed a bug where we used
                   3433:        cycle_writer to get the reader's port size.  When indexing bus router
                   3434:        arrays, we have to subtract out the participant's least port lane,
                   3435:        since the arrays don't include information for lanes not connected to
                   3436:        the participant. 
                   3437: 
                   3438: Wed Apr 23 19:31:01 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3439: 
                   3440:        * bus/Makefile.am bus/bus-device.c bus/bus.c host/Makefile.am
                   3441:          host/posix/Makefile.am host/posix/memory.c ic/Makefile.am
                   3442:          ic/m68k/m68k-impl.h libtme/Makefile.am libtme/threads-sjlj.c
                   3443:          machine/sun/Makefile.am machine/sun/sun-mmu.c
                   3444:          machine/sun2/Makefile.am machine/sun2/sun2-control.c
                   3445:          machine/sun2/sun2-impl.h machine/sun2/sun2-mainbus.c
                   3446:          machine/sun2/sun2-mmu.c machine/sun2/sun2-test.c tme/Makefile.am
                   3447:          tme/atomics.h tme/bus-device.h tme/bus.h tme/common.h
                   3448:          tme/connection.h tme/element.h tme/ic.h tme/threads.h
                   3449:          tme/ic/Makefile.am tme/ic/m68k.h tme/machine/Makefile.am
                   3450:          tme/machine/sun.h:
                   3451: 
                   3452:          Added. 
                   3453: 
1.1       root     3454:        * ic/m68k/m68010.c (_tme_m68010_exception):
1.1.1.2   root     3455:        (_tme_m68010_rte): Added. 
1.1       root     3456: 
1.1.1.2   root     3457:        * ic/m68k/m68k-bus-auto.sh: Now generates the combined input/output
                   3458:        bus routers. 
                   3459: 
                   3460:        * ic/m68k/m68k-execute.c:
                   3461:        * ic/m68k/m68k-insns.c:
                   3462:        * ic/m68k/m68k-misc.c: Although I hate doing this, "too many changes
                   3463:        to list."
                   3464: 
                   3465:        * ic/m68k/m68k-insns-auto.sh: Some minor copyright and cosmetic fixes. 
                   3466:        Updated the bus cycle functions to support the latest generic bus
                   3467:        cycle idea. 
                   3468: 
                   3469:        * ic/m68k/m68k-iset-expand.pl: When the EA is an immediate, just emit
                   3470:        the immediate information and skip the EA information - we don't want
                   3471:        to use the EA path in this case. 
                   3472: 
                   3473:        * ic/m68k/m68k-iset.txt: moveq is now its own insn. 
                   3474: 
                   3475:        * ic/m68k/m68k-misc-auto.sh: Copyright sweep. 
                   3476: 
                   3477:        * ic/m68k/m68k-opmap-make.pl: Fixed some random bugs, and correctly
                   3478:        handle the case where EA and immediate operand must be undefined for a
                   3479:        pattern, to avoid using the EA and immediate operand in any root
                   3480:        entry. 
                   3481: 
                   3482:        * ic/m68k/m68k.h: Removed. 
1.1       root     3483: 
                   3484: Sun Apr 20 21:33:05 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3485: 
1.1.1.2   root     3486:        * ic/m68k/m68k-bus-auto.sh: Added. 
1.1       root     3487: 
                   3488: Fri Apr 18 04:56:36 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3489: 
1.1.1.2   root     3490:        * ic/m68k/m68k-insns-auto.sh: Added support for generating the moveq32
                   3491:        insn.  Cleaned up and fixed some bugs in the bus cycle functions. 
1.1       root     3492: 
1.1.1.2   root     3493:        * ic/m68k/m68k-misc-auto.sh: Cleaned up the set of registers that we
                   3494:        define.  Added better locking support to the instruction fetch macros. 
1.1       root     3495: 
                   3496: Tue Apr 15 13:32:37 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3497: 
1.1.1.2   root     3498:        * ic/m68k/m68k-insns-auto.sh: Unfortunately, too much work to list in
                   3499:        detail.  Improved the arithmetic function flag-setting code to compile
                   3500:        well on i386 with gcc -O2.  Added many special-purpose memory read and
                   3501:        write functions, and finally introduced the general bus-cycle read and
                   3502:        write functions.  Added many new instructions, including multiply and
                   3503:        divide. 
1.1       root     3504: 
                   3505: Sat Apr 05 18:47:38 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3506: 
1.1.1.2   root     3507:        * machine/Makefile.am: Added. 
1.1       root     3508: 
1.1.1.2   root     3509: Tue Apr 01 20:13:40 2003  Matthew Fredette  <fredette@alum.mit.edu>
1.1       root     3510: 
1.1.1.2   root     3511:        * ic/m68k/Makefile.am: Build decoders for the 68000, 68010, and 68020. 
                   3512:        * ic/m68k/m68k-iset-expand.pl: Added a very basic preprocessor to
                   3513:        support generating different instruction sets for different CPUs.  Now
                   3514:        whenever an instruction wants the EA, its operand is eax.32 even if
                   3515:        the known EA is address register indirect. 
1.1       root     3516: 
1.1.1.2   root     3517:        * ic/m68k/m68k-iset.txt: This should be the complete integer
                   3518:        instruction set for the 68000, 68010, 68020, and 68030. 
1.1       root     3519: 
1.1.1.2   root     3520:        * ic/m68k/m68k-opmap-make.pl: Added comments, and reworked to support
                   3521:        compiling instruction sets for different CPUs together, reusing
                   3522:        submaps and opcode maps whenever possible. 
1.1       root     3523: 
1.1.1.2   root     3524:        * ic/m68k/m68k.h: Before the -impl.h split. 
1.1       root     3525: 
                   3526: Sun Mar 30 22:04:15 2003  Matthew Fredette  <fredette@alum.mit.edu>
                   3527: 
1.1.1.2   root     3528:        * ic/m68k/Makefile.am ic/m68k/m68010.c ic/m68k/m68k-execute.c
                   3529:          ic/m68k/m68k-insns-auto.sh ic/m68k/m68k-insns.c
                   3530:          ic/m68k/m68k-iset-expand.pl ic/m68k/m68k-iset.txt
                   3531:          ic/m68k/m68k-misc-auto.sh ic/m68k/m68k-misc.c
                   3532:          ic/m68k/m68k-opmap-make.pl ic/m68k/m68k.h:
1.1       root     3533: 
1.1.1.2   root     3534:          Added. 

unix.superglobalmegacorp.com