spi: Use dev_get_drvdata at appropriate places
[deliverable/linux.git] / drivers / staging / csr / csr_serialize_primitive_types.c
1 /*****************************************************************************
2
3 (c) Cambridge Silicon Radio Limited 2010
4 All rights reserved and confidential information of CSR
5
6 Refer to LICENSE.txt included with this source for details
7 on the license terms.
8
9 *****************************************************************************/
10
11 #include <linux/module.h>
12 #include <linux/slab.h>
13 #include "csr_prim_defs.h"
14 #include "csr_msgconv.h"
15 #include "csr_macro.h"
16
17 void CsrUint8Des(u8 *value, u8 *buffer, size_t *offset)
18 {
19 *value = buffer[*offset];
20 *offset += sizeof(*value);
21 }
22 EXPORT_SYMBOL_GPL(CsrUint8Des);
23
24 void CsrUint16Des(u16 *value, u8 *buffer, size_t *offset)
25 {
26 *value = (buffer[*offset + 0] << 0) |
27 (buffer[*offset + 1] << 8);
28 *offset += sizeof(*value);
29 }
30 EXPORT_SYMBOL_GPL(CsrUint16Des);
31
32 void CsrUint32Des(u32 *value, u8 *buffer, size_t *offset)
33 {
34 *value = (buffer[*offset + 0] << 0) |
35 (buffer[*offset + 1] << 8) |
36 (buffer[*offset + 2] << 16) |
37 (buffer[*offset + 3] << 24);
38 *offset += sizeof(*value);
39 }
40 EXPORT_SYMBOL_GPL(CsrUint32Des);
41
42 void CsrMemCpyDes(void *value, u8 *buffer, size_t *offset, size_t length)
43 {
44 memcpy(value, &buffer[*offset], length);
45 *offset += length;
46 }
47 EXPORT_SYMBOL_GPL(CsrMemCpyDes);
48
49 void CsrCharStringDes(char **value, u8 *buffer, size_t *offset)
50 {
51 *value = kstrdup((char *) &buffer[*offset], GFP_KERNEL);
52 *offset += strlen(*value) + 1;
53 }
54 EXPORT_SYMBOL_GPL(CsrCharStringDes);
55
56 void CsrUint8Ser(u8 *buffer, size_t *offset, u8 value)
57 {
58 buffer[*offset] = value;
59 *offset += sizeof(value);
60 }
61 EXPORT_SYMBOL_GPL(CsrUint8Ser);
62
63 void CsrUint16Ser(u8 *buffer, size_t *offset, u16 value)
64 {
65 buffer[*offset + 0] = (u8) ((value >> 0) & 0xFF);
66 buffer[*offset + 1] = (u8) ((value >> 8) & 0xFF);
67 *offset += sizeof(value);
68 }
69 EXPORT_SYMBOL_GPL(CsrUint16Ser);
70
71 void CsrUint32Ser(u8 *buffer, size_t *offset, u32 value)
72 {
73 buffer[*offset + 0] = (u8) ((value >> 0) & 0xFF);
74 buffer[*offset + 1] = (u8) ((value >> 8) & 0xFF);
75 buffer[*offset + 2] = (u8) ((value >> 16) & 0xFF);
76 buffer[*offset + 3] = (u8) ((value >> 24) & 0xFF);
77 *offset += sizeof(value);
78 }
79 EXPORT_SYMBOL_GPL(CsrUint32Ser);
80
81 void CsrMemCpySer(u8 *buffer, size_t *offset, const void *value, size_t length)
82 {
83 memcpy(&buffer[*offset], value, length);
84 *offset += length;
85 }
86 EXPORT_SYMBOL_GPL(CsrMemCpySer);
87
88 void CsrCharStringSer(u8 *buffer, size_t *offset, const char *value)
89 {
90 if (value)
91 {
92 strcpy(((char *) &buffer[*offset]), value);
93 *offset += strlen(value) + 1;
94 }
95 else
96 {
97 CsrUint8Ser(buffer, offset, 0);
98 }
99 }
100 EXPORT_SYMBOL_GPL(CsrCharStringSer);
This page took 0.033128 seconds and 5 git commands to generate.