Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
jami-daemon
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
savoirfairelinux
jami-daemon
Commits
26117960
Commit
26117960
authored
17 years ago
by
Alexandre Bourget
Browse files
Options
Downloads
Patches
Plain Diff
libiax2: Update frame.h with latest RFC and clean-up code.
See:
http://tools.ietf.org/id/draft-guy-iax-03.txt
parent
62ce42be
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
libs/libiax2/doc/Doxyfile-fullsource
+1
-2
1 addition, 2 deletions
libs/libiax2/doc/Doxyfile-fullsource
libs/libiax2/src/frame.h
+17
-11
17 additions, 11 deletions
libs/libiax2/src/frame.h
libs/libiax2/src/iax2.h
+125
-126
125 additions, 126 deletions
libs/libiax2/src/iax2.h
with
143 additions
and
139 deletions
libs/libiax2/doc/Doxyfile-fullsource
+
1
−
2
View file @
26117960
...
...
@@ -564,8 +564,7 @@ INLINE_SOURCES = YES
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
STRIP_CODE_COMMENTS = YES
STRIP_CODE_COMMENTS = NO
STRIP_CODE_COMMENTS = NO
# If the REFERENCED_BY_RELATION tag is set to YES (the default)
# then for each documented function all documented
...
...
This diff is collapsed.
Click to expand it.
libs/libiax2/src/frame.h
+
17
−
11
View file @
26117960
...
...
@@ -88,17 +88,23 @@ extern "C" {
#define AST_FORMAT_MAX_VIDEO (1 << 24)
/* Control frame types */
#define AST_CONTROL_HANGUP 1
/* Other end has hungup */
#define AST_CONTROL_RING 2
/* Local ring */
#define AST_CONTROL_RINGING 3
/* Remote end is ringing */
#define AST_CONTROL_ANSWER 4
/* Remote end has answered */
#define AST_CONTROL_BUSY 5
/* Remote end is busy */
#define AST_CONTROL_TAKEOFFHOOK 6
/* Make it go off hook */
#define AST_CONTROL_OFFHOOK 7
/* Line is off hook */
#define AST_CONTROL_CONGESTION 8
/* Congestion (circuits busy) */
#define AST_CONTROL_FLASH 9
/* Flash hook */
#define AST_CONTROL_WINK 10
/* Wink */
#define AST_CONTROL_OPTION 11
/* Set an option */
#define AST_CONTROL_HANGUP 1
/* Other end has hungup */
#define AST_CONTROL_RING 2
/* Local ring */
#define AST_CONTROL_RINGING 3
/* Remote end is ringing */
#define AST_CONTROL_ANSWER 4
/* Remote end has answered */
#define AST_CONTROL_BUSY 5
/* Remote end is busy */
#define AST_CONTROL_TAKEOFFHOOK 6
/* Make it go off hook */
#define AST_CONTROL_OFFHOOK 7
/* Line is off hook */
#define AST_CONTROL_CONGESTION 8
/* Congestion (circuits busy) */
#define AST_CONTROL_FLASH 9
/* Flash hook */
#define AST_CONTROL_WINK 10
/* Wink */
#define AST_CONTROL_OPTION 11
/* Set an option */
#define AST_CONTROL_KEY_RADIO 12
/* Key Radio */
#define AST_CONTROL_UNKEY_RADIO 13
/* Unkey Radio */
#define AST_CONTROL_CALL_PROGRESS 14
/* Call is in progress */
#define AST_CONTROL_CALL_PROCEEDING 15
/* Call is proceeding */
#define AST_CONTROL_HOLD 16
/* Call is placed on hold */
#define AST_CONTROL_UNHOLD 17
/* Call is taken off hold */
#define AST_FRIENDLY_OFFSET 64
/* Reserved header space */
...
...
This diff is collapsed.
Click to expand it.
libs/libiax2/src/iax2.h
+
125
−
126
View file @
26117960
...
...
@@ -30,103 +30,102 @@
#define IAX_WINDOW 64
/* Subclass for AST_FRAME_IAX */
#define IAX_COMMAND_NEW
1
#define IAX_COMMAND_PING
2
#define IAX_COMMAND_PONG
3
#define IAX_COMMAND_ACK
4
#define IAX_COMMAND_HANGUP
5
#define IAX_COMMAND_REJECT
6
#define IAX_COMMAND_ACCEPT
7
#define IAX_COMMAND_AUTHREQ
8
#define IAX_COMMAND_AUTHREP
9
#define IAX_COMMAND_INVAL
10
#define IAX_COMMAND_LAGRQ
11
#define IAX_COMMAND_LAGRP
12
#define IAX_COMMAND_REGREQ
13
/* Registration request */
#define IAX_COMMAND_REGAUTH
14
/* Registration authentication required */
#define IAX_COMMAND_REGACK
15
/* Registration accepted */
#define IAX_COMMAND_REGREJ
16
/* Registration rejected */
#define IAX_COMMAND_REGREL
17
/* Force release of registration */
#define IAX_COMMAND_VNAK
18
/* If we receive voice before valid first voice frame, send this */
#define IAX_COMMAND_DPREQ
19
/* Request status of a dialplan entry */
#define IAX_COMMAND_DPREP
20
/* Request status of a dialplan entry */
#define IAX_COMMAND_DIAL
21
/* Request a dial on channel brought up TBD */
#define IAX_COMMAND_TXREQ
22
/* Transfer Request */
#define IAX_COMMAND_TXCNT
23
/* Transfer Connect */
#define IAX_COMMAND_TXACC
24
/* Transfer Accepted */
#define IAX_COMMAND_TXREADY
25
/* Transfer ready */
#define IAX_COMMAND_TXREL
26
/* Transfer release */
#define IAX_COMMAND_TXREJ
27
/* Transfer reject */
#define IAX_COMMAND_QUELCH
28
/* Stop audio/video transmission */
#define IAX_COMMAND_UNQUELCH 29
/* Resume audio/video transmission */
#define IAX_COMMAND_POKE
30
/* Like ping, but does not require an open connection */
#define IAX_COMMAND_PAGE
31
/* Paging description */
#define IAX_COMMAND_MWI
32
/* Stand-alone message waiting indicator */
#define IAX_COMMAND_UNSUPPORT
33
/* Unsupported message received */
#define IAX_COMMAND_TRANSFER
34
/* Request remote transfer */
#define IAX_COMMAND_PROVISION
35
/* Provision device */
#define IAX_COMMAND_FWDOWNL 36
/* Download firmware */
#define IAX_COMMAND_FWDATA 37
/*
F
irmware
D
ata */
#define IAX_DEFAULT_REG_EXPIRE 60
/* By default require re-registration once per minute */
#define IAX_LINGER_TIMEOUT 10
/* How long to wait before closing bridged call */
#define IAX_COMMAND_NEW
1
/** Initiate a new call */
#define IAX_COMMAND_PING
2
/** Ping request */
#define IAX_COMMAND_PONG
3
/** Ping or poke reply */
#define IAX_COMMAND_ACK
4
/** Explicit acknowledgment */
#define IAX_COMMAND_HANGUP
5
/** Initiate call teardown */
#define IAX_COMMAND_REJECT
6
/** Reject a call */
#define IAX_COMMAND_ACCEPT
7
/** Accept a call */
#define IAX_COMMAND_AUTHREQ
8
/** Authentication request */
#define IAX_COMMAND_AUTHREP
9
/** Authentication reply */
#define IAX_COMMAND_INVAL
10
/** Invalid message */
#define IAX_COMMAND_LAGRQ
11
/** Lag request */
#define IAX_COMMAND_LAGRP
12
/** Lag reply */
#define IAX_COMMAND_REGREQ
13
/*
*
Registration request */
#define IAX_COMMAND_REGAUTH
14
/*
*
Registration authentication required */
#define IAX_COMMAND_REGACK
15
/*
*
Registration accepted */
#define IAX_COMMAND_REGREJ
16
/*
*
Registration rejected */
#define IAX_COMMAND_REGREL
17
/*
*
Force release of registration */
#define IAX_COMMAND_VNAK
18
/*
*
If we receive voice before valid first voice frame, send this */
#define IAX_COMMAND_DPREQ
19
/*
*
Request status of a dialplan entry */
#define IAX_COMMAND_DPREP
20
/*
*
Request status of a dialplan entry */
#define IAX_COMMAND_DIAL
21
/*
*
Request a dial on channel brought up TBD */
#define IAX_COMMAND_TXREQ
22
/*
*
Transfer Request */
#define IAX_COMMAND_TXCNT
23
/*
*
Transfer Connect */
#define IAX_COMMAND_TXACC
24
/*
*
Transfer Accepted */
#define IAX_COMMAND_TXREADY
25
/*
*
Transfer ready */
#define IAX_COMMAND_TXREL
26
/*
*
Transfer release */
#define IAX_COMMAND_TXREJ
27
/*
*
Transfer reject */
#define IAX_COMMAND_QUELCH
28
/*
*
Stop audio/video transmission */
#define IAX_COMMAND_UNQUELCH
29
/*
*
Resume audio/video transmission */
#define IAX_COMMAND_POKE
30
/*
*
Like ping, but does not require an open connection */
#define IAX_COMMAND_PAGE
31
/*
*
Paging description */
#define IAX_COMMAND_MWI
32
/*
*
Stand-alone message waiting indicator */
#define IAX_COMMAND_UNSUPPORT
33
/*
*
Unsupported message received */
#define IAX_COMMAND_TRANSFER
34
/*
*
Request remote transfer */
#define IAX_COMMAND_PROVISION
35
/*
*
Provision
an IAX2
device */
#define IAX_COMMAND_FWDOWNL
36
/*
*
Download firmware
request
*/
#define IAX_COMMAND_FWDATA
37
/*
* Transmit f
irmware
d
ata */
#define IAX_DEFAULT_REG_EXPIRE 60
/*
*
By default require re-registration once per minute */
#define IAX_LINGER_TIMEOUT 10
/*
*
How long to wait before closing bridged call */
#define IAX_DEFAULT_PORTNO 4569
/* IAX Information elements */
#define IAX_IE_CALLED_NUMBER 1
/* Number/extension being called - string */
#define IAX_IE_CALLING_NUMBER 2
/* Calling number - string */
#define IAX_IE_CALLING_ANI 3
/* Calling number ANI for billing - string */
#define IAX_IE_CALLING_NAME 4
/* Name of caller - string */
#define IAX_IE_CALLED_CONTEXT 5
/* Context for number - string */
#define IAX_IE_USERNAME 6
/* Username (peer or user) for authentication - string */
#define IAX_IE_PASSWORD 7
/* Password for authentication - string */
#define IAX_IE_CAPABILITY 8
/* Actual codec capability - unsigned int */
#define IAX_IE_FORMAT 9
/* Desired codec format - unsigned int */
#define IAX_IE_LANGUAGE 10
/* Desired language - string */
#define IAX_IE_VERSION 11
/* Protocol version - short */
#define IAX_IE_ADSICPE 12
/* CPE ADSI capability - short */
#define IAX_IE_DNID 13
/* Originally dialed DNID - string */
#define IAX_IE_AUTHMETHODS 14
/* Authentication method(s) - short */
#define IAX_IE_CHALLENGE 15
/* Challenge data for MD5/RSA - string */
#define IAX_IE_MD5_RESULT 16
/* MD5 challenge result - string */
#define IAX_IE_RSA_RESULT 17
/* RSA challenge result - string */
#define IAX_IE_APPARENT_ADDR 18
/* Apparent address of peer - struct sockaddr_in */
#define IAX_IE_REFRESH 19
/* When to refresh registration - short */
#define IAX_IE_DPSTATUS 20
/* Dialplan status - short */
#define IAX_IE_CALLNO 21
/* Call number of peer - short */
#define IAX_IE_CAUSE 22
/* Cause - string */
#define IAX_IE_IAX_UNKNOWN 23
/* Unknown IAX command - byte */
#define IAX_IE_MSGCOUNT 24
/* How many messages waiting - short */
#define IAX_IE_AUTOANSWER 25
/* Request auto-answering -- none */
#define IAX_IE_MUSICONHOLD 26
/* Request musiconhold with QUELCH -- none or string */
#define IAX_IE_TRANSFERID 27
/* Transfer Request Identifier -- int */
#define IAX_IE_RDNIS 28
/* Referring DNIS -- string */
#define IAX_IE_PROVISIONING 29
/* Provisioning info */
#define IAX_IE_AESPROVISIONING 30
/* AES Provisioning info */
#define IAX_IE_DATETIME 31
/* Date/Time */
#define IAX_IE_DEVICETYPE 32
/* Device Type -- string */
#define IAX_IE_SERVICEIDENT 33
/* Service Identifier -- string */
#define IAX_IE_FIRMWAREVER 34
/* Firmware revision -- u16 */
#define IAX_IE_FWBLOCKDESC 35
/* Firmware block description -- u32 */
#define IAX_IE_FWBLOCKDATA 36
/* Firmware block of data -- raw */
#define IAX_IE_PROVVER 37
/* Provisioning Version (u32) */
#define IAX_IE_CALLINGPRES 38
/* Calling presentation (u8) */
#define IAX_IE_CALLINGTON 39
/* Calling type of number (u8) */
#define IAX_IE_CALLINGTNS 40
/* Calling transit network select (u16) */
#define IAX_IE_SAMPLINGRATE 41
/* Supported sampling rates (u16) */
#define IAX_IE_CAUSECODE 42
/* Hangup cause (u8) */
#define IAX_IE_ENCRYPTION 43
/* Encryption format (u16) */
#define IAX_IE_ENCKEY 44
/* Encryption key (raw) */
#define IAX_IE_CODEC_PREFS 45
/* Codec Negotiation */
#define IAX_IE_RR_JITTER 46
/* Received jitter (as in RFC1889) u32 */
#define IAX_IE_RR_LOSS 47
/* Received loss (high byte loss pct, low 24 bits loss count, as in rfc1889 */
#define IAX_IE_RR_PKTS 48
/* Received frames (total frames received) u32 */
#define IAX_IE_RR_DELAY 49
/* Max playout delay for received frames (in ms) u16 */
#define IAX_IE_RR_DROPPED 50
/* Dropped frames (presumably by jitterbuf) u32 */
#define IAX_IE_RR_OOO 51
/* Frames received Out of Order u32 */
#define IAX_IE_CALLED_NUMBER 1
/** Number/extension being called - string */
#define IAX_IE_CALLING_NUMBER 2
/** Calling number - string */
#define IAX_IE_CALLING_ANI 3
/** Calling number ANI for billing - string */
#define IAX_IE_CALLING_NAME 4
/** Name of caller - string */
#define IAX_IE_CALLED_CONTEXT 5
/** Context for number - string */
#define IAX_IE_USERNAME 6
/** Username (peer or user) for authentication - string */
#define IAX_IE_PASSWORD 7
/** Password for authentication - string */
#define IAX_IE_CAPABILITY 8
/** Actual codec capability - unsigned int */
#define IAX_IE_FORMAT 9
/** Desired codec format - unsigned int */
#define IAX_IE_LANGUAGE 10
/** Desired language - string */
#define IAX_IE_VERSION 11
/** Protocol version - short */
#define IAX_IE_ADSICPE 12
/** CPE ADSI capability - short */
#define IAX_IE_DNID 13
/** Originally dialed DNID - string */
#define IAX_IE_AUTHMETHODS 14
/** Authentication method(s) - short */
#define IAX_IE_CHALLENGE 15
/** Challenge data for MD5/RSA - string */
#define IAX_IE_MD5_RESULT 16
/** MD5 challenge result - string */
#define IAX_IE_RSA_RESULT 17
/** RSA challenge result - string */
#define IAX_IE_APPARENT_ADDR 18
/** Apparent address of peer - struct sockaddr_in */
#define IAX_IE_REFRESH 19
/** When to refresh registration - short */
#define IAX_IE_DPSTATUS 20
/** Dialplan status - short */
#define IAX_IE_CALLNO 21
/** Call number of peer - short */
#define IAX_IE_CAUSE 22
/** Cause - string */
#define IAX_IE_IAX_UNKNOWN 23
/** Unknown IAX command - byte */
#define IAX_IE_MSGCOUNT 24
/** How many messages waiting - short */
#define IAX_IE_AUTOANSWER 25
/** Request auto-answering -- none */
#define IAX_IE_MUSICONHOLD 26
/** Request musiconhold with QUELCH -- none or string */
#define IAX_IE_TRANSFERID 27
/** Transfer Request Identifier -- int */
#define IAX_IE_RDNIS 28
/** Referring DNIS -- string */
#define IAX_IE_PROVISIONING 29
/** Provisioning info */
#define IAX_IE_AESPROVISIONING 30
/** AES Provisioning info */
#define IAX_IE_DATETIME 31
/** Date/Time */
#define IAX_IE_DEVICETYPE 32
/** Device Type -- string */
#define IAX_IE_SERVICEIDENT 33
/** Service Identifier -- string */
#define IAX_IE_FIRMWAREVER 34
/** Firmware revision -- u16 */
#define IAX_IE_FWBLOCKDESC 35
/** Firmware block description -- u32 */
#define IAX_IE_FWBLOCKDATA 36
/** Firmware block of data -- raw */
#define IAX_IE_PROVVER 37
/** Provisioning Version (u32) */
#define IAX_IE_CALLINGPRES 38
/** Calling presentation (u8) */
#define IAX_IE_CALLINGTON 39
/** Calling type of number (u8) */
#define IAX_IE_CALLINGTNS 40
/** Calling transit network select (u16) */
#define IAX_IE_SAMPLINGRATE 41
/** Supported sampling rates (u16) */
#define IAX_IE_CAUSECODE 42
/** Hangup cause (u8) */
#define IAX_IE_ENCRYPTION 43
/** Encryption format (u16) */
#define IAX_IE_ENCKEY 44
/** Encryption key (raw) */
#define IAX_IE_CODEC_PREFS 45
/** Codec Negotiation */
#define IAX_IE_RR_JITTER 46
/** Received jitter (as in RFC1889) u32 */
#define IAX_IE_RR_LOSS 47
/** Received loss (high byte loss pct, low 24 bits loss count, as in rfc1889 */
#define IAX_IE_RR_PKTS 48
/** Received frames (total frames received) u32 */
#define IAX_IE_RR_DELAY 49
/** Max playout delay for received frames (in ms) u16 */
#define IAX_IE_RR_DROPPED 50
/** Dropped frames (presumably by jitterbuf) u32 */
#define IAX_IE_RR_OOO 51
/** Frames received Out of Order u32 */
...
...
@@ -134,15 +133,15 @@
#define IAX_AUTH_MD5 (1 << 1)
#define IAX_AUTH_RSA (1 << 2)
#define IAX_META_TRUNK 1
/* Trunk meta-message */
#define IAX_META_VIDEO 2
/* Video frame */
#define IAX_META_TRUNK 1
/*
*
Trunk meta-message */
#define IAX_META_VIDEO 2
/*
*
Video frame */
#define IAX_RATE_8KHZ (1 << 0)
/* 8khz sampling (default if absent) */
#define IAX_RATE_11KHZ (1 << 1)
/* 11.025khz sampling */
#define IAX_RATE_16KHZ (1 << 2)
/* 16khz sampling */
#define IAX_RATE_22KHZ (1 << 3)
/* 22.05khz sampling */
#define IAX_RATE_44KHZ (1 << 4)
/* 44.1khz sampling */
#define IAX_RATE_48KHZ (1 << 5)
/* 48khz sampling */
#define IAX_RATE_8KHZ (1 << 0)
/*
*
8khz sampling (default if absent) */
#define IAX_RATE_11KHZ (1 << 1)
/*
*
11.025khz sampling */
#define IAX_RATE_16KHZ (1 << 2)
/*
*
16khz sampling */
#define IAX_RATE_22KHZ (1 << 3)
/*
*
22.05khz sampling */
#define IAX_RATE_44KHZ (1 << 4)
/*
*
44.1khz sampling */
#define IAX_RATE_48KHZ (1 << 5)
/*
*
48khz sampling */
#define IAX_DPSTATUS_EXISTS (1 << 0)
#define IAX_DPSTATUS_CANEXIST (1 << 1)
...
...
@@ -159,57 +158,57 @@
/* Full frames are always delivered reliably */
struct
ast_iax2_full_hdr
{
unsigned
short
scallno
;
/* Source call number -- high bit must be 1 */
unsigned
short
dcallno
;
/* Destination call number -- high bit is 1 if retransmission */
unsigned
int
ts
;
/* 32-bit timestamp in milliseconds (from 1st transmission) */
unsigned
char
oseqno
;
/* Packet number (outgoing) */
unsigned
char
iseqno
;
/* Packet number (next incoming expected) */
char
type
;
/* Frame type */
unsigned
char
csub
;
/* Compressed subclass */
unsigned
short
scallno
;
/*
*
Source call number -- high bit must be 1 */
unsigned
short
dcallno
;
/*
*
Destination call number -- high bit is 1 if retransmission */
unsigned
int
ts
;
/*
*
32-bit timestamp in milliseconds (from 1st transmission) */
unsigned
char
oseqno
;
/*
*
Packet number (outgoing) */
unsigned
char
iseqno
;
/*
*
Packet number (next incoming expected) */
char
type
;
/*
*
Frame type */
unsigned
char
csub
;
/*
*
Compressed subclass */
unsigned
char
iedata
[
0
];
}
__PACKED
;
/* Mini header is used only for voice frames -- delivered unreliably */
struct
ast_iax2_mini_hdr
{
unsigned
short
callno
;
/* Source call number -- high bit must be 0, rest must be non-zero */
unsigned
short
ts
;
/* 16-bit Timestamp (high 16 bits from last ast_iax2_full_hdr) */
/* Frametype implicitly VOICE_FRAME */
/* subclass implicit from last ast_iax2_full_hdr */
unsigned
short
callno
;
/*
*
Source call number -- high bit must be 0, rest must be non-zero */
unsigned
short
ts
;
/
*
* 16-bit Timestamp (high 16 bits from last ast_iax2_full_hdr) */
/
*
* Frametype implicitly VOICE_FRAME */
/
*
* subclass implicit from last ast_iax2_full_hdr */
unsigned
char
data
[
0
];
}
__PACKED
;
struct
ast_iax2_meta_hdr
{
unsigned
short
zeros
;
/* Zeros field -- must be zero */
unsigned
char
metacmd
;
/* Meta command */
unsigned
char
cmddata
;
/* Command Data */
unsigned
short
zeros
;
/*
*
Zeros field -- must be zero */
unsigned
char
metacmd
;
/*
*
Meta command */
unsigned
char
cmddata
;
/*
*
Command Data */
unsigned
char
data
[
0
];
}
__PACKED
;
struct
ast_iax2_video_hdr
{
unsigned
short
zeros
;
/* Zeros field -- must be zero */
unsigned
short
callno
;
/* Video call number */
unsigned
short
ts
;
/* Timestamp and mark if present */
unsigned
short
zeros
;
/*
*
Zeros field -- must be zero */
unsigned
short
callno
;
/*
*
Video call number */
unsigned
short
ts
;
/
*
* Timestamp and mark if present */
unsigned
char
data
[
0
];
}
__PACKED
;
struct
ast_iax2_meta_trunk_hdr
{
unsigned
int
ts
;
/* 32-bit timestamp for all messages */
unsigned
int
ts
;
/
*
* 32-bit timestamp for all messages */
unsigned
char
data
[
0
];
}
__PACKED
;
struct
ast_iax2_meta_trunk_entry
{
unsigned
short
callno
;
/* Call number */
unsigned
short
len
;
/* Length of data for this callno */
unsigned
short
callno
;
/*
*
Call number */
unsigned
short
len
;
/
*
* Length of data for this callno */
}
__PACKED
;
#define IAX_FIRMWARE_MAGIC 0x69617879
struct
ast_iax2_firmware_header
{
unsigned
int
magic
;
/* Magic number */
unsigned
short
version
;
/* Software version */
unsigned
char
devname
[
16
];
/* Device */
unsigned
int
datalen
;
/* Data length of file beyond header */
unsigned
char
chksum
[
16
];
/* Checksum of all data */
unsigned
int
magic
;
/*
*
Magic number */
unsigned
short
version
;
/*
*
Software version */
unsigned
char
devname
[
16
];
/*
*
Device */
unsigned
int
datalen
;
/*
*
Data length of file beyond header */
unsigned
char
chksum
[
16
];
/*
*
Checksum of all data */
unsigned
char
data
[
0
];
}
__PACKED
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment