diff options
author | Javier Martinez Canillas <martinez.javier@gmail.com> | 2010-11-27 07:49:17 +0100 |
---|---|---|
committer | Javier Martinez Canillas <martinez.javier@gmail.com> | 2010-11-27 07:49:17 +0100 |
commit | ab121f379a3cff458c90e6f480ba4bb68c8733dd (patch) | |
tree | a9851af109ee83646d108bc247d03b131461b764 /misc-progs/datasize.c | |
download | ldd3-ab121f379a3cff458c90e6f480ba4bb68c8733dd.tar.gz |
Linux Device Drivers 3 examples
Diffstat (limited to 'misc-progs/datasize.c')
-rw-r--r-- | misc-progs/datasize.c | 35 |
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; +} |