Fill in the appropriate code, assuming that blocks are of th…
Fill in the appropriate code, assuming that blocks are of the format: Header (8 bytes) User Payload Space Footer (8 bytes) Additionally, assume size and allocation information are packed together using the function from Note 1, and that this packed data is stored in the header and footer of a block. The stored size includes the size of the header and footer and user payload space. // Returns a pointer to the header of the block// payload_pointer – pointer to user payload space of a blockuint64_t* get_header_pointer(char* payload_pointer){ return ;} // Returns a pointer to the footer of the block// payload_pointer – pointer to user payload space of a blockchar* get_footer_pointer(char* payload_pointer){ return payload_pointer + ;} // Returns a pointer to the user payload space of the previous block in the heap// curr_payload_pointer – pointer to user payload space of current blockchar* prev_payload_pointer(char* curr_payload_pointer){ return curr_payload_pointer – ;} // Returns a pointer to the user payload space of the next block in the heap// curr_payload_pointer – pointer to user payload space of current blockchar* next_payload_pointer(char* curr_payload_pointer){ return curr_payload_pointer + ;}