Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
FMC TDC 1ns 5cha - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
FMC TDC 1ns 5cha - Software
Commits
6f6d715f
Commit
6f6d715f
authored
Sep 13, 2018
by
Federico Vaga
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
deprecate: set|get_buffer
Signed-off-by:
Federico Vaga
<
federico.vaga@cern.ch
>
parent
35e9fa64
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
71 additions
and
44 deletions
+71
-44
fmctdc-lib.c
lib/fmctdc-lib.c
+29
-14
fmctdc-lib.h
lib/fmctdc-lib.h
+27
-18
fmc-tdc-tstamp.c
tools/fmc-tdc-tstamp.c
+4
-4
fmctdc-ut.c
unittest/fmctdc-ut.c
+11
-8
No files found.
lib/fmctdc-lib.c
View file @
6f6d715f
...
...
@@ -446,10 +446,11 @@ int fmctdc_channel_disable(struct fmctdc_board *userb, unsigned int channel)
* The function returns current buffer mode: 0 for FIFO, 1 for circular buffer.
* @param[in] userb TDC board instance token
* @param[in] channel to use
* @
return buffer mode, otherwise a negative errno code is set
*
appropriately
* @
param[out] mode the buffer mode in use
*
@return 0 on success, otherwise -1 and errno is set
appropriately
*/
int
fmctdc_get_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
)
int
fmctdc_buffer_sw_mode_get
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_sw_mode
*
mode
)
{
__define_board
(
b
,
userb
);
uint32_t
val
;
...
...
@@ -466,7 +467,8 @@ int fmctdc_get_buffer_mode(struct fmctdc_board *userb, unsigned int channel)
ret
=
fmctdc_sysfs_get
(
b
,
attr
,
&
val
);
if
(
ret
)
return
ret
;
return
val
;
*
mode
=
val
;
return
0
;
}
/**
...
...
@@ -477,8 +479,8 @@ int fmctdc_get_buffer_mode(struct fmctdc_board *userb, unsigned int channel)
* @return 0 on success, otherwise a negative errno code is set
* appropriately
*/
int
fmctdc_
set_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer
_mode
mode
)
int
fmctdc_
buffer_sw_mode_set
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_sw
_mode
mode
)
{
__define_board
(
b
,
userb
);
uint32_t
val
;
...
...
@@ -859,18 +861,12 @@ int fmctdc_reference_set(struct fmctdc_board *userb,
struct
__fmctdc_board
*
b
=
(
void
*
)(
userb
);
uint32_t
ch_ref
=
ch_reference
;
char
path
[
64
];
int
err
;
enum
ft_transfer_mode
mode
;
if
(
ch_target
>=
FMCTDC_NUM_CHANNELS
||
ch_reference
>=
FMCTDC_NUM_CHANNELS
)
{
errno
=
EINVAL
;
return
-
1
;
}
err
=
fmctdc_buffer_mode
(
userb
,
ch_target
,
&
mode
);
if
(
err
)
return
err
;
snprintf
(
path
,
sizeof
(
path
),
"ft-ch%d/diff-reference"
,
ch_target
+
1
);
return
fmctdc_sysfs_set
(
b
,
path
,
&
ch_ref
);
}
...
...
@@ -1017,8 +1013,9 @@ int fmctdc_offset_get(struct fmctdc_board *userb,
* @param[out] mode transfer mode
* @return 0 on success, otherwise -1 and errno is set appropriately
*/
int
fmctdc_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
ft_transfer_mode
*
mode
)
int
fmctdc_buffer_hw_mode_get
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_hw_mode
*
mode
)
{
struct
__fmctdc_board
*
b
=
(
void
*
)(
userb
);
uint32_t
val
;
...
...
@@ -1266,3 +1263,21 @@ int fmctdc_channel_status_get(struct fmctdc_board *userb,
return
err
;
return
status
;
}
int
fmctdc_get_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
)
{
int
err
;
enum
fmctdc_buffer_sw_mode
mode
;
err
=
fmctdc_buffer_sw_mode_get
(
userb
,
channel
,
&
mode
);
if
(
err
)
return
err
;
return
mode
;
}
int
fmctdc_set_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_sw_mode
mode
)
__attribute__
((
alias
(
"fmctdc_buffer_sw_mode_set"
)));
lib/fmctdc-lib.h
View file @
6f6d715f
...
...
@@ -33,12 +33,12 @@ enum fmctdc_channel {
/**
* Enumeration of all buffer modes
*/
enum
fmctdc_buffer_mode
{
FMCTDC_BUF
FER
_FIFO
=
0
,
/**< FIFO policy: when buffer is full, new
time-stamps will be dropped */
FMCTDC_BUF
FER
_CIRC
,
/**< circular buffer policy: when the buffer is
full, old time-stamps will be overwritten by
new ones */
enum
fmctdc_buffer_
sw_
mode
{
FMCTDC_BUF
_SW_MODE
_FIFO
=
0
,
/**< FIFO policy: when buffer is full, new
time-stamps will be dropped */
FMCTDC_BUF
_SW_MODE
_CIRC
,
/**< circular buffer policy: when the buffer is
full, old time-stamps will be overwritten by
new ones */
};
...
...
@@ -51,11 +51,11 @@ enum fmctdc_channel_status {
};
/**
*
*
Enumeration of all hardware buffer mode
*/
enum
f
t_transfer
_mode
{
F
T_ACQ_TYP
E_FIFO
=
0
,
F
T_ACQ_TYP
E_DMA
,
enum
f
mctdc_buffer_hw
_mode
{
F
MCTDC_BUF_HW_MOD
E_FIFO
=
0
,
F
MCTDC_BUF_HW_MOD
E_DMA
,
};
/**
...
...
@@ -150,6 +150,16 @@ extern int fmctdc_termination_set(struct fmctdc_board *b,
extern
int
fmctdc_termination_get
(
struct
fmctdc_board
*
b
,
unsigned
int
channel
,
unsigned
int
*
enable
);
extern
int
fmctdc_buffer_hw_mode_get
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_hw_mode
*
mode
);
extern
int
fmctdc_buffer_sw_mode_get
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_sw_mode
*
mode
);
extern
int
fmctdc_buffer_sw_mode_set
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_sw_mode
mode
);
/* Acquire Time-Stamps */
extern
int
fmctdc_fread
(
struct
fmctdc_board
*
b
,
unsigned
int
channel
,
struct
fmctdc_time
*
t
,
int
n
);
...
...
@@ -163,11 +173,6 @@ extern int _fmctdc_tscmp(struct fmctdc_time *a, struct fmctdc_time *b);
extern
uint64_t
fmctdc_ts_approx_ns
(
struct
fmctdc_time
*
a
);
extern
uint64_t
fmctdc_ts_ps
(
struct
fmctdc_time
*
a
);
/* deprecated */
extern
int
fmctdc_get_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
);
extern
int
fmctdc_set_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_mode
mode
);
extern
int
fmctdc_get_buffer_len
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
);
extern
int
fmctdc_set_buffer_len
(
struct
fmctdc_board
*
userb
,
...
...
@@ -178,9 +183,6 @@ extern int fmctdc_reference_set(struct fmctdc_board *userb,
extern
int
fmctdc_reference_get
(
struct
fmctdc_board
*
userb
,
unsigned
int
ch_target
);
extern
int
fmctdc_reference_clear
(
struct
fmctdc_board
*
userb
,
int
ch_target
);
extern
int
fmctdc_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
ft_transfer_mode
*
mode
);
extern
int
fmctdc_set_time
(
struct
fmctdc_board
*
b
,
struct
fmctdc_time
*
t
)
__attribute__
((
deprecated
));
extern
int
fmctdc_get_time
(
struct
fmctdc_board
*
b
,
struct
fmctdc_time
*
t
)
...
...
@@ -217,6 +219,13 @@ extern int fmctdc_channel_enable(struct fmctdc_board *userb,
extern
int
fmctdc_channel_disable
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
)
__attribute__
((
deprecated
));
extern
int
fmctdc_get_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
)
__attribute__
((
deprecated
));
extern
int
fmctdc_set_buffer_mode
(
struct
fmctdc_board
*
userb
,
unsigned
int
channel
,
enum
fmctdc_buffer_sw_mode
mode
)
__attribute__
((
deprecated
));
/* other */
extern
const
char
*
const
libfmctdc_version_s
;
...
...
tools/fmc-tdc-tstamp.c
View file @
6f6d715f
...
...
@@ -251,7 +251,7 @@ int main(int argc, char **argv)
int
channels
[
FMCTDC_NUM_CHANNELS
];
int
chan_count
=
0
,
i
,
n
,
ch
,
fd
,
n_ts
,
ret
,
n_boards
;
int
nblock
=
0
,
buflen
=
16
;
enum
fmctdc_buffer_
mode
bufmode
=
FMCTDC_BUFFER
_FIFO
;
enum
fmctdc_buffer_
sw_mode
bufmode
=
FMCTDC_BUF_SW_MODE
_FIFO
;
int
n_samples
=
-
1
;
unsigned
int
n_show
=
1
;
int
flush
=
0
,
read
=
0
;
...
...
@@ -314,9 +314,9 @@ int main(int argc, char **argv)
break
;
case
'm'
:
if
(
strcmp
(
optarg
,
"fifo"
)
==
0
)
{
bufmode
=
FMCTDC_BUF
FER
_FIFO
;
bufmode
=
FMCTDC_BUF
_SW_MODE
_FIFO
;
}
else
if
(
strcmp
(
optarg
,
"circ"
)
==
0
)
{
bufmode
=
FMCTDC_BUF
FER
_CIRC
;
bufmode
=
FMCTDC_BUF
_SW_MODE
_CIRC
;
}
else
{
help
(
argv
[
0
]);
exit
(
EXIT_SUCCESS
);
...
...
@@ -450,7 +450,7 @@ int main(int argc, char **argv)
}
/* set buffer mode */
ret
=
fmctdc_
set_buffer_mode
(
brd
,
ch
,
bufmode
);
ret
=
fmctdc_
buffer_sw_mode_set
(
brd
,
ch
,
bufmode
);
if
(
ret
)
{
fprintf
(
stderr
,
"%s: chan %d: cannot set buffer mode: %s. Use default
\n
"
,
...
...
unittest/fmctdc-ut.c
View file @
6f6d715f
...
...
@@ -180,18 +180,21 @@ static void fmctdc_param_test5(struct m_test *m_test)
{
struct
fmctdc_test_desc
*
d
=
m_test
->
suite
->
private
;
struct
fmctdc_board
*
tdc
=
d
->
tdc
;
int
i
,
err
,
ret
;
int
i
,
err
;
enum
fmctdc_buffer_sw_mode
mode
;
for
(
i
=
0
;
i
<
FMCTDC_NUM_CHANNELS
;
++
i
)
{
err
=
fmctdc_
set_buffer_mode
(
tdc
,
i
,
FMCTDC_BUFFER
_CIRC
);
err
=
fmctdc_
buffer_sw_mode_set
(
tdc
,
i
,
FMCTDC_BUF_SW_MODE
_CIRC
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_get_buffer_mode
(
tdc
,
i
);
m_assert_int_eq
(
FMCTDC_BUFFER_CIRC
,
ret
);
err
=
fmctdc_buffer_sw_mode_get
(
tdc
,
i
,
&
mode
);
m_assert_int_eq
(
0
,
err
);
m_assert_int_eq
(
FMCTDC_BUF_SW_MODE_CIRC
,
mode
);
err
=
fmctdc_set_buffer_mode
(
tdc
,
i
,
FMCTDC_BUFFER_FIFO
);
err
=
fmctdc_buffer_sw_mode_set
(
tdc
,
i
,
FMCTDC_BUF_SW_MODE_FIFO
);
m_assert_int_eq
(
0
,
err
);
err
=
fmctdc_buffer_sw_mode_get
(
tdc
,
i
,
&
mode
);
m_assert_int_eq
(
0
,
err
);
ret
=
fmctdc_get_buffer_mode
(
tdc
,
i
);
m_assert_int_eq
(
FMCTDC_BUFFER_FIFO
,
ret
);
m_assert_int_eq
(
FMCTDC_BUF_SW_MODE_FIFO
,
mode
);
}
}
static
const
char
*
fmctdc_param_test5_desc
=
...
...
@@ -261,7 +264,7 @@ static void fmctdc_op_test_setup(struct m_test *m_test)
m_assert_int_eq
(
0
,
err
);
err
=
fmctdc_coalescing_timeout_set
(
tdc
,
i
,
10
);
m_assert_int_eq
(
0
,
err
);
err
=
fmctdc_
set_buffer_mode
(
tdc
,
i
,
FMCTDC_BUFFER
_FIFO
);
err
=
fmctdc_
buffer_sw_mode_set
(
tdc
,
i
,
FMCTDC_BUF_SW_MODE
_FIFO
);
m_assert_int_eq
(
0
,
err
);
err
=
fmctdc_flush
(
tdc
,
i
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment