[PROTO] send MSG_TERMINATE from KS 15/15715/3
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Mon, 27 Jan 2014 13:17:06 +0000 (17:17 +0400)
committerDmitry Kovalenko <d.kovalenko@samsung.com>
Wed, 5 Mar 2014 12:49:23 +0000 (04:49 -0800)
add terminate_msg()

Change-Id: If9dc9e2b0cb14342b1db985010055766179ef438
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
us_manager/sspt/sspt_proc.c
writer/swap_writer_module.c
writer/swap_writer_module.h

index 3fe2546..7330fc2 100644 (file)
@@ -98,6 +98,8 @@ void sspt_proc_free(struct sspt_proc *proc)
        }
 
        sspt_destroy_feature(proc->feature);
+
+       terminate_msg(proc->task);
        kfree(proc);
 }
 
index 03843cf..7ce6029 100644 (file)
@@ -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                                  =
  * ============================================================================
  */
index 89f2c73..e932a93 100644 (file)
@@ -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);