-i2c_send says that adding to the ring buffer is not atomic so it disables interrupts. however, i2c_request does not disable interrupts when adding to the ring buffer. is this a bug?
-some parts of code uses hard tabs instead of soft tabs
-some things are indented the wrong amount