Index: uspace/lib/drv/generic/dev_iface.c
===================================================================
--- uspace/lib/drv/generic/dev_iface.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/dev_iface.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -69,5 +69,5 @@
 		[CLOCK_DEV_IFACE] = &remote_clock_dev_iface,
 		[BATTERY_DEV_IFACE] = &remote_battery_dev_iface,
-		[AHCI_DEV_IFACE] = &remote_ahci_iface
+		[AHCI_DEV_IFACE] = &remote_ahci_iface,
 	}
 };
Index: uspace/lib/drv/generic/remote_ahci.c
===================================================================
--- uspace/lib/drv/generic/remote_ahci.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_ahci.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -36,4 +36,5 @@
 #include <errno.h>
 #include <stdio.h>
+#include <macros.h>
 #include "ahci_iface.h"
 #include "ddf/driver.h"
@@ -65,5 +66,5 @@
 
 /** Remote AHCI interface operations. */
-static remote_iface_func_ptr_t remote_ahci_iface_ops [] = {
+static const remote_iface_func_ptr_t remote_ahci_iface_ops [] = {
 	[IPC_M_AHCI_GET_SATA_DEVICE_NAME] = remote_ahci_get_sata_device_name,
 	[IPC_M_AHCI_GET_NUM_BLOCKS] = remote_ahci_get_num_blocks,
@@ -76,6 +77,5 @@
  */
 remote_iface_t remote_ahci_iface = {
-	.method_count = sizeof(remote_ahci_iface_ops) /
-	    sizeof(remote_ahci_iface_ops[0]),
+	.method_count = ARRAY_SIZE(remote_ahci_iface_ops),
 	.methods = remote_ahci_iface_ops
 };
Index: uspace/lib/drv/generic/remote_audio_mixer.c
===================================================================
--- uspace/lib/drv/generic/remote_audio_mixer.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_audio_mixer.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -37,4 +37,5 @@
 #include <assert.h>
 #include <str.h>
+#include <macros.h>
 
 #include "audio_mixer_iface.h"
@@ -204,5 +205,5 @@
 
 /** Remote audio mixer interface operations. */
-static remote_iface_func_ptr_t remote_audio_mixer_iface_ops[] = {
+static const remote_iface_func_ptr_t remote_audio_mixer_iface_ops[] = {
 	[IPC_M_AUDIO_MIXER_GET_INFO] = remote_audio_mixer_get_info,
 	[IPC_M_AUDIO_MIXER_GET_ITEM_INFO] = remote_audio_mixer_get_item_info,
@@ -213,6 +214,5 @@
 /** Remote audio mixer interface structure. */
 remote_iface_t remote_audio_mixer_iface = {
-	.method_count = sizeof(remote_audio_mixer_iface_ops) /
-	    sizeof(remote_audio_mixer_iface_ops[0]),
+	.method_count = ARRAY_SIZE(remote_audio_mixer_iface_ops),
 	.methods = remote_audio_mixer_iface_ops
 };
Index: uspace/lib/drv/generic/remote_audio_pcm.c
===================================================================
--- uspace/lib/drv/generic/remote_audio_pcm.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_audio_pcm.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -38,5 +38,4 @@
 #include <macros.h>
 #include <str.h>
-#include <as.h>
 #include <sys/mman.h>
 
@@ -611,5 +610,5 @@
 
 /** Remote audio pcm buffer interface operations. */
-static remote_iface_func_ptr_t remote_audio_pcm_iface_ops[] = {
+static const remote_iface_func_ptr_t remote_audio_pcm_iface_ops[] = {
 	[IPC_M_AUDIO_PCM_GET_INFO_STR] = remote_audio_pcm_get_info_str,
 	[IPC_M_AUDIO_PCM_QUERY_CAPS] = remote_audio_pcm_query_caps,
@@ -628,6 +627,5 @@
 /** Remote audio mixer interface structure. */
 remote_iface_t remote_audio_pcm_iface = {
-	.method_count = sizeof(remote_audio_pcm_iface_ops) /
-	    sizeof(remote_audio_pcm_iface_ops[0]),
+	.method_count = ARRAY_SIZE(remote_audio_pcm_iface_ops),
 	.methods = remote_audio_pcm_iface_ops
 };
Index: uspace/lib/drv/generic/remote_battery_dev.c
===================================================================
--- uspace/lib/drv/generic/remote_battery_dev.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_battery_dev.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -38,4 +38,5 @@
 #include <device/battery_dev.h>
 #include <ddf/driver.h>
+#include <macros.h>
 
 static void remote_battery_status_get(ddf_fun_t *, void *, ipc_callid_t,
@@ -45,5 +46,5 @@
 
 /** Remote battery interface operations */
-static remote_iface_func_ptr_t remote_battery_dev_iface_ops[] = {
+static const remote_iface_func_ptr_t remote_battery_dev_iface_ops[] = {
 	&remote_battery_status_get,
 	&remote_battery_charge_level_get,
@@ -57,6 +58,5 @@
  */
 remote_iface_t remote_battery_dev_iface = {
-	.method_count = sizeof(remote_battery_dev_iface_ops) /
-	    sizeof(remote_iface_func_ptr_t),
+	.method_count = ARRAY_SIZE(remote_battery_dev_iface_ops),
 	.methods = remote_battery_dev_iface_ops,
 };
Index: uspace/lib/drv/generic/remote_char_dev.c
===================================================================
--- uspace/lib/drv/generic/remote_char_dev.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_char_dev.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -35,4 +35,5 @@
 #include <async.h>
 #include <errno.h>
+#include <macros.h>
 
 #include "ops/char_dev.h"
@@ -45,5 +46,5 @@
 
 /** Remote character interface operations. */
-static remote_iface_func_ptr_t remote_char_dev_iface_ops[] = {
+static const remote_iface_func_ptr_t remote_char_dev_iface_ops[] = {
 	&remote_char_read,
 	&remote_char_write
@@ -56,6 +57,5 @@
  */
 remote_iface_t remote_char_dev_iface = {
-	.method_count = sizeof(remote_char_dev_iface_ops) /
-	    sizeof(remote_iface_func_ptr_t),
+	.method_count = ARRAY_SIZE(remote_char_dev_iface_ops),
 	.methods = remote_char_dev_iface_ops
 };
Index: uspace/lib/drv/generic/remote_clock_dev.c
===================================================================
--- uspace/lib/drv/generic/remote_clock_dev.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_clock_dev.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -36,4 +36,5 @@
 #include <errno.h>
 #include <time.h>
+#include <macros.h>
 
 #include <ops/clock_dev.h>
@@ -46,5 +47,5 @@
 
 /** Remote clock interface operations */
-static remote_iface_func_ptr_t remote_clock_dev_iface_ops[] = {
+static const remote_iface_func_ptr_t remote_clock_dev_iface_ops[] = {
 	&remote_clock_time_get,
 	&remote_clock_time_set,
@@ -57,6 +58,5 @@
  */
 remote_iface_t remote_clock_dev_iface = {
-	.method_count = sizeof(remote_clock_dev_iface_ops) /
-	    sizeof(remote_iface_func_ptr_t),
+	.method_count = ARRAY_SIZE(remote_clock_dev_iface_ops),
 	.methods = remote_clock_dev_iface_ops,
 };
Index: uspace/lib/drv/generic/remote_graph_dev.c
===================================================================
--- uspace/lib/drv/generic/remote_graph_dev.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_graph_dev.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -35,4 +35,5 @@
 #include <errno.h>
 #include <async.h>
+#include <macros.h>
 
 #include "ops/graph_dev.h"
@@ -41,11 +42,10 @@
 static void remote_graph_connect(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
 
-static remote_iface_func_ptr_t remote_graph_dev_iface_ops[] = {
+static const remote_iface_func_ptr_t remote_graph_dev_iface_ops[] = {
 	&remote_graph_connect
 };
 
 remote_iface_t remote_graph_dev_iface = {
-	.method_count = sizeof(remote_graph_dev_iface_ops) /
-	    sizeof(remote_iface_func_ptr_t),
+	.method_count = ARRAY_SIZE(remote_graph_dev_iface_ops),
 	.methods = remote_graph_dev_iface_ops
 };
Index: uspace/lib/drv/generic/remote_hw_res.c
===================================================================
--- uspace/lib/drv/generic/remote_hw_res.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_hw_res.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -36,4 +36,5 @@
 #include <async.h>
 #include <errno.h>
+#include <macros.h>
 
 #include "ops/hw_res.h"
@@ -49,5 +50,5 @@
     ipc_call_t *);
 
-static remote_iface_func_ptr_t remote_hw_res_iface_ops [] = {
+static const remote_iface_func_ptr_t remote_hw_res_iface_ops [] = {
 	[HW_RES_GET_RESOURCE_LIST] = &remote_hw_res_get_resource_list,
 	[HW_RES_ENABLE_INTERRUPT] = &remote_hw_res_enable_interrupt,
@@ -57,6 +58,5 @@
 
 remote_iface_t remote_hw_res_iface = {
-	.method_count = sizeof(remote_hw_res_iface_ops) /
-	    sizeof(remote_iface_func_ptr_t),
+	.method_count = ARRAY_SIZE(remote_hw_res_iface_ops),
 	.methods = remote_hw_res_iface_ops
 };
Index: uspace/lib/drv/generic/remote_nic.c
===================================================================
--- uspace/lib/drv/generic/remote_nic.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_nic.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -40,4 +40,6 @@
 #include <ipc/services.h>
 #include <sys/time.h>
+#include <macros.h>
+
 #include "ops/nic.h"
 
@@ -1198,5 +1200,5 @@
  *
  */
-static remote_iface_func_ptr_t remote_nic_iface_ops[] = {
+static const remote_iface_func_ptr_t remote_nic_iface_ops[] = {
 	&remote_nic_send_frame,
 	&remote_nic_callback_create,
@@ -1249,6 +1251,5 @@
  */
 remote_iface_t remote_nic_iface = {
-	.method_count = sizeof(remote_nic_iface_ops) /
-	    sizeof(remote_iface_func_ptr_t),
+	.method_count = ARRAY_SIZE(remote_nic_iface_ops),
 	.methods = remote_nic_iface_ops
 };
Index: uspace/lib/drv/generic/remote_pci.c
===================================================================
--- uspace/lib/drv/generic/remote_pci.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_pci.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -36,4 +36,5 @@
 #include <async.h>
 #include <errno.h>
+#include <macros.h>
 
 #include "pci_dev_iface.h"
@@ -49,5 +50,5 @@
 
 /** Remote USB interface operations. */
-static remote_iface_func_ptr_t remote_pci_iface_ops [] = {
+static const remote_iface_func_ptr_t remote_pci_iface_ops [] = {
 	remote_config_space_read_8,
 	remote_config_space_read_16,
@@ -62,6 +63,5 @@
  */
 remote_iface_t remote_pci_iface = {
-	.method_count = sizeof(remote_pci_iface_ops) /
-	    sizeof(remote_pci_iface_ops[0]),
+	.method_count = ARRAY_SIZE(remote_pci_iface_ops),
 	.methods = remote_pci_iface_ops
 };
Index: uspace/lib/drv/generic/remote_pio_window.c
===================================================================
--- uspace/lib/drv/generic/remote_pio_window.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_pio_window.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -35,4 +35,5 @@
 #include <async.h>
 #include <errno.h>
+#include <macros.h>
 
 #include "ops/pio_window.h"
@@ -42,11 +43,10 @@
     ipc_call_t *);
 
-static remote_iface_func_ptr_t remote_pio_window_iface_ops [] = {
+static const remote_iface_func_ptr_t remote_pio_window_iface_ops [] = {
 	[PIO_WINDOW_GET] = &remote_pio_window_get
 };
 
 remote_iface_t remote_pio_window_iface = {
-	.method_count = sizeof(remote_pio_window_iface_ops) /
-	    sizeof(remote_iface_func_ptr_t),
+	.method_count = ARRAY_SIZE(remote_pio_window_iface_ops),
 	.methods = remote_pio_window_iface_ops
 };
Index: uspace/lib/drv/generic/remote_usb.c
===================================================================
--- uspace/lib/drv/generic/remote_usb.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_usb.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -36,4 +36,5 @@
 #include <async.h>
 #include <errno.h>
+#include <macros.h>
 
 #include "usb_iface.h"
@@ -107,5 +108,5 @@
 
 /** Remote USB interface operations. */
-static remote_iface_func_ptr_t remote_usb_iface_ops [] = {
+static const remote_iface_func_ptr_t remote_usb_iface_ops [] = {
 	[IPC_M_USB_GET_MY_ADDRESS] = remote_usb_get_my_address,
 	[IPC_M_USB_GET_MY_INTERFACE] = remote_usb_get_my_interface,
@@ -116,6 +117,5 @@
  */
 remote_iface_t remote_usb_iface = {
-	.method_count = sizeof(remote_usb_iface_ops) /
-	    sizeof(remote_usb_iface_ops[0]),
+	.method_count = ARRAY_SIZE(remote_usb_iface_ops),
 	.methods = remote_usb_iface_ops
 };
Index: uspace/lib/drv/generic/remote_usbhc.c
===================================================================
--- uspace/lib/drv/generic/remote_usbhc.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_usbhc.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -37,4 +37,5 @@
 #include <errno.h>
 #include <assert.h>
+#include <macros.h>
 
 #include "usbhc_iface.h"
@@ -334,5 +335,5 @@
 
 /** Remote USB host controller interface operations. */
-static remote_iface_func_ptr_t remote_usbhc_iface_ops[] = {
+static const remote_iface_func_ptr_t remote_usbhc_iface_ops[] = {
 	[IPC_M_USBHC_REQUEST_ADDRESS] = remote_usbhc_request_address,
 	[IPC_M_USBHC_RELEASE_ADDRESS] = remote_usbhc_release_address,
@@ -350,6 +351,5 @@
  */
 remote_iface_t remote_usbhc_iface = {
-	.method_count = sizeof(remote_usbhc_iface_ops) /
-	    sizeof(remote_usbhc_iface_ops[0]),
+	.method_count = ARRAY_SIZE(remote_usbhc_iface_ops),
 	.methods = remote_usbhc_iface_ops
 };
Index: uspace/lib/drv/generic/remote_usbhid.c
===================================================================
--- uspace/lib/drv/generic/remote_usbhid.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/generic/remote_usbhid.c	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -37,4 +37,5 @@
 #include <assert.h>
 #include <stdio.h>
+#include <macros.h>
 
 #include "usbhid_iface.h"
@@ -48,5 +49,5 @@
 
 /** Remote USB HID interface operations. */
-static remote_iface_func_ptr_t remote_usbhid_iface_ops [] = {
+static const remote_iface_func_ptr_t remote_usbhid_iface_ops [] = {
 	remote_usbhid_get_event_length,
 	remote_usbhid_get_event,
@@ -58,6 +59,5 @@
  */
 remote_iface_t remote_usbhid_iface = {
-	.method_count = sizeof(remote_usbhid_iface_ops) /
-	    sizeof(remote_usbhid_iface_ops[0]),
+	.method_count = ARRAY_SIZE(remote_usbhid_iface_ops),
 	.methods = remote_usbhid_iface_ops
 };
Index: uspace/lib/drv/include/dev_iface.h
===================================================================
--- uspace/lib/drv/include/dev_iface.h	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/lib/drv/include/dev_iface.h	(revision 9be30cdf4e3175cfd8137b54849120ce309a35d5)
@@ -55,6 +55,6 @@
 
 typedef struct {
-	size_t method_count;
-	remote_iface_func_ptr_t *methods;
+	const size_t method_count;
+	const remote_iface_func_ptr_t *methods;
 } remote_iface_t;
 
