\x20\40\x20\40
/**
@file
@brief 'fork' event
@details Copyright (c) 2017-2018 Acronis International GmbH
@author Mikhail Krivtsov (mikhail.krivtsov@acronis.com)
@since $Id: $
*/
#include "fork_event.h"
#include "debug.h"
#include "message.h"
#include "task_info_map.h"
void fork_event_nowait(pid_t parent_tgid, pid_t parent_pid, pid_t child_tgid,
pid_t child_pid)
{
msg_t *msg;
size_t fork_img_size;
size_t msg_img_size;
fork_img_size = sizeof(fork_img_t);
msg_img_size = sizeof(msg_img_t) + fork_img_size;
msg = msg_new_type_nowait(msg_img_size, MT_FORK);
if (msg) {
msg_img_t *msg_img = MSG_IMG(msg);
fork_img_t *fork_img = IMG_PAYLOAD(msg_img);
/*
* userspace kernel
* getpid() current->tgid
* gettid() current->pid
*/
fork_img->parent.pid = parent_tgid;
fork_img->parent.tid = parent_pid;
fork_img->child.pid = child_tgid;
fork_img->child.tid = child_pid;
send_msg_async(msg);
msg_unref(msg);
}
}