Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CpacketV1.C
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file CpacketV1.C
1
/*
2
** CpacketV1.C
3
**
4
** Author: $Author: purschke $
5
** Date: $Date: 2000/07/21 01:51:10 $
6
**
7
** $Log: CpacketV1.C,v $
8
** Revision 1.1.1.1 2000/07/21 01:51:10 purschke
9
** mlp -- adding the new automakified "basic" module to CVS.
10
**
11
**
12
** Revision 1.4 1999/07/12 14:23:37 phoncs
13
** (stephen markacs) added endianism setting to makePacketV1Hdr() in CpacketV1.C
14
**
15
** Revision 1.3 1998/12/11 22:01:59 markacs
16
** (stephen markacs) adding log into cvs tags
17
**
18
*/
19
/*
20
** These are the Version 1 routines to provide
21
** information from and acces to the fields in the
22
** packet header. The inlined routines are
23
** contained in CpacketV1.h.
24
**
25
*/
26
#include "
phenixOnline.h
"
27
#include "
Cpacket.h
"
28
#include "
CpacketV1.h
"
29
30
VALUE_ret
makePacketV1Hdr
(
PHDWORD
* packet_ptr,
UINT
maxPacketLength)
31
{
32
if
(maxPacketLength <
packetV1HdrLength
)
33
return
valueFailure
;
34
35
dwordClear
(packet_ptr,
packetV1HdrLength
);
36
setPacketLength
(packet_ptr,
packetV1HdrLength
);
37
setPacketHdrVersion
(packet_ptr,
packetV1HdrVersion
);
38
setPacketHdrLength
(packet_ptr,
packetV1HdrLength
);
39
40
unsigned
long
n
= 1;
41
char
* cp = (
char
*)&n;
42
if
(*cp==1)
setPacketEndianism
(packet_ptr, 1);
43
else
setPacketEndianism
(packet_ptr, 2);
44
45
return
packetV1HdrLength
;
46
}
47
48
/*
49
** Return a pointer to the debug block.
50
*/
51
PTR_ret
findPacketV1DebugStart
(
PACKET_ptr
packet_ptr)
52
{
53
return
(packet_ptr +
getPacketLength
(packet_ptr) -
54
getPacketV1DebugLength
(packet_ptr) -
getPacketV1ErrorLength
(packet_ptr) );
55
}
56
57
/*
58
** Return a pointer to the error block.
59
*/
60
PTR_ret
findPacketV1ErrorStart
(
PACKET_ptr
packet_ptr)
61
{
62
return
(packet_ptr +
getPacketLength
(packet_ptr) -
63
getPacketV1ErrorLength
(packet_ptr));
64
}
65
66
PTR_ret
findPacketV1DataStart
(
PACKET_ptr
packet_ptr)
67
{
68
return
packet_ptr +
getPacketHdrLength
(packet_ptr);
69
}
70
71
PTR_ret
findPacketV1DataEnd
(
PACKET_ptr
packet_ptr)
72
{
73
return
findPacketV1DebugStart
(packet_ptr) - 1;
74
}
75
76
77
/*
78
** Check for a valid V1 header. Currently this test only checks the
79
** length to make sure its consistent with the expected length.
80
**
81
*/
82
LOGIC_ret
validPacketV1Hdr
(
PACKET_ptr
packet_ptr)
83
{
84
if
(
getPacketHdrLength
(packet_ptr) ==
packetV1HdrLength
) {
85
setPacketSuccess
();
86
return
TRUE
;
87
}
88
else
{
89
setPacketError
(
FORMAT_ERR_INVALID_HEADER
, packet_ptr, 0);
90
return
FALSE
;
91
}
92
}
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
online_distribution
blob
master
newbasic
CpacketV1.C
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:27
using
1.8.2 with
sPHENIX GitHub integration