| 9 | #include <unistd.h> |
| 10 | |
| 11 | static const char* gw_error(int e) |
| 12 | { |
| 13 | switch (e) |
| 14 | { |
| 15 | case ACK_OKAY: |
| 16 | return "OK"; |
| 17 | case ACK_BAD_COMMAND: |
| 18 | return "Bad command"; |
| 19 | case ACK_NO_INDEX: |
| 20 | return "No index"; |
| 21 | case ACK_NO_TRK0: |
| 22 | return "No track 0"; |
| 23 | case ACK_FLUX_OVERFLOW: |
| 24 | return "Overflow"; |
| 25 | case ACK_FLUX_UNDERFLOW: |
| 26 | return "Underflow"; |
| 27 | case ACK_WRPROT: |
| 28 | return "Write protected"; |
| 29 | case ACK_NO_UNIT: |
| 30 | return "No unit"; |
| 31 | case ACK_NO_BUS: |
| 32 | return "No bus"; |
| 33 | case ACK_BAD_UNIT: |
| 34 | return "Invalid unit"; |
| 35 | case ACK_BAD_PIN: |
| 36 | return "Invalid pin"; |
| 37 | case ACK_BAD_CYLINDER: |
| 38 | return "Invalid track"; |
| 39 | default: |
| 40 | return "Unknown error"; |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | static uint32_t ss_rand_next(uint32_t x) |
| 45 | { |