]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[SFrame-V3] sframe: use const for sframe_decoder_ctx object arg
authorIndu Bhagat <indu.bhagat@oracle.com>
Fri, 14 Nov 2025 23:49:38 +0000 (15:49 -0800)
committerIndu Bhagat <indu.bhagat@oracle.com>
Tue, 9 Dec 2025 08:26:12 +0000 (00:26 -0800)
As the library version will be bumped soon, include this change now.
Note the arg names in sframe-dump.c APIs have 'sfd_ctx' instead of the
usual 'dctx'.  We can address this cosmetic change at a later time.
Other cosmetic changes, e.g. to make fixing function-level comments more
consistent, are left out of the patch for now.

Additionally, constify the return type of static function
sframe_decoder_get_header, now that the call sites consistently use a
const object.

include/sframe-api.h
libsframe/sframe-dump.c
libsframe/sframe.c

index 6afb615f144796443bbb0675b2a5df53f92ccdfe..3521c188ec0efca82f2b59479c99bb2fd35b99c2 100644 (file)
@@ -114,19 +114,19 @@ sframe_decoder_free (sframe_decoder_ctx **dctx);
 
 /* Get the size of the SFrame header from the decoder context DCTX.  */
 extern unsigned int
-sframe_decoder_get_hdr_size (sframe_decoder_ctx *dctx);
+sframe_decoder_get_hdr_size (const sframe_decoder_ctx *dctx);
 
 /* Get the SFrame's abi/arch info.  */
 extern uint8_t
-sframe_decoder_get_abi_arch (sframe_decoder_ctx *dctx);
+sframe_decoder_get_abi_arch (const 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);
+sframe_decoder_get_version (const sframe_decoder_ctx *dctx);
 
 /* Get the section flags from the SFrame decoder context DCTX.  */
 extern uint8_t
-sframe_decoder_get_flags (sframe_decoder_ctx *dctx);
+sframe_decoder_get_flags (const sframe_decoder_ctx *dctx);
 
 /* Get the offset of the sfde_func_start_address field (from the start of the
    on-disk layout of the SFrame section) of the FDE at FUNC_IDX in the decoder
@@ -137,34 +137,34 @@ sframe_decoder_get_flags (sframe_decoder_ctx *dctx);
    for the linker when arranging input FDEs into the output section to be
    emitted.  */
 uint32_t
-sframe_decoder_get_offsetof_fde_start_addr (sframe_decoder_ctx *dctx,
+sframe_decoder_get_offsetof_fde_start_addr (const sframe_decoder_ctx *dctx,
                                            uint32_t func_idx, int *errp);
 
 /* Return the number of function descriptor entries in the SFrame decoder
    DCTX.  */
 extern uint32_t
-sframe_decoder_get_num_fidx (sframe_decoder_ctx *dctx);
+sframe_decoder_get_num_fidx (const sframe_decoder_ctx *dctx);
 
 /* Get the fixed FP offset from the decoder context DCTX.  */
 extern int8_t
-sframe_decoder_get_fixed_fp_offset (sframe_decoder_ctx *dctx);
+sframe_decoder_get_fixed_fp_offset (const sframe_decoder_ctx *dctx);
 
 /* Get the fixed RA offset from the decoder context DCTX.  */
 extern int8_t
-sframe_decoder_get_fixed_ra_offset (sframe_decoder_ctx *dctx);
+sframe_decoder_get_fixed_ra_offset (const sframe_decoder_ctx *dctx);
 
 /* Find the SFrame Frame Row Entry which contains the PC.  Returns
    SFRAME_ERR if failure.  */
 
 extern int
-sframe_find_fre (sframe_decoder_ctx *ctx, int32_t pc,
+sframe_find_fre (const sframe_decoder_ctx *ctx, int32_t pc,
                 sframe_frame_row_entry *frep);
 
 /* Get the FRE_IDX'th FRE of the function at FUNC_IDX'th function
    index entry in the SFrame decoder CTX.  Returns error code as
    applicable.  */
 extern int
-sframe_decoder_get_fre (sframe_decoder_ctx *ctx,
+sframe_decoder_get_fre (const sframe_decoder_ctx *ctx,
                        unsigned int func_idx,
                        unsigned int fre_idx,
                        sframe_frame_row_entry *fre);
@@ -174,7 +174,7 @@ sframe_decoder_get_fre (sframe_decoder_ctx *ctx,
    in the decoder CTX.  If failed, return error code.
    This API is only available from SFRAME_VERSION_2.  */
 extern int
-sframe_decoder_get_funcdesc_v2 (sframe_decoder_ctx *ctx,
+sframe_decoder_get_funcdesc_v2 (const sframe_decoder_ctx *ctx,
                                unsigned int i,
                                uint32_t *num_fres,
                                uint32_t *func_size,
@@ -184,24 +184,24 @@ sframe_decoder_get_funcdesc_v2 (sframe_decoder_ctx *ctx,
 
 /* SFrame textual dump.  */
 extern void
-dump_sframe (sframe_decoder_ctx *decoder, uint64_t addr);
+dump_sframe (const sframe_decoder_ctx *decoder, uint64_t addr);
 
 /* Get the base reg id from the FRE info.  Sets errp if fails.  */
 extern uint8_t
-sframe_fre_get_base_reg_id (sframe_frame_row_entry *fre, int *errp);
+sframe_fre_get_base_reg_id (const sframe_frame_row_entry *fre, int *errp);
 
 /* Get the CFA offset from the FRE.  If the offset is invalid, sets errp.  */
 extern int32_t
-sframe_fre_get_cfa_offset (sframe_decoder_ctx *dtcx,
-                          sframe_frame_row_entry *fre, int *errp);
+sframe_fre_get_cfa_offset (const sframe_decoder_ctx *dtcx,
+                          const sframe_frame_row_entry *fre, int *errp);
 
 /* Get the FP offset from the FRE.  If the offset is invalid, sets errp.
 
    For s390x the offset may be an encoded register number, indicated by
    LSB set to one, which is only valid in the topmost frame.  */
 extern int32_t
-sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx,
-                         sframe_frame_row_entry *fre, int *errp);
+sframe_fre_get_fp_offset (const sframe_decoder_ctx *dctx,
+                         const sframe_frame_row_entry *fre, int *errp);
 
 /* Get the RA offset from the FRE.  If the offset is invalid, sets errp.
 
@@ -210,14 +210,14 @@ sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx,
    For s390x the offset may be an encoded register number, indicated by
    LSB set to one, which is only valid in the topmost frame.  */
 extern int32_t
-sframe_fre_get_ra_offset (sframe_decoder_ctx *dctx,
-                         sframe_frame_row_entry *fre, int *errp);
+sframe_fre_get_ra_offset (const sframe_decoder_ctx *dctx,
+                         const sframe_frame_row_entry *fre, int *errp);
 
 /* Get whether the RA is mangled.  */
 
 extern bool
-sframe_fre_get_ra_mangled_p (sframe_decoder_ctx *dctx,
-                            sframe_frame_row_entry *fre, int *errp);
+sframe_fre_get_ra_mangled_p (const sframe_decoder_ctx *dctx,
+                            const sframe_frame_row_entry *fre, int *errp);
 
 /* Get whether the RA is undefined (i.e. outermost frame).  */
 
index dc856cd13563d5e217f2198082e590181b0e17bf..592b1298b9dd826be4da9a73b925ab68c86aae75 100644 (file)
@@ -26,7 +26,7 @@
 /* Return TRUE if the SFrame section is associated with the aarch64 ABIs.  */
 
 static bool
-is_sframe_abi_arch_aarch64 (sframe_decoder_ctx *sfd_ctx)
+is_sframe_abi_arch_aarch64 (const sframe_decoder_ctx *sfd_ctx)
 {
   bool aarch64_p = false;
 
@@ -41,13 +41,13 @@ is_sframe_abi_arch_aarch64 (sframe_decoder_ctx *sfd_ctx)
 /* Return TRUE if the SFrame section is associated with the s390x ABI.  */
 
 static bool
-is_sframe_abi_arch_s390x (sframe_decoder_ctx *sfd_ctx)
+is_sframe_abi_arch_s390x (const sframe_decoder_ctx *sfd_ctx)
 {
   return sframe_decoder_get_abi_arch (sfd_ctx) == SFRAME_ABI_S390X_ENDIAN_BIG;
 }
 
 static void
-dump_sframe_header_flags (sframe_decoder_ctx *sfd_ctx)
+dump_sframe_header_flags (const sframe_decoder_ctx *sfd_ctx)
 {
   uint8_t flags;
   const char *prefix = "Flags: ";
@@ -78,7 +78,7 @@ dump_sframe_header_flags (sframe_decoder_ctx *sfd_ctx)
 }
 
 static void
-dump_sframe_header (sframe_decoder_ctx *sfd_ctx)
+dump_sframe_header (const sframe_decoder_ctx *sfd_ctx)
 {
   uint8_t ver;
   const char *ver_str = NULL;
@@ -117,7 +117,7 @@ dump_sframe_header (sframe_decoder_ctx *sfd_ctx)
 }
 
 static void
-dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ctx,
+dump_sframe_func_with_fres (const sframe_decoder_ctx *sfd_ctx,
                            unsigned int funcidx,
                            uint64_t sec_addr)
 {
@@ -250,7 +250,7 @@ dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ctx,
 }
 
 static void
-dump_sframe_functions (sframe_decoder_ctx *sfd_ctx, uint64_t sec_addr)
+dump_sframe_functions (const sframe_decoder_ctx *sfd_ctx, uint64_t sec_addr)
 {
   uint32_t i;
   uint32_t num_fdes;
@@ -267,7 +267,7 @@ dump_sframe_functions (sframe_decoder_ctx *sfd_ctx, uint64_t sec_addr)
 }
 
 void
-dump_sframe (sframe_decoder_ctx *sfd_ctx, uint64_t sec_addr)
+dump_sframe (const sframe_decoder_ctx *sfd_ctx, uint64_t sec_addr)
 {
   uint8_t ver;
 
index 41cb275bef2f1a97d6bc0570696633bcc6f1833b..6c534796207ad442312647e9868e1ed50b6cb70e 100644 (file)
@@ -457,7 +457,7 @@ sframe_fre_entry_size (sframe_frame_row_entry *frep, uint32_t fre_type)
    context CTX.  */
 
 static sframe_func_desc_entry_int *
-sframe_decoder_get_funcdesc_at_index (sframe_decoder_ctx *ctx,
+sframe_decoder_get_funcdesc_at_index (const sframe_decoder_ctx *ctx,
                                      uint32_t func_idx)
 {
   sframe_func_desc_entry_int *fdep;
@@ -483,7 +483,7 @@ sframe_decoder_get_funcdesc_at_index (sframe_decoder_ctx *ctx,
    If FUNC_IDX is not a valid index in the given decoder object, returns 0.  */
 
 static int32_t
-sframe_decoder_get_secrel_func_start_addr (sframe_decoder_ctx *dctx,
+sframe_decoder_get_secrel_func_start_addr (const sframe_decoder_ctx *dctx,
                                           uint32_t func_idx)
 {
   int err = 0;
@@ -504,7 +504,7 @@ sframe_decoder_get_secrel_func_start_addr (sframe_decoder_ctx *dctx,
    information for the PC.  */
 
 static bool
-sframe_fre_check_range_p (sframe_decoder_ctx *dctx, uint32_t func_idx,
+sframe_fre_check_range_p (const sframe_decoder_ctx *dctx, uint32_t func_idx,
                          uint32_t start_ip_offset, uint32_t end_ip_offset,
                          int32_t pc)
 {
@@ -755,10 +755,10 @@ bad:
 
 /* Get SFrame header from the given decoder context DCTX.  */
 
-static sframe_header *
-sframe_decoder_get_header (sframe_decoder_ctx *dctx)
+static const sframe_header *
+sframe_decoder_get_header (const sframe_decoder_ctx *dctx)
 {
-  sframe_header *hp = NULL;
+  const sframe_header *hp = NULL;
   if (dctx != NULL)
     hp = &dctx->sfd_header;
   return hp;
@@ -782,7 +782,7 @@ fde_func (const void *p1, const void *p2)
 /* Get IDX'th offset from FRE.  Set errp as applicable.  */
 
 static int32_t
-sframe_get_fre_offset (sframe_frame_row_entry *fre, int idx, int *errp)
+sframe_get_fre_offset (const sframe_frame_row_entry *fre, int idx, int *errp)
 {
   uint8_t offset_cnt, offset_size;
 
@@ -885,7 +885,7 @@ sframe_calc_fre_type (size_t func_size)
 /* Get the base reg id from the FRE info.  Set errp if failure.  */
 
 uint8_t
-sframe_fre_get_base_reg_id (sframe_frame_row_entry *fre, int *errp)
+sframe_fre_get_base_reg_id (const sframe_frame_row_entry *fre, int *errp)
 {
   if (fre == NULL)
     return sframe_set_errno (errp, SFRAME_ERR_FRE_INVAL);
@@ -897,8 +897,8 @@ sframe_fre_get_base_reg_id (sframe_frame_row_entry *fre, int *errp)
 /* Get the CFA offset from the FRE.  If the offset is invalid, sets errp.  */
 
 int32_t
-sframe_fre_get_cfa_offset (sframe_decoder_ctx *dctx,
-                          sframe_frame_row_entry *fre, int *errp)
+sframe_fre_get_cfa_offset (const sframe_decoder_ctx *dctx,
+                          const sframe_frame_row_entry *fre, int *errp)
 {
   int err;
   int32_t offset = sframe_get_fre_offset (fre, SFRAME_FRE_CFA_OFFSET_IDX, &err);
@@ -918,8 +918,8 @@ sframe_fre_get_cfa_offset (sframe_decoder_ctx *dctx,
    LSB set to one, which is only valid in the topmost frame.  */
 
 int32_t
-sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx,
-                         sframe_frame_row_entry *fre, int *errp)
+sframe_fre_get_fp_offset (const sframe_decoder_ctx *dctx,
+                         const sframe_frame_row_entry *fre, int *errp)
 {
   uint32_t fp_offset_idx = 0;
   int8_t fp_offset = sframe_decoder_get_fixed_fp_offset (dctx);
@@ -951,8 +951,8 @@ sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx,
    LSB set to one, which is only valid in the topmost frame.  */
 
 int32_t
-sframe_fre_get_ra_offset (sframe_decoder_ctx *dctx,
-                         sframe_frame_row_entry *fre, int *errp)
+sframe_fre_get_ra_offset (const sframe_decoder_ctx *dctx,
+                         const sframe_frame_row_entry *fre, int *errp)
 {
   int8_t ra_offset = sframe_decoder_get_fixed_ra_offset (dctx);
   /* If the RA offset was not being tracked, return the fixed RA offset
@@ -972,8 +972,8 @@ sframe_fre_get_ra_offset (sframe_decoder_ctx *dctx,
 /* Get whether the RA is mangled.  */
 
 bool
-sframe_fre_get_ra_mangled_p (sframe_decoder_ctx *dctx ATTRIBUTE_UNUSED,
-                            sframe_frame_row_entry *fre, int *errp)
+sframe_fre_get_ra_mangled_p (const sframe_decoder_ctx *dctx ATTRIBUTE_UNUSED,
+                            const sframe_frame_row_entry *fre, int *errp)
 {
   if (fre == NULL || !sframe_fre_sanity_check_p (fre))
     return sframe_set_errno (errp, SFRAME_ERR_FRE_INVAL);
@@ -1228,7 +1228,7 @@ decode_fail_free:
 /* Get the size of the SFrame header from the decoder context CTX.  */
 
 unsigned int
-sframe_decoder_get_hdr_size (sframe_decoder_ctx *ctx)
+sframe_decoder_get_hdr_size (const sframe_decoder_ctx *ctx)
 {
   const sframe_header *dhp = sframe_decoder_get_header (ctx);
   return sframe_get_hdr_size (dhp);
@@ -1237,7 +1237,7 @@ sframe_decoder_get_hdr_size (sframe_decoder_ctx *ctx)
 /* Get the SFrame's abi/arch info given the decoder context DCTX.  */
 
 uint8_t
-sframe_decoder_get_abi_arch (sframe_decoder_ctx *dctx)
+sframe_decoder_get_abi_arch (const sframe_decoder_ctx *dctx)
 {
   const sframe_header *dhp = sframe_decoder_get_header (dctx);
   return dhp->sfh_abi_arch;
@@ -1246,7 +1246,7 @@ sframe_decoder_get_abi_arch (sframe_decoder_ctx *dctx)
 /* Get the format version from the SFrame decoder context DCTX.  */
 
 uint8_t
-sframe_decoder_get_version (sframe_decoder_ctx *dctx)
+sframe_decoder_get_version (const sframe_decoder_ctx *dctx)
 {
   const sframe_header *dhp = sframe_decoder_get_header (dctx);
   return dhp->sfh_preamble.sfp_version;
@@ -1255,7 +1255,7 @@ sframe_decoder_get_version (sframe_decoder_ctx *dctx)
 /* Get the section flags from the SFrame decoder context DCTX.  */
 
 uint8_t
-sframe_decoder_get_flags (sframe_decoder_ctx *dctx)
+sframe_decoder_get_flags (const sframe_decoder_ctx *dctx)
 {
   const sframe_header *dhp = sframe_decoder_get_header (dctx);
   return dhp->sfh_preamble.sfp_flags;
@@ -1263,7 +1263,7 @@ sframe_decoder_get_flags (sframe_decoder_ctx *dctx)
 
 /* Get the SFrame's fixed FP offset given the decoder context CTX.  */
 int8_t
-sframe_decoder_get_fixed_fp_offset (sframe_decoder_ctx *ctx)
+sframe_decoder_get_fixed_fp_offset (const sframe_decoder_ctx *ctx)
 {
   const sframe_header *dhp = sframe_decoder_get_header (ctx);
   return dhp->sfh_cfa_fixed_fp_offset;
@@ -1271,7 +1271,7 @@ sframe_decoder_get_fixed_fp_offset (sframe_decoder_ctx *ctx)
 
 /* Get the SFrame's fixed RA offset given the decoder context CTX.  */
 int8_t
-sframe_decoder_get_fixed_ra_offset (sframe_decoder_ctx *ctx)
+sframe_decoder_get_fixed_ra_offset (const sframe_decoder_ctx *ctx)
 {
   const sframe_header *dhp = sframe_decoder_get_header (ctx);
   return dhp->sfh_cfa_fixed_ra_offset;
@@ -1287,7 +1287,7 @@ sframe_decoder_get_fixed_ra_offset (sframe_decoder_ctx *ctx)
    emitted.  */
 
 uint32_t
-sframe_decoder_get_offsetof_fde_start_addr (sframe_decoder_ctx *dctx,
+sframe_decoder_get_offsetof_fde_start_addr (const sframe_decoder_ctx *dctx,
                                            uint32_t func_idx, int *errp)
 {
   if (func_idx >= sframe_decoder_get_num_fidx (dctx))
@@ -1304,8 +1304,9 @@ sframe_decoder_get_offsetof_fde_start_addr (sframe_decoder_ctx *dctx,
    address ADDR.  */
 
 static sframe_func_desc_entry_int *
-sframe_get_funcdesc_with_addr_internal (sframe_decoder_ctx *ctx, int32_t addr,
-                                       int *errp, uint32_t *func_idx)
+sframe_get_funcdesc_with_addr_internal (const sframe_decoder_ctx *ctx,
+                                       int32_t addr, int *errp,
+                                       uint32_t *func_idx)
 {
   sframe_func_desc_entry_int *fdp;
   int low, high;
@@ -1380,7 +1381,7 @@ sframe_fre_get_end_ip_offset (sframe_func_desc_entry_int *fdep, unsigned int i,
    SFRAME_ERR if failure.  */
 
 int
-sframe_find_fre (sframe_decoder_ctx *ctx, int32_t pc,
+sframe_find_fre (const sframe_decoder_ctx *ctx, int32_t pc,
                 sframe_frame_row_entry *frep)
 {
   sframe_frame_row_entry cur_fre;
@@ -1435,7 +1436,7 @@ sframe_find_fre (sframe_decoder_ctx *ctx, int32_t pc,
    DCTX.  */
 
 uint32_t
-sframe_decoder_get_num_fidx (sframe_decoder_ctx *ctx)
+sframe_decoder_get_num_fidx (const sframe_decoder_ctx *ctx)
 {
   uint32_t num_fdes = 0;
   const sframe_header *dhp = sframe_decoder_get_header (ctx);
@@ -1445,7 +1446,7 @@ sframe_decoder_get_num_fidx (sframe_decoder_ctx *ctx)
 }
 
 int
-sframe_decoder_get_funcdesc_v2 (sframe_decoder_ctx *dctx,
+sframe_decoder_get_funcdesc_v2 (const sframe_decoder_ctx *dctx,
                                unsigned int i,
                                uint32_t *num_fres,
                                uint32_t *func_size,
@@ -1479,7 +1480,7 @@ sframe_decoder_get_funcdesc_v2 (sframe_decoder_ctx *dctx,
    applicable.  */
 
 int
-sframe_decoder_get_fre (sframe_decoder_ctx *ctx,
+sframe_decoder_get_fre (const sframe_decoder_ctx *ctx,
                        unsigned int func_idx,
                        unsigned int fre_idx,
                        sframe_frame_row_entry *fre)