/* Scan a string for URI escape sequences, replacing them with the * decoded octet value in place. Replacing the encoded sequence will * cause the string to become shorter. The resulting string will * be NUL-terminated. */ static void replace_escape_sequences(char * s, size_t len) { size_t i, j, n; int c; for(i = j = n = 0 ; i < len ; i++, j++) { c = s[i]; if(c == '%' && i+2 < len && is_hex(s[i+1]) && is_hex(s[i+2])) { c = 16 * hex_to_dec(s[i+1]) + hex_to_dec(s[i+2]); i += 2; s[j] = c; } else if (i != j) { s[j] = c; } } s[j] = '\0'; }
uint64_t _str_to_eui64(const char *eui64_str) { int i; const char *eui64_rev = &eui64_str[strlen(eui64_str) - 1]; uint64_t eui64 = 0; for (i = 7; i >= 0 || eui64_rev >= eui64_str; i--) { uint8_t digit; eui64 <<= 8; while ((digit = hex_to_dec(*eui64_rev)) == 0xFF) { if (--eui64_rev < eui64_str) { return eui64; } } eui64 = digit; eui64_rev--; while ((digit = hex_to_dec(*eui64_rev)) == 0xFF) { if (--eui64_rev < eui64_str) { return eui64; } } eui64 |= digit << 4; eui64_rev--; } return eui64; }
int main(int argc,char *argv[]) { int b1=atoi(argv[1]),b2=atoi(argv[2]); char a[100]; strcpy(a,argv[3]); int y=0,ctr1=1; for(y=0;y<strlen(a);y++) { if(a[y]!='0') ctr1=0; } if(ctr1==1) { printf("0"); return 0; } int crrct=check_it_all(a,b1); if(!crrct) { printf("0"); return 0; } else if(crrct) { if(b1==16) dec_to_all(hex_to_dec(a),b2); else dec_to_all(oth_to_dec(a,b1),b2); } return 0; }
int Spider_Http_Client_Base::recv_body_bychunk(int sock, char*& body ) { int total_length=0; while (true) { int length=0; char buffer[48]={0}; int ret=recv_endwith_mark(sock, buffer, "\r\n"); if ( ret>48||ret<2 ) { return -1; } buffer[ret-2]='\0'; length=hex_to_dec(buffer); if ( length<=0 ) { break; } total_length+=length; body=(char*)realloc(body,total_length); ret=recv_body_bylength(sock,body+total_length-length,length); if ( ret !=length) { LLOG(L_ERROR,"recv_body_bychunk::ret isn't equal to length. "); break; } ret=recv_endwith_mark(sock,buffer,"\r\n"); if ( ret!=2 ) { LLOG(L_ERROR,"recv_endwith_mark:: ret isn't 2"); break; } } return total_length; }
int main() { char choice; int r, g, b; choice = getchar(); if(choice == 'h') { hex_to_dec(); } else { if(choice == 'd') { scanf("%d, %d, %d", &r, &g, &b); printf("#"); dec_to_hex(r); dec_to_hex(g); dec_to_hex(b); printf("\n"); } else { return 0; } } return 0; }
static BOOL get_prev_next( fs_handle_type file, LOG_HEADER_T* head ) { int row, col, count; UINT32 pos; char buf[ 4 ]; int res; pos = PREV_NEXT_POS; for( row = 0, count = 0; TRUE; ++row ) { for( col = 0; col < 12; ++col ) { pantech_fseek( file, SEEK_SET, pos ); res = pantech_fread( file, buf, 4 ); if( res != 4 ) { return FALSE; } head->prev_[ count ] = hex_to_dec( buf, 2 ); head->next_[ count ] = hex_to_dec( buf + 2, 2 ); if( ++count == MAX_LOG ) { return TRUE; } if( col == 11 ) { pos += 4 + 2 + 16; // 현재 prev/next 4, "\r\n" 2, 공백 16 } else { pos += 4 + 1; // FF01과 공백 } } } // 이 곳까지 올 수 없다. printk("get_prev_next ASSERT\n"); return FALSE; }
static UINT32 get_value( fs_handle_type file, UINT32 pos, UINT32 size ) { char buf[ 16 ]; int res; pantech_fseek( file, SEEK_SET, pos ); res = pantech_fread( file, buf, size ); if( res != size ) { return (UINT32)-1; } return hex_to_dec( buf + 2, size - 2 ); }
int parse_hexstr(char *hex, double *rgba) { if (!hex || hex[0] != '#' || strlen(hex) < 7) return 0; rgba[0] = (hex_to_dec(hex[1]) * 16 + hex_to_dec(hex[2])) / 255.0; rgba[1] = (hex_to_dec(hex[3]) * 16 + hex_to_dec(hex[4])) / 255.0; rgba[2] = (hex_to_dec(hex[5]) * 16 + hex_to_dec(hex[6])) / 255.0; if (strlen(hex) > 7) rgba[3] = atoi(hex + 7) / 100.0; else rgba[3] = 1.0; return 1; }
static ssize_t led_blink_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { struct leds_dev_data *info = dev_get_drvdata(dev); struct pm8xxx_led_config *led_cfg; unsigned int brightness_r = 0; unsigned int brightness_g = 0; unsigned int brightness_b = 0; unsigned int loop_cnt = 0; unsigned int delayon = 0; unsigned int delayoff = 0; unsigned int argb_count = 0; bool is_blinking; printk(KERN_ALERT "[LED_blink_store] is \"%s\" (pid %i)\n", current->comm, current->pid); printk(KERN_ALERT "led_blink input =%s, size=%d\n", buf, size); if (size < 7) { printk(KERN_DEBUG "led_blink: Invlid input\n"); return size; } if (buf[8] == ' ') { /*case of RGB delay_on delay_off*/ for (loop_cnt = 9; loop_cnt < size-1; loop_cnt++) { delayon = delayon*10 + (buf[loop_cnt] - '0'); if (buf[loop_cnt+1] == ' ') { loop_cnt += 2; break; } } for (; loop_cnt < size-1; loop_cnt++) delayoff = delayoff*10 + (buf[loop_cnt] - '0'); } else if (buf[10] == ' ') { /*case of ARGB delay_on delay_off*/ argb_count = 1; for (loop_cnt = 11; loop_cnt < size-1; loop_cnt++) { delayon = delayon*10 + (buf[loop_cnt] - '0'); if (buf[loop_cnt+1] == ' ') { loop_cnt += 2; break; } } for (; loop_cnt < size-1; loop_cnt++) delayoff = delayoff*10 + (buf[loop_cnt] - '0'); } else if (size > 9) { /*case of ARGB*/ argb_count = 1; } atomic_set(&info->op_flag , 0); /*buf[0], buf[1] contains 0x, so ignore it. case of RGB*/ if (!argb_count) { brightness_r = hex_to_dec(buf[2], buf[3]); brightness_g = hex_to_dec(buf[4], buf[5]); brightness_b = hex_to_dec(buf[6], buf[7]); } /*buf[0], buf[1] contains 0x, so ignore it. buf[2], buf[3] contains A (alpha value), ignore it.case of ARGB*/ else { brightness_r = hex_to_dec(buf[4], buf[5]); brightness_g = hex_to_dec(buf[6], buf[7]); brightness_b = hex_to_dec(buf[8], buf[9]); } is_blinking = delayon > 0 || delayoff > 0; pm8xxx_led_work_pat_led_off(info); mutex_lock(&info->led_work_lock); led_cfg = &info->pdata->configs[PM8XXX_LED_PAT8_BLUE]; brightness_b = brightness_b * 100 / 255; led_cfg->pwm_duty_cycles->duty_pcts[0] = is_blinking ? 0 : brightness_b; led_cfg->pwm_duty_cycles->duty_pcts[1] = brightness_b; pm8xxx_set_led_mode_and_max_brightness(&info->led[PM8XXX_LED_PAT8_BLUE], led_cfg->mode, led_cfg->max_current); __pm8xxx_led_work(&info->led[PM8XXX_LED_PAT8_BLUE], led_cfg->max_current); if (led_cfg->mode != PM8XXX_LED_MODE_MANUAL) pm8xxx_led_pwm_configure(&info->led[PM8XXX_LED_PAT8_BLUE], delayoff, delayon); led_cfg = &info->pdata->configs[PM8XXX_LED_PAT8_GREEN]; brightness_g = brightness_g * 100 / 255; led_cfg->pwm_duty_cycles->duty_pcts[0] = is_blinking ? 0 : brightness_g; led_cfg->pwm_duty_cycles->duty_pcts[1] = brightness_g; pm8xxx_set_led_mode_and_max_brightness( &info->led[PM8XXX_LED_PAT8_GREEN], led_cfg->mode, led_cfg->max_current); __pm8xxx_led_work(&info->led[PM8XXX_LED_PAT8_GREEN], led_cfg->max_current); if (led_cfg->mode != PM8XXX_LED_MODE_MANUAL) pm8xxx_led_pwm_configure(&info->led[PM8XXX_LED_PAT8_GREEN], delayoff, delayon); led_cfg = &info->pdata->configs[PM8XXX_LED_PAT8_RED]; brightness_r = brightness_r * 100 / 255; led_cfg->pwm_duty_cycles->duty_pcts[0] = is_blinking ? 0 : brightness_r; led_cfg->pwm_duty_cycles->duty_pcts[1] = brightness_r; pm8xxx_set_led_mode_and_max_brightness(&info->led[PM8XXX_LED_PAT8_RED], led_cfg->mode, led_cfg->max_current); __pm8xxx_led_work(&info->led[PM8XXX_LED_PAT8_RED], led_cfg->max_current); if (led_cfg->mode != PM8XXX_LED_MODE_MANUAL) pm8xxx_led_pwm_configure(&info->led[PM8XXX_LED_PAT8_RED], delayoff, delayon); if ((brightness_r || brightness_g || brightness_b) && (info->pdata->led_power_on)) info->pdata->led_power_on(1); printk(KERN_DEBUG "[LED] USER : R:%d,G:%d,B:%d\n", brightness_r, brightness_g, brightness_b); pm8xxx_led_set(&info->led[PM8XXX_LED_PAT8_RED].cdev, led_cfg->max_current); pm8xxx_led_set(&info->led[PM8XXX_LED_PAT8_GREEN].cdev, led_cfg->max_current); pm8xxx_led_set(&info->led[PM8XXX_LED_PAT8_BLUE].cdev, led_cfg->max_current); mutex_unlock(&info->led_work_lock); return size; }
int disassemble (char * program) { char * token = strtok(program, "\t\n"); int memaddr; char * instructions; while (token != NULL) { //printf("%s\n", token); if(strcmp(token, ".text") == 0) { token = strtok(NULL, "\t\n"); memaddr = hex_to_dec(token); //printf("%d is 0x%x\n", memaddr, memaddr); token = strtok(NULL, "\t\n"); instructions = token; token = NULL; } else token = strtok(NULL, "\t\n"); } //printf("Mem Address: %s\n", memaddr); //printf("Instruction String: %s\n", instructions); int size = strlen(instructions) / 2; //printf("Length of instruction string in bytes: %d\n", size); unsigned char * instruct = malloc(sizeof(unsigned char) * (size + 1)); int i = 0; for (int j = 0; j < strlen(instructions); j+=2) { char * byte = malloc(sizeof(char) * 3); strncpy(byte, instructions + j, 2); byte[2] = '\0'; //printf("Byte: %s\n", byte); unsigned char c = (unsigned char) hex_to_dec(byte); instruct[i] = c; //printf("This is in memory location %d: %x\n", i, instruct[i]); i++; } int reg_one; int reg_two; int value; char * register1; char * register2; for(int i = 0; i < size; i++, memaddr++) { printf("0x%x: ", memaddr); switch(instruct[i]) { case 0x00: printf("NOP\n"); break; case 0x10: printf("HALT\n"); break; case 0x20: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); i++; memaddr++; printf("RRMOVL %s, %s\n", register1, register2); break; case 0x30: reg_two = (instruct[i+1]& 0x0f); register2 = findReg(reg_two); value = (instruct[i+5] << 24) + (instruct[i+4] << 16) + (instruct[i+3] << 8) + (instruct[i+2]); printf("IRMOVL $%d, %s\n", value, register2); i+=5; memaddr+=5; break; case 0x40: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); value = (instruct[i+5] << 24) + (instruct[i+4] << 16) + (instruct[i+3] << 8) + (instruct[i+2]); printf("RMMOVL %s, %d(%s)\n", register1, value, register2); i+=5; memaddr+=5; break; case 0x50: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); value = (instruct[i+5] << 24) + (instruct[i+4] << 16) + (instruct[i+3] << 8) + (instruct[i+2]); printf("MRMOVL %d(%s), %s\n", value, register2, register1); i+=5; memaddr+=5; break; case 0x60: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); printf("ADDL %s, %s\n", register1, register2); i++; memaddr++; break; case 0x61: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); printf("SUBL %s, %s\n", register1, register2); i++; memaddr++; break; case 0x62: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); printf("ANDL %s, %s\n", register1, register2); i++; memaddr++; break; case 0x63: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); printf("XORL %s, %s\n", register1, register2); i++; memaddr++; break; case 0x64: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); printf("MULL %s, %s\n", register1, register2); i++; memaddr++; break; case 0x65: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); printf("CMPL %s, %s\n", register1, register2); i++; memaddr++; break; case 0x70: value = (instruct[i+4] << 24) + (instruct[i+3] << 16) + (instruct[i+2] << 8) + (instruct[i+1]); printf("JMP 0x%x\n", value); i+=4; memaddr+=4; break; case 0x71: value = (instruct[i+4] << 24) + (instruct[i+3] << 16) + (instruct[i+2] << 8) + (instruct[i+1]); printf("JLE 0x%x\n", value); i+=4; memaddr+=4; break; case 0x72: value = (instruct[i+4] << 24) + (instruct[i+3] << 16) + (instruct[i+2] << 8) + (instruct[i+1]); printf("JL 0x%x\n", value); i+=4; memaddr+=4; break; case 0x73: value = (instruct[i+4] << 24) + (instruct[i+3] << 16) + (instruct[i+2] << 8) + (instruct[i+1]); printf("JE 0x%x\n", value); i+=4; memaddr+=4; break; case 0x74: value = (instruct[i+4] << 24) + (instruct[i+3] << 16) + (instruct[i+2] << 8) + (instruct[i+1]); printf("JNE 0x%x\n", value); i+=4; memaddr+=4; break; case 0x75: value = (instruct[i+4] << 24) + (instruct[i+3] << 16) + (instruct[i+2] << 8) + (instruct[i+1]); printf("JGE 0x%x\n", value); i+=4; memaddr+=4; break; case 0x76: value = (instruct[i+4] << 24) + (instruct[i+3] << 16) + (instruct[i+2] << 8) + (instruct[i+1]); printf("JG 0x%x\n", value); i+=4; memaddr+=4; break; case 0x80: value = (instruct[i+4] << 24) + (instruct[i+3] << 16) + (instruct[i+2] << 8) + (instruct[i+1]); printf("CALL 0x%x\n", value); i+=4; memaddr+=4; break; case 0x90: printf ("RET\n"); break; case 0xa0: reg_one = (instruct[i+1] & 0xf0) >> 4; register1 = findReg(reg_one); printf("PUSHL %s\n", register1); i++; memaddr++; break; case 0xb0: reg_one = (instruct[i+1] & 0xf0) >> 4; register1 = findReg(reg_one); printf("POPL %s\n", register1); i++; memaddr++; break; case 0xc0: reg_one = (instruct[i+1] & 0xf0) >> 4; register1 = findReg(reg_one); value = (instruct[i+5] << 24) + (instruct[i+4] << 16) + (instruct[i+3] << 8) + (instruct[i+2]); printf("READB %d(%s)\n", value, register1); i+=5; memaddr+=5; break; case 0xc1: reg_one = (instruct[i+1] & 0xf0) >> 4; register1 = findReg(reg_one); value = (instruct[i+5] << 24) + (instruct[i+4] << 16) + (instruct[i+3] << 8) + (instruct[i+2]); printf("READL %d(%s)\n", value, register1); i+=5; memaddr+=5; break; case 0xd0: reg_one = (instruct[i+1] & 0xf0) >> 4; register1 = findReg(reg_one); value = (instruct[i+5] << 24) + (instruct[i+4] << 16) + (instruct[i+3] << 8) + (instruct[i+2]); printf("WRITEB %d(%s)\n", value, register1); i+=5; memaddr+=5; break; case 0xd1: reg_one = (instruct[i+1] & 0xf0) >> 4; register1 = findReg(reg_one); value = (instruct[i+5] << 24) + (instruct[i+4] << 16) + (instruct[i+3] << 8) + (instruct[i+2]); printf("WRITEL %d(%s)\n", value, register1); i+=5; memaddr+=5; break; case 0xe0: reg_one = (instruct[i+1] & 0xf0) >> 4; reg_two = (instruct[i+1]& 0x0f); register1 = findReg(reg_one); register2 = findReg(reg_two); value = (instruct[i+5] << 24) + (instruct[i+4] << 16) + (instruct[i+3] << 8) + (instruct[i+2]); printf("MOVSBL %d(%s), %s\n", value, register2, register1); i+=5; memaddr+=5; break; default: break; } } return 0; }