Index: uspace/app/tester/proc/task_anywait.c
===================================================================
--- uspace/app/tester/proc/task_anywait.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/app/tester/proc/task_anywait.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -39,5 +39,5 @@
 static task_id_t task_id;
 static task_exit_t last_texit;
-static int last_flags;
+static task_wait_flag_t last_flags;
 static int last_retval;
 static bool handler_hit;
@@ -49,5 +49,5 @@
 static FIBRIL_CONDVAR_INITIALIZE(sync_cv);
 
-static void task_event_handler(task_id_t tid, int flags, task_exit_t texit,
+static void task_event_handler(task_id_t tid, task_wait_flag_t flags, task_exit_t texit,
     int retval)
 {
Index: uspace/lib/c/generic/devman.c
===================================================================
--- uspace/lib/c/generic/devman.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/c/generic/devman.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -286,5 +286,5 @@
 }
 
-async_sess_t *devman_device_connect(devman_handle_t handle, unsigned int flags)
+async_sess_t *devman_device_connect(devman_handle_t handle, ipc_start_flag_t flags)
 {
 	async_sess_t *sess;
@@ -359,5 +359,5 @@
 
 errno_t devman_fun_get_handle(const char *pathname, devman_handle_t *handle,
-    unsigned int flags)
+    ipc_start_flag_t flags)
 {
 	async_exch_t *exch;
Index: uspace/lib/c/generic/loc.c
===================================================================
--- uspace/lib/c/generic/loc.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/c/generic/loc.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -454,5 +454,5 @@
 
 errno_t loc_namespace_get_id(const char *name, service_id_t *handle,
-    unsigned int flags)
+    ipc_start_flag_t flags)
 {
 	async_exch_t *exch;
@@ -503,5 +503,5 @@
  */
 errno_t loc_category_get_id(const char *name, category_id_t *cat_id,
-    unsigned int flags)
+    ipc_start_flag_t flags)
 {
 	async_exch_t *exch;
@@ -558,5 +558,5 @@
 
 async_sess_t *loc_service_connect(service_id_t handle, iface_t iface,
-    unsigned int flags)
+    ipc_start_flag_t flags)
 {
 	async_sess_t *sess;
Index: uspace/lib/c/generic/task.c
===================================================================
--- uspace/lib/c/generic/task.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/c/generic/task.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -417,5 +417,5 @@
  * @return EOK on success, else error code.
  */
-errno_t task_wait_task_id(task_id_t id, int flags, task_exit_t *texit, int *retval)
+errno_t task_wait_task_id(task_id_t id, task_wait_flag_t flags, task_exit_t *texit, int *retval)
 {
 	task_wait_t wait;
Index: uspace/lib/c/include/devman.h
===================================================================
--- uspace/lib/c/include/devman.h	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/c/include/devman.h	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -53,10 +53,10 @@
 extern errno_t devman_drv_fun_offline(devman_handle_t);
 
-extern async_sess_t *devman_device_connect(devman_handle_t, unsigned int);
+extern async_sess_t *devman_device_connect(devman_handle_t, ipc_start_flag_t);
 extern async_sess_t *devman_parent_device_connect(devman_handle_t,
     unsigned int);
 
 extern errno_t devman_fun_get_handle(const char *, devman_handle_t *,
-    unsigned int);
+    ipc_start_flag_t);
 extern errno_t devman_fun_get_child(devman_handle_t, devman_handle_t *);
 extern errno_t devman_dev_get_parent(devman_handle_t, devman_handle_t *);
Index: uspace/lib/c/include/ipc/common.h
===================================================================
--- uspace/lib/c/include/ipc/common.h	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/c/include/ipc/common.h	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -41,17 +41,19 @@
 /* Well known phone descriptors */
 static cap_phone_handle_t const PHONE_INITIAL = (cap_phone_handle_t) (CAP_NIL + 1);
-#define IPC_FLAG_BLOCKING   0x01
 
-/**
- * IPC_FLAG_AUTOSTART_ is for use in brokers only. In client code use
- * IPC_AUTOSTART that includes implies blocking behavior.
- */
-#define IPC_FLAG_AUTOSTART_  0x02
+typedef enum {
+	/**
+	 * IPC_FLAG_AUTOSTART_ is for use in brokers only. In client code use
+	 * IPC_AUTOSTART that includes implies blocking behavior.
+	 */
+	IPC_FLAG_BLOCKING = 0x01,
+	IPC_FLAG_AUTOSTART_ = 0x02,
 
-/**
- * Similar to blocking IPC_FLAG_BLOCKING behavior, broker will attempt to
- * start the server.
- */
-#define IPC_AUTOSTART (IPC_FLAG_BLOCKING | IPC_FLAG_AUTOSTART_)
+	/**
+	 * Similar to blocking IPC_FLAG_BLOCKING behavior, broker will attempt to
+	 * start the server.
+	 */
+	IPC_AUTOSTART = (IPC_FLAG_BLOCKING | IPC_FLAG_AUTOSTART_),
+} ipc_start_flag_t;
 
 typedef ipc_data_t ipc_call_t;
Index: uspace/lib/c/include/loc.h
===================================================================
--- uspace/lib/c/include/loc.h	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/c/include/loc.h	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -52,11 +52,11 @@
 
 extern errno_t loc_service_get_id(const char *, service_id_t *,
-    unsigned int);
+    ipc_start_flag_t);
 extern errno_t loc_service_get_name(service_id_t, char **);
 extern errno_t loc_service_get_server_name(service_id_t, char **);
 extern errno_t loc_namespace_get_id(const char *, service_id_t *,
-    unsigned int);
+    ipc_start_flag_t);
 extern errno_t loc_category_get_id(const char *, category_id_t *,
-    unsigned int);
+    ipc_start_flag_t);
 extern errno_t loc_category_get_name(category_id_t, char **);
 extern errno_t loc_category_get_svcs(category_id_t, category_id_t **, size_t *);
@@ -64,5 +64,5 @@
 
 extern async_sess_t *loc_service_connect(service_id_t, iface_t,
-    unsigned int);
+    ipc_start_flag_t);
 
 extern int loc_null_create(void);
Index: uspace/lib/c/include/task.h
===================================================================
--- uspace/lib/c/include/task.h	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/c/include/task.h	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -41,9 +41,5 @@
 #include <types/task.h>
 
-#define TASK_WAIT_EXIT   0x1
-#define TASK_WAIT_RETVAL 0x2
-#define TASK_WAIT_BOTH   0x4
-
-static inline void task_wait_set(task_wait_t *wait, int flags)
+static inline void task_wait_set(task_wait_t *wait, task_wait_flag_t flags)
 {
 	wait->flags = flags;
@@ -70,5 +66,5 @@
 extern void task_cancel_wait(task_wait_t *);
 extern errno_t task_wait(task_wait_t *, task_exit_t *, int *);
-extern errno_t task_wait_task_id(task_id_t, int, task_exit_t *, int *);
+extern errno_t task_wait_task_id(task_id_t, task_wait_flag_t, task_exit_t *, int *);
 
 extern errno_t task_retval(int);
Index: uspace/lib/c/include/types/task.h
===================================================================
--- uspace/lib/c/include/types/task.h	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/c/include/types/task.h	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -39,4 +39,11 @@
 
 typedef enum {
+	TASK_WAIT_NONE   = 0x0,
+	TASK_WAIT_EXIT   = 0x1,
+	TASK_WAIT_RETVAL = 0x2,
+	TASK_WAIT_BOTH   = 0x4
+} task_wait_flag_t;
+
+typedef enum {
 	TASK_EXIT_RUNNING,   /**< Internal taskman value. */
 	TASK_EXIT_NORMAL,
@@ -45,5 +52,5 @@
 
 typedef struct {
-	int flags;
+	task_wait_flag_t flags;
 	ipc_call_t result;
 	aid_t aid;
@@ -51,5 +58,5 @@
 } task_wait_t;
 
-typedef void (*task_event_handler_t)(task_id_t, int, task_exit_t, int);
+typedef void (*task_event_handler_t)(task_id_t, task_wait_flag_t, task_exit_t, int);
 
 #endif
Index: uspace/lib/gui/window.c
===================================================================
--- uspace/lib/gui/window.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/gui/window.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -616,5 +616,5 @@
 	win->surface = NULL;
 
-	unsigned int ipc_flags = IPC_AUTOSTART;
+	ipc_start_flag_t ipc_flags = IPC_AUTOSTART;
 	service_id_t reg_dsid;
 	errno_t rc = loc_service_get_id(winreg, &reg_dsid, ipc_flags);
Index: uspace/lib/posix/src/sys/wait.c
===================================================================
--- uspace/lib/posix/src/sys/wait.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/posix/src/sys/wait.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -101,5 +101,5 @@
 	assert(options == 0 /* None of the options are supported. */);
 
-	int flags = TASK_WAIT_RETVAL | TASK_WAIT_EXIT;
+	task_wait_flag_t flags = TASK_WAIT_RETVAL | TASK_WAIT_EXIT;
 	task_exit_t texit;
 	int retval;
Index: uspace/lib/sysman/include/sysman/ctl.h
===================================================================
--- uspace/lib/sysman/include/sysman/ctl.h	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/sysman/include/sysman/ctl.h	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -35,7 +35,7 @@
 errno_t sysman_unit_handle(const char *, unit_handle_t *);
 
-errno_t sysman_unit_start_by_name(const char *, int);
-errno_t sysman_unit_start(unit_handle_t, int);
-errno_t sysman_unit_stop(unit_handle_t, int);
+errno_t sysman_unit_start_by_name(const char *, ipc_start_flag_t);
+errno_t sysman_unit_start(unit_handle_t, ipc_start_flag_t);
+errno_t sysman_unit_stop(unit_handle_t, ipc_start_flag_t);
 
 errno_t sysman_get_units(unit_handle_t **, size_t *);
Index: uspace/lib/sysman/src/ctl.c
===================================================================
--- uspace/lib/sysman/src/ctl.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/lib/sysman/src/ctl.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -64,5 +64,5 @@
  * TODO convert to name->handle API
  */
-errno_t sysman_unit_start_by_name(const char *unit_name, int flags)
+errno_t sysman_unit_start_by_name(const char *unit_name, ipc_start_flag_t flags)
 {
 	async_exch_t *exch = sysman_exchange_begin(SYSMAN_PORT_CTL);
@@ -81,5 +81,5 @@
 }
 
-errno_t sysman_unit_start(unit_handle_t handle, int flags)
+errno_t sysman_unit_start(unit_handle_t handle, ipc_start_flag_t flags)
 {
 	async_exch_t *exch = sysman_exchange_begin(SYSMAN_PORT_CTL);
@@ -91,5 +91,5 @@
 }
 
-errno_t sysman_unit_stop(unit_handle_t handle, int flags)
+errno_t sysman_unit_stop(unit_handle_t handle, ipc_start_flag_t flags)
 {
 	async_exch_t *exch = sysman_exchange_begin(SYSMAN_PORT_CTL);
Index: uspace/srv/sysman/connection_ctl.c
===================================================================
--- uspace/srv/sysman/connection_ctl.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/srv/sysman/connection_ctl.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -104,5 +104,5 @@
 	}
 
-	int flags = ipc_get_arg1(icall);
+	ipc_start_flag_t flags = ipc_get_arg1(icall);
 	sysman_log(LVL_DEBUG2, "%s(%s, %x)", __func__, unit_name, flags);
 
@@ -144,6 +144,6 @@
 
 	unit_handle_t handle = ipc_get_arg1(icall);
-	sysarg_t flags = ipc_get_arg2(icall);
-	sysman_log(LVL_DEBUG2, "%s(%p, %" SCNuPTR ", %i)", __func__, icall->cap_handle, flags, state);
+	ipc_start_flag_t flags = ipc_get_arg2(icall);
+	sysman_log(LVL_DEBUG2, "%s(%p, %u, %i)", __func__, icall->cap_handle, flags, state);
 
 	unit_t *unit = repo_find_unit_by_handle(handle);
Index: uspace/srv/sysman/sm_task.c
===================================================================
--- uspace/srv/sysman/sm_task.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/srv/sysman/sm_task.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -41,5 +41,5 @@
 struct sm_task_event {
 	task_id_t task_id;
-	int flags;
+	task_wait_flag_t flags;
 	task_exit_t texit;
 	int retval;
@@ -51,5 +51,5 @@
  * @note This function runs in separate fibril (not same as event loop).
  */
-static void sm_task_event_handler(task_id_t tid, int flags, task_exit_t texit,
+static void sm_task_event_handler(task_id_t tid, task_wait_flag_t flags, task_exit_t texit,
     int retval)
 {
Index: uspace/srv/sysman/units/unit_mnt.c
===================================================================
--- uspace/srv/sysman/units/unit_mnt.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/srv/sysman/units/unit_mnt.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -54,5 +54,5 @@
 	char *device;
 	char *options;
-	unsigned int flags;
+	ipc_start_flag_t flags;
 	unsigned int instance;
 
@@ -208,6 +208,6 @@
 	 */
 
-	mnt_data.flags |= u_mnt->blocking ? IPC_FLAG_BLOCKING : 0;
-	mnt_data.flags |= u_mnt->autostart ? IPC_AUTOSTART : 0;
+	mnt_data.flags |= u_mnt->blocking ? true : 0;
+	mnt_data.flags |= u_mnt->autostart ? true : 0;
 	mnt_data.unit = unit;
 
Index: uspace/srv/taskman/event.c
===================================================================
--- uspace/srv/taskman/event.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/srv/taskman/event.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -50,5 +50,5 @@
 	task_id_t waiter_id;  /**< Task ID who waits. */
 	ipc_call_t *icall;  /**< Call ID waiting for the event. */
-	int flags;            /**< Wait flags. */
+	task_wait_flag_t flags; /**< Wait flags. */
 } pending_wait_t;
 
@@ -67,7 +67,7 @@
 }
 
-static int event_flags(task_t *task)
-{
-	int flags = 0;
+static task_wait_flag_t event_flags(task_t *task)
+{
+	task_wait_flag_t flags = TASK_WAIT_NONE;
 	if (task->retval_type == RVAL_SET) {
 		flags |= TASK_WAIT_RETVAL;
@@ -88,6 +88,6 @@
 static void event_notify(task_t *sender, async_sess_t *sess)
 {
-	int flags = event_flags(sender);
-	if (flags == 0) {
+	task_wait_flag_t flags = event_flags(sender);
+	if (flags == TASK_WAIT_NONE) {
 		return;
 	}
@@ -114,6 +114,6 @@
 static void event_notify_all(task_t *sender)
 {
-	int flags = event_flags(sender);
-	if (flags == 0) {
+	task_wait_flag_t flags = event_flags(sender);
+	if (flags == TASK_WAIT_NONE) {
 		return;
 	}
@@ -140,5 +140,5 @@
 			continue; // TODO really when does this happen?
 		}
-		int notify_flags = event_flags(t);
+		task_wait_flag_t notify_flags = event_flags(t);
 
 		/*
@@ -146,7 +146,7 @@
 		 * thus it can be never present in rest flags.
 		 */
-		int rest = (~notify_flags & pr->flags) & ~TASK_WAIT_RETVAL;
+		task_wait_flag_t rest = (~notify_flags & pr->flags) & ~TASK_WAIT_RETVAL;
 		rest &= ~TASK_WAIT_BOTH;
-		int match = notify_flags & pr->flags;
+		bool match = notify_flags & pr->flags;
 		// TODO why do I even accept such calls?
 		bool answer = !(pr->icall->flags & IPC_CALL_NOTIF);
@@ -233,5 +233,5 @@
 }
 
-void wait_for_task(task_id_t id, int flags, ipc_call_t *icall,
+void wait_for_task(task_id_t id, task_wait_flag_t flags, ipc_call_t *icall,
     task_id_t waiter_id)
 {
Index: uspace/srv/taskman/event.h
===================================================================
--- uspace/srv/taskman/event.h	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/srv/taskman/event.h	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -44,5 +44,5 @@
     ipc_call_t *);
 extern void dump_events(task_id_t, ipc_call_t *);
-extern void wait_for_task(task_id_t, int, ipc_call_t *, task_id_t);
+extern void wait_for_task(task_id_t, task_wait_flag_t, ipc_call_t *, task_id_t);
 extern errno_t task_set_retval(task_id_t, int, bool);
 
Index: uspace/srv/taskman/main.c
===================================================================
--- uspace/srv/taskman/main.c	(revision 06599a1a0ea9ac750078828e1b15157f930d22aa)
+++ uspace/srv/taskman/main.c	(revision 3529f148771b27760a26577ba793b64cf85acc73)
@@ -97,5 +97,5 @@
 
 	/* After forward we can dispose all session-related resources */
-	async_hangup(sess_ref->sess);
+	//async_hangup(sess_ref->sess);
 	free(sess_ref);
 
