summaryrefslogtreecommitdiffstats
path: root/misc-progs/datasize.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc-progs/datasize.c')
-rw-r--r--misc-progs/datasize.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/misc-progs/datasize.c b/misc-progs/datasize.c
new file mode 100644
index 0000000..bf63423
--- /dev/null
+++ b/misc-progs/datasize.c
@@ -0,0 +1,35 @@
+/*
+ * datasize.c -- print the size of common data items
+ * This runs with any Linux kernel (not any Unix, because of <linux/types.h>)
+ *
+ * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet
+ * Copyright (C) 2001 O'Reilly & Associates
+ *
+ * The source code in this file can be freely used, adapted,
+ * and redistributed in source or binary form, so long as an
+ * acknowledgment appears in derived source files. The citation
+ * should list that the code comes from the book "Linux Device
+ * Drivers" by Alessandro Rubini and Jonathan Corbet, published
+ * by O'Reilly & Associates. No warranty is attached;
+ * we cannot take responsibility for errors or fitness for use.
+ */
+#include <stdio.h>
+#include <sys/utsname.h>
+#include <linux/types.h>
+
+int main(int argc, char **argv)
+{
+ struct utsname name;
+
+ uname(&name); /* never fails :) */
+ printf("arch Size: char short int long ptr long-long "
+ " u8 u16 u32 u64\n");
+ printf( "%-12s %3i %3i %3i %3i %3i %3i "
+ "%3i %3i %3i %3i\n",
+ name.machine,
+ (int)sizeof(char), (int)sizeof(short), (int)sizeof(int),
+ (int)sizeof(long),
+ (int)sizeof(void *), (int)sizeof(long long), (int)sizeof(__u8),
+ (int)sizeof(__u16), (int)sizeof(__u32), (int)sizeof(__u64));
+ return 0;
+}