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