| 23 | } |
| 24 | |
| 25 | void* SetLightHeader(void* p, size_t total_bytes, size_t header_size) { |
| 26 | // LightHeader *KB max(sizeof(LightHeader)=8B, alignment) |
| 27 | // { | .....| checksum (4B) | header_size (4B)} |
| 28 | auto user_ptr = (char*)p + header_size; |
| 29 | auto header = new((char*)user_ptr - sizeof(LightHeader)) |
| 30 | LightHeader(header_size); |
| 31 | return user_ptr; |
| 32 | } |
| 33 | |
| 34 | LightHeader* GetLightHeader(void* p) { |
| 35 | auto light_header = (LightHeader*)((char*)p - sizeof(LightHeader)); |