From 57fbb4e5d30fb2b82ccbd643cab09d6c8371cba4 Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Thu, 10 Dec 2015 13:07:03 +0300 Subject: [PATCH] crit: Add payload handler for shmem pages - need encoder Signed-off-by: Cyrill Gorcunov Signed-off-by: Pavel Emelyanov --- pycriu/images/images.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pycriu/images/images.py b/pycriu/images/images.py index 240e43566..7c01d3f19 100644 --- a/pycriu/images/images.py +++ b/pycriu/images/images.py @@ -276,6 +276,18 @@ class ipc_sem_set_handler: def dump(self, extra, f, pb): raise Exception("Not yet implemented") +class ipc_shm_handler: + def load(self, f, pb): + entry = pb2dict.pb2dict(pb) + size = entry['size'] + data = f.read(size) + rounded = round_up(size, sizeof_u32) + f.seek(rounded - size, 1) + return data.encode('base64') + + def dump(self, extra, f, pb): + raise Exception("Not yet implemented") + handlers = { 'INVENTORY' : entry_handler(inventory_entry), 'CORE' : entry_handler(core_entry), @@ -326,7 +338,7 @@ handlers = { 'PIPES_DATA' : entry_handler(pipe_data_entry, pipes_data_extra_handler()), 'FIFO_DATA' : entry_handler(pipe_data_entry, pipes_data_extra_handler()), 'SK_QUEUES' : entry_handler(sk_packet_entry, sk_queues_extra_handler()), - 'IPCNS_SHM' : entry_handler(ipc_shm_entry), + 'IPCNS_SHM' : entry_handler(ipc_shm_entry, ipc_shm_handler()), 'IPCNS_SEM' : entry_handler(ipc_sem_entry, ipc_sem_set_handler()), 'IPCNS_MSG' : entry_handler(ipc_msg_entry), 'NETNS' : entry_handler(netns_entry),