return; /* all done */
/* calculate delay */
wrap = 0;
- while (0 == (fc->acks & (1LL << fc->next_transmission)))
+ while (0 == (fc->acks & (1LLU << fc->next_transmission)))
{
fc->next_transmission = (fc->next_transmission + 1) % 64;
wrap |= (0 == fc->next_transmission);
}
fc->next_transmission = (fc->next_transmission + 1) % 64;
wrap |= (0 == fc->next_transmission);
- while (0 == (fc->acks & (1LL << fc->next_transmission)))
+ while (0 == (fc->acks & (1LLU << fc->next_transmission)))
{
fc->next_transmission = (fc->next_transmission + 1) % 64;
wrap |= (0 == fc->next_transmission);
if (bits == 64)
fc->acks_mask = UINT64_MAX; /* set all 64 bit */
else
- fc->acks_mask = (1LL << bits) - 1; /* set lowest 'bits' bit */
+ fc->acks_mask = (1LLU << bits) - 1; /* set lowest 'bits' bit */
fc->acks = fc->acks_mask;
fc->task = GNUNET_SCHEDULER_add_now (&transmit_next, fc);
return fc;
/**
* Unique fragment ID.
*/
- uint32_t fragment_id;
+ uint32_t fragment_id GNUNET_PACKED;
/**
* Total message size of the original message.
*/
- uint16_t total_size;
+ uint16_t total_size GNUNET_PACKED;
/**
* Absolute offset (in bytes) of this fragment in the original
* message. Will be a multiple of the MTU.
*/
- uint16_t offset;
+ uint16_t offset GNUNET_PACKED;
};
/**
* Unique fragment ID.
*/
- uint32_t fragment_id;
+ uint32_t fragment_id GNUNET_PACKED;
/**
* Bits that are being acknowledged, in big-endian.
* (bits that are set correspond to fragments that
* have not yet been received).
*/
- uint64_t bits;
+ uint64_t bits GNUNET_PACKED;
};
GNUNET_NETWORK_STRUCT_END