| OLD | NEW |
| (Empty) |
| 1 #include "qword.h" | |
| 2 #include "x86_imm.h" | |
| 3 | |
| 4 #include <stdio.h> | |
| 5 | |
| 6 unsigned int x86_imm_signsized( unsigned char * buf, size_t buf_len, | |
| 7 void *dest, unsigned int size ) { | |
| 8 signed char *cp = (signed char *) dest; | |
| 9 signed short *sp = (signed short *) dest; | |
| 10 int32_t *lp = (int32_t *) dest; | |
| 11 qword_t *qp = (qword_t *) dest; | |
| 12 | |
| 13 if ( size > buf_len ) { | |
| 14 return 0; | |
| 15 } | |
| 16 | |
| 17 /* Copy 'size' bytes from *buf to *op | |
| 18 * return number of bytes copied */ | |
| 19 switch (size) { | |
| 20 case 1: /* BYTE */ | |
| 21 *cp = *((signed char *) buf); | |
| 22 break; | |
| 23 case 2: /* WORD */ | |
| 24 *sp = *((signed short *) buf); | |
| 25 break; | |
| 26 case 6: | |
| 27 case 8: /* QWORD */ | |
| 28 *qp = *((qword_t *) buf); | |
| 29 break; | |
| 30 case 4: /* DWORD */ | |
| 31 default: | |
| 32 *lp = *((int32_t *) buf); | |
| 33 break; | |
| 34 } | |
| 35 return (size); | |
| 36 } | |
| 37 | |
| 38 unsigned int x86_imm_sized( unsigned char * buf, size_t buf_len, void *dest, | |
| 39 unsigned int size ) { | |
| 40 unsigned char *cp = (unsigned char *) dest; | |
| 41 unsigned short *sp = (unsigned short *) dest; | |
| 42 uint32_t *lp = (uint32_t *) dest; | |
| 43 qword_t *qp = (qword_t *) dest; | |
| 44 | |
| 45 if ( size > buf_len ) { | |
| 46 return 0; | |
| 47 } | |
| 48 | |
| 49 /* Copy 'size' bytes from *buf to *op | |
| 50 * return number of bytes copied */ | |
| 51 switch (size) { | |
| 52 case 1: /* BYTE */ | |
| 53 *cp = *((unsigned char *) buf); | |
| 54 break; | |
| 55 case 2: /* WORD */ | |
| 56 *sp = *((unsigned short *) buf); | |
| 57 break; | |
| 58 case 6: | |
| 59 case 8: /* QWORD */ | |
| 60 *qp = *((qword_t *) buf); | |
| 61 break; | |
| 62 case 4: /* DWORD */ | |
| 63 default: | |
| 64 *lp = *((uint32_t *) buf); | |
| 65 break; | |
| 66 } | |
| 67 | |
| 68 return (size); | |
| 69 } | |
| 70 | |
| OLD | NEW |