From: Vyacheslav Cherkashin Date: Mon, 27 Jan 2014 13:17:06 +0000 (+0400) Subject: [PROTO] send MSG_TERMINATE from KS X-Git-Tag: Tizen_SDK_2.3~119 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3a5f9372c69fc8d0c4a5b21d9fd933bb7c0df496;p=kernel%2Fswap-modules.git [PROTO] send MSG_TERMINATE from KS add terminate_msg() Change-Id: If9dc9e2b0cb14342b1db985010055766179ef438 Signed-off-by: Vyacheslav Cherkashin --- diff --git a/us_manager/sspt/sspt_proc.c b/us_manager/sspt/sspt_proc.c index 3fe2546..7330fc2 100644 --- a/us_manager/sspt/sspt_proc.c +++ b/us_manager/sspt/sspt_proc.c @@ -98,6 +98,8 @@ void sspt_proc_free(struct sspt_proc *proc) } sspt_destroy_feature(proc->feature); + + terminate_msg(proc->task); kfree(proc); } diff --git a/writer/swap_writer_module.c b/writer/swap_writer_module.c index 03843cf..7ce6029 100644 --- a/writer/swap_writer_module.c +++ b/writer/swap_writer_module.c @@ -49,6 +49,7 @@ enum MSG_ID { MSG_PROC_INFO = 0x0001, + MSG_TERMINATE = 0x0002, MSG_ERROR = 0x0003, MSG_SAMPLE = 0x0004, MSG_FUNCTION_ENTRY = 0x0008, @@ -372,6 +373,41 @@ EXPORT_SYMBOL_GPL(proc_info_msg); /* ============================================================================ + * = PROCESS TERMINATE = + * ============================================================================ + */ + +struct proc_terminate { + u32 pid; +} __attribute__((packed)); + +static char *pack_proc_terminate(char *payload, struct task_struct *task) +{ + struct proc_terminate *pt = (struct proc_terminate *)payload; + + pt->pid = task->pid; + return payload + sizeof(*pt); +} + +void terminate_msg(struct task_struct *task) +{ + char *buf, *payload, *buf_end; + + buf = get_current_buf(); + payload = pack_basic_msg_fmt(buf, MSG_TERMINATE); + buf_end = pack_proc_terminate(payload, task); + + set_len_msg(buf, buf_end); + + write_to_buffer(buf); +} +EXPORT_SYMBOL_GPL(terminate_msg); + + + + + +/* ============================================================================ * = PROCESS MAP = * ============================================================================ */ diff --git a/writer/swap_writer_module.h b/writer/swap_writer_module.h index 89f2c73..e932a93 100644 --- a/writer/swap_writer_module.h +++ b/writer/swap_writer_module.h @@ -56,6 +56,7 @@ unsigned int get_discarded_count(void); void reset_seq_num(void); int proc_info_msg(struct task_struct *task, struct dentry *dentry); +void terminate_msg(struct task_struct *task); void pcoc_map_msg(struct vm_area_struct *vma); void proc_unmap_msg(unsigned long start, unsigned long end); int sample_msg(struct pt_regs *regs);