Fix musl build

Partly downloaded from
http://lists.omnipotent.net/pipermail/lcdproc/2015-November/014291.html
http://lists.omnipotent.net/pipermail/lcdproc/2015-November/014281.html

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>

diff -uNr lcdproc-0.5.7.org/clients/lcdproc/machine.h lcdproc-0.5.7/clients/lcdproc/machine.h
--- lcdproc-0.5.7.org/clients/lcdproc/machine.h	2012-08-19 16:29:07.000000000 +0200
+++ lcdproc-0.5.7/clients/lcdproc/machine.h	2016-01-30 14:07:33.641802847 +0100
@@ -12,6 +12,7 @@
 #ifndef _lcdproc_machine_h_
 #define _lcdproc_machine_h_
 
+#include <time.h>
 #include "shared/LL.h"
 
 #ifndef LOADAVG_NSTATS
diff -uNr lcdproc-0.5.7.org/server/drivers/hd44780-pifacecad.c lcdproc-0.5.7/server/drivers/hd44780-pifacecad.c
--- lcdproc-0.5.7.org/server/drivers/hd44780-pifacecad.c	2014-03-23 11:22:09.000000000 +0100
+++ lcdproc-0.5.7/server/drivers/hd44780-pifacecad.c	2016-01-30 14:12:03.521279729 +0100
@@ -54,6 +54,7 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
+#include <linux/ioctl.h>
 #include <stdint.h>
 #include <linux/spi/spidev.h>
 
diff -uNr lcdproc-0.5.7.org/server/drivers/hd44780-rpi.c lcdproc-0.5.7/server/drivers/hd44780-rpi.c
--- lcdproc-0.5.7.org/server/drivers/hd44780-rpi.c	2014-03-23 11:22:09.000000000 +0100
+++ lcdproc-0.5.7/server/drivers/hd44780-rpi.c	2016-01-30 14:04:10.288112853 +0100
@@ -285,7 +285,7 @@
 
 	/* Unmap and free memory */
 	if (gpio_map != NULL)
-		munmap((caddr_t) gpio_map, GPIO_BLOCK_SIZE);
+		munmap((void *) gpio_map, GPIO_BLOCK_SIZE);
 	if (p->rpi_gpio != NULL)
 		free(p->rpi_gpio);
 	p->rpi_gpio = NULL;
diff -uNr lcdproc-0.5.7.org/server/drivers/hd44780-spi.c lcdproc-0.5.7/server/drivers/hd44780-spi.c
--- lcdproc-0.5.7.org/server/drivers/hd44780-spi.c	2014-03-23 11:22:09.000000000 +0100
+++ lcdproc-0.5.7/server/drivers/hd44780-spi.c	2016-01-30 14:11:11.604763500 +0100
@@ -29,6 +29,7 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
+#include <linux/ioctl.h>
 #include <stdint.h>
 #include <linux/spi/spidev.h>
 
diff -uNr lcdproc-0.5.7.org/server/drivers/mtc_s16209x.c lcdproc-0.5.7/server/drivers/mtc_s16209x.c
--- lcdproc-0.5.7.org/server/drivers/mtc_s16209x.c	2011-08-14 14:29:16.000000000 +0200
+++ lcdproc-0.5.7/server/drivers/mtc_s16209x.c	2016-01-30 14:13:10.691122839 +0100
@@ -49,6 +49,7 @@
 #include <fcntl.h>
 #include <string.h>
 #include <errno.h>
+#include <sys/file.h>
 
 #ifdef HAVE_CONFIG_H
 # include "config.h"
diff -uNr lcdproc-0.5.7.org/server/drivers/rawserial.c lcdproc-0.5.7/server/drivers/rawserial.c
--- lcdproc-0.5.7.org/server/drivers/rawserial.c	2014-03-23 11:22:10.000000000 +0100
+++ lcdproc-0.5.7/server/drivers/rawserial.c	2016-01-30 14:03:43.465779507 +0100
@@ -60,13 +60,13 @@
 	/** \name Event loop timing. refresh_time and refresh_delta form the
 	 * event loop timing mechanism for configurable update rates.
 	 *@{*/
-	uint refresh_time;		/**< time at the last screen update */
-	uint refresh_delta;		/**< time step to next screen update */
+	unsigned int refresh_time;		/**< time at the last screen update */
+	unsigned int refresh_delta;		/**< time step to next screen update */
 	/**@}*/
 } PrivateData;
 
 /* Local prototypes */
-static uint get_millisecond_time(void);
+static unsigned int get_millisecond_time(void);
 
 
 /* Vars for the server core */
@@ -303,7 +303,7 @@
 	PrivateData *p = drvthis->private_data;
 	char out[LCD_MAX_WIDTH * LCD_MAX_HEIGHT];
 
-	uint currentTime = get_millisecond_time();
+	unsigned int currentTime = get_millisecond_time();
 	int t_delta = currentTime - p->refresh_time;
 
 	/*
@@ -415,7 +415,7 @@
  *
  * \return  int with current millisecond time.
  */
-static uint
+static unsigned int
 get_millisecond_time(void)
 {
 	struct timeval ts;
