Updating to version 1.13. Libgcrypt depends on libgpg-error
[platform/upstream/libgpg-error.git] / src / gen-w32-lock-obj.c
1 /* gen-w32-lock-obj.c - Build tool to get the size of the lock object.
2    Copyright (C) 2014 g10 Code GmbH
3
4    This file is part of libgpg-error.
5
6    libgpg-error is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public License
8    as published by the Free Software Foundation; either version 2.1 of
9    the License, or (at your option) any later version.
10
11    libgpg-error is distributed in the hope that it will be useful, but
12    WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19
20 #if HAVE_CONFIG_H
21 #include <config.h>
22 #endif
23
24 #ifndef HAVE_W32_SYSTEM
25 # error This module may only be build for Windows.
26 #endif
27
28 #include <stdlib.h>
29 #include <stdio.h>
30 #include <windows.h>
31
32 #include "w32-lock-obj.h"
33
34
35 int
36 main (void)
37 {
38   _gpgrt_lock_t lk;
39   unsigned char *p;
40   int i;
41
42   printf ("sizeof CRITICAL_SECTION = %u\n", (int)sizeof (CRITICAL_SECTION));
43   printf ("sizeof    _gpgrt_lock_t = %u\n", (int)sizeof lk);
44
45   memset (&lk, 0, sizeof lk);
46   lk.vers = LOCK_ABI_VERSION;
47   lk.started = -1;
48   printf ("#define GPGRT_LOCK_INITIALIZER {");
49   p = (unsigned char *)&lk;
50   for (i=0; i < sizeof lk - 1; i++)
51     printf ("%u,", p[i]);
52   printf ("%u}\n", p[sizeof(lk)-1]);
53
54   return 0;
55 }