Annotation of tme/ChangeLog, revision 1.1.1.1

1.1       root        1: Sun May 18 00:07:59 2003  Matthew Fredette  <[email protected]>
                      2: 
                      3:        * Release 0.0 out.
                      4: 
                      5:        * configure.in: Changed the version number to 0.0; this is very alpha.
                      6:        There are now fewer include directories under tme/; many
                      7:        unnecessary headers that belonged to modules were removed.
                      8: 
                      9:        * bus/multibus/3c400.c: No longer include <tme/bus/multibus/3c400.h>.
                     10:        * bus/multibus/Makefile.am: Added library and module versioning.
                     11:        * generic/Makefile.am: Added library and module versioning.
                     12:        * host/bsd/Makefile.am: Added library and module versioning.
                     13:        * host/bsd/bsd-bpf.c: Now include "bsd-impl.h" instead of <tme/host/bsd.h>.
                     14:        * host/bsd/bsd-if.c: Now include "bsd-impl.h" instead of <tme/host/bsd.h>.
                     15:        * host/bsd/bsd-impl.h: Added.
                     16:        * host/posix/Makefile.am: Added library and module versioning.
                     17:        * ic/Makefile.am: Added library and module versioning.
                     18:        * ic/m68k/Makefile.am: Added library and module versioning.
                     19:        * libtme/Makefile.am: Added library and module versioning.
                     20:        * machine/sun/Makefile.am: Added library and module versioning.
                     21:        * machine/sun/tme-sun-idprom.pl: Added.
                     22:        * machine/sun2/Makefile.am: Added library and module versioning.
                     23:        * machine/sun2/SUN2-MULTIBUS: Changed the extension on the PROM and IDPROM
                     24:        files from .dat to .bin.
                     25: 
                     26:        * machine/sun2/SUN2-MULTIBUS: Changed the name of the PROM filename to match the documentation.
                     27:        * tme/Makefile.am: Removed the host and bus include directories; they don't exist anymore.
                     28:        * tmesh/Makefile.am: Added library and module versioning.
                     29: 
                     30: Sat May 17 20:16:06 2003  Matthew Fredette  <[email protected]>
                     31: 
                     32:        * acinclude.m4: Added an RCS Id and a short comment.
                     33:        * configure.in: Added an RCS Id, the copyright, and license.
                     34:        Do a real path search for perl.
                     35: 
                     36:        * libtme/log-prf.c: Changes to silence gcc -Wuninitialized.
                     37:        * libtme/module.c: Changes to silence gcc -Wuninitialized.
                     38:        * machine/sun2/sun2-mainbus.c: Changes to silence gcc -Wuninitialized.
                     39: 
                     40: Fri May 16 21:48:16 2003  Matthew Fredette  <[email protected]>
                     41: 
                     42:        * By far, this is the worst bulk commit I've ever done.
                     43:        Many changes to simplify the element interface as much
                     44:        as possible, to do modules better, and to do logging
                     45:        better.  Fixed a small number of actual bugs.  Also
                     46:        converted to modern autoconf and automake, because
                     47:        the module support requires modern libtool.
                     48:        Also added the main libtme, libtmesh, and tmesh itself.
                     49: 
                     50: Fri May 16 17:50:17 2003  Matthew Fredette  <[email protected]>
                     51: 
                     52:        * acinclude.m4 (AC_CHECK_ALIGNOF): Now takes only a size, in bits, to check the
                     53:        alignment for.  Before, it used to take a string of the form intN_t,
                     54:        which wouldn't work on systems that don't define an intN_t type.
                     55:        When cross-compiling, assume the target requires alignment equal
                     56:        to the size.  Now use AC_DEFINE_UNQUOTED's third argument to
                     57:        specify the config.h.in comment.
                     58:        (AC_CHECK_SHIFTMAX): Added.
                     59:        (AC_SYS_SOCKADDR_SA_LEN): Now use AC_DEFINE_UNQUOTED's third
                     60:        argument to specify the config.h.in comment.
                     61: 
                     62: Thu May 15 15:52:08 2003  Matthew Fredette  <[email protected]>
                     63: 
                     64:        * ic/m68k/m68k-insns-auto.sh: Fixed bugs in the shift and rotate insns, where we might try to
                     65:        shift by an amount greater than the maximum meaningful shift for
                     66:        a given size.
                     67: 
                     68: Sat May 10 13:46:02 2003  Matthew Fredette  <[email protected]>
                     69: 
                     70:        * acinclude.m4 (AC_CHECK_ALIGNOF): Fixed a bug where this would stop on
                     71:        the first misalignment, instead of continuing to find the
                     72:        true minimum alignment.  For example, this would have
                     73:        found the minimum 32-bit alignment to be 4 instead of 2
                     74:        on a 68000 or 68010, stopping on the misaligned address 3.
                     75: 
                     76:        * configure.in: Some early distribution work.
                     77:        * ic/Makefile.am: Some early distribution work.
                     78:        * ic/m68k/Makefile.am: Some early distribution work.
                     79:        * ic/m68k/m68k-insns-auto.sh: Fixed some bad macro and type name references.
                     80:        * ic/m68k/m68k-insns-auto.sh: Handled the rename of the aligned and unaligned memory access
                     81:        rwlocking macros, and use the new tme_memory_sequence_ rwlocking
                     82:        macros.  Generally made things a little easier to read, although
                     83:        we do rely on the optimizer to do the right thing somewhat more.
                     84: 
                     85:        * ic/m68k/m68k-misc-auto.sh: Fixed some bad macro and type name references.
                     86:        * ic/m68k/m68k-misc-auto.sh: Handled the rename of the aligned and unaligned memory access
                     87:        rwlocking macros, and use the new tme_memory_sequence_ rwlocking
                     88:        macros.  Generally made things a little easier to read, although
                     89:        we do rely on the optimizer to do the right thing somewhat more.
                     90: 
                     91:        * machine/Makefile.am: Some early distribution work.
                     92:        * machine/sun2/Makefile.am: Some early distribution work.
                     93:        * tme/Makefile.am: Some early distribution work.
                     94:        * tme/threads.h: Renamed the memory-access locking functions to be
                     95:        tme_memory_HOW_WHATlock, where HOW is aligned or
                     96:        unaligned, and WHAT is rd or wr.
                     97:        Now define the tme_memory_sequence_WHATlock macros,
                     98:        used when doing a sequence of memory accesses that
                     99:        must appear to be atomic.
                    100:        Now define TME_SEQUENCE_ACCESS_NOT_COSTLIER as TRUE
                    101:        if locking for a sequence and locking for an aligned
                    102:        access have the same cost, else define it as FALSE.
                    103: 
                    104: Sat May 10 00:31:32 2003  Matthew Fredette  <[email protected]>
                    105: 
                    106:        * ic/m68k/m68k-insns-auto.sh: Overhauled the shift instructions to not use loops.
                    107: 
                    108: Fri May 09 16:32:06 2003  Matthew Fredette  <[email protected]>
                    109: 
                    110:        * ic/m68k/m68k-execute.c: As an optimization, now require the individual insn functions
                    111:        to use TME_M68K_INSN_CANFAULT if they may fault, instead of
                    112:        figuring out every time if an insn can fault or not.  Check
                    113:        that insn functions have set it if they need it, and left it
                    114:        unset if they do not need it.
                    115: 
                    116:        * ic/m68k/m68k-execute.c: Made some changes to somewhat optimize certain
                    117:        effective address calculations.
                    118: 
                    119:        * ic/m68k/m68k-impl.h: Now define TME_M68K_INSN_CANFAULT.
                    120:        * ic/m68k/m68k-impl.h: Renumbered the TME_M68K_SIZE_ macros slightly to enable an
                    121:        optimization on effective address predecrement/postincrement
                    122:        calculation.  Grew the memory transfer function arrays to
                    123:        match.
                    124:        Moved the generic IC data structure to the top of the m68k
                    125:        structure, to enable register indexing to happen without
                    126:        an offset.
                    127:        Removed _tme_m68k_areg_increment, it's no longer needed.
                    128: 
                    129:        * ic/m68k/m68k-insns-auto.sh: Now use TME_M68K_INSN_CANFAULT where it's needed.  Also
                    130:        fixed some random restarting bugs in some insns.
                    131: 
                    132:        * ic/m68k/m68k-insns.c: Now use TME_M68K_INSN_CANFAULT where it's needed.  Also
                    133:        fixed some random restarting bugs in some insns.
                    134: 
                    135:        * ic/m68k/m68k-misc.c: Removed _tme_m68k_areg_increment, it's no longer needed.
                    136:        Grew the memory transfer function arrays to match the
                    137:        renumbering of the TME_M68K_SIZE_ macros, and added some
                    138:        preprocessor error checking on those macros.
                    139: 
                    140: Fri May 09 13:12:01 2003  Matthew Fredette  <[email protected]>
                    141: 
                    142:        * bus/multibus/3c400.c: Bulk change to no longer require bus connections to have a
                    143:        power-of-two width.  This is largely a name change, renaming
                    144:        address_mask to address_last, as nothing depended on the
                    145:        address_mask being all-bits-one.
                    146: 
                    147:        * bus/multibus/3c400.c (_tme_3c400_callout): Make buffer status values have the minimum
                    148:        Ethernet frame size.
                    149: 
                    150:        * generic/bus-device.c: Bulk change to no longer require bus connections to have a
                    151:        power-of-two width.  This is largely a name change, renaming
                    152:        address_mask to address_last, as nothing depended on the
                    153:        address_mask being all-bits-one.
                    154: 
                    155:        * generic/bus-el.c: Bulk change to no longer require bus connections to have a
                    156:        power-of-two width.  This is largely a name change, renaming
                    157:        address_mask to address_last, as nothing depended on the
                    158:        address_mask being all-bits-one.
                    159: 
                    160:        * generic/bus.c: Bulk change to no longer require bus connections to have a
                    161:        power-of-two width.  This is largely a name change, renaming
                    162:        address_mask to address_last, as nothing depended on the
                    163:        address_mask being all-bits-one.
                    164: 
                    165:        * host/posix/posix-memory.c: Bulk change to no longer require bus connections to have a
                    166:        power-of-two width.  This is largely a name change, renaming
                    167:        address_mask to address_last, as nothing depended on the
                    168:        address_mask being all-bits-one.
                    169: 
                    170:        * ic/am9513.c: Now include <stdio.h>, in case TME_AM9513_TRACK_INT_RATE is
                    171:        defined.
                    172: 
                    173:        * ic/am9513.c: Bulk change to no longer require bus connections to have a
                    174:        power-of-two width.  This is largely a name change, renaming
                    175:        address_mask to address_last, as nothing depended on the
                    176:        address_mask being all-bits-one.
                    177: 
                    178:        * ic/am9513.c: Under TME_AM9513_TRACK_INT_RATE, periodically report the
                    179:        interrupt rates achieved by the various timers.
                    180: 
                    181:        * ic/mm58167.c: Bulk change to no longer require bus connections to have a
                    182:        power-of-two width.  This is largely a name change, renaming
                    183:        address_mask to address_last, as nothing depended on the
                    184:        address_mask being all-bits-one.
                    185: 
                    186:        * ic/z8530.c: Bulk change to no longer require bus connections to have a
                    187:        power-of-two width.  This is largely a name change, renaming
                    188:        address_mask to address_last, as nothing depended on the
                    189:        address_mask being all-bits-one.
                    190: 
                    191:        * machine/sun2/sun2-mmu.c (_tme_sun2_m68k_tlb_fill): Because supervisor and user accesses
                    192:        go through different context registers, TLBs are generally only
                    193:        ever valid for the supervisor or the user, but not both.  Fixed
                    194:        a bug where a TLB for a user-visible page would be marked as good
                    195:        for the supervisor even if the mapping isn't the same in the
                    196:        system context.
                    197: 
                    198:        * tme/generic/bus-device.h: Bulk change to no longer require bus connections to have a
                    199:        power-of-two width.  This is largely a name change, renaming
                    200:        address_mask to address_last, as nothing depended on the
                    201:        address_mask being all-bits-one.
                    202: 
                    203:        * tme/generic/bus.h: Bulk change to no longer require bus connections to have a
                    204:        power-of-two width.  This is largely a name change, renaming
                    205:        address_mask to address_last, as nothing depended on the
                    206:        address_mask being all-bits-one.
                    207: 
                    208:        * tme/generic/ethernet.h: Now define TME_ETHERNET_CRC_SIZE.
                    209: 
                    210: Thu May 08 23:37:10 2003  Matthew Fredette  <[email protected]>
                    211: 
                    212:        * ic/m68k/m68k-insns-auto.sh: Fixed bugs, found by the verifier, in the SR and CCR immediate
                    213:        instructions.
                    214: 
                    215:        * ic/m68k/m68k-verify.c: Now keep a short ring of PCs verified.
                    216: 
                    217: Thu May 08 18:25:20 2003  Matthew Fredette  <[email protected]>
                    218: 
                    219:        * ic/z8530.c (_tme_z8530_intack): Changes to silence -Wuninitialized.
                    220:        * ic/m68k/Makefile.am: No longer define _TME_M68K_OPW_OK.
                    221:        * ic/m68k/m68k-execute.c: Changes to support verifying restarted instructions.
                    222:        * ic/m68k/m68k-impl.h: Fixed the definitions of the dummy tme_m68k_verify_ macros.
                    223:        * ic/m68k/m68k-impl.h: Now call tme_m68k_verify_end_branch inside TME_M68K_INSN_BRANCH.
                    224:        Added a unique identifier member to the sequence structure.
                    225:        Made a few functions take a const struct tme_m68k *.
                    226:        Made changes to the verifier to support verifying restarted
                    227:        instructions.
                    228: 
                    229:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug found by the verifier, where the movem
                    230:        instructions weren't following the EA discipline correctly
                    231:        and so would transfer to the wrong addresses after a
                    232:        restart.
                    233: 
                    234:        * ic/m68k/m68k-misc.c (tme_m68k_go_slow): Now take a const struct tme_m68k *.
                    235:        (tme_m68k_sequence_empty):
                    236:        (tme_m68k_sequence_fill): Made the argument that's supposed
                    237:        to be read-only const.  Under _TME_M68K_VERIFY, save and
                    238:        restore the sequence unique identifier.
                    239: 
                    240:        * ic/m68k/m68k-verify.c: Many changes to support verifying instructions that ended
                    241:        only after they were restarted because of one or more bus
                    242:        faults.
                    243: 
                    244: Thu May 08 13:35:43 2003  Matthew Fredette  <[email protected]>
                    245: 
                    246:        * ic/m68k/m68k-execute.c: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits.
                    247:        * ic/m68k/m68k-impl.h: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits.
                    248:        * ic/m68k/m68k-insns-auto.sh: In all memory access functions, added calls to the verifier.
                    249:        Fixed a bug in the divide routines, found by the verifier -
                    250:        the N flag in set based on the final small quotient, not on
                    251:        the big one.
                    252: 
                    253:        * ic/m68k/m68k-misc-auto.sh: Now define TME_M68K_IREG32_COUNT.
                    254:        * ic/m68k/m68k-misc.c: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits.
                    255:        * ic/m68k/m68k-verify.c: Added.
                    256: 
                    257: Wed May 07 02:35:17 2003  Matthew Fredette  <[email protected]>
                    258: 
                    259:        * generic/bus-el.c (_tme_bus_connections_new): Store the final bus interrupt
                    260:        signal number, not the raw ipl.
                    261: 
                    262:        * ic/z8530.c: Although I hate doing this, too many changes to go into
                    263:        detail.  Much work to support interrupt driven operation.
                    264: 
                    265:        * ic/z8530reg.h: Added definitions for RR3.
                    266:        * ic/m68k/m68k-impl.h: Fixed a serious bug in the TME_M68K_FLAG_SR definition
                    267:        that would zero part of the interrupt mask.
                    268: 
                    269:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug where negx wasn't preserving the Z flag if the
                    270:        result was zero.
                    271: 
                    272:        * machine/sun2/sun2-test.c (main): Fixed a bug where the zs0 ipl arg was getting lost.
                    273: 
                    274: Mon May 05 23:08:13 2003  Matthew Fredette  <[email protected]>
                    275: 
                    276:        * TODO: Updated.
                    277:        * generic/serial.c (tme_serial_buffer_copyout): Fixed a bug where if we were
                    278:        copying to a NULL buffer and the copyout wrapped in the
                    279:        ring buffer, we would do pointer arithmetic on the NULL.
                    280: 
                    281:        * ic/m68k/m68010.c (_tme_m68010_rte): Fixed a bug where we forgot to recover
                    282:        the group 0 function code and address for the cycle restart.
                    283:        Fixed a bug where we wouldn't reset to extract our internal
                    284:        state from the stack buffer.
                    285: 
                    286:        * ic/m68k/m68k-insns-auto.sh: Fixed several instructions that trap or do trap-like things
                    287:        to update PC to be the PC of the following instruction before
                    288:        trapping.
                    289:        (tme_m68k_read_mem): Fixed a memcpy direction bug.
                    290: 
                    291:        * ic/m68k/m68k-insns.c: Fixed several instructions that trap or do trap-like things
                    292:        to update PC to be the PC of the following instruction before
                    293:        trapping.
                    294: 
                    295:        * libtme/threads-sjlj.c (tme_sjlj_cond_notify): Fixed a bug where we would cancel
                    296:        a thread's wait condition instead of notifying the thread.
                    297: 
                    298:        * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Support the new expansive MMU PTE
                    299:        protections.
                    300: 
                    301:        * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge soft interrupts.
                    302:        (tme_machine_sun2_clock_new): Fixed a bug where we had the
                    303:        Timer 2 output miswired.
                    304: 
                    305:        * machine/sun2/sun2-mmu.c: Many changes to support the new full understanding of sun2
                    306:        PTE protections.
                    307: 
                    308:        * tme/machine/sun.h: Expanded on the generic PTE protections, to support the more
                    309:        expressive sun2 protections.
                    310: 
                    311: Sun May 04 22:26:01 2003  Matthew Fredette  <[email protected]>
                    312: 
                    313:        * ic/am9513.c (_tme_am9513_counters_disarm): Added.
                    314:        (_tme_am9513_th_timer): Try to avoid 32-bit integer overflow
                    315:        when calculating the sleep time.
                    316:        (_tme_am9513_bus_cycle): Now support the disarm timers command.
                    317: 
                    318:        * ic/mm58167.c: Changes to silence -Wuninitialized.
                    319:        * ic/mm58167.c: Added.
                    320:        * ic/z8530.c: Although I hate doing this, too much work to go into detail.
                    321:        Did more groundwork for eventually generating interrupts.
                    322: 
                    323:        * ic/m68k/m68k-execute.c: Now wrap the execute hook call in _TME_M68K_OPW_OK.
                    324:        * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug where the new
                    325:        ipl mask was put into the sr at the wrong position.
                    326: 
                    327:        * machine/sun2/sun2-mainbus.c (tme_machine_sun2_tod_new): Added.
                    328:        * machine/sun2/sun2-mmu.c (_tme_sun2_obbus_fault_handler): Removed.
                    329:        (_tme_sun2_bus_fault_handler):
                    330:        (_tme_sun2_obio_fault_handler):
                    331:        (_tme_sun2_obmem_fault_handler): Added.
                    332:        (_tme_sun2_multibus_fault_handler): Now just call
                    333:        _tme_sun2_bus_fault_handler.
                    334:        (_tme_sun2_tlb_fill_mmu): Use the new bus-specific
                    335:        fault handlers.
                    336: 
                    337:        * machine/sun2/sun2-test.c: Now create and connect the TOD chip.
                    338:        * tme/ic/Makefile.am: Updated.
                    339:        * tme/ic/mm58167.h: Added.
                    340: 
                    341: Sat May 03 19:27:07 2003  Matthew Fredette  <[email protected]>
                    342: 
                    343:        * TODO: Updated.
                    344:        * ic/m68k/m68k-execute.c: Fixed multiple bugs in the handling of brief EA extension words.
                    345:        * ic/m68k/m68k-insns-auto.sh: Fixed a bug where subx and addx didn't take the (previous) X
                    346:        flag into account when calculating flags.
                    347: 
                    348:        * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Now call _tme_sun2_ipl_check
                    349:        whenever the enable register is written.
                    350: 
                    351:        * machine/sun2/sun2-impl.h: Added macros for the enable register bits.
                    352:        * machine/sun2/sun2-mainbus.c (_tme_sun2_ipl_check): Added.
                    353:        (_tme_sun2_bus_signal): Now call _tme_sun2_ipl_check to update
                    354:        the ipl driven to the CPU.
                    355: 
                    356: Fri May 02 17:10:58 2003  Matthew Fredette  <[email protected]>
                    357: 
                    358:        * TODO: Updated.
                    359:        * acconfig.h: Added.
                    360:        * acinclude.m4: Added.
                    361:        * configure.in: Now check for minimum alignments.
                    362:        Now check for various headers and other things needed by the BSD code.
                    363: 
                    364:        * bus/Makefile.am: Added support for new components.
                    365:        * bus/multibus/3c400.c (_tme_3c400): Some changes to silence -Wuninitialized.
                    366:        * bus/multibus/3c400.c: Added.
                    367:        * bus/multibus/Makefile.am: Added.
                    368:        * generic/Makefile.am: Added support for new components.
                    369:        * generic/ethernet.c: Added.
                    370:        * host/Makefile.am: Added support for new components.
                    371:        * host/bsd/Makefile.am: Added.
                    372:        * host/bsd/bsd-bpf.c: Added.
                    373:        * host/bsd/bsd-if.c: Added.
                    374:        * host/posix/posix-serial.c: Fixed some indentation, and one 0 to a TME_OK.
                    375:        * ic/am9513.c (_tme_am9513_counters_load):
                    376:        (_tme_am9513_counters_arm): Added.
                    377:        (_tme_am9513_th_timer): Try to avoid multiplication overflow
                    378:        when calculating the number of basic ticks that have elapsed.
                    379:        Try to handle armed and unarmed counters correctly.
                    380:        (_tme_am9513_bus_cycle): Now load and arm counters correctly.
                    381:        (tme_ic_am9513_new): Calculate the number of basic ticks in
                    382:        a millisecond for the benefit of the timer thread.
                    383: 
                    384:        * ic/m68k/m68010.c (_tme_m68010_rte): tme_m68k_rte_finish no longer touches the
                    385:        sequence at all, so before calling it make sure the sequence
                    386:        is exactly what it's supposed to be.
                    387: 
                    388:        * ic/m68k/m68k-execute.c: In the fast executor, assert that the ITLB entry allows fast
                    389:        reading for the current PC or that the PC is one greater than
                    390:        the last address covered by the entry.  Fixed the fast-fetch-failed
                    391:        code to more correctly simulate a group 0 exception and associated
                    392:        RTE.
                    393: 
                    394:        * ic/m68k/m68k-insns-auto.sh: Cleaned up and fixed the code generated for cmpm, addx, and subx.
                    395:        At least, cmpm wasn't getting its address registers postincremented,
                    396:        and addx and subx weren't treating the Z flag properly.
                    397:        In the fetch insns, take the address to fetch from as an argument,
                    398:        instead of using the real ic->tme_m68k_ireg_pc with tme_m68k_read
                    399:        (which could actually update it, if recovering from a group 0
                    400:        exception!)
                    401: 
                    402:        * ic/m68k/m68k-misc-auto.sh: The slow-executor fetch macros now call the fetch insns with the
                    403:        PC to fetch from.
                    404: 
                    405:        * ic/m68k/m68k-misc.c (tme_m68k_rte_finish): No longer do anything with the sequence
                    406:        at all, just redispatch it.
                    407:        (tme_m68k_sequence_fill): Now set the sequence next-transfer to
                    408:        one, to force a restart in case later code doesn't.
                    409:        (tme_m68k_insn_buffer_xfer): The insn buffer is kept in host
                    410:        byte order, not big-endian byte order.
                    411: 
                    412:        * libtme/threads-sjlj.c: No longer track and relock a mutex that was held when
                    413:        tme_sjlj_cond_wait_yield was called; the thread itself
                    414:        will relock the mutex when it is restarted.
                    415: 
                    416:        * machine/sun2/Makefile.am: Now build and link against the Multibus and BSD libraries.
                    417:        * machine/sun2/sun2-test.c (tme_memdup): Added.
                    418:        (connect_elements): Now start the new convention of initializing
                    419:        the new-connections lists to NULL and letting the new-connections
                    420:        functions add elements incrementally.
                    421:        (main): Now create the ec0 and bpf0 elements and add them to the
                    422:        machine.
                    423: 
                    424:        * tme/common.h: Added a macro for tme_dup and a prototype for tme_memdup.
                    425:        * tme/connection.h: Now define TME_CONNECTION_ETHERNET.
                    426:        * tme/threads.h: Fixed a bug where the tme_thread_write macro was defined to
                    427:        be the read syscall.
                    428: 
                    429:        * tme/generic/Makefile.am: Added support for new components.
                    430:        * tme/generic/ethernet.h: Added.
                    431: 
                    432: Tue Apr 29 20:28:05 2003  Matthew Fredette  <[email protected]>
                    433: 
                    434:        * AUTHORS: Added.
                    435:        * COPYING: Added.
                    436:        * NEWS: Added.
                    437:        * README: Added.
                    438:        * generic/bus-device.c: In all connections_new functions, add the new connection
                    439:        possibilities to the list rooted at *_conns, instead of
                    440:        always replacing the list.
                    441: 
                    442:        * generic/bus-el.c: In all connections_new functions, add the new connection
                    443:        possibilities to the list rooted at *_conns, instead of
                    444:        always replacing the list.
                    445: 
                    446:        * generic/bus-el.c: Changes to silence -Wuninitialized.
                    447:        * generic/serial.c: Removed all instances of gen- in comments.
                    448:        * host/posix/posix-memory.c: Changes to silence -Wuninitialized.
                    449:        * host/posix/posix-serial.c: In all connections_new functions, add the new connection
                    450:        possibilities to the list rooted at *_conns, instead of
                    451:        always replacing the list.
                    452: 
                    453:        * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Fixed bugs in scanning the input
                    454:        for various escape-like sequences, especially for the escaped
                    455:        break signal.
                    456: 
                    457:        * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Simplified the code that decides
                    458:        to call out that we are readable.
                    459:        (_tme_posix_serial_ctrl): Always try to call out reads if the
                    460:        connection says it's readable, even if we already knew that.
                    461:        (_tme_posix_serial_read): Fixed a bug where we would clear
                    462:        everything *except* TME_SERIAL_CTRL_OK_READ, instead of clearing
                    463:        only that bit.
                    464:        (tme_host_posix_serial_new): Return EINVAL on bad arguments.
                    465: 
                    466:        * ic/Makefile.am: Now define DIST_SUBDIRS.
                    467:        * ic/am9513.c: Changes to silence -Wuninitialized.
                    468:        * ic/z8530.c: In all connections_new functions, add the new connection
                    469:        possibilities to the list rooted at *_conns, instead of
                    470:        always replacing the list.
                    471: 
                    472:        * ic/z8530.c (_tme_z8530_callout): Fixed a bug where we would use an uninitialized
                    473:        chan variable to find WR9, which actually only exists in channel A
                    474:        anyways.
                    475:        (_tme_z8530_ctrl): Now always try to call out reads if the connection
                    476:        says it's readable.
                    477: 
                    478:        * ic/m68k/m68k-execute.c: Changes to silence -Wuninitialized.
                    479:        * ic/m68k/m68k-insns-auto.sh: Changes to silence -Wuninitialized.
                    480:        * ic/m68k/m68k-insns.c: Changes to silence -Wuninitialized.
                    481:        * ic/m68k/m68k-misc.c: In all connections_new functions, add the new connection
                    482:        possibilities to the list rooted at *_conns, instead of
                    483:        always replacing the list.
                    484: 
                    485:        * libtme/threads-sjlj.c: Wrap all of the rwlock operations in !TME_NO_DEBUG_LOCKS.
                    486:        (tme_sjlj_threads_run): Changes to silence -Wuninitialized.
                    487: 
                    488:        * machine/sun2/sun2-mainbus.c: In all connections_new functions, add the new connection
                    489:        possibilities to the list rooted at *_conns, instead of
                    490:        always replacing the list.
                    491: 
                    492:        * machine/sun2/sun2-mainbus.c: Changes to silence -Wuninitialized.
                    493:        * tme/Makefile.am: Now install roughly the correct files into the correct place.
                    494:        * tme/atomics.h: Fixed a bug where TME_ATOMIC_POINTER_TYPE was adding an extra *.
                    495:        * tme/element.h: Fixed bugs in the TME_NO_LOG versions of TME_LOG_X and TME_LOG_FINISH.
                    496:        * tme/generic/Makefile.am: Now install roughly the correct files into the correct place.
                    497:        * tme/generic/serial.h: Removed all instances of gen- in comments.
                    498: 
                    499: Tue Apr 29 02:47:30 2003  Matthew Fredette  <[email protected]>
                    500: 
                    501:        * TODO: Updated.
                    502:        * generic/bus-device.c: Support the new generic bus signal interface.
                    503:        (tme_bus_device_connection_score):
                    504:        (tme_bus_device_connection_make):
                    505:        (tme_bus_device_connection_break): These are now public.
                    506: 
                    507:        * generic/bus-el.c: Added support for the new generic bus signal interface.
                    508:        (_tme_bus_line_raise): Removed.
                    509:        (_tme_bus_signal):
                    510:        (_tme_bus_intack): Added.
                    511: 
                    512:        * generic/serial.c: Removed all uses of TME_ATOMIC.
                    513:        (tme_serial_buffer_copyout): Fixed a bug where we would
                    514:        overwrite data_flags with -1 early, resulting in our
                    515:        returning no data.
                    516: 
                    517:        * host/posix/posix-serial.c: Too much work to go into detail.  Everything is at least
                    518:        sketched out.
                    519: 
                    520:        * ic/am9513.c (_tme_am9513_callout):
                    521:        (_tme_am9513_th_timer): Added.
                    522:        (_tme_am9513_bus_cycle): Now properly handle the
                    523:        Clear Toggle Output command, and log it correctly.
                    524:        Lock the new mutex on entry, call _tme_am9513_callout
                    525:        if needed before exit, and unlock the mutex on exit.
                    526:        (tme_ic_am9513_new): Start the new timer thread.
                    527: 
                    528:        * ic/z8530.c: Too many changes to go into detail.  Highlights include
                    529:        a real bus cycle handler, real channels, real serial
                    530:        connections, real threads.  Everything seems to be at
                    531:        least sketched out.
                    532: 
                    533:        * ic/z8530reg.h: Added.
                    534:        * ic/m68k/m68k-execute.c: Fixed a bug where we were using the return value of
                    535:        tme_mutex_trylock as a truth value.
                    536: 
                    537:        * ic/m68k/m68k-misc.c: Changed to support the new generic bus signal interface
                    538:        and the new m68k bus interrupt interface.
                    539: 
                    540:        * libtme/threads-sjlj.c (tme_sjlj_threads_run): Fixed a bug where we wouldn't lock
                    541:        the mutex before returning from a condition wait.  Fixed
                    542:        a bug where we would block in select(2) instead of calling
                    543:        it with a zero timeout.
                    544:        (tme_sjlj_cond_wait_yield): Remember the mutex the thread
                    545:        had locked so it can be relocked when the thread resumes.
                    546:        (tme_sjlj_select_yield): Fixed bugs where we would treat
                    547:        the nfds argument as the maximum fd, instead of the maximum
                    548:        fd plus one.  Fixed a bug where we couldn't handle NULL
                    549:        descriptor sets.
                    550:        (tme_sjlj_read_yield):
                    551:        (tme_sjlj_write_yield):
                    552:        (tme_sjlj_read_yield):
                    553:        (tme_sjlj_rwlock_init):
                    554:        (tme_sjlj_rwlock_lock):
                    555:        (tme_sjlj_rwlock_unlock): Added.
                    556: 
                    557:        * machine/sun2/sun2-impl.h: Now track the interrupts asserted in the system, and the
                    558:        last ipl asserted to the CPU.
                    559: 
                    560:        * machine/sun2/sun2-mainbus.c (_tme_sun2_line_reset):
                    561:        (_tme_sun2_line_halt):
                    562:        (_tme_sun2_line_interrupt): Removed.
                    563:        (_tme_sun2_bus_signal):
                    564:        (_tme_sun2_bus_intack): Added.
                    565:        (_tme_sun2_power): Use the generic bus signal interface
                    566:        to reset everything.
                    567:        (tme_machine_sun2_clock_new): Store how the Am9513 output
                    568:        pins are connected to bus interrupt lines.
                    569: 
                    570:        * machine/sun2/sun2-mmu.c (_tme_sun2_multibus_fault_handler): Added a hack to avoid
                    571:        an mbmem bus error when accessed through virtual 0xffffffff,
                    572:        which apparently happens in the PROM NMI routine when it
                    573:        polls the keyboard, even if it didn't probe a keyboard.
                    574: 
                    575:        * machine/sun2/sun2-test.c: Updated.
                    576:        * tme/element.h: Fixed various const to _tme_const.
                    577:        * tme/threads.h: Redid the setjmp/longjmp rwlock operations.
                    578:        Added various new function prototypes and macros.
                    579: 
                    580:        * tme/generic/bus-device.h: Support the new generic bus signal interface.
                    581:        The tme_bus_device_connection_score, tme_bus_device_connection_make,
                    582:        and tme_bus_device_connection_break functions are now public.
                    583:        Fixed a const to _tme_const.
                    584: 
                    585:        * tme/generic/bus.h: Added the new generic bus signal and interrupt acknowledge
                    586:        interfaces.  Fixed various const to _tme_const.
                    587: 
                    588:        * tme/generic/serial.h: Now define TME_SERIAL_CTRL_OK_READ.
                    589:        Removed the write method from a serial connection.  All
                    590:        data transfer happens with reads, with control signals
                    591:        to indicate when reads are OK.
                    592:        Removed the TME_ATOMIC use in struct tme_serial_buffer.
                    593:        (tme_serial_buffer_is_empty):
                    594:        (tme_serial_buffer_is_full): Added.
                    595: 
                    596:        * tme/ic/am9513.h: struct tme_am9513_socket now holds the basic clock provided
                    597:        to the chip, and a mapping of its output pins to bus signals.
                    598:        Fixed a const to _tme_const.
                    599: 
                    600:        * tme/ic/m68k.h: Now define some m68k IPL constant macros.
                    601:        Add the new m68k bus interrupt method.
                    602:        Fixed various const to _tme_const.
                    603: 
                    604:        * tme/ic/z8530.h: Made the channel letters lowercase in structure member names.
                    605:        Fixed a const to _tme_const.
                    606: 
                    607: Sat Apr 26 21:14:29 2003  Matthew Fredette  <[email protected]>
                    608: 
                    609:        * Makefile.am: Added.
                    610:        * TODO: Added.
                    611:        * configure.in: Added.
                    612:        * bus/Makefile.am: Updated.
                    613:        * bus/bus-device.c: Removed.
                    614:        * bus/bus.c: Removed.
                    615:        * generic/Makefile.am: Added.
                    616:        * generic/bus-device.c: Added.
                    617:        * generic/bus-el.c: Added.
                    618:        * generic/bus.c: Added.
                    619:        * generic/serial.c: Added.
                    620:        * host/posix/Makefile.am: Updated.
                    621:        * host/posix/memory.c: Renamed to posix-memory.c.
                    622:        * host/posix/posix-memory.c: Added.
                    623:        * host/posix/posix-serial.c: Added.
                    624:        * ic/am9513.c: Added.
                    625:        * ic/z8530.c: Added.
                    626:        * ic/i386/i386-decode.c: Added.
                    627:        * ic/i386/i386-misc-auto-make.sh: Added.
                    628:        * ic/i386/i386-opmaps-make.sh: Added.
                    629:        * ic/i386/i386-save.c: Added.
                    630:        * ic/i386/i386-uinsns-auto-make.sh: Added.
                    631:        * ic/i386/i386-uinsns.c: Added.
                    632:        * ic/i386/i386.h: Added.
                    633:        * ic/m68k/Makefile.am: Updated.
                    634:        * ic/m68k/m68k-execute.c: Under _TME_M68K_EXECUTE_FAST, at the beginning of each
                    635:        instruction we do have to check if our ITLB has been invalidated,
                    636:        as it might have been by some random (control) memory cycle
                    637:        we just did.
                    638:        Fixed bugs in the predecrement and postincrement EA handlers.
                    639: 
                    640:        * ic/m68k/m68k-impl.h: Now include <tme/generic/ic.h>.
                    641:        * ic/m68k/m68k-impl.h: Added support for logging.
                    642:        * ic/m68k/m68k-insns-auto.sh: Fixed a serious movem bug where we would start at bit 1
                    643:        in the mask, and not bit 0.
                    644:        In all memory transfer functions, log the transfer.
                    645:        Made the bus cycle functions "work correctly".
                    646:        Fixed bugs in the generated divide instructions.
                    647: 
                    648:        * ic/m68k/m68k-insns.c (tme_m68k_swap): Fixed a bug where this wouldn't work on
                    649:        big-endian systems.
                    650:        (tme_m68k_link):
                    651:        (tme_m68k_unlk): Fixed serious bugs where we simply didn't
                    652:        do what these instructions are supposed to do.
                    653: 
                    654:        * ic/m68k/m68k-iset.txt: On the 68010 and up, the move_from_sr and move_from_ccr
                    655:        instructions don't read memory before writing it.
                    656:        Fixed bugs in the encoding of the register bit-shifting
                    657:        with a register count instructions.
                    658: 
                    659:        * ic/m68k/m68k-misc.c (tme_m68k_idle): Use the renamed tme_cond_wait_yield function.
                    660:        (tme_m68k_new): Store the element in the IC.
                    661:        (tme_m68k_go_slow): Use the TME_M68K_TLB_OK_FAST_READ to check
                    662:        for a bad TLB entry.
                    663:        (tme_m68k_exception_process): Don't insist on there being
                    664:        exceptions to process.  CPU-specific exception processors
                    665:        may handle them all, yet still use this function to redispatch.
                    666:        (_tme_m68k_execute_hook): Added.
                    667: 
                    668:        * libtme/threads-sjlj.c (_tme_sjlj_then):
                    669:        (_tme_sjlj_timeout):
                    670:        (tme_sjlj_sleep_yield):
                    671:        (tme_sjlj_select_yield): Added.
                    672:        (tme_sjlj_threads_run): Cleaned up the threads dispatcher to
                    673:        support threads waiting on classic select(2) fd sets,
                    674:        (tme_sjlj_cond_wait_yield): Renamed from tme_sjlj_cond_wait.
                    675:        (tme_sjlj_sleep): This function no longer yields.
                    676: 
                    677:        * machine/Makefile.am: Updated.
                    678:        * machine/sun/Makefile.am: Updated.
                    679:        * machine/sun/sun-mmu.c: Added some logging.
                    680:        Disabled the explicit SEGINV support, for now.  It appears that
                    681:        the hardware MMU doesn't have a notion of an invalid PMEG.
                    682:        Now call the post-MMU TLB fillers with the PTE struct and the
                    683:        virtual address.
                    684: 
                    685:        * machine/sun2/Makefile.am: Updated.
                    686:        * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Don't bother to fill the
                    687:        segmap register unless this is a read.
                    688: 
                    689:        * machine/sun2/sun2-impl.h: Now include <tme/generic/ic.h>.
                    690:        * machine/sun2/sun2-impl.h: Now include <tme/generic/bus.h>.
                    691:        Added some support for logging.
                    692: 
                    693:        * machine/sun2/sun2-mainbus.c: Added some support for logging.
                    694:        (tme_machine_sun2_clock_new):
                    695:        (tme_machine_sun2_zs_new): Added.
                    696: 
                    697:        * machine/sun2/sun2-mmu.c: Too much to go into detail.  Highlights:
                    698:        Added some logging support.
                    699:        Made the bus error behavior more correct.  On the sun2,
                    700:        obio and obmem don't generate bus errors.  Now the post-MMU
                    701:        TLB filler takes the original PTE entry and the original
                    702:        virtual address.
                    703: 
                    704:        * machine/sun2/sun2-test.c: Updated.
                    705:        * tme/bus-device.h: Removed.
                    706:        * tme/bus.h: Removed.
                    707:        * tme/connection.h: Now define TME_CONNECTION_SERIAL.
                    708:        * tme/element.h: Added logging support.
                    709:        * tme/ic.h: Removed.
                    710:        * tme/ic.h: Now include <tme/generic/bus.h>
                    711:        * tme/threads.h: Defined more of the tme threads API.
                    712:        * tme/generic/Makefile.am: Added.
                    713:        * tme/generic/bus-device.h: Added.
                    714:        * tme/generic/bus.h: Added.
                    715:        * tme/generic/ic.h: Added.
                    716:        * tme/generic/serial.h: Added.
                    717:        * tme/ic/am9513.h: Added.
                    718:        * tme/ic/m68k.h: Now include <tme/generic/bus.h>.
                    719:        * tme/ic/z8530.h: Added.
                    720:        * tme/machine/sun.h: Added support for logging.
                    721:        Changed the interface to pass the whole PTE struct to the post-MMU
                    722:        TLB fillers.
                    723: 
                    724: Sat Apr 26 14:44:07 2003  Matthew Fredette  <[email protected]>
                    725: 
                    726:        * bus/bus.c (tme_bus_cycle_xfer): Fixed a bug where we used cycle_writer to
                    727:        get the reader's port size.  When indexing bus router arrays, we
                    728:        have to subtract out the participant's least port lane, since
                    729:        the arrays don't include information for lanes not connected
                    730:        to the participant.
                    731: 
                    732: Wed Apr 23 19:29:33 2003  Matthew Fredette  <[email protected]>
                    733: 
                    734:        * bus/Makefile.am: Added.
                    735:        * bus/bus-device.c: Added.
                    736:        * bus/bus.c: Added.
                    737:        * host/Makefile.am: Added.
                    738:        * host/posix/Makefile.am: Added.
                    739:        * host/posix/memory.c: Added.
                    740:        * ic/Makefile.am: Added.
                    741:        * ic/m68k/m68010.c (_tme_m68010_exception):
                    742:        (_tme_m68010_rte): Added.
                    743: 
                    744:        * ic/m68k/m68k-bus-auto.sh: Now generates the combined input/output bus routers.
                    745:        * ic/m68k/m68k-execute.c: Although I hate doing this, "too many changes to list."
                    746:        * ic/m68k/m68k-impl.h: Added.
                    747:        * ic/m68k/m68k-insns-auto.sh: Some minor copyright and cosmetic fixes.
                    748:        Updated the bus cycle functions to support the latest
                    749:        generic bus cycle idea.
                    750: 
                    751:        * ic/m68k/m68k-insns.c: Although I hate doing this, "too many changes to list."
                    752:        * ic/m68k/m68k-iset-expand.pl: When the EA is an immediate, just emit the immediate information
                    753:        and skip the EA information - we don't want to use the EA path
                    754:        in this case.
                    755: 
                    756:        * ic/m68k/m68k-iset.txt: moveq is now its own insn.
                    757:        * ic/m68k/m68k-misc-auto.sh: Copyright sweep.
                    758:        * ic/m68k/m68k-misc.c: Although I hate doing this, "too many changes to list."
                    759:        * ic/m68k/m68k-opmap-make.pl: Fixed some random bugs, and correctly handle the case where EA and
                    760:        immediate operand must be undefined for a pattern, to avoid using
                    761:        the EA and immediate operand in any root entry.
                    762: 
                    763:        * ic/m68k/m68k.h: Removed.
                    764:        * libtme/Makefile.am: Added.
                    765:        * libtme/threads-sjlj.c: Added.
                    766:        * machine/sun/Makefile.am: Added.
                    767:        * machine/sun/sun-mmu.c: Added.
                    768:        * machine/sun2/Makefile.am: Added.
                    769:        * machine/sun2/sun2-control.c: Added.
                    770:        * machine/sun2/sun2-impl.h: Added.
                    771:        * machine/sun2/sun2-mainbus.c: Added.
                    772:        * machine/sun2/sun2-mmu.c: Added.
                    773:        * machine/sun2/sun2-test.c: Added.
                    774:        * tme/Makefile.am: Added.
                    775:        * tme/atomics.h: Added.
                    776:        * tme/bus-device.h: Added.
                    777:        * tme/bus.h: Added.
                    778:        * tme/common.h: Added.
                    779:        * tme/connection.h: Added.
                    780:        * tme/element.h: Added.
                    781:        * tme/ic.h: Added.
                    782:        * tme/threads.h: Added.
                    783:        * tme/ic/Makefile.am: Added.
                    784:        * tme/ic/m68k.h: Added.
                    785:        * tme/machine/Makefile.am: Added.
                    786:        * tme/machine/sun.h: Added.
                    787: 
                    788: Sun Apr 20 21:33:05 2003  Matthew Fredette  <[email protected]>
                    789: 
                    790:        * ic/m68k/m68k-bus-auto.sh: Added.
                    791: 
                    792: Fri Apr 18 04:56:36 2003  Matthew Fredette  <[email protected]>
                    793: 
                    794:        * ic/m68k/m68k-insns-auto.sh: Added support for generating the moveq32 insn.
                    795:        Cleaned up and fixed some bugs in the bus cycle functions.
                    796: 
                    797:        * ic/m68k/m68k-misc-auto.sh: Cleaned up the set of registers that we define.
                    798:        Added better locking support to the instruction fetch macros.
                    799: 
                    800: Tue Apr 15 13:32:37 2003  Matthew Fredette  <[email protected]>
                    801: 
                    802:        * ic/m68k/m68k-insns-auto.sh: Unfortunately, too much work to list in detail.  Improved the
                    803:        arithmetic function flag-setting code to compile well on i386
                    804:        with gcc -O2.  Added many special-purpose memory read and write
                    805:        functions, and finally introduced the general bus-cycle read
                    806:        and write functions.  Added many new instructions, including
                    807:        multiply and divide.
                    808: 
                    809: Sat Apr 05 18:47:38 2003  Matthew Fredette  <[email protected]>
                    810: 
                    811:        * machine/Makefile.am: Added.
                    812: 
                    813: Tue Apr 01 20:13:07 2003  Matthew Fredette  <[email protected]>
                    814: 
                    815:        * ic/m68k/Makefile.am: Build decoders for the 68000, 68010, and 68020.
                    816:        * ic/m68k/m68k-iset-expand.pl: Added a very basic preprocessor to support generating
                    817:        different instruction sets for different CPUs.
                    818:        Now whenever an instruction wants the EA, its operand
                    819:        is eax.32 even if the known EA is address register indirect.
                    820: 
                    821:        * ic/m68k/m68k-iset.txt: This should be the complete integer instruction set for the
                    822:        68000, 68010, 68020, and 68030.
                    823: 
                    824:        * ic/m68k/m68k-opmap-make.pl: Added comments, and reworked to support compiling instruction
                    825:        sets for different CPUs together, reusing submaps and opcode
                    826:        maps whenever possible.
                    827: 
                    828:        * ic/m68k/m68k.h: Before the -impl.h split.
                    829: 
                    830: Sun Mar 30 22:04:15 2003  Matthew Fredette  <[email protected]>
                    831: 
                    832:        * ic/m68k/Makefile.am: Added.
                    833:        * ic/m68k/m68010.c: Added.
                    834:        * ic/m68k/m68k-execute.c: Added.
                    835:        * ic/m68k/m68k-insns-auto.sh: Added.
                    836:        * ic/m68k/m68k-insns.c: Added.
                    837:        * ic/m68k/m68k-iset-expand.pl: Added.
                    838:        * ic/m68k/m68k-iset.txt: Added.
                    839:        * ic/m68k/m68k-misc-auto.sh: Added.
                    840:        * ic/m68k/m68k-misc.c: Added.
                    841:        * ic/m68k/m68k-opmap-make.pl: Added.
                    842:        * ic/m68k/m68k.h: Added.
                    843: 
                    844: Sun Mar 30 22:04:15 2000  Matthew Fredette  <[email protected]>
                    845: 
                    846:        * Dummy entry.

unix.superglobalmegacorp.com

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