Skip to content

Commit

Permalink
Fix nasa#60, clean up API types
Browse files Browse the repository at this point in the history
Qualify all pointers to objects which should typically not be modified
as "const".  Also changes use of "int" type to "size_t" where the value
indicates the size of an object in memory.
jphickey committed Jan 21, 2022

Verified

This commit was signed with the committer’s verified signature. The key has expired.
flatcap Richard Russon
1 parent d8ec951 commit 3909c76
Showing 24 changed files with 78 additions and 70 deletions.
24 changes: 12 additions & 12 deletions inc/bplib.h
Original file line number Diff line number Diff line change
@@ -173,7 +173,7 @@ typedef unsigned long bp_sid_t;
/* Storage Object Header */
typedef struct {
int handle;
int size;
size_t size;
bp_sid_t sid;
} bp_object_hdr_t;

@@ -187,7 +187,7 @@ typedef struct {
typedef struct {
int (*create) (int type, bp_ipn_t node, bp_ipn_t service, bool recover, void* parm);
int (*destroy) (int handle);
int (*enqueue) (int handle, void* data1, int data1_size, void* data2, int data2_size, int timeout);
int (*enqueue) (int handle, const void* data1, size_t data1_size, const void* data2, size_t data2_size, int timeout);
int (*dequeue) (int handle, bp_object_t** object, int timeout);
int (*retrieve) (int handle, bp_sid_t sid, bp_object_t** object, int timeout);
int (*release) (int handle, bp_sid_t sid);
@@ -257,18 +257,18 @@ int bplib_flush (bp_desc_t* desc);
int bplib_config (bp_desc_t* desc, int mode, int opt, int* val);
int bplib_latchstats (bp_desc_t* desc, bp_stats_t* stats);

int bplib_store (bp_desc_t* desc, void* payload, int size, int timeout, uint32_t* flags);
int bplib_load (bp_desc_t* desc, void** bundle, int* size, int timeout, uint32_t* flags);
int bplib_process (bp_desc_t* desc, void* bundle, int size, int timeout, uint32_t* flags);
int bplib_accept (bp_desc_t* desc, void** payload, int* size, int timeout, uint32_t* flags);
int bplib_store (bp_desc_t* desc, const void* payload, size_t size, int timeout, uint32_t* flags);
int bplib_load (bp_desc_t* desc, void** bundle, size_t* size, int timeout, uint32_t* flags);
int bplib_process (bp_desc_t* desc, const void* bundle, size_t size, int timeout, uint32_t* flags);
int bplib_accept (bp_desc_t* desc, void** payload, size_t* size, int timeout, uint32_t* flags);

int bplib_ackbundle (bp_desc_t* desc, void* bundle);
int bplib_ackpayload (bp_desc_t* desc, void* payload);
int bplib_ackbundle (bp_desc_t* desc, const void* bundle);
int bplib_ackpayload (bp_desc_t* desc, const void* payload);

int bplib_routeinfo (void* bundle, int size, bp_route_t* route);
int bplib_display (void* bundle, int size, uint32_t* flags);
int bplib_eid2ipn (const char* eid, int len, bp_ipn_t* node, bp_ipn_t* service);
int bplib_ipn2eid (char* eid, int len, bp_ipn_t node, bp_ipn_t service);
int bplib_routeinfo (const void* bundle, size_t size, bp_route_t* route);
int bplib_display (const void* bundle, size_t size, uint32_t* flags);
int bplib_eid2ipn (const char* eid, size_t len, bp_ipn_t* node, bp_ipn_t* service);
int bplib_ipn2eid (char* eid, size_t len, bp_ipn_t node, bp_ipn_t service);
int bplib_attrinit (bp_attr_t* attributes);

#ifdef __cplusplus
2 changes: 1 addition & 1 deletion inc/bplib_store_file.h
Original file line number Diff line number Diff line change
@@ -57,7 +57,7 @@ void bplib_store_file_init (bp_file_driver_t* driver);
/* Service API */
int bplib_store_file_create (int type, bp_ipn_t node, bp_ipn_t service, bool recover, void* parm);
int bplib_store_file_destroy (int handle);
int bplib_store_file_enqueue (int handle, void* data1, int data1_size, void* data2, int data2_size, int timeout);
int bplib_store_file_enqueue (int handle, const void* data1, size_t data1_size, const void* data2, size_t data2_size, int timeout);
int bplib_store_file_dequeue (int handle, bp_object_t** object, int timeout);
int bplib_store_file_retrieve (int handle, bp_sid_t sid, bp_object_t** object, int timeout);
int bplib_store_file_release (int handle, bp_sid_t sid);
2 changes: 1 addition & 1 deletion inc/bplib_store_flash.h
Original file line number Diff line number Diff line change
@@ -109,7 +109,7 @@ void bplib_store_flash_stats (bp_flash_stats_t* stats, bool l
/* Service API */
int bplib_store_flash_create (int type, bp_ipn_t node, bp_ipn_t service, bool recover, void* parm);
int bplib_store_flash_destroy (int handle);
int bplib_store_flash_enqueue (int handle, void* data1, int data1_size, void* data2, int data2_size, int timeout);
int bplib_store_flash_enqueue (int handle, const void* data1, size_t data1_size, const void* data2, size_t data2_size, int timeout);
int bplib_store_flash_dequeue (int handle, bp_object_t** object, int timeout);
int bplib_store_flash_retrieve (int handle, bp_sid_t sid, bp_object_t** object, int timeout);
int bplib_store_flash_release (int handle, bp_sid_t sid);
2 changes: 1 addition & 1 deletion inc/bplib_store_ram.h
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@ void bplib_store_ram_init (void);
/* Service API */
int bplib_store_ram_create (int type, bp_ipn_t node, bp_ipn_t service, bool recover, void* parm);
int bplib_store_ram_destroy (int handle);
int bplib_store_ram_enqueue (int handle, void* data1, int data1_size, void* data2, int data2_size, int timeout);
int bplib_store_ram_enqueue (int handle, const void* data1, size_t data1_size, const void* data2, size_t data2_size, int timeout);
int bplib_store_ram_dequeue (int handle, bp_object_t** object, int timeout);
int bplib_store_ram_retrieve (int handle, bp_sid_t sid, bp_object_t** object, int timeout);
int bplib_store_ram_release (int handle, bp_sid_t sid);
30 changes: 15 additions & 15 deletions lib/bplib.c
Original file line number Diff line number Diff line change
@@ -116,7 +116,7 @@ bp_val_t bplib_global_custody_id = 0;
/*--------------------------------------------------------------------------------------
* create_bundle
*-------------------------------------------------------------------------------------*/
BP_LOCAL_SCOPE int create_bundle(void* parm, bool is_record, uint8_t* payload, int size, int timeout)
BP_LOCAL_SCOPE int create_bundle(void* parm, bool is_record, const uint8_t* payload, int size, int timeout)
{
bp_channel_t* ch = (bp_channel_t*)parm;
bp_bundle_data_t* data = NULL;
@@ -699,7 +699,7 @@ int bplib_latchstats(bp_desc_t* desc, bp_stats_t* stats)
/*--------------------------------------------------------------------------------------
* bplib_store -
*-------------------------------------------------------------------------------------*/
int bplib_store(bp_desc_t* desc, void* payload, int size, int timeout, uint32_t* flags)
int bplib_store(bp_desc_t* desc, const void* payload, size_t size, int timeout, uint32_t* flags)
{
int status = BP_SUCCESS;

@@ -731,7 +731,7 @@ int bplib_store(bp_desc_t* desc, void* payload, int size, int timeout, uint32_t*
/*--------------------------------------------------------------------------------------
* bplib_load -
*-------------------------------------------------------------------------------------*/
int bplib_load(bp_desc_t* desc, void** bundle, int* size, int timeout, uint32_t* flags)
int bplib_load(bp_desc_t* desc, void** bundle, size_t* size, int timeout, uint32_t* flags)
{
bp_active_bundle_t active_bundle = { BP_SID_VACANT, 0, 0 };
int status = BP_SUCCESS; /* success or error code */
@@ -997,7 +997,7 @@ int bplib_load(bp_desc_t* desc, void** bundle, int* size, int timeout, uint32_t*
/*--------------------------------------------------------------------------------------
* bplib_process -
*-------------------------------------------------------------------------------------*/
int bplib_process(bp_desc_t* desc, void* bundle, int size, int timeout, uint32_t* flags)
int bplib_process(bp_desc_t* desc, const void* bundle, size_t size, int timeout, uint32_t* flags)
{
int status;

@@ -1168,7 +1168,7 @@ int bplib_process(bp_desc_t* desc, void* bundle, int size, int timeout, uint32_t
*
* Returns success if payload copied, or error code (zero, negative)
*-------------------------------------------------------------------------------------*/
int bplib_accept(bp_desc_t* desc, void** payload, int* size, int timeout, uint32_t* flags)
int bplib_accept(bp_desc_t* desc, void** payload, size_t* size, int timeout, uint32_t* flags)
{
int status = BP_SUCCESS;
bp_object_t* object = NULL;
@@ -1234,7 +1234,7 @@ int bplib_accept(bp_desc_t* desc, void** payload, int* size, int timeout, uint32
/*--------------------------------------------------------------------------------------
* bplib_ackbundle -
*-------------------------------------------------------------------------------------*/
int bplib_ackbundle(bp_desc_t* desc, void* bundle)
int bplib_ackbundle(bp_desc_t* desc, const void* bundle)
{
int status = BP_SUCCESS;

@@ -1245,8 +1245,8 @@ int bplib_ackbundle(bp_desc_t* desc, void* bundle)

/* Determine Storage Object Pointer */
bp_channel_t* ch = (bp_channel_t*)desc->channel;
bp_bundle_data_t* data = (bp_bundle_data_t*)((uint8_t*)bundle - offsetof(bp_bundle_data_t, header));
bp_object_t* object = (bp_object_t*)((uint8_t*)data - sizeof(bp_object_hdr_t));
const bp_bundle_data_t* data = (const bp_bundle_data_t*)((const uint8_t*)bundle - offsetof(bp_bundle_data_t, header));
const bp_object_t* object = (const bp_object_t*)((const uint8_t*)data - sizeof(bp_object_hdr_t));

/* Release Memory */
ch->store.release(object->header.handle, object->header.sid);
@@ -1261,7 +1261,7 @@ int bplib_ackbundle(bp_desc_t* desc, void* bundle)
/*--------------------------------------------------------------------------------------
* bplib_ackpayload -
*-------------------------------------------------------------------------------------*/
int bplib_ackpayload(bp_desc_t* desc, void* payload)
int bplib_ackpayload(bp_desc_t* desc, const void* payload)
{
int status = BP_SUCCESS;

@@ -1272,8 +1272,8 @@ int bplib_ackpayload(bp_desc_t* desc, void* payload)

/* Determine Storage Object Pointer */
bp_channel_t* ch = (bp_channel_t*)desc->channel;
bp_payload_data_t* data = (bp_payload_data_t*)((uint8_t*)payload - sizeof(bp_payload_data_t));
bp_object_t* object = (bp_object_t*)((uint8_t*)data - sizeof(bp_object_hdr_t));
const bp_payload_data_t* data = (const bp_payload_data_t*)((const uint8_t*)payload - sizeof(bp_payload_data_t));
const bp_object_t* object = (const bp_object_t*)((const uint8_t*)data - sizeof(bp_object_hdr_t));

/* Release Memory */
ch->store.release(object->header.handle, object->header.sid);
@@ -1294,7 +1294,7 @@ int bplib_ackpayload(bp_desc_t* desc, void* payload)
* destination_service - as read from bundle [OUTPUT]
* Returns: BP_SUCCESS or error code
*-------------------------------------------------------------------------------------*/
int bplib_routeinfo(void* bundle, int size, bp_route_t* route)
int bplib_routeinfo(const void* bundle, size_t size, bp_route_t* route)
{
return v6_routeinfo(bundle, size, route);
}
@@ -1307,7 +1307,7 @@ int bplib_routeinfo(void* bundle, int size, bp_route_t* route)
* flags - processing flags [OUTPUT]
* Returns: BP_SUCCESS or error code
*-------------------------------------------------------------------------------------*/
int bplib_display(void* bundle, int size, uint32_t* flags)
int bplib_display(const void* bundle, size_t size, uint32_t* flags)
{
return v6_display(bundle, size, flags);
}
@@ -1321,7 +1321,7 @@ int bplib_display(void* bundle, int size, uint32_t* flags)
* service - service number as read from eid [OUTPUT]
* Returns: BP_SUCCESS or error code
*-------------------------------------------------------------------------------------*/
int bplib_eid2ipn(const char* eid, int len, bp_ipn_t* node, bp_ipn_t* service)
int bplib_eid2ipn(const char* eid, size_t len, bp_ipn_t* node, bp_ipn_t* service)
{
char eidtmp[BP_MAX_EID_STRING];
int tmplen;
@@ -1402,7 +1402,7 @@ int bplib_eid2ipn(const char* eid, int len, bp_ipn_t* node, bp_ipn_t* service)
* service - service number to be written into eid [INPUT]
* Returns: BP_SUCCESS or error code
*-------------------------------------------------------------------------------------*/
int bplib_ipn2eid(char* eid, int len, bp_ipn_t node, bp_ipn_t service)
int bplib_ipn2eid(char* eid, size_t len, bp_ipn_t node, bp_ipn_t service)
{
/* Sanity Check EID Buffer Pointer */
if(eid == NULL)
4 changes: 2 additions & 2 deletions lib/bundle_types.h
Original file line number Diff line number Diff line change
@@ -43,7 +43,7 @@
******************************************************************************/

/* Call-Backs */
typedef int (*bp_create_func_t) (void* parm, bool is_record, uint8_t* payload, int size, int timeout);
typedef int (*bp_create_func_t) (void* parm, bool is_record, const uint8_t* payload, int size, int timeout);
typedef int (*bp_delete_func_t) (void* parm, bp_val_t cid, uint32_t* flags);

/* Bundle Field (fixed size) */
@@ -73,7 +73,7 @@ typedef struct {
bp_ipn_t node; /* custody node of payload */
bp_ipn_t service; /* custody service of payload */
bp_payload_data_t data; /* serialized and stored payload data */
uint8_t* memptr; /* pointer to payload */
const uint8_t* memptr; /* pointer to payload */
} bp_payload_t;

/* Bundle Data */
2 changes: 1 addition & 1 deletion store/file.c
Original file line number Diff line number Diff line change
@@ -334,7 +334,7 @@ int bplib_store_file_destroy (int handle)
/*--------------------------------------------------------------------------------------
* bplib_store_file_enqueue -
*-------------------------------------------------------------------------------------*/
int bplib_store_file_enqueue (int handle, void* data1, int data1_size, void* data2, int data2_size, int timeout)
int bplib_store_file_enqueue (int handle, const void* data1, size_t data1_size, const void* data2, size_t data2_size, int timeout)
{
(void)timeout;

2 changes: 1 addition & 1 deletion store/file_cfe.c
Original file line number Diff line number Diff line change
@@ -91,4 +91,4 @@ int bp_cfe_fflush(FILE* stream)
{
(void)stream;
return 0;
}
}
4 changes: 2 additions & 2 deletions store/flash.c
Original file line number Diff line number Diff line change
@@ -413,7 +413,7 @@ BP_LOCAL_SCOPE int flash_data_read (bp_flash_addr_t* addr, uint8_t* data, int si
/*--------------------------------------------------------------------------------------
* flash_object_write -
*-------------------------------------------------------------------------------------*/
BP_LOCAL_SCOPE int flash_object_write (flash_store_t* fs, int handle, uint8_t* data1, int data1_size, uint8_t* data2, int data2_size)
BP_LOCAL_SCOPE int flash_object_write (flash_store_t* fs, int handle, const uint8_t* data1, int data1_size, const uint8_t* data2, int data2_size)
{
int status = BP_SUCCESS;

@@ -1057,7 +1057,7 @@ int bplib_store_flash_destroy (int handle)
/*--------------------------------------------------------------------------------------
* bplib_store_flash_enqueue -
*-------------------------------------------------------------------------------------*/
int bplib_store_flash_enqueue (int handle, void* data1, int data1_size, void* data2, int data2_size, int timeout)
int bplib_store_flash_enqueue (int handle, const void* data1, size_t data1_size, const void* data2, size_t data2_size, int timeout)
{
(void)timeout;

8 changes: 4 additions & 4 deletions store/ram.c
Original file line number Diff line number Diff line change
@@ -410,17 +410,17 @@ int bplib_store_ram_destroy (int handle)
/*----------------------------------------------------------------------------
* bplib_store_ram_enqueue -
*----------------------------------------------------------------------------*/
int bplib_store_ram_enqueue(int handle, void* data1, int data1_size,
void* data2, int data2_size, int timeout)
int bplib_store_ram_enqueue(int handle, const void* data1, size_t data1_size,
const void* data2, size_t data2_size, int timeout)
{
assert(handle >= 0 && handle < MSGQ_MAX_STORES);
assert(msgq_stores[handle]);
assert((data1_size >= 0) && (data2_size >= 0));
assert((data1_size + data2_size) > 0);

int status;
int data_size = data1_size + data2_size;
int object_size = sizeof(bp_object_hdr_t) + data_size;
size_t data_size = data1_size + data2_size;
size_t object_size = sizeof(bp_object_hdr_t) + data_size;
bp_object_t* object = (bp_object_t*)bplib_os_calloc(object_size);

/* Check memory allocation */
6 changes: 3 additions & 3 deletions v6/bib.c
Original file line number Diff line number Diff line change
@@ -154,7 +154,7 @@ int bib_init (void)
*
* Returns: Number of bytes read
*-------------------------------------------------------------------------------------*/
int bib_read (void* block, int size, bp_blk_bib_t* bib, bool update_indices, uint32_t* flags)
int bib_read (const void* block, int size, bp_blk_bib_t* bib, bool update_indices, uint32_t* flags)
{
uint8_t* buffer = (uint8_t*)block;
int bytes_read = 0;
@@ -399,7 +399,7 @@ int bib_write (void* block, int size, bp_blk_bib_t* bib, bool update_indices, ui
*
* Returns: Number of bytes processed of bundle
*-------------------------------------------------------------------------------------*/
int bib_update (void* block, int size, void* payload, int payload_size, bp_blk_bib_t* bib, uint32_t* flags)
int bib_update (void* block, int size, const void* payload, int payload_size, bp_blk_bib_t* bib, uint32_t* flags)
{
assert(bib);
assert(payload);
@@ -441,7 +441,7 @@ int bib_update (void* block, int size, void* payload, int payload_size, bp_blk_b
*
* Returns: success or error code
*-------------------------------------------------------------------------------------*/
int bib_verify (void* payload, int payload_size, bp_blk_bib_t* bib, uint32_t* flags)
int bib_verify (const void* payload, int payload_size, bp_blk_bib_t* bib, uint32_t* flags)
{
assert(payload);
assert(bib);
6 changes: 3 additions & 3 deletions v6/bib.h
Original file line number Diff line number Diff line change
@@ -54,9 +54,9 @@ typedef struct {
******************************************************************************/

int bib_init (void);
int bib_read (void* block, int size, bp_blk_bib_t* bib, bool update_indices, uint32_t* flags);
int bib_read (const void* block, int size, bp_blk_bib_t* bib, bool update_indices, uint32_t* flags);
int bib_write (void* block, int size, bp_blk_bib_t* bib, bool update_indices, uint32_t* flags);
int bib_update (void* block, int size, void* payload, int payload_size, bp_blk_bib_t* bib, uint32_t* flags);
int bib_verify (void* payload, int payload_size, bp_blk_bib_t* bib, uint32_t* flags);
int bib_update (void* block, int size, const void* payload, int payload_size, bp_blk_bib_t* bib, uint32_t* flags);
int bib_verify (const void* payload, int payload_size, bp_blk_bib_t* bib, uint32_t* flags);

#endif /* _bib_h_ */
2 changes: 1 addition & 1 deletion v6/cteb.c
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@
*
* Returns: Next index
*-------------------------------------------------------------------------------------*/
int cteb_read (void* block, int size, bp_blk_cteb_t* cteb, bool update_indices, uint32_t* flags)
int cteb_read (const void* block, int size, bp_blk_cteb_t* cteb, bool update_indices, uint32_t* flags)
{
uint8_t* buffer = (uint8_t*)block;
int bytes_read = 0;
2 changes: 1 addition & 1 deletion v6/cteb.h
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@ typedef struct {
PROTOTYPES
******************************************************************************/

int cteb_read (void* block, int size, bp_blk_cteb_t* cteb, bool update_indices, uint32_t* flags);
int cteb_read (const void* block, int size, bp_blk_cteb_t* cteb, bool update_indices, uint32_t* flags);
int cteb_write (void* block, int size, bp_blk_cteb_t* cteb, bool update_indices, uint32_t* flags);

#endif /* _cteb_h_ */
4 changes: 2 additions & 2 deletions v6/dacs.c
Original file line number Diff line number Diff line change
@@ -98,7 +98,7 @@ int dacs_write(uint8_t* rec, int size, int max_fills_per_dacs, rb_tree_t* tree,
/*--------------------------------------------------------------------------------------
* dacs_read -
*-------------------------------------------------------------------------------------*/
int dacs_read(uint8_t* rec, int rec_size, int* num_acks, bp_delete_func_t ack, void* ack_parm, uint32_t* flags)
int dacs_read(const uint8_t* rec, int rec_size, int* num_acks, bp_delete_func_t ack, void* ack_parm, uint32_t* flags)
{
bp_val_t i;
bp_field_t cid = { 0, 2, 0 };
@@ -164,4 +164,4 @@ int dacs_read(uint8_t* rec, int rec_size, int* num_acks, bp_delete_func_t ack, v
/* Return Bytes Read or Error Code */
if(ret_status == BP_SUCCESS) return fill.index;
else return ret_status;
}
}
2 changes: 1 addition & 1 deletion v6/dacs.h
Original file line number Diff line number Diff line change
@@ -31,6 +31,6 @@
******************************************************************************/

int dacs_write (uint8_t* rec, int size, int max_fills_per_dacs, rb_tree_t* tree, uint32_t* flags);
int dacs_read (uint8_t* rec, int rec_size, int* num_acks, bp_delete_func_t ack, void* ack_parm, uint32_t* flags);
int dacs_read (const uint8_t* rec, int rec_size, int* num_acks, bp_delete_func_t ack, void* ack_parm, uint32_t* flags);

#endif /* _dacs_h_ */
2 changes: 1 addition & 1 deletion v6/pay.c
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@
*
* Returns: Next index
*-------------------------------------------------------------------------------------*/
int pay_read (void* block, int size, bp_blk_pay_t* pay, bool update_indices, uint32_t* flags)
int pay_read (const void* block, int size, bp_blk_pay_t* pay, bool update_indices, uint32_t* flags)
{
uint8_t* buffer = (uint8_t*)block;
int bytes_read = 0;
4 changes: 2 additions & 2 deletions v6/pay.h
Original file line number Diff line number Diff line change
@@ -32,15 +32,15 @@
typedef struct {
bp_field_t bf; /* block flags */
bp_field_t blklen; /* block length */
uint8_t* payptr; /* pointer to payload */
const uint8_t* payptr; /* pointer to payload */
int paysize; /* size in bytes of payload */
} bp_blk_pay_t;

/******************************************************************************
PROTOTYPES
******************************************************************************/

int pay_read (void* block, int size, bp_blk_pay_t* pay, bool update_indices, uint32_t* flags);
int pay_read (const void* block, int size, bp_blk_pay_t* pay, bool update_indices, uint32_t* flags);
int pay_write (void* block, int size, bp_blk_pay_t* pay, bool update_indices, uint32_t* flags);

#endif /* _pay_h_ */
2 changes: 1 addition & 1 deletion v6/pri.c
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@
*
* Returns: Number of bytes processed of bundle
*-------------------------------------------------------------------------------------*/
int pri_read (void* block, int size, bp_blk_pri_t* pri, bool update_indices, uint32_t* flags)
int pri_read (const void* block, int size, bp_blk_pri_t* pri, bool update_indices, uint32_t* flags)
{
uint8_t* blkbuf = (uint8_t*)block;
int bytes_read = 0;
2 changes: 1 addition & 1 deletion v6/pri.h
Original file line number Diff line number Diff line change
@@ -62,7 +62,7 @@ typedef struct {
PROTOTYPES
******************************************************************************/

int pri_read (void* block, int size, bp_blk_pri_t* pri, bool update_indices, uint32_t* flags);
int pri_read (const void* block, int size, bp_blk_pri_t* pri, bool update_indices, uint32_t* flags);
int pri_write (void* block, int size, bp_blk_pri_t* pri, bool update_indices, uint32_t* flags);

#endif /* _pri_h_ */
4 changes: 2 additions & 2 deletions v6/sdnv.c
Original file line number Diff line number Diff line change
@@ -43,7 +43,7 @@
* flags - pointer to variable that will hold the flags set as result of read [output]
* returns - next index (number of bytes read + starting index)
*-------------------------------------------------------------------------------------*/
int sdnv_read(uint8_t* block, int size, bp_field_t* sdnv, uint32_t* flags)
int sdnv_read(const uint8_t* block, int size, bp_field_t* sdnv, uint32_t* flags)
{
assert(block);
assert(sdnv);
@@ -166,4 +166,4 @@ void sdnv_mask(bp_field_t* sdnv)
int shift_bits = max_bits - num_bits;
bp_val_t val_mask = BP_MAX_ENCODED_VALUE >> shift_bits;
sdnv->value = sdnv->value & val_mask;
}
}
2 changes: 1 addition & 1 deletion v6/sdnv.h
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@
PROTOTYPES
******************************************************************************/

int sdnv_read (uint8_t* block, int size, bp_field_t* sdnv, uint32_t* flags);
int sdnv_read (const uint8_t* block, int size, bp_field_t* sdnv, uint32_t* flags);
int sdnv_write (uint8_t* block, int size, bp_field_t sdnv, uint32_t* flags);
void sdnv_mask (bp_field_t* sdnv);

20 changes: 14 additions & 6 deletions v6/v6.c
Original file line number Diff line number Diff line change
@@ -331,7 +331,7 @@ int v6_populate_bundle(bp_bundle_t* bundle, uint32_t* flags)
/*--------------------------------------------------------------------------------------
* v6_send_bundle -
*-------------------------------------------------------------------------------------*/
int v6_send_bundle(bp_bundle_t* bundle, uint8_t* buffer, int size, bp_create_func_t create, void* parm, int timeout, uint32_t* flags)
int v6_send_bundle(bp_bundle_t* bundle, const uint8_t* buffer, int size, bp_create_func_t create, void* parm, int timeout, uint32_t* flags)
{
int payload_offset = 0;
bp_bundle_data_t* data = &bundle->data;
@@ -464,7 +464,7 @@ int v6_send_bundle(bp_bundle_t* bundle, uint8_t* buffer, int size, bp_create_fun
/*--------------------------------------------------------------------------------------
* v6_receive_bundle -
*-------------------------------------------------------------------------------------*/
int v6_receive_bundle(bp_bundle_t* bundle, uint8_t* buffer, int size, bp_payload_t* payload, uint32_t* flags)
int v6_receive_bundle(bp_bundle_t* bundle, const uint8_t* buffer, int size, bp_payload_t* payload, uint32_t* flags)
{
int status = BP_SUCCESS;

@@ -621,7 +621,15 @@ int v6_receive_bundle(bp_bundle_t* bundle, uint8_t* buffer, int size, bp_payload
{
/* Mark As Forwarded without Processed */
blk_flags.value |= BP_BLK_FORWARDNOPROC_MASK;
sdnv_write(&buffer[start_index], size - start_index, blk_flags, flags);

/*
* NOTE: This is updating the block flags inside of the buffer which is supposed to be "const"
* Somewhat ironic that BP flags need to be changed to indicate that nothing was done.
*
* This is certainly not ideal, but this is the way it has worked up to this point.
* This should be addressed in the BPv7 implementation.
*/
sdnv_write((uint8_t*)buffer + start_index, size - start_index, blk_flags, flags);
}
}
else /* payload block */
@@ -783,7 +791,7 @@ int v6_populate_acknowledgment(uint8_t* rec, int size, int max_fills, rb_tree_t*
/*--------------------------------------------------------------------------------------
* v6_receive_acknowledgment -
*-------------------------------------------------------------------------------------*/
int v6_receive_acknowledgment(uint8_t* rec, int size, int* num_acks, bp_delete_func_t remove, void* parm, uint32_t* flags)
int v6_receive_acknowledgment(const uint8_t* rec, int size, int* num_acks, bp_delete_func_t remove, void* parm, uint32_t* flags)
{
return dacs_read(rec, size, num_acks, remove, parm, flags);
}
@@ -810,7 +818,7 @@ int v6_is_expired(bp_bundle_t* bundle, unsigned long sysnow, unsigned long exprt
/*--------------------------------------------------------------------------------------
* v6_routeinfo -
*-------------------------------------------------------------------------------------*/
int v6_routeinfo(void* bundle, int size, bp_route_t* route)
int v6_routeinfo(const void* bundle, int size, bp_route_t* route)
{
bp_blk_pri_t pri_blk;
uint32_t* flags = 0;
@@ -840,7 +848,7 @@ int v6_routeinfo(void* bundle, int size, bp_route_t* route)
/*--------------------------------------------------------------------------------------
* v6_display -
*-------------------------------------------------------------------------------------*/
int v6_display(void* bundle, int size, uint32_t* flags)
int v6_display(const void* bundle, int size, uint32_t* flags)
{
uint8_t* buffer = (uint8_t*)bundle;
int index = 0;
10 changes: 5 additions & 5 deletions v6/v6.h
Original file line number Diff line number Diff line change
@@ -86,13 +86,13 @@ int v6_initialize (void);
int v6_create (bp_bundle_t* bundle, bp_route_t route, bp_attr_t attributes);
int v6_destroy (bp_bundle_t* bundle);
int v6_populate_bundle (bp_bundle_t* bundle, uint32_t* flags);
int v6_send_bundle (bp_bundle_t* bundle, uint8_t* buffer, int size, bp_create_func_t create, void* parm, int timeout, uint32_t* flags);
int v6_receive_bundle (bp_bundle_t* bundle, uint8_t* buffer, int size, bp_payload_t* payload, uint32_t* flags);
int v6_send_bundle (bp_bundle_t* bundle, const uint8_t* buffer, int size, bp_create_func_t create, void* parm, int timeout, uint32_t* flags);
int v6_receive_bundle (bp_bundle_t* bundle, const uint8_t* buffer, int size, bp_payload_t* payload, uint32_t* flags);
int v6_update_bundle (bp_bundle_data_t* data, bp_val_t cid, uint32_t* flags);
int v6_populate_acknowledgment (uint8_t* rec, int size, int max_fills, rb_tree_t* tree, uint32_t* flags);
int v6_receive_acknowledgment (uint8_t* rec, int size, int* num_acks, bp_delete_func_t remove, void* parm, uint32_t* flags);
int v6_receive_acknowledgment (const uint8_t* rec, int size, int* num_acks, bp_delete_func_t remove, void* parm, uint32_t* flags);
int v6_is_expired (bp_bundle_t* bundle, unsigned long sysnow, unsigned long exprtime, bool unrelt);
int v6_routeinfo (void* bundle, int size, bp_route_t* route);
int v6_display (void* bundle, int size, uint32_t* flags);
int v6_routeinfo (const void* bundle, int size, bp_route_t* route);
int v6_display (const void* bundle, int size, uint32_t* flags);

#endif /* _v6_h_ */

0 comments on commit 3909c76

Please sign in to comment.