diff options
| author | Wayne Davison <wayned@samba.org> | 2006-12-16 19:24:05 +0000 |
|---|---|---|
| committer | Wayne Davison <wayned@samba.org> | 2006-12-16 19:24:05 +0000 |
| commit | d5833800a8d14bf8b57002e837ce69f3adbae694 (patch) | |
| tree | 0d9f753c7d9018390b07fe320b374737d6dbc770 /mkrounding.c | |
| parent | 8d3a785fa53f0334822dfccdb5d643c7bcebd225 (diff) | |
| download | android_external_rsync-d5833800a8d14bf8b57002e837ce69f3adbae694.tar.gz android_external_rsync-d5833800a8d14bf8b57002e837ce69f3adbae694.tar.bz2 android_external_rsync-d5833800a8d14bf8b57002e837ce69f3adbae694.zip | |
New file to figure out if a system has any rounding needs when
prepending extra values at the start of the file_struct.
Diffstat (limited to 'mkrounding.c')
| -rw-r--r-- | mkrounding.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/mkrounding.c b/mkrounding.c new file mode 100644 index 00000000..11b8302c --- /dev/null +++ b/mkrounding.c @@ -0,0 +1,45 @@ +#include "rsync.h" + +struct test1 { + union file_extras extras1[1]; + struct { +# include "mkrounding.h" + } file; +}; + +struct test2 { + union file_extras extras2[2]; + struct { +# include "mkrounding.h" + } file; +}; + +struct test4 { + union file_extras extras4[4]; + struct { +# include "mkrounding.h" + } file; +}; + +#define SIZE_TEST(n) (sizeof (struct test ## n) == EXTRA_LEN * n + sizeof (struct file_struct)) + + int main(UNUSED(int argc), UNUSED(char *argv[])) +{ + int cnt; + if (SIZE_TEST(1)) + cnt = 0; + else if (SIZE_TEST(2)) + cnt = 1; + else if (SIZE_TEST(4)) + cnt = 3; + else { + fprintf(stderr, "Unable to determine required file_extras rounding!\n"); + cnt = 3; + } + if (cnt) + fprintf(stderr, "Rounding file_extras values in multiples of %d.\n", cnt + 1); + else + fprintf(stderr, "No rounding needed for file_extras values.\n"); + printf("#define EXTRA_ROUNDING %d\n", cnt); + return 0; +} |
