1 /*****************************************************************************
3 (c) Cambridge Silicon Radio Limited 2010
4 All rights reserved and confidential information of CSR
6 Refer to LICENSE.txt included with this source for details
9 *****************************************************************************/
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"
17 void CsrUint8Des(u8
*value
, u8
*buffer
, size_t *offset
)
19 *value
= buffer
[*offset
];
20 *offset
+= sizeof(*value
);
22 EXPORT_SYMBOL_GPL(CsrUint8Des
);
24 void CsrUint16Des(u16
*value
, u8
*buffer
, size_t *offset
)
26 *value
= (buffer
[*offset
+ 0] << 0) |
27 (buffer
[*offset
+ 1] << 8);
28 *offset
+= sizeof(*value
);
30 EXPORT_SYMBOL_GPL(CsrUint16Des
);
32 void CsrUint32Des(u32
*value
, u8
*buffer
, size_t *offset
)
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
);
40 EXPORT_SYMBOL_GPL(CsrUint32Des
);
42 void CsrMemCpyDes(void *value
, u8
*buffer
, size_t *offset
, size_t length
)
44 memcpy(value
, &buffer
[*offset
], length
);
47 EXPORT_SYMBOL_GPL(CsrMemCpyDes
);
49 void CsrCharStringDes(char **value
, u8
*buffer
, size_t *offset
)
51 *value
= kstrdup((char *) &buffer
[*offset
], GFP_KERNEL
);
52 *offset
+= strlen(*value
) + 1;
54 EXPORT_SYMBOL_GPL(CsrCharStringDes
);
56 void CsrUint8Ser(u8
*buffer
, size_t *offset
, u8 value
)
58 buffer
[*offset
] = value
;
59 *offset
+= sizeof(value
);
61 EXPORT_SYMBOL_GPL(CsrUint8Ser
);
63 void CsrUint16Ser(u8
*buffer
, size_t *offset
, u16 value
)
65 buffer
[*offset
+ 0] = (u8
) ((value
>> 0) & 0xFF);
66 buffer
[*offset
+ 1] = (u8
) ((value
>> 8) & 0xFF);
67 *offset
+= sizeof(value
);
69 EXPORT_SYMBOL_GPL(CsrUint16Ser
);
71 void CsrUint32Ser(u8
*buffer
, size_t *offset
, u32 value
)
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
);
79 EXPORT_SYMBOL_GPL(CsrUint32Ser
);
81 void CsrMemCpySer(u8
*buffer
, size_t *offset
, const void *value
, size_t length
)
83 memcpy(&buffer
[*offset
], value
, length
);
86 EXPORT_SYMBOL_GPL(CsrMemCpySer
);
88 void CsrCharStringSer(u8
*buffer
, size_t *offset
, const char *value
)
92 strcpy(((char *) &buffer
[*offset
]), value
);
93 *offset
+= strlen(value
) + 1;
97 CsrUint8Ser(buffer
, offset
, 0);
100 EXPORT_SYMBOL_GPL(CsrCharStringSer
);
This page took 0.033128 seconds and 5 git commands to generate.