Background It is possible to store the pointers in a linked list in such a way that they ‘overlap’ by using the logical XOR operator. This allows a user to cut the memory footprint of a basic linked list by 50% at the expense of a couple extra CPU operations. In today’s world this technique […]
Background I ran into a bug recently where I was trying to extract the lower 32 bits from a 64 bit pointer referencing two contiguous 32 bit variables in memory. They were taken out opposite what was expected due to my confusion with the way data is stored. There is a fairly good writeup […]
Background I use OpenVPN all the time and had the task of setting it up to function as the default gateway for an embedded linux machine that is using PPP with a USB 3G dongle. The VPN connection worked great as always but for some reason I couldn’t get the traffic forwarded over the 3G line. […]
Background I recently grew an interest in lock free queues and during my research noticed some confusion concerning blocking, lock-free, and wait-free queues. There are quite a few claimed implementations that do not meet the requirements. This is my attempt to alleviate some confusion. I define an interrupt safe queue as one that will succeed […]
Finally starting a blog after all these years to keep track of all the cool stuff I usually end up misplacing.