1 /*
2 ********************************************************************************
3 * USB UVC Driver
4 *
5 * (c) Copyright 2010-2015, All winners Co,Ld.
6 * All Right Reserved
7 *
8 * FileName : assessibility.c
9 *
10 * Author : Kingvan.Tong
11 *
12 * Date : 2013.03.26
13 *
14 * Description : USB Webcam
15 *
16 * Others : NULL
17 *
18 * History:
19 * <time> <version > <author> <desc>
20 * 2013.03.26 1.0 Kingvan.Tong build this file
21 *
22 ********************************************************************************
23 */
24 #include <string.h>
25 #include <stdio.h>
26 #include <stdlib.h>
27 #include <hal_log.h>
28
29 #include "assessibility.h"
30
uvc_strlcpy(char * dest,const char * src,unsigned int size)31 unsigned int uvc_strlcpy(char *dest, const char *src, unsigned int size)
32 {
33 unsigned int ret = strlen(src);
34
35 if (size) {
36 unsigned int len = (ret >= size) ? size - 1 : ret;
37 memcpy(dest, src, len);
38 dest[len] = '\0';
39 }
40 return ret;
41 }
42
uvc_strlcat(char * dest,const char * src,unsigned int count)43 unsigned int uvc_strlcat(char *dest, const char *src, unsigned int count)
44 {
45 unsigned int dsize = strlen(dest);
46 unsigned int len = strlen(src);
47 unsigned int res = dsize + len;
48
49 /* This would be a bug */
50 if(dsize >= count) {
51 hal_log_err("uvc_strlcat err!\n");
52 }
53
54 dest += dsize;
55 count -= dsize;
56 if (len >= count) {
57 len = count-1;
58 }
59 memcpy(dest, src, len);
60 dest[len] = 0;
61 return res;
62 }
63
get_unaligned_le16(const void * p)64 unsigned short get_unaligned_le16( const void *p )
65 {
66 // unsigned short *ptr = (unsigned short *)p;
67 // return *ptr;
68
69 unsigned char* data = (unsigned char*)p;
70
71 return ((data[0])|(data[1]<<8));
72 }
73
get_unaligned_le32(const void * p)74 unsigned int get_unaligned_le32( const void *p )
75 {
76 // unsigned int *ptr = (unsigned int *)p;
77 // return *ptr;
78
79 unsigned char* data = (unsigned char*)p;
80
81 return ((data[0])|(data[1]<<8)|(data[2]<<16)|(data[3]<<24));
82
83 }
84