{"push_id":601815774,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"13d032924646a01bb72c2fc47dc777c3b95eca45","before":"c69482a546fecb6aa804b2f4fc7800ad73c9349a","commits":[{"sha":"233f497d366ef235af4d1fb877564e2ac66bcbac","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@pratt.im","name":"Michael Pratt"},"message":"Rewrite _write() for block writes and incomplete checks\n\nusbd_ep_write_packet() returns the number of bytes successfully written.\nWhen the USB peripheral is busy writing out a packet, it will return 0,\nas no bytes can be written.\n\nAs a result, the previous version of _write() would usually fail to\nwrite all but the first character, due to too-fast calls to\nusbd_ep_write_packet().\n\nA quick workaround is simply to make a single call to in _write(), for\nthe entire string.  However, quick calls to _write() could still cause\nthe same issue.\n\nIdeally, the return value from usbd_ep_write_packet() could simply be\nreturned directly from _write(), as callers must be able to handle\nincomplete writes.  Unfortunately, while Newlib can handle incomplete\nwrites, it can only do so when at least one byte is written.  It's\nfflush() (which is eventually called from puts()) returns in error if\n_write() returns 0 [1].\n\nThus, the complete retry loop is placed within _write(), which does not\nreturn until the entire string is written.  Note that there is no\ntimeout mechanism in place currently.\n\nThis also drops the functionality of replacing \\n with \\r on write, but\nit is simple enough to manually add \\r to strings, if desired.\n\n[1] https://github.com/aeste/newlib/blob/fd857b01b85d3ce3ec9763b71acaf753d030e596/newlib/libc/stdio/fflush.c#L214-215","distinct":true,"url":"https://api.github.com/repos/mjbella/USB-to-Baseband/commits/233f497d366ef235af4d1fb877564e2ac66bcbac"},{"sha":"4beb31743ceabd7f3f71efd92225339b65ae7972","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@pratt.im","name":"Michael Pratt"},"message":"Split cdcacm.c\n\nSplit up cdcacm.c so that it only contains USB code.  main() and all\nbaseband processing code is moved to main.c.\n\nThe code itself has been changed only minorly, to avoid confusion, and\ncould still use some more cleanup.  The input ring buffer is passed to\nthe USB processing code through cdcacm_init().","distinct":true,"url":"https://api.github.com/repos/mjbella/USB-to-Baseband/commits/4beb31743ceabd7f3f71efd92225339b65ae7972"},{"sha":"13d032924646a01bb72c2fc47dc777c3b95eca45","author":{"email":"b811bd774a036d2ad0542c8d970c5c7a30d6e221@ncsu.edu","name":"Michael Yenik"},"message":"Merge pull request #7 from prattmic/write\n\nCleanup cdcacm.c","distinct":true,"url":"https://api.github.com/repos/mjbella/USB-to-Baseband/commits/13d032924646a01bb72c2fc47dc777c3b95eca45"}]}