libsframe: add new APIs to get SFrame version

While the SFrame preamble is guaranteed to not change between versions,
providing these access APIs from the SFrame decoder and encoder APIs is
for convenience only.  The linker may want to use these APIs as the
format evolves.

include/
	* sframe-api.h (sframe_decoder_get_version): New declaration.
	(sframe_encoder_get_version): Likewise.

libsframe/
	* libsframe/libsframe.ver: Add new APIs.
	* libsframe/sframe.c (sframe_decoder_get_version): New
	definition.
	(sframe_encoder_get_version): Likewise.
This commit is contained in:
Indu Bhagat 2023-06-29 16:28:56 -07:00
parent 3169b734cf
commit 9f71b60bd4
3 changed files with 30 additions and 0 deletions

View File

@ -120,6 +120,10 @@ sframe_decoder_get_hdr_size (sframe_decoder_ctx *dctx);
extern uint8_t
sframe_decoder_get_abi_arch (sframe_decoder_ctx *dctx);
/* Get the format version from the SFrame decoder context DCTX. */
extern uint8_t
sframe_decoder_get_version (sframe_decoder_ctx *dctx);
/* Return the number of function descriptor entries in the SFrame decoder
DCTX. */
extern uint32_t
@ -217,6 +221,10 @@ sframe_encoder_get_hdr_size (sframe_encoder_ctx *encoder);
extern uint8_t
sframe_encoder_get_abi_arch (sframe_encoder_ctx *encoder);
/* Get the format version from the SFrame encoder context ENCODER. */
extern uint8_t
sframe_encoder_get_version (sframe_encoder_ctx *encoder);
/* Return the number of function descriptor entries in the SFrame encoder
ENCODER. */
extern uint32_t

View File

@ -13,6 +13,7 @@ LIBSFRAME_1.0 {
sframe_decode;
sframe_decoder_get_hdr_size;
sframe_decoder_get_abi_arch;
sframe_decoder_get_version;
sframe_decoder_get_fixed_fp_offset;
sframe_decoder_get_fixed_ra_offset;
sframe_get_funcdesc_with_addr;
@ -24,6 +25,7 @@ LIBSFRAME_1.0 {
sframe_encoder_free;
sframe_encoder_get_hdr_size;
sframe_encoder_get_abi_arch;
sframe_encoder_get_version;
sframe_encoder_get_num_fidx;
sframe_encoder_add_fre;
sframe_encoder_add_funcdesc;

View File

@ -988,6 +988,16 @@ sframe_decoder_get_abi_arch (sframe_decoder_ctx *dctx)
return sframe_header->sfh_abi_arch;
}
/* Get the format version from the SFrame decoder context DCTX. */
uint8_t
sframe_decoder_get_version (sframe_decoder_ctx *dctx)
{
sframe_header *dhp;
dhp = sframe_decoder_get_header (dctx);
return dhp->sfh_preamble.sfp_version;
}
/* Get the SFrame's fixed FP offset given the decoder context CTX. */
int8_t
sframe_decoder_get_fixed_fp_offset (sframe_decoder_ctx *ctx)
@ -1368,6 +1378,16 @@ sframe_encoder_get_abi_arch (sframe_encoder_ctx *encoder)
return abi_arch;
}
/* Get the format version from the SFrame encoder context ENCODER. */
uint8_t
sframe_encoder_get_version (sframe_encoder_ctx *encoder)
{
sframe_header *ehp;
ehp = sframe_encoder_get_header (encoder);
return ehp->sfh_preamble.sfp_version;
}
/* Return the number of function descriptor entries in the SFrame encoder
ENCODER. */