Index: uspace/lib/c/generic/adt/char_map.c
===================================================================
--- uspace/lib/c/generic/adt/char_map.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/c/generic/adt/char_map.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -65,5 +65,5 @@
  */
 static int
-char_map_add_item(char_map_t *map, const char *identifier, size_t length,
+char_map_add_item(char_map_t *map, const uint8_t *identifier, size_t length,
     const int value)
 {
@@ -139,5 +139,5 @@
  */
 int
-char_map_add(char_map_t *map, const char *identifier, size_t length,
+char_map_add(char_map_t *map, const uint8_t *identifier, size_t length,
     const int value)
 {
@@ -200,5 +200,5 @@
  */
 static char_map_t *
-char_map_find_node(const char_map_t *map, const char *identifier,
+char_map_find_node(const char_map_t *map, const uint8_t *identifier,
     size_t length)
 {
@@ -241,5 +241,5 @@
  * @return		CHAR_MAP_NULL if the key is not assigned a value.
  */
-int char_map_exclude(char_map_t *map, const char *identifier, size_t length)
+int char_map_exclude(char_map_t *map, const uint8_t *identifier, size_t length)
 {
 	char_map_t *node;
@@ -269,5 +269,5 @@
  *  @return		CHAR_MAP_NULL if the key is not assigned a value.
  */
-int char_map_find(const char_map_t *map, const char *identifier, size_t length)
+int char_map_find(const char_map_t *map, const uint8_t *identifier, size_t length)
 {
 	char_map_t *node;
@@ -329,5 +329,5 @@
  */
 int
-char_map_update(char_map_t *map, const char *identifier, const size_t length,
+char_map_update(char_map_t *map, const uint8_t *identifier, const size_t length,
     const int value)
 {
Index: uspace/lib/c/generic/adt/measured_strings.c
===================================================================
--- uspace/lib/c/generic/adt/measured_strings.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/c/generic/adt/measured_strings.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -59,5 +59,5 @@
  */
 measured_string_t *
-measured_string_create_bulk(const char *string, size_t length)
+measured_string_create_bulk(const uint8_t *string, size_t length)
 {
 	measured_string_t *new;
@@ -68,10 +68,10 @@
 	}
 	new = (measured_string_t *) malloc(sizeof(measured_string_t) +
-	    (sizeof(char) * (length + 1)));
+	    (sizeof(uint8_t) * (length + 1)));
 	if (!new)
 		return NULL;
 
 	new->length = length;
-	new->value = ((char *) new) + sizeof(measured_string_t);
+	new->value = ((uint8_t *) new) + sizeof(measured_string_t);
 	// append terminating zero explicitly - to be safe
 	memcpy(new->value, string, new->length);
@@ -97,5 +97,5 @@
 	new = (measured_string_t *) malloc(sizeof(measured_string_t));
 	if (new) {
-		new->value = (char *) malloc(source->length + 1);
+		new->value = (uint8_t *) malloc(source->length + 1);
 		if (new->value) {
 			new->length = source->length;
@@ -131,5 +131,5 @@
  */
 int
-measured_strings_receive(measured_string_t **strings, char **data,
+measured_strings_receive(measured_string_t **strings, uint8_t **data,
     size_t count)
 {
@@ -137,5 +137,5 @@
 	size_t index;
 	size_t length;
-	char *next;
+	uint8_t *next;
 	ipc_callid_t callid;
 	int rc;
@@ -311,10 +311,10 @@
  */
 int
-measured_strings_return(int phone, measured_string_t **strings, char **data,
+measured_strings_return(int phone, measured_string_t **strings, uint8_t **data,
     size_t count)
 {
 	size_t *lengths;
 	size_t index;
-	char *next;
+	uint8_t *next;
 	int rc;
 
Index: uspace/lib/c/generic/mem.c
===================================================================
--- uspace/lib/c/generic/mem.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/c/generic/mem.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -222,15 +222,20 @@
 /** Compare two memory areas.
  *
- * @param s1		Pointer to the first area to compare.
- * @param s2		Pointer to the second area to compare.
- * @param len		Size of the first area in bytes. Both areas must have
- * 			the same length.
- * @return		If len is 0, return zero. If the areas match, return
- * 			zero. Otherwise return non-zero.
- */
-int bcmp(const char *s1, const char *s2, size_t len)
-{
-	for (; len && *s1++ == *s2++; len--)
-		;
+ * @param s1  Pointer to the first area to compare.
+ * @param s2  Pointer to the second area to compare.
+ * @param len Size of the first area in bytes. Both areas must have
+ *            the same length.
+ *
+ * @return If len is 0, return zero. If the areas match, return
+ *         zero. Otherwise return non-zero.
+ *
+ */
+int bcmp(const void *s1, const void *s2, size_t len)
+{
+	uint8_t *u1 = (uint8_t *) s1;
+	uint8_t *u2 = (uint8_t *) s2;
+	
+	for (; (len != 0) && (*u1++ == *u2++); len--);
+	
 	return len;
 }
Index: uspace/lib/c/include/adt/char_map.h
===================================================================
--- uspace/lib/c/include/adt/char_map.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/c/include/adt/char_map.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -41,10 +41,10 @@
 
 /** Invalid assigned value used also if an&nbsp;entry does not exist. */
-#define CHAR_MAP_NULL	(-1)
+#define CHAR_MAP_NULL  (-1)
 
 /** Type definition of the character string to integer map.
  *  @see char_map
  */
-typedef struct char_map	char_map_t;
+typedef struct char_map char_map_t;
 
 /** Character string to integer map item.
@@ -56,5 +56,5 @@
 struct char_map {
 	/** Actually mapped character. */
-	char c;
+	uint8_t c;
 	/** Stored integral value. */
 	int value;
@@ -71,8 +71,8 @@
 extern int char_map_initialize(char_map_t *);
 extern void char_map_destroy(char_map_t *);
-extern int char_map_exclude(char_map_t *, const char *, size_t);
-extern int char_map_add(char_map_t *, const char *, size_t, const int);
-extern int char_map_find(const char_map_t *, const char *, size_t);
-extern int char_map_update(char_map_t *, const char *, size_t, const int);
+extern int char_map_exclude(char_map_t *, const uint8_t *, size_t);
+extern int char_map_add(char_map_t *, const uint8_t *, size_t, const int);
+extern int char_map_find(const char_map_t *, const uint8_t *, size_t);
+extern int char_map_update(char_map_t *, const uint8_t *, size_t, const int);
 
 #endif
Index: uspace/lib/c/include/adt/generic_char_map.h
===================================================================
--- uspace/lib/c/include/adt/generic_char_map.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/c/include/adt/generic_char_map.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -62,9 +62,9 @@
 	}; \
 	\
-	int name##_add(name##_t *, const char *, const size_t, type *); \
+	int name##_add(name##_t *, const uint8_t *, const size_t, type *); \
 	int name##_count(name##_t *); \
 	void name##_destroy(name##_t *); \
-	void name##_exclude(name##_t *, const char *, const size_t); \
-	type *name##_find(name##_t *, const char *, const size_t); \
+	void name##_exclude(name##_t *, const uint8_t *, const size_t); \
+	type *name##_find(name##_t *, const uint8_t *, const size_t); \
 	int name##_initialize(name##_t *); \
 	int name##_is_valid(name##_t *);
@@ -74,11 +74,12 @@
  * Should follow declaration with the same parameters.
  *
- * @param[in] name	Name of the map.
- * @param[in] type	Inner object type.
+ * @param[in] name Name of the map.
+ * @param[in] type Inner object type.
+ *
  */
 #define GENERIC_CHAR_MAP_IMPLEMENT(name, type) \
 	GENERIC_FIELD_IMPLEMENT(name##_items, type) \
 	\
-	int name##_add(name##_t *map, const char *name, const size_t length, \
+	int name##_add(name##_t *map, const uint8_t *name, const size_t length, \
 	     type *value) \
 	{ \
@@ -112,5 +113,5 @@
 	} \
 	\
-	void name##_exclude(name##_t *map, const char *name, \
+	void name##_exclude(name##_t *map, const uint8_t *name, \
 	    const size_t length) \
 	{ \
@@ -124,5 +125,5 @@
 	} \
 	\
-	type *name##_find(name##_t *map, const char *name, \
+	type *name##_find(name##_t *map, const uint8_t *name, \
 	    const size_t length) \
 	{ \
Index: uspace/lib/c/include/adt/measured_strings.h
===================================================================
--- uspace/lib/c/include/adt/measured_strings.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/c/include/adt/measured_strings.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -54,14 +54,14 @@
 struct measured_string {
 	/** Character string data. */
-	char *value;
+	uint8_t *value;
 	/** Character string length. */
 	size_t length;
 };
 
-extern measured_string_t *measured_string_create_bulk(const char *, size_t);
+extern measured_string_t *measured_string_create_bulk(const uint8_t *, size_t);
 extern measured_string_t *measured_string_copy(measured_string_t *);
-extern int measured_strings_receive(measured_string_t **, char **, size_t);
+extern int measured_strings_receive(measured_string_t **, uint8_t **, size_t);
 extern int measured_strings_reply(const measured_string_t *, size_t);
-extern int measured_strings_return(int, measured_string_t **, char **, size_t);
+extern int measured_strings_return(int, measured_string_t **, uint8_t **, size_t);
 extern int measured_strings_send(int, const measured_string_t *, size_t);
 
Index: uspace/lib/c/include/mem.h
===================================================================
--- uspace/lib/c/include/mem.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/c/include/mem.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -44,5 +44,5 @@
 extern void *memmove(void *, const void *, size_t);
 
-extern int bcmp(const char *, const char *, size_t);
+extern int bcmp(const void *, const void *, size_t);
 
 #endif
Index: uspace/lib/net/adt/module_map.c
===================================================================
--- uspace/lib/net/adt/module_map.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/adt/module_map.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -63,6 +63,6 @@
  */
 int
-add_module(module_t **module, modules_t *modules, const char *name,
-    const char *filename, services_t service, task_id_t task_id,
+add_module(module_t **module, modules_t *modules, const uint8_t *name,
+    const uint8_t *filename, services_t service, task_id_t task_id,
     connect_module_t connect_module)
 {
@@ -104,5 +104,5 @@
  * @return		NULL if there is no such module.
  */
-module_t *get_running_module(modules_t *modules, char *name)
+module_t *get_running_module(modules_t *modules, uint8_t *name)
 {
 	module_t *module;
@@ -113,5 +113,5 @@
 
 	if (!module->task_id) {
-		module->task_id = spawn(module->filename);
+		module->task_id = net_spawn(module->filename);
 		if (!module->task_id)
 			return NULL;
@@ -123,16 +123,18 @@
 }
 
-/** Starts the given module.
+/** Start the given module.
  *
- * @param[in] fname	The module full or relative path filename.
- * @return		The new module task identifier on success.
- * @return		Zero if there is no such module.
+ * @param[in] fname The module full or relative path filename.
+ *
+ * @return The new module task identifier on success.
+ * @return Zero if there is no such module.
+ *
  */
-task_id_t spawn(const char *fname)
+task_id_t net_spawn(const uint8_t *fname)
 {
 	task_id_t id;
 	int rc;
 	
-	rc = task_spawnl(&id, fname, fname, NULL);
+	rc = task_spawnl(&id, (const char *) fname, (const char *) fname, NULL);
 	if (rc != EOK)
 		return 0;
Index: uspace/lib/net/generic/generic.c
===================================================================
--- uspace/lib/net/generic/generic.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/generic/generic.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -112,5 +112,5 @@
 	message_id = async_send_1(phone, (sysarg_t) message,
 	    (sysarg_t) device_id, NULL);
-	string = measured_strings_return(phone, address, (char **) data, 1);
+	string = measured_strings_return(phone, address, data, 1);
 	async_wait_for(message_id, &result);
 
@@ -234,5 +234,5 @@
 generic_translate_req(int phone, int message, device_id_t device_id,
     services_t service, measured_string_t *configuration, size_t count,
-    measured_string_t **translation, char **data)
+    measured_string_t **translation, uint8_t **data)
 {
 	aid_t message_id;
Index: uspace/lib/net/generic/net_remote.c
===================================================================
--- uspace/lib/net/generic/net_remote.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/generic/net_remote.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -63,5 +63,5 @@
  * @see net_get_conf_req()
  */
-void net_free_settings(measured_string_t *settings, char *data)
+void net_free_settings(measured_string_t *settings, uint8_t *data)
 {
 	if (settings)
@@ -91,5 +91,5 @@
 int
 net_get_conf_req(int net_phone, measured_string_t **configuration,
-    size_t count, char **data)
+    size_t count, uint8_t **data)
 {
 	return generic_translate_req(net_phone, NET_NET_GET_DEVICE_CONF, 0, 0,
@@ -118,5 +118,5 @@
 int
 net_get_device_conf_req(int net_phone, device_id_t device_id,
-    measured_string_t **configuration, size_t count, char **data)
+    measured_string_t **configuration, size_t count, uint8_t **data)
 {
 	return generic_translate_req(net_phone, NET_NET_GET_DEVICE_CONF,
Index: uspace/lib/net/il/arp_remote.c
===================================================================
--- uspace/lib/net/il/arp_remote.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/il/arp_remote.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -165,5 +165,5 @@
 int
 arp_translate_req(int arp_phone, device_id_t device_id, services_t protocol,
-    measured_string_t *address, measured_string_t **translation, char **data)
+    measured_string_t *address, measured_string_t **translation, uint8_t **data)
 {
 	return generic_translate_req(arp_phone, NET_ARP_TRANSLATE, device_id,
Index: uspace/lib/net/include/adt/module_map.h
===================================================================
--- uspace/lib/net/include/adt/module_map.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/include/adt/module_map.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -65,15 +65,15 @@
 	int usage;
 	/** Module name. */
-	const char *name;
+	const uint8_t *name;
 	/** Module full path filename. */
-	const char *filename;
+	const uint8_t *filename;
 	/** Connecting function. */
 	connect_module_t *connect_module;
 };
 
-extern int add_module(module_t **, modules_t *, const char *, const char *,
-    services_t, task_id_t, connect_module_t *);
-extern module_t *get_running_module(modules_t *, char *);
-extern task_id_t spawn(const char *);
+extern int add_module(module_t **, modules_t *, const uint8_t *,
+    const uint8_t *, services_t, task_id_t, connect_module_t *);
+extern module_t *get_running_module(modules_t *, uint8_t *);
+extern task_id_t net_spawn(const uint8_t *);
 
 #endif
Index: uspace/lib/net/include/arp_interface.h
===================================================================
--- uspace/lib/net/include/arp_interface.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/include/arp_interface.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -50,5 +50,5 @@
     measured_string_t *);
 extern int arp_translate_req(int, device_id_t, services_t, measured_string_t *,
-    measured_string_t **, char **);
+    measured_string_t **, uint8_t **);
 extern int arp_clear_device_req(int, device_id_t);
 extern int arp_clear_address_req(int, device_id_t, services_t,
Index: uspace/lib/net/include/generic.h
===================================================================
--- uspace/lib/net/include/generic.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/include/generic.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -58,5 +58,5 @@
     services_t, services_t);
 extern int generic_translate_req(int, int, device_id_t, services_t,
-    measured_string_t *, size_t, measured_string_t **, char **);
+    measured_string_t *, size_t, measured_string_t **, uint8_t **);
 
 #endif
Index: uspace/lib/net/include/net_interface.h
===================================================================
--- uspace/lib/net/include/net_interface.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/include/net_interface.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -45,7 +45,7 @@
 
 extern int net_get_device_conf_req(int, device_id_t, measured_string_t **,
-    size_t, char **);
-extern int net_get_conf_req(int, measured_string_t **, size_t, char **);
-extern void net_free_settings(measured_string_t *, char *);
+    size_t, uint8_t **);
+extern int net_get_conf_req(int, measured_string_t **, size_t, uint8_t **);
+extern void net_free_settings(measured_string_t *, uint8_t *);
 extern int net_connect_module(void);
 
Index: uspace/lib/net/include/socket_core.h
===================================================================
--- uspace/lib/net/include/socket_core.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/include/socket_core.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -86,5 +86,5 @@
 	void *specific_data;
 	/** Socket ports map key. */
-	const char *key;
+	const uint8_t *key;
 	/** Length of the Socket ports map key. */
 	size_t key_length;
@@ -118,9 +118,9 @@
     void (*)(socket_core_t *));
 extern int socket_reply_packets(packet_t *, size_t *);
-extern socket_core_t *socket_port_find(socket_ports_t *, int, const char *,
+extern socket_core_t *socket_port_find(socket_ports_t *, int, const uint8_t *,
     size_t);
 extern void socket_port_release(socket_ports_t *, socket_core_t *);
 extern int socket_port_add(socket_ports_t *, int, socket_core_t *,
-    const char *, size_t);
+    const uint8_t *, size_t);
 
 #endif
Index: uspace/lib/net/netif/netif_local.c
===================================================================
--- uspace/lib/net/netif/netif_local.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/netif/netif_local.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -221,5 +221,5 @@
 	fibril_rwlock_read_unlock(&netif_globals.lock);
 	
-	*data = (uint8_t *) (**address).value;
+	*data = (**address).value;
 	
 	return rc;
Index: uspace/lib/net/tl/socket_core.c
===================================================================
--- uspace/lib/net/tl/socket_core.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/lib/net/tl/socket_core.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -161,5 +161,5 @@
 static int
 socket_port_add_core(socket_port_t *socket_port, socket_core_t *socket,
-    const char *key, size_t key_length)
+    const uint8_t *key, size_t key_length)
 {
 	socket_core_t **socket_ref;
@@ -216,6 +216,6 @@
 		goto fail;
 	
-	rc = socket_port_add_core(socket_port, socket, SOCKET_MAP_KEY_LISTENING,
-	    0);
+	rc = socket_port_add_core(socket_port, socket,
+	    (const uint8_t *) SOCKET_MAP_KEY_LISTENING, 0);
 	if (rc != EOK)
 		goto fail;
@@ -602,5 +602,5 @@
  */
 socket_core_t *
-socket_port_find(socket_ports_t *global_sockets, int port, const char *key,
+socket_port_find(socket_ports_t *global_sockets, int port, const uint8_t *key,
     size_t key_length)
 {
@@ -680,5 +680,5 @@
 int
 socket_port_add(socket_ports_t *global_sockets, int port,
-    socket_core_t *socket, const char *key, size_t key_length)
+    socket_core_t *socket, const uint8_t *key, size_t key_length)
 {
 	socket_port_t *socket_port;
Index: uspace/srv/hw/netif/dp8390/dp8390.c
===================================================================
--- uspace/srv/hw/netif/dp8390/dp8390.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/hw/netif/dp8390/dp8390.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -550,8 +550,8 @@
 		if ((length < ETH_MIN_PACK_SIZE) || (length > ETH_MAX_PACK_SIZE_TAGGED)) {
 			printf("Packet with strange length arrived: %zu\n", length);
-			next= curr;
+			next = curr;
 		} else if ((next < dep->de_startpage) || (next >= dep->de_stoppage)) {
 			printf("Strange next page\n");
-			next= curr;
+			next = curr;
 		} else if (header.dr_status & RSR_FO) {
 			/*
Index: uspace/srv/hw/netif/dp8390/dp8390_module.c
===================================================================
--- uspace/srv/hw/netif/dp8390/dp8390_module.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/hw/netif/dp8390/dp8390_module.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -213,5 +213,5 @@
 		return rc;
 	
-	address->value = (char *) (&((dpeth_t *) device->specific)->de_address);
+	address->value = (uint8_t *) &((dpeth_t *) device->specific)->de_address;
 	address->length = sizeof(ether_addr_t);
 	return EOK;
Index: uspace/srv/hw/netif/dp8390/dp8390_port.h
===================================================================
--- uspace/srv/hw/netif/dp8390/dp8390_port.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/hw/netif/dp8390/dp8390_port.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -43,14 +43,4 @@
 #include <libarch/ddi.h>
 #include <sys/types.h>
-
-/** Compares two memory blocks.
- *  @param[in] first The first memory block.
- *  @param[in] second The second memory block.
- *  @param[in] size The blocks size in bytes.
- *  @returns 0 if equeal.
- *  @returns -1 if the first is greater than the second.
- *  @returns 1 if the second is greater than the first.
- */
-#define memcmp(first, second, size)  bcmp((char *) (first), (char *) (second), (size))
 
 /** Reads 1 byte.
Index: uspace/srv/hw/netif/dp8390/ne2000.c
===================================================================
--- uspace/srv/hw/netif/dp8390/ne2000.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/hw/netif/dp8390/ne2000.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -241,5 +241,5 @@
 		buf[i] = inb_ne(dep, NE_DATA);
 	
-	return (memcmp(buf, pat, 4) == 0);
+	return (bcmp(buf, pat, 4) == 0);
 }
 
@@ -280,5 +280,5 @@
 		*(uint16_t *)(buf + i) = inw_ne(dep, NE_DATA);
 	
-	return (memcmp(buf, pat, 4) == 0);
+	return (bcmp(buf, pat, 4) == 0);
 }
 
Index: uspace/srv/net/il/arp/arp.c
===================================================================
--- uspace/srv/net/il/arp/arp.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/il/arp/arp.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -215,5 +215,5 @@
 	(*proto)->service = service;
 	(*proto)->addr = address;
-	(*proto)->addr_data = (uint8_t *) address->value;
+	(*proto)->addr_data = address->value;
 	
 	rc = arp_addr_initialize(&(*proto)->addresses);
@@ -267,5 +267,5 @@
 			free(proto->addr_data);
 			proto->addr = address;
-			proto->addr_data = (uint8_t *) address->value;
+			proto->addr_data = address->value;
 		} else {
 			rc = arp_proto_create(&proto, protocol, address);
@@ -482,5 +482,5 @@
 	des_hw = src_proto + header->protocol_length;
 	des_proto = des_hw + header->hardware_length;
-	trans = arp_addr_find(&proto->addresses, (char *) src_proto,
+	trans = arp_addr_find(&proto->addresses, src_proto,
 	    header->protocol_length);
 	/* Exists? */
@@ -493,6 +493,6 @@
 	if (proto->addr->length != header->protocol_length)
 		return EINVAL;
-	if (!str_lcmp(proto->addr->value, (char *) des_proto,
-	    proto->addr->length)) {
+	
+	if (!bcmp(proto->addr->value, des_proto, proto->addr->length)) {
 		/* Not already updated? */
 		if (!trans) {
@@ -502,5 +502,5 @@
 			trans->hw_addr = NULL;
 			fibril_condvar_initialize(&trans->cv);
-			rc = arp_addr_add(&proto->addresses, (char *) src_proto,
+			rc = arp_addr_add(&proto->addresses, src_proto,
 			    header->protocol_length, trans);
 			if (rc != EOK) {
@@ -510,9 +510,9 @@
 		}
 		if (!trans->hw_addr) {
-			trans->hw_addr = measured_string_create_bulk(
-			    (char *) src_hw, header->hardware_length);
+			trans->hw_addr = measured_string_create_bulk(src_hw,
+			    header->hardware_length);
 			if (!trans->hw_addr)
 				return ENOMEM;
-
+			
 			/* Notify the fibrils that wait for the translation. */
 			fibril_condvar_broadcast(&trans->cv);
@@ -681,5 +681,5 @@
 	measured_string_t *address;
 	measured_string_t *translation;
-	char *data;
+	uint8_t *data;
 	packet_t *packet;
 	packet_t *next;
@@ -748,4 +748,5 @@
 	
 	case NET_IL_RECEIVED:
+		
 		rc = packet_translate_remote(arp_globals.net_phone, &packet,
 		    IPC_GET_PACKET(call));
Index: uspace/srv/net/il/ip/ip.c
===================================================================
--- uspace/srv/net/il/ip/ip.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/il/ip/ip.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -275,6 +275,6 @@
 	if (rc != EOK)
 		goto out;
-	rc = add_module(NULL, &ip_globals.modules, ARP_NAME, ARP_FILENAME,
-	    SERVICE_ARP, 0, arp_connect_module);
+	rc = add_module(NULL, &ip_globals.modules, (uint8_t *) ARP_NAME,
+	    (uint8_t *) ARP_FILENAME, SERVICE_ARP, 0, arp_connect_module);
 
 out:
@@ -312,33 +312,33 @@
 	measured_string_t names[] = {
 		{
-			(char *) "IPV",
+			(uint8_t *) "IPV",
 			3
 		},
 		{
-			(char *) "IP_CONFIG",
+			(uint8_t *) "IP_CONFIG",
 			9
 		},
 		{
-			(char *) "IP_ADDR",
+			(uint8_t *) "IP_ADDR",
 			7
 		},
 		{
-			(char *) "IP_NETMASK",
+			(uint8_t *) "IP_NETMASK",
 			10
 		},
 		{
-			(char *) "IP_GATEWAY",
+			(uint8_t *) "IP_GATEWAY",
 			10
 		},
 		{
-			(char *) "IP_BROADCAST",
+			(uint8_t *) "IP_BROADCAST",
 			12
 		},
 		{
-			(char *) "ARP",
+			(uint8_t *) "ARP",
 			3
 		},
 		{
-			(char *) "IP_ROUTING",
+			(uint8_t *) "IP_ROUTING",
 			10
 		}
@@ -346,5 +346,5 @@
 	measured_string_t *configuration;
 	size_t count = sizeof(names) / sizeof(measured_string_t);
-	char *data;
+	uint8_t *data;
 	measured_string_t address;
 	ip_route_t *route;
@@ -368,7 +368,7 @@
 	if (configuration) {
 		if (configuration[0].value)
-			ip_netif->ipv = strtol(configuration[0].value, NULL, 0);
-
-		ip_netif->dhcp = !str_lcmp(configuration[1].value, "dhcp",
+			ip_netif->ipv = strtol((char *) configuration[0].value, NULL, 0);
+		
+		ip_netif->dhcp = !str_lcmp((char *) configuration[1].value, "dhcp",
 		    configuration[1].length);
 		
@@ -394,11 +394,11 @@
 			}
 			
-			if ((inet_pton(AF_INET, configuration[2].value,
+			if ((inet_pton(AF_INET, (char *) configuration[2].value,
 			    (uint8_t *) &route->address.s_addr) != EOK) ||
-			    (inet_pton(AF_INET, configuration[3].value,
+			    (inet_pton(AF_INET, (char *) configuration[3].value,
 			    (uint8_t *) &route->netmask.s_addr) != EOK) ||
-			    (inet_pton(AF_INET, configuration[4].value,
+			    (inet_pton(AF_INET, (char *) configuration[4].value,
 			    (uint8_t *) &gateway.s_addr) == EINVAL) ||
-			    (inet_pton(AF_INET, configuration[5].value,
+			    (inet_pton(AF_INET, (char *) configuration[5].value,
 			    (uint8_t *) &ip_netif->broadcast.s_addr) == EINVAL))
 			    {
@@ -441,5 +441,5 @@
 	if (ip_netif->arp) {
 		if (route) {
-			address.value = (char *) &route->address.s_addr;
+			address.value = (uint8_t *) &route->address.s_addr;
 			address.length = sizeof(in_addr_t);
 			
@@ -997,5 +997,5 @@
 	measured_string_t destination;
 	measured_string_t *translation;
-	char *data;
+	uint8_t *data;
 	int phone;
 	int rc;
@@ -1004,5 +1004,5 @@
 	if (netif->arp && (route->address.s_addr != dest.s_addr)) {
 		destination.value = route->gateway.s_addr ?
-		    (char *) &route->gateway.s_addr : (char *) &dest.s_addr;
+		    (uint8_t *) &route->gateway.s_addr : (uint8_t *) &dest.s_addr;
 		destination.length = sizeof(dest.s_addr);
 
@@ -1756,5 +1756,5 @@
 		    (header->destination_address & route->netmask.s_addr))) {
 			// clear the ARP mapping if any
-			address.value = (char *) &header->destination_address;
+			address.value = (uint8_t *) &header->destination_address;
 			address.length = sizeof(header->destination_address);
 			arp_clear_address_req(netif->arp->phone,
Index: uspace/srv/net/net/net.c
===================================================================
--- uspace/srv/net/net/net.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/net/net.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -90,6 +90,6 @@
  *
  */
-int add_configuration(measured_strings_t *configuration, const char *name,
-    const char *value)
+int add_configuration(measured_strings_t *configuration, const uint8_t *name,
+    const uint8_t *value)
 {
 	int rc;
@@ -119,10 +119,10 @@
 }
 
-static int parse_line(measured_strings_t *configuration, char *line)
+static int parse_line(measured_strings_t *configuration, uint8_t *line)
 {
 	int rc;
 	
 	/* From the beginning */
-	char *name = line;
+	uint8_t *name = line;
 	
 	/* Skip comments and blank lines */
@@ -135,5 +135,5 @@
 	
 	/* Remember the name start */
-	char *value = name;
+	uint8_t *value = name;
 	
 	/* Skip the name */
@@ -186,10 +186,10 @@
 	
 	/* Construct the full filename */
-	char line[BUFFER_SIZE];
-	if (snprintf(line, BUFFER_SIZE, "%s/%s", directory, filename) > BUFFER_SIZE)
+	char fname[BUFFER_SIZE];
+	if (snprintf(fname, BUFFER_SIZE, "%s/%s", directory, filename) > BUFFER_SIZE)
 		return EOVERFLOW;
 	
 	/* Open the file */
-	FILE *cfg = fopen(line, "r");
+	FILE *cfg = fopen(fname, "r");
 	if (!cfg)
 		return ENOENT;
@@ -201,4 +201,6 @@
 	unsigned int line_number = 0;
 	size_t index = 0;
+	uint8_t line[BUFFER_SIZE];
+	
 	while (!ferror(cfg) && !feof(cfg)) {
 		int read = fgetc(cfg);
@@ -207,5 +209,5 @@
 				line[BUFFER_SIZE - 1] = '\0';
 				fprintf(stderr, "%s: Configuration line %u too "
-				    "long: %s\n", NAME, line_number, line);
+				    "long: %s\n", NAME, line_number, (char *) line);
 				
 				/* No space left in the line buffer */
@@ -213,5 +215,5 @@
 			}
 			/* Append the character */
-			line[index] = (char) read;
+			line[index] = (uint8_t) read;
 			index++;
 		} else {
@@ -221,5 +223,5 @@
 			if (parse_line(configuration, line) != EOK) {
 				fprintf(stderr, "%s: Configuration error on "
-				    "line %u: %s\n", NAME, line_number, line);
+				    "line %u: %s\n", NAME, line_number, (char *) line);
 			}
 			
@@ -282,18 +284,18 @@
 		return rc;
 	
-	rc = add_module(NULL, &net_globals.modules, LO_NAME, LO_FILENAME,
-	    SERVICE_LO, 0, connect_to_service);
-	if (rc != EOK)
-		return rc;
-	rc = add_module(NULL, &net_globals.modules, DP8390_NAME,
-	    DP8390_FILENAME, SERVICE_DP8390, 0, connect_to_service);
-	if (rc != EOK)
-		return rc;
-	rc = add_module(NULL, &net_globals.modules, ETHERNET_NAME,
-	    ETHERNET_FILENAME, SERVICE_ETHERNET, 0, connect_to_service);
-	if (rc != EOK)
-		return rc;
-	rc = add_module(NULL, &net_globals.modules, NILDUMMY_NAME,
-	    NILDUMMY_FILENAME, SERVICE_NILDUMMY, 0, connect_to_service);
+	rc = add_module(NULL, &net_globals.modules, (uint8_t *) LO_NAME,
+	    (uint8_t *) LO_FILENAME, SERVICE_LO, 0, connect_to_service);
+	if (rc != EOK)
+		return rc;
+	rc = add_module(NULL, &net_globals.modules, (uint8_t *) DP8390_NAME,
+	    (uint8_t *) DP8390_FILENAME, SERVICE_DP8390, 0, connect_to_service);
+	if (rc != EOK)
+		return rc;
+	rc = add_module(NULL, &net_globals.modules, (uint8_t *) ETHERNET_NAME,
+	    (uint8_t *) ETHERNET_FILENAME, SERVICE_ETHERNET, 0, connect_to_service);
+	if (rc != EOK)
+		return rc;
+	rc = add_module(NULL, &net_globals.modules, (uint8_t *) NILDUMMY_NAME,
+	    (uint8_t *) NILDUMMY_FILENAME, SERVICE_NILDUMMY, 0, connect_to_service);
 	if (rc != EOK)
 		return rc;
@@ -364,5 +366,5 @@
  */
 static int net_get_conf(measured_strings_t *netif_conf,
-    measured_string_t *configuration, size_t count, char **data)
+    measured_string_t *configuration, size_t count, uint8_t **data)
 {
 	if (data)
@@ -390,5 +392,5 @@
 
 int net_get_conf_req(int net_phone, measured_string_t **configuration,
-    size_t count, char **data)
+    size_t count, uint8_t **data)
 {
 	if (!configuration || (count <= 0))
@@ -399,5 +401,5 @@
 
 int net_get_device_conf_req(int net_phone, device_id_t device_id,
-    measured_string_t **configuration, size_t count, char **data)
+    measured_string_t **configuration, size_t count, uint8_t **data)
 {
 	if ((!configuration) || (count == 0))
@@ -411,5 +413,5 @@
 }
 
-void net_free_settings(measured_string_t *settings, char *data)
+void net_free_settings(measured_string_t *settings, uint8_t *data)
 {
 }
@@ -437,5 +439,5 @@
 	/* Mandatory netif */
 	measured_string_t *setting =
-	    measured_strings_find(&netif->configuration, CONF_NETIF, 0);
+	    measured_strings_find(&netif->configuration, (uint8_t *) CONF_NETIF, 0);
 	
 	netif->driver = get_running_module(&net_globals.modules, setting->value);
@@ -447,5 +449,5 @@
 	
 	/* Optional network interface layer */
-	setting = measured_strings_find(&netif->configuration, CONF_NIL, 0);
+	setting = measured_strings_find(&netif->configuration, (uint8_t *) CONF_NIL, 0);
 	if (setting) {
 		netif->nil = get_running_module(&net_globals.modules, setting->value);
@@ -459,5 +461,5 @@
 	
 	/* Mandatory internet layer */
-	setting = measured_strings_find(&netif->configuration, CONF_IL, 0);
+	setting = measured_strings_find(&netif->configuration, (uint8_t *) CONF_IL, 0);
 	netif->il = get_running_module(&net_globals.modules, setting->value);
 	if (!netif->il) {
@@ -468,9 +470,9 @@
 	
 	/* Hardware configuration */
-	setting = measured_strings_find(&netif->configuration, CONF_IRQ, 0);
-	int irq = setting ? strtol(setting->value, NULL, 10) : 0;
-	
-	setting = measured_strings_find(&netif->configuration, CONF_IO, 0);
-	int io = setting ? strtol(setting->value, NULL, 16) : 0;
+	setting = measured_strings_find(&netif->configuration, (uint8_t *) CONF_IRQ, 0);
+	int irq = setting ? strtol((char *) setting->value, NULL, 10) : 0;
+	
+	setting = measured_strings_find(&netif->configuration, (uint8_t *) CONF_IO, 0);
+	int io = setting ? strtol((char *) setting->value, NULL, 16) : 0;
 	
 	rc = netif_probe_req_remote(netif->driver->phone, netif->id, irq, io);
@@ -481,10 +483,10 @@
 	services_t internet_service;
 	if (netif->nil) {
-		setting = measured_strings_find(&netif->configuration, CONF_MTU, 0);
+		setting = measured_strings_find(&netif->configuration, (uint8_t *) CONF_MTU, 0);
 		if (!setting)
 			setting = measured_strings_find(&net_globals.configuration,
-			    CONF_MTU, 0);
-		
-		int mtu = setting ? strtol(setting->value, NULL, 10) : 0;
+			    (uint8_t *) CONF_MTU, 0);
+		
+		int mtu = setting ? strtol((char *) setting->value, NULL, 10) : 0;
 		
 		rc = nil_device_req(netif->nil->phone, netif->id, mtu,
@@ -558,5 +560,5 @@
 		/* Mandatory name */
 		measured_string_t *setting =
-		    measured_strings_find(&netif->configuration, CONF_NAME, 0);
+		    measured_strings_find(&netif->configuration, (uint8_t *) CONF_NAME, 0);
 		if (!setting) {
 			fprintf(stderr, "%s: Network interface name is missing\n", NAME);
@@ -602,5 +604,5 @@
 		printf("%s: Network interface started (name: %s, id: %d, driver: %s, "
 		    "nil: %s, il: %s)\n", NAME, netif->name, netif->id,
-		    netif->driver->name,  netif->nil ? netif->nil->name : "[none]",
+		    netif->driver->name, netif->nil ? (char *) netif->nil->name : "[none]",
 		    netif->il->name);
 	}
@@ -628,5 +630,5 @@
 {
 	measured_string_t *strings;
-	char *data;
+	uint8_t *data;
 	int rc;
 	
Index: uspace/srv/net/net/net.h
===================================================================
--- uspace/srv/net/net/net.h	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/net/net.h	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -105,8 +105,8 @@
 	module_t *driver;
 	
-	device_id_t id;	/**< System-unique network interface identifier. */
-	module_t *il;	/**< Serving internet layer module index. */
-	char *name;	/**< System-unique network interface name. */
-	module_t *nil;	/**< Serving link layer module index. */
+	device_id_t id;  /**< System-unique network interface identifier. */
+	module_t *il;    /**< Serving internet layer module index. */
+	uint8_t *name;   /**< System-unique network interface name. */
+	module_t *nil;   /**< Serving link layer module index. */
 } netif_t;
 
@@ -133,5 +133,6 @@
 } net_globals_t;
 
-extern int add_configuration(measured_strings_t *, const char *, const char *);
+extern int add_configuration(measured_strings_t *, const uint8_t *,
+    const uint8_t *);
 extern int net_module_message(ipc_callid_t, ipc_call_t *, ipc_call_t *, int *);
 extern int net_initialize_build(async_client_conn_t);
Index: uspace/srv/net/net/net_standalone.c
===================================================================
--- uspace/srv/net/net/net_standalone.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/net/net_standalone.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -63,20 +63,20 @@
 	int rc;
 	
-	task_id_t task_id = spawn("/srv/ip");
+	task_id_t task_id = net_spawn((uint8_t *) "/srv/ip");
 	if (!task_id)
 		return EINVAL;
 	
-	rc = add_module(NULL, &net_globals.modules, IP_NAME,
-	    IP_FILENAME, SERVICE_IP, task_id, ip_connect_module);
+	rc = add_module(NULL, &net_globals.modules, (uint8_t *) IP_NAME,
+	    (uint8_t *) IP_FILENAME, SERVICE_IP, task_id, ip_connect_module);
 	if (rc != EOK)
 		return rc;
 	
-	if (!spawn("/srv/icmp"))
+	if (!net_spawn((uint8_t *) "/srv/icmp"))
 		return EINVAL;
 	
-	if (!spawn("/srv/udp"))
+	if (!net_spawn((uint8_t *) "/srv/udp"))
 		return EINVAL;
 	
-	if (!spawn("/srv/tcp"))
+	if (!net_spawn((uint8_t *) "/srv/tcp"))
 		return EINVAL;
 	
Index: uspace/srv/net/netif/lo/lo.c
===================================================================
--- uspace/srv/net/netif/lo/lo.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/netif/lo/lo.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -53,8 +53,8 @@
 
 /** Default hardware address. */
-#define DEFAULT_ADDR		"\0\0\0\0\0\0"
+#define DEFAULT_ADDR  0
 
 /** Default address length. */
-#define DEFAULT_ADDR_LEN	(sizeof(DEFAULT_ADDR) / sizeof(char))
+#define DEFAULT_ADDR_LEN  6
 
 /** Loopback module name. */
@@ -62,5 +62,5 @@
 
 /** Network interface global data. */
-netif_globals_t	netif_globals;
+netif_globals_t netif_globals;
 
 int netif_specific_message(ipc_callid_t callid, ipc_call_t *call,
@@ -74,8 +74,11 @@
 	if (!address)
 		return EBADMEM;
-
-	address->value = str_dup(DEFAULT_ADDR);
+	
+	uint8_t *addr = (uint8_t *) malloc(DEFAULT_ADDR_LEN);
+	memset(addr, DEFAULT_ADDR, DEFAULT_ADDR_LEN);
+	
+	address->value = addr;
 	address->length = DEFAULT_ADDR_LEN;
-
+	
 	return EOK;
 }
Index: uspace/srv/net/nil/eth/eth.c
===================================================================
--- uspace/srv/net/nil/eth/eth.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/nil/eth/eth.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -201,5 +201,5 @@
 
 	eth_globals.broadcast_addr =
-	    measured_string_create_bulk("\xFF\xFF\xFF\xFF\xFF\xFF", ETH_ADDR);
+	    measured_string_create_bulk((uint8_t *) "\xFF\xFF\xFF\xFF\xFF\xFF", ETH_ADDR);
 	if (!eth_globals.broadcast_addr) {
 		rc = ENOMEM;
@@ -284,9 +284,9 @@
 	measured_string_t names[2] = {
 		{
-			(char *) "ETH_MODE",
+			(uint8_t *) "ETH_MODE",
 			8
 		},
 		{
-			(char *) "ETH_DUMMY",
+			(uint8_t *) "ETH_DUMMY",
 			9
 		}
@@ -294,5 +294,5 @@
 	measured_string_t *configuration;
 	size_t count = sizeof(names) / sizeof(measured_string_t);
-	char *data;
+	uint8_t *data;
 	eth_proto_t *proto;
 	int rc;
@@ -358,8 +358,8 @@
 
 	if (configuration) {
-		if (!str_lcmp(configuration[0].value, "DIX",
+		if (!str_lcmp((char *) configuration[0].value, "DIX",
 		    configuration[0].length)) {
 			device->flags |= ETH_DIX;
-		} else if(!str_lcmp(configuration[0].value, "8023_2_LSAP",
+		} else if(!str_lcmp((char *) configuration[0].value, "8023_2_LSAP",
 		    configuration[0].length)) {
 			device->flags |= ETH_8023_2_LSAP;
Index: uspace/srv/net/tl/icmp/icmp.c
===================================================================
--- uspace/srv/net/tl/icmp/icmp.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/tl/icmp/icmp.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -405,9 +405,9 @@
 	measured_string_t names[] = {
 		{
-			(char *) "ICMP_ERROR_REPORTING",
+			(uint8_t *) "ICMP_ERROR_REPORTING",
 			20
 		},
 		{
-			(char *) "ICMP_ECHO_REPLYING",
+			(uint8_t *) "ICMP_ECHO_REPLYING",
 			18
 		}
@@ -415,5 +415,5 @@
 	measured_string_t *configuration;
 	size_t count = sizeof(names) / sizeof(measured_string_t);
-	char *data;
+	uint8_t *data;
 	int rc;
 
Index: uspace/srv/net/tl/tcp/tcp.c
===================================================================
--- uspace/srv/net/tl/tcp/tcp.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/tl/tcp/tcp.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -154,5 +154,5 @@
 
 	/** Port map key. */
-	char *key;
+	uint8_t *key;
 
 	/** Port map key length. */
@@ -358,10 +358,10 @@
 	/* Find the destination socket */
 	socket = socket_port_find(&tcp_globals.sockets,
-	    ntohs(header->destination_port), (const char *) src, addrlen);
+	    ntohs(header->destination_port), (uint8_t *) src, addrlen);
 	if (!socket) {
 		/* Find the listening destination socket */
 		socket = socket_port_find(&tcp_globals.sockets,
-		    ntohs(header->destination_port), SOCKET_MAP_KEY_LISTENING,
-		    0);
+		    ntohs(header->destination_port),
+		    (uint8_t *) SOCKET_MAP_KEY_LISTENING, 0);
 	}
 
@@ -998,5 +998,5 @@
 	/* Find the destination socket */
 	listening_socket = socket_port_find(&tcp_globals.sockets,
-	    listening_port, SOCKET_MAP_KEY_LISTENING, 0);
+	    listening_port, (uint8_t *) SOCKET_MAP_KEY_LISTENING, 0);
 	if (!listening_socket ||
 	    (listening_socket->socket_id != listening_socket_id)) {
@@ -1022,7 +1022,7 @@
 
 	rc = socket_port_add(&tcp_globals.sockets, listening_port, socket,
-	    (const char *) socket_data->addr, socket_data->addrlen);
+	    (uint8_t *) socket_data->addr, socket_data->addrlen);
 	assert(socket == socket_port_find(&tcp_globals.sockets, listening_port,
-	    (const char *) socket_data->addr, socket_data->addrlen));
+	    (uint8_t *) socket_data->addr, socket_data->addrlen));
 
 //	rc = socket_bind_free_port(&tcp_globals.sockets, socket,
@@ -2109,5 +2109,5 @@
 
 	/* Copy the key */
-	operation_timeout->key = ((char *) operation_timeout) +
+	operation_timeout->key = ((uint8_t *) operation_timeout) +
 	    sizeof(*operation_timeout);
 	operation_timeout->key_length = socket->key_length;
Index: uspace/srv/net/tl/udp/udp.c
===================================================================
--- uspace/srv/net/tl/udp/udp.c	(revision acc7ce4f9be635e9051884b563142089f38803c4)
+++ uspace/srv/net/tl/udp/udp.c	(revision 61bfc370dac47cccde963c4beaae3f6a0a364c54)
@@ -104,9 +104,9 @@
 	measured_string_t names[] = {
 		{
-			(char *) "UDP_CHECKSUM_COMPUTING",
+			(uint8_t *) "UDP_CHECKSUM_COMPUTING",
 			22
 		},
 		{
-			(char *) "UDP_AUTOBINDING",
+			(uint8_t *) "UDP_AUTOBINDING",
 			15
 		}
@@ -114,5 +114,5 @@
 	measured_string_t *configuration;
 	size_t count = sizeof(names) / sizeof(measured_string_t);
-	char *data;
+	uint8_t *data;
 	int rc;
 
@@ -283,5 +283,5 @@
 	/* Find the destination socket */
 	socket = socket_port_find(&udp_globals.sockets,
-	ntohs(header->destination_port), SOCKET_MAP_KEY_LISTENING, 0);
+	    ntohs(header->destination_port), (uint8_t *) SOCKET_MAP_KEY_LISTENING, 0);
 	if (!socket) {
 		if (tl_prepare_icmp_packet(udp_globals.net_phone,
