#ifndef _sr_si_static_c
#define _sr_si_static_c
-static void dump_40( char *p, char* label ) {
+static void dump_n( char *p, char* label, int n ) {
int i;
+ int j;
+ int t = 0;
+ int rows;
+
- if( label )
- fprintf( stderr, ">>>>> %s p=%p\n", label, p );
+ if( label ) {
+ fprintf( stderr, ">>>>> %s p=%p %d bytes\n", label, p, n );
+ }
+
+ rows = (n/16) + ((n % 16) ? 1 : 0);
+
+ for( j = 0; j < rows; j++ ) {
+ fprintf( stderr, "%04x: ", j * 16 );
- for( i = 0; i < 40; i++ ) {
- fprintf( stderr, "%02x ", (unsigned char) *(p+i) );
+ for( i = 0; t < n && i < 16; i++, t++ ) {
+ fprintf( stderr, "%02x ", (unsigned char) *p );
+ p++;
+ }
+ fprintf( stderr, "\n" );
}
- fprintf( stderr, "\n" );
+}
+
+/*
+ backwards compatability.
+*/
+static void dump_40( char *p, char* label ) {
+ dump_n( p, label, 40 );
}
/*
msg->alloc_len = 0; // force tp_buffer realloc below
if( msg->tp_buf ) {
free( msg->tp_buf );
+ msg->tp_buf = NULL;
}
} else {
mlen = msg->alloc_len; // msg given, allocate the same size as before
abort( ); // toss out a core file for this
}
-/*
+#ifdef DEBUG
memset( msg->tp_buf, 0, mlen ); // NOT for production (debug only) valgrind will complain about uninitalised use if we don't set
memcpy( msg->tp_buf, "@@!!@@!!@@!!@@!!@@!!@@!!@@!!@@!!**", TP_HDR_LEN ); // NOT for production -- debugging eyecatcher
-*/
+#endif
+
alen = (int *) msg->tp_buf;
*alen = mlen; // FIX ME: need a stuct to go in these first bytes, not just dummy len
msg->payload = PAYLOAD_ADDR( hdr ); // point to payload (past all header junk)
msg->xaction = ((uta_mhdr_t *)msg->header)->xid; // point at transaction id in header area
msg->state = state; // fill in caller's state (likely the state of the last operation)
- msg->flags |= MFL_ZEROCOPY; // this is a zerocopy sendable message
+ msg->flags = MFL_ZEROCOPY; // this is a zerocopy sendable message
msg->ring = ctx->zcb_mring; // original msg_free() api doesn't get context so must dup on eaach :(
strncpy( (char *) ((uta_mhdr_t *)msg->header)->src, ctx->my_name, RMR_MAX_SRC );
strncpy( (char *) ((uta_mhdr_t *)msg->header)->srcip, ctx->my_ip, RMR_MAX_SRC );