📄 utils.c
字号:
/*****************************************************************************;; (C) Unpublished Work of ADMtek Incorporated. All Rights Reserved.;; THIS WORK IS AN UNPUBLISHED WORK AND CONTAINS CONFIDENTIAL,; PROPRIETARY AND TRADESECRET INFORMATION OF ADMTEK INCORPORATED.; ACCESS TO THIS WORK IS RESTRICTED TO (I) ADMTEK EMPLOYEES WHO HAVE A; NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF THEIR ASSIGNMENTS; AND (II) ENTITIES OTHER THAN ADMTEK WHO HAVE ENTERED INTO APPROPRIATE; LICENSE AGREEMENTS. NO PART OF THIS WORK MAY BE USED, PRACTICED,; PERFORMED, COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED,; ABBRIDGED, CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,; TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF ADMTEK.; ANY USE OR EXPLOITATION OF THIS WORK WITHOUT AUTHORIZATION COULD; SUBJECT THE PERPERTRATOR TO CRIMINAL AND CIVIL LIABILITY.;;------------------------------------------------------------------------------;; Project : Common Plateform; Creator : ; File : utils.c; Abstract: defines the specific items that loader nedded.;;Modification History:; By Date Ver. Modification Description; --------------- -------- ----- --------------------------------------;;*****************************************************************************/#include <ctype.h>/*******************************************************************************/unsigned short ntohs(unsigned short s){ return (s >> 8) | (s << 8);}unsigned long ntohl(unsigned long l){ return ((l >> 24) & 0x000000ff) | ((l >> 8) & 0x0000ff00) | ((l << 8) & 0x00ff0000) | ((l << 24) & 0xff000000);}unsigned short htons(unsigned short s){ return (s >> 8) | (s << 8);}unsigned long htonl(unsigned long l){ return ((l >> 24) & 0x000000ff) | ((l >> 8) & 0x0000ff00) | ((l << 8) & 0x00ff0000) | ((l << 24) & 0xff000000);}int ultoa(unsigned long num, char *str){ unsigned int tmp; int i; for (i = 0; i < 8; i++) { tmp = ((num >> (32 - (i + 1) * 4)) & 0x0000000f); if (tmp >= 0xa && tmp <= 0xf) tmp = tmp + 55; else tmp = tmp + 48; str[i] = (char) tmp; } return 0;}int btoa(char num, char *str){ unsigned int tmp; int i; for (i = 0; i < 2; i++) { tmp = ((num >> (8 - (i + 1) * 4)) & 0x0f); if (tmp >= 0xa && tmp <= 0xf) tmp = tmp + 55; else tmp = tmp + 48; str[i] = (char) tmp; } return 0;}int mactostr(char *mac, char *str){ int i, j = 0; char tmp[] = "XX"; for (i = 0; i < 6; i++) { btoa(mac[i], tmp); str[j] = tmp[0]; str[j + 1] = tmp[1]; if (i != 5) str[j + 2] = '-'; j = j + 3; } return 0;}int macscanf(char *mac, char *buf){ int i; UINT8 s, tmp; for (i = 0; i < 6; i++) { s = buf[i * 3]; if (s >= '0' && s <= '9') s = s - '0'; else if (s >= 'a' && s <= 'f') s = s - 'a' + 0xa; else if (s >= 'A' && s <= 'F') s = s - 'A' + 0xa; else break; tmp = (s << 4) & 0xf0; s = buf[i * 3 + 1]; if (s >= '0' && s <= '9') s = s - '0'; else if (s >= 'a' && s <= 'f') s = s - 'a' + 0xa; else if (s >= 'A' && s <= 'F') s = s - 'A' + 0xa; else break; tmp = tmp | (s & 0x0f); mac[i] = (UINT8) tmp; } return i;}int ipscanf(UINT32 * ipbuf, char *buf){ int i, j = 0; UINT32 tmp1 = 0, tmp2 = 0; *ipbuf = 0; for (i = 0; i < 4; i++) { while (buf[j] != '.') { if (buf[j] >= '0' && buf[j] <= '9') tmp1 = buf[j] - '0'; else break; tmp2 = tmp2 * 10 + tmp1; j++; } if (tmp2 > 255) break; *ipbuf = (*ipbuf) | (((char) tmp2 & 0xff) << (32 - (i + 1) * 8)); j++; tmp2 = 0; } return i;}void IpAddrToStr(UINT32 tmp_ip, char *str){ int i, j = 0, k = 0, remainder; UINT32 tmp; char s[3]; for (i = 0; i < 4; i++) { tmp = (int) (tmp_ip >> 32 - (i + 1) * 8) & 0x000000ff; while (1) { remainder = tmp % 10; tmp = (int) (tmp / 10); if ((remainder == 0) && (tmp == 0)) break; s[j] = remainder + '0'; j++; } if (i != 0) k++; if (j == 0) { str[k] = '0'; str[++k] = '.'; } else if (j == 1) { str[k] = s[0]; str[++k] = '.'; } else if (j == 2) { str[k] = s[1]; str[++k] = s[0]; str[++k] = '.'; } else if (j == 3) { str[k] = s[2]; str[++k] = s[1]; str[++k] = s[0]; str[++k] = '.'; } if (i == 3) str[k] = '\0'; else j = 0; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -