libsigrok
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
output
binary.c
Go to the documentation of this file.
1
/*
2
* This file is part of the sigrok project.
3
*
4
* Copyright (C) 2010 Uwe Hermann <uwe@hermann-uwe.de>
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#include <stdlib.h>
22
#include <string.h>
23
#include <glib.h>
24
#include "
sigrok.h
"
25
#include "sigrok-internal.h"
26
27
static
int
data(
struct
sr_output
*o,
const
uint8_t *data_in,
28
uint64_t length_in, uint8_t **data_out, uint64_t *length_out)
29
{
30
uint8_t *outbuf;
31
32
/* Prevent compiler warnings. */
33
(void)o;
34
35
if
(!data_in) {
36
sr_err
(
"binary out: %s: data_in was NULL"
, __func__);
37
return
SR_ERR_ARG
;
38
}
39
40
if
(!length_out) {
41
sr_err
(
"binary out: %s: length_out was NULL"
, __func__);
42
return
SR_ERR_ARG
;
43
}
44
45
if
(length_in == 0) {
46
sr_err
(
"binary out: %s: length_in was 0"
, __func__);
47
return
SR_ERR_ARG
;
48
}
49
50
if
(!(outbuf = g_try_malloc0(length_in))) {
51
sr_err
(
"binary out: %s: outbuf malloc failed"
, __func__);
52
return
SR_ERR_MALLOC
;
53
}
54
55
memcpy(outbuf, data_in, length_in);
56
*data_out = outbuf;
57
*length_out = length_in;
58
59
return
SR_OK
;
60
}
61
62
SR_PRIV
struct
sr_output_format
output_binary
= {
63
.
id
=
"binary"
,
64
.description =
"Raw binary"
,
65
.df_type =
SR_DF_LOGIC
,
66
.init = NULL,
67
.data =
data
,
68
.event = NULL,
69
};
Generated on Mon Mar 18 2013 22:02:06 for libsigrok by
1.8.3.1