diff --git a/defs.h b/defs.h
index 97deab3..f642d65 100644
--- a/defs.h
+++ b/defs.h
@@ -732,11 +732,11 @@
 extern void tv_div(struct timeval *, const struct timeval *, int);
 
 #ifdef USE_LIBUNWIND
-extern void init_unwind_addr_space(void);
-extern void init_libunwind_ui(struct tcb *tcp);
-extern void free_libunwind_ui(struct tcb *tcp);
-extern void delete_mmap_cache(struct tcb* tcp);
-extern void print_stacktrace(struct tcb* tcp);
+extern void unwind_init(void);
+extern void unwind_tcb_init(struct tcb *tcp);
+extern void unwind_tcb_fin(struct tcb *tcp);
+extern void unwind_cache_invalidate(struct tcb* tcp);
+extern void unwind_print_stacktrace(struct tcb* tcp);
 #endif
 
 /* Strace log generation machinery.
diff --git a/mem.c b/mem.c
index 2b684b1..ed853d9 100644
--- a/mem.c
+++ b/mem.c
@@ -62,7 +62,7 @@
 	if (entering(tcp)) {
 #ifdef USE_LIBUNWIND
 		if (stack_trace_enabled)
-			delete_mmap_cache(tcp);
+			unwind_cache_invalidate(tcp);
 #endif
 
 		/* addr */
@@ -197,7 +197,7 @@
 #ifdef USE_LIBUNWIND
 	else {
 		if (stack_trace_enabled)
-			delete_mmap_cache(tcp);
+			unwind_cache_invalidate(tcp);
 	}
 #endif
 	return 0;
@@ -214,7 +214,7 @@
 #ifdef USE_LIBUNWIND
 	else {
 		if (stack_trace_enabled)
-			delete_mmap_cache(tcp);
+			unwind_cache_invalidate(tcp);
 	}
 #endif
 	return 0;
diff --git a/process.c b/process.c
index 22886cb..a152ad7 100644
--- a/process.c
+++ b/process.c
@@ -802,7 +802,7 @@
 #ifdef USE_LIBUNWIND
 	else {
 		if (stack_trace_enabled)
-			delete_mmap_cache(tcp);
+			unwind_cache_invalidate(tcp);
 	}
 #endif
 
diff --git a/strace.c b/strace.c
index 0f7f16c..f8d5cb7 100644
--- a/strace.c
+++ b/strace.c
@@ -706,7 +706,7 @@
 
 #ifdef USE_LIBUNWIND
 			if (stack_trace_enabled)
-				init_libunwind_ui(tcp);
+				unwind_tcb_init(tcp);
 #endif
 
 			nprocs++;
@@ -747,7 +747,7 @@
 
 #ifdef USE_LIBUNWIND
 	if (stack_trace_enabled) {
-		free_libunwind_ui(tcp);
+		unwind_tcb_fin(tcp);
 	}
 #endif
 	memset(tcp, 0, sizeof(*tcp));
@@ -1818,7 +1818,7 @@
 
 #ifdef USE_LIBUNWIND
 	if (stack_trace_enabled)
-		init_unwind_addr_space();
+		unwind_init();
 #endif
 
 	if (!followfork)
diff --git a/syscall.c b/syscall.c
index 50b41ba..4ed971f 100644
--- a/syscall.c
+++ b/syscall.c
@@ -2708,7 +2708,7 @@
 
 #ifdef USE_LIBUNWIND
 	if (stack_trace_enabled)
-		print_stacktrace(tcp);
+		unwind_print_stacktrace(tcp);
 #endif
 
  ret:
diff --git a/unwind.c b/unwind.c
index fc97ea2..4ebc048 100644
--- a/unwind.c
+++ b/unwind.c
@@ -51,7 +51,7 @@
 static unw_addr_space_t libunwind_as;
 
 void
-init_unwind_addr_space(void)
+unwind_init(void)
 {
 	libunwind_as = unw_create_addr_space(&_UPT_accessors, 0);
 	if (!libunwind_as)
@@ -59,7 +59,7 @@
 }
 
 void
-init_libunwind_ui(struct tcb *tcp)
+unwind_tcb_init(struct tcb *tcp)
 {
 	tcp->libunwind_ui = _UPT_create(tcp->pid);
 	if (!tcp->libunwind_ui)
@@ -67,9 +67,9 @@
 }
 
 void
-free_libunwind_ui(struct tcb *tcp)
+unwind_tcb_fin(struct tcb *tcp)
 {
-	delete_mmap_cache(tcp);
+	unwind_cache_invalidate(tcp);
 	_UPT_destroy(tcp->libunwind_ui);
 	tcp->libunwind_ui = NULL;
 }
@@ -157,7 +157,7 @@
 
 /* deleting the cache */
 void
-delete_mmap_cache(struct tcb* tcp)
+unwind_cache_invalidate(struct tcb* tcp)
 {
 	unsigned int i;
 	for (i = 0; i < tcp->mmap_cache_size; i++) {
@@ -171,7 +171,7 @@
 
 /* use libunwind to unwind the stack and print a backtrace */
 void
-print_stacktrace(struct tcb* tcp)
+unwind_print_stacktrace(struct tcb* tcp)
 {
 	unw_word_t ip;
 	unw_cursor_t cursor;
