Kevin O'Connor | a4d3576 | 2008-03-08 15:43:03 -0500 | [diff] [blame] | 1 | #include "util.h" // usleep |
| 2 | |
Kevin O'Connor | 2e7ab8b | 2008-03-29 14:29:35 -0400 | [diff] [blame] | 3 | // Sum the bytes in the specified area. |
| 4 | u8 |
| 5 | checksum(u8 *far_data, u32 len) |
| 6 | { |
| 7 | u32 i; |
| 8 | u8 sum = 0; |
| 9 | for (i=0; i<len; i++) |
| 10 | sum += GET_FARPTR(far_data[i]); |
| 11 | return sum; |
| 12 | } |
| 13 | |
Kevin O'Connor | 5e4235f | 2008-04-12 09:00:04 -0400 | [diff] [blame] | 14 | void * |
Kevin O'Connor | 567e4e3 | 2008-04-05 11:37:51 -0400 | [diff] [blame] | 15 | memset(void *s, int c, size_t n) |
| 16 | { |
| 17 | while (n) |
| 18 | ((char *)s)[--n] = c; |
Kevin O'Connor | 5e4235f | 2008-04-12 09:00:04 -0400 | [diff] [blame] | 19 | return s; |
Kevin O'Connor | 567e4e3 | 2008-04-05 11:37:51 -0400 | [diff] [blame] | 20 | } |
| 21 | |
| 22 | void * |
Kevin O'Connor | e0113c9 | 2008-04-05 15:51:12 -0400 | [diff] [blame] | 23 | memcpy(void *far_d1, const void *far_s1, size_t len) |
Kevin O'Connor | 567e4e3 | 2008-04-05 11:37:51 -0400 | [diff] [blame] | 24 | { |
Kevin O'Connor | e0113c9 | 2008-04-05 15:51:12 -0400 | [diff] [blame] | 25 | u8 *d = far_d1; |
| 26 | u8 *s = (u8*)far_s1; |
Kevin O'Connor | 567e4e3 | 2008-04-05 11:37:51 -0400 | [diff] [blame] | 27 | |
Kevin O'Connor | e0113c9 | 2008-04-05 15:51:12 -0400 | [diff] [blame] | 28 | while (len--) { |
| 29 | SET_FARPTR(*d, GET_FARPTR(*s)); |
| 30 | d++; |
| 31 | s++; |
| 32 | } |
Kevin O'Connor | 567e4e3 | 2008-04-05 11:37:51 -0400 | [diff] [blame] | 33 | |
Kevin O'Connor | e0113c9 | 2008-04-05 15:51:12 -0400 | [diff] [blame] | 34 | return far_d1; |
Kevin O'Connor | 567e4e3 | 2008-04-05 11:37:51 -0400 | [diff] [blame] | 35 | } |
| 36 | |
| 37 | void |
| 38 | __set_fail(const char *fname, struct bregs *regs) |
| 39 | { |
| 40 | __debug_fail(fname, regs); |
Kevin O'Connor | db9e65e | 2008-06-07 14:41:21 -0400 | [diff] [blame] | 41 | set_fail_silent(regs); |
Kevin O'Connor | 567e4e3 | 2008-04-05 11:37:51 -0400 | [diff] [blame] | 42 | } |
| 43 | |
| 44 | void |
| 45 | __set_code_fail(const char *fname, struct bregs *regs, u8 code) |
| 46 | { |
Kevin O'Connor | db9e65e | 2008-06-07 14:41:21 -0400 | [diff] [blame] | 47 | __debug_fail(fname, regs); |
| 48 | set_code_fail_silent(regs, code); |
Kevin O'Connor | 567e4e3 | 2008-04-05 11:37:51 -0400 | [diff] [blame] | 49 | } |