--- hdparm-5.8/hdparm.c.ark	2005-05-22 19:48:34.000000000 +0000
+++ hdparm-5.8/hdparm.c	2005-05-22 19:52:18.000000000 +0000
@@ -17,7 +17,9 @@
 #include <sys/times.h>
 #include <sys/types.h>
 #include <sys/mount.h>
+#ifndef __UCLIBC__
 #include <linux/types.h>
+#endif
 #include <linux/hdreg.h>
 #include <linux/major.h>
 #include <byteswap.h>
--- hdparm-5.8/hdparm.h.ark	2005-05-22 19:51:49.000000000 +0000
+++ hdparm-5.8/hdparm.h	2005-05-22 19:54:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* Some prototypes for extern functions. */
 
-#include <linux/types.h>	/* for __u16 */
+#include <stdint.h>
 
 #if !defined(__GNUC__) && !defined(__attribute__)
 #define __attribute__(x)	/* if not using GCC, turn off the __attribute__
@@ -11,7 +11,7 @@
    others, though, were declared in hdparm.c with global scope; since other
    functions in that file have static (file) scope, I assume the difference is
    intentional. */
-extern void identify (__u16 *id_supplied, const char *devname);
+extern void identify (uint16_t *id_supplied, const char *devname);
 
 extern void usage_error(int out)    __attribute__((noreturn));
 extern int main(int argc, char **argv) __attribute__((noreturn));