{"push_id":1136482527,"size":74,"distinct_size":74,"ref":"refs/heads/chap_midi","head":"90620a776acbc32684ea4787b1806abab1c89287","before":"1c95047dc1d082edf255aea42fa4921b28c86193","commits":[{"sha":"c8a19b449185e07c8d136c752669f2a49fe481b9","author":{"name":"yamt","email":"a0466dd7fdc9946f1c585e7c40d72d403fcfb645"},"message":"- fix compilation problem for !NFSSERVER && NFS.\n  pointed by Tom Spindler on source-changes@.\n- make nfs_srvdesc_pool static.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/c8a19b449185e07c8d136c752669f2a49fe481b9"},{"sha":"55bba4fa15e4469b288908ebd0f69f87377371e6","author":{"name":"tsutsui","email":"dde63783fae4da5675678c2882a74dd6c6116529"},"message":"Use macro defined in <dev/ic/i8259reg.h>. Same binaries are generated.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/55bba4fa15e4469b288908ebd0f69f87377371e6"},{"sha":"e529d550c3f6e64e6f5d46fc8d6e72e5ed455ff0","author":{"name":"christos","email":"ed6c5d928e3107b47c49d48b68d60a7cf30d32ff"},"message":"Sprinkle static, pass lib, warns=4","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/e529d550c3f6e64e6f5d46fc8d6e72e5ed455ff0"},{"sha":"8e75ad56c0a4c62cd1e2b229c46fa54f6951a5cd","author":{"name":"yamt","email":"a0466dd7fdc9946f1c585e7c40d72d403fcfb645"},"message":"UVM_MAPFLAG: add missing parens.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/8e75ad56c0a4c62cd1e2b229c46fa54f6951a5cd"},{"sha":"35474697e8d8dca77f83dca63740b481c5d6eafc","author":{"name":"pavel","email":"2ffb3452d05be47bec1e4f2110256f72ec964fb9"},"message":"Do not warn that Ultra160 controllers are limited to 80MB/s. My AHA 29160\nworks in the Ultra160 mode:\n\nahc0 at pci0 dev 6 function 0: Adaptec 29160 Ultra160 SCSI adapter\nahc0: interrupting at eb164 irq 0\nahc0: aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs\nscsibus1 at ahc0: 16 targets, 8 luns per target\nsd1 at scsibus1 target 0 lun 0: <SEAGATE, ST336607LW, 0007> disk fixed\nsd1: sync (12.50ns offset 63), 16-bit (160.000MB/s) transfers, tagged queueing\nsd2 at scsibus1 target 8 lun 0: <SEAGATE, ST336607LW, 0007> disk fixed\nsd2: sync (12.50ns offset 63), 16-bit (160.000MB/s) transfers, tagged queueing\n\n(Those two drives can read at a speed of 64 MB/s each, in parallel.)\n\nBump date.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/35474697e8d8dca77f83dca63740b481c5d6eafc"},{"sha":"109220dc77a01153ef283b28a49bc2ff6d7f7a09","author":{"name":"christos","email":"ed6c5d928e3107b47c49d48b68d60a7cf30d32ff"},"message":"Coverity CID 3147: Plug memory leak.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/109220dc77a01153ef283b28a49bc2ff6d7f7a09"},{"sha":"8db2f17b34a123eb604d4f88944a395641da102a","author":{"name":"christos","email":"ed6c5d928e3107b47c49d48b68d60a7cf30d32ff"},"message":"Coverity CI D3758: Plug memory leak.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/8db2f17b34a123eb604d4f88944a395641da102a"},{"sha":"799009537939d73acb51642277bdd1fd7e49b9b9","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Initial commit of new midi.4, pre-wizd.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/799009537939d73acb51642277bdd1fd7e49b9b9"},{"sha":"b5c13f60115304100ecc23948bfaf66c3161f326","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Now with all .Xr values fully qualified. This still seems awkward to me\nbut is required for maximum wizd(8) compatibility, and the alternative\nof using .Fn selects the wrong font, which looks even worse.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/b5c13f60115304100ecc23948bfaf66c3161f326"},{"sha":"5aa873f6b5befa58ce0072ad26d5a273d05ed955","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Now for Phase One. The patches to be applied in sequence were created\nand tested against 2.0 sources. To begin, let CVS roll the affected files\nback to that historic state. The reverse operation will be used (and\nwill involve some manual merging) after the patches have been applied.\nNaturally, intermediate stages on this branch will not be directly\ncompilable (unless merged into a 2.0 checkout).","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/5aa873f6b5befa58ce0072ad26d5a273d05ed955"},{"sha":"5c4fddffc08428f55a376546cb1cd5730b3687cb","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Applies fuzz-free to 2.0 sources; adds support for Midiman Midisport 2x4.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/5c4fddffc08428f55a376546cb1cd5730b3687cb"},{"sha":"21c0f0a24f623be5df8e7624a39e5af634b4daf2","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Had output and input working in 1.6.2, but managed to lose input in\nadapting the patch to 2.0.  Now it's back.  TODO: find out if there's\na way to improve input response (size of simultaneous chords that can\nbe played without dropping data) - perhaps by increasing the size of\nthe endpoint's xfer buffer, or learning something more about the usb\ninterrupt transfers.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/21c0f0a24f623be5df8e7624a39e5af634b4daf2"},{"sha":"bbe59aea9749bbc6b869b1aa584d472ec4f515bb","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Changing the input logic to use wMaxPacketSize transfers instead of\n4 bytes may have nailed the input data loss problem; it seems rock\nsolid now. This patch is against 2.0 sources but there's been so\nlittle CVS activity on those files it should be easy to apply.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/bbe59aea9749bbc6b869b1aa584d472ec4f515bb"},{"sha":"022c567080ff52cce48d0ec156b7edf3c2cd4013","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Replaces the state machine in midi.c with a full, pedantically correct,\nerror detecting one. Rearranges some DPRINTFN debug levels to make it\neasier to get the level of debug information wanted. Applies to 2.0.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/022c567080ff52cce48d0ec156b7edf3c2cd4013"},{"sha":"8568b44067ff550931d36245b044a832e326eee1","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Fixes a bug in midi_unit_count.\n\nDropped byte and message counters now use evcnt.\n\nMy state machine could treat an invalid SystemCommon message or out-of-\nsequence EndSysex (all protocol errors anyway) as /mishandled/ protocol\nerrors if encountered in certain states. Fixed.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/8568b44067ff550931d36245b044a832e326eee1"},{"sha":"de9cbc445d511dd1a6abe99ff029e64a18ddf9b3","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Take open modes seriously: do not write if not open for writing, or read\nif not open for reading, or if the midi device cannot read. In sequencer,\nopen only the midi devices that support at least one of the open modes\nwanted; so, if the sequencer is opened for reading only, do not bother\nopening midi devices that cannot input. Do not write anything to the\nmidi devices if opened for reading only; seq_reset previously wrote a\nbunch of initial settings, which could lead to long timeouts in seq_drain\non close because of data in the output buffer that could not go anywhere.\n\nTODO: sending initial settings is the less important thing for seq_reset\nto do; the most important is to reset the buffers so the playing stops!\nAt present, it doesn't do that at all.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/de9cbc445d511dd1a6abe99ff029e64a18ddf9b3"},{"sha":"327600a73b54fcbd189c9bbabd53267131340d66","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Implement Active Sense on transmit. The same callout used by\nmidi_start_output for brief delays in output is now also scheduled\nfor 285 ms if there is nothing to transmit, and will send an Active Sense\nat that time if there is nothing else to go; this will keep the receiving\nequipment expecting our Active Sense and ensure that notes will stop\nsounding when it ceases (either because we close normally, or we hang,\nor someone trips over a cable). Sounds simple enough but involved a new\nlocking strategy, because we used to block out user_incurred start_output\nwhenever the device interrupt or callout was pending, but in the case of\nthe 285ms callout we /want/ to let a user write through and cancel the\ncallout (and avoid races, etc).  Also moved the callout_init into\nmidi_attach because midiattach was not called in all cases, and added\na callout_stop in detach (though it is not yet quite up to all cases where\nthe callout may have been fired but not yet run at the time of detach -\nnothing is easy.)\n\nSurprisingly, the Active Sense works almost right over umidi: umidi's\nstate machine isn't smart enough to pass it through a packet being built,\nand makes garbage instead, but a Yamaha keyboard at least is happy to\naccept a bit of garbage within 300 ms as a sign we're still alive. :)\n\nNow to go do a better state machine for output. :/  It shouldn't be in\numidi; it should be in midi, done once and done right; there should be\nno need to have slightly different replicas of the midi state machine\nall over the kernel ... I think there's one in sequencer too.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/327600a73b54fcbd189c9bbabd53267131340d66"},{"sha":"98e565930c0d8e7d24ed2e07154eade4dc61fb8d","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Receive dfa factored out and made usable for both receive and transmit.\nSo far so good.  Now to rewire transmit to use it.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/98e565930c0d8e7d24ed2e07154eade4dc61fb8d"},{"sha":"775ac2f5f33efe7f14dd87eb79b783a464cfa409","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"The DFA (well, technically it's really a FST - a DFA with output) is now\nused for transmit as well as receive; it's run at the upstream end of\neach pipe (the receive interrupt for receive, the write call for transmit)\nso that protocol errors can be detected as soon as possible, and erroneous\ndata won't fill the buffer. Implemented a guarantee that read(2) on the\nraw device returns as many complete messages as will fit in the read\nrequest, so the user program does not have to parse around read boundaries\n(except for SysEx). Required a new buffer scheme that preserves message\nboundaries. (A little like reinventing STREAMS, hmm...) Implemented\nFIONREAD. New approach to sharing the cpu during output to interrupt-\nchallenged devices.\n\numidi happens to work now even in the presence of Active Sense, as the\ntransmit FST ensures the Active Sense doesn't appear in the midst of\nanother message, and right now the FST is always in canonicalizing mode\nso there is no running status to disturb. That's half accident though, and\ndoesn't work for midisyn (which treats any System Common message as SysEx,\nargh). The right solution will be to allow message-based drivers like umidi\nand midisyn to get their data via a message-at-a-time interface, rather\nthan splitting the messages into bytes for lower drivers to reassemble\nwrong.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/775ac2f5f33efe7f14dd87eb79b783a464cfa409"},{"sha":"0584d235ec4aea223aaec33c45c079af91399de5","author":{"name":"chap","email":"4c33dad42ce02dcd33274ecc2510cd83b04a7b51"},"message":"Added hw_if_ext for hw drivers that want their messages intact rather than\nbyte by byte. Works with midisyn - must still integrate and test with\numidi.","distinct":true,"url":"https://api.github.com/repos/jsonn/src/commits/0584d235ec4aea223aaec33c45c079af91399de5"}]}
{"actor":{"display_login":"jsonn"}}