summaryrefslogtreecommitdiff
path: root/src/lib/ffs.c
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2012-12-18 15:33:43 -0500
committerMorgan Deters <mdeters@cs.nyu.edu>2013-01-24 16:22:42 -0500
commit73760b3c213733fc98d67f9ceeb74d06b01a3777 (patch)
tree8840f595428560499bc6739513ac3a1fbb2746ca /src/lib/ffs.c
parent1435948e241d3134d44662b9476935fe635b4166 (diff)
Add win32 support (merge from mdeters/win32, with some cleanup).
Diffstat (limited to 'src/lib/ffs.c')
-rw-r--r--src/lib/ffs.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/lib/ffs.c b/src/lib/ffs.c
new file mode 100644
index 000000000..5c25211ce
--- /dev/null
+++ b/src/lib/ffs.c
@@ -0,0 +1,40 @@
+/********************* */
+/*! \file ffs.c
+ ** \verbatim
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of CVC4.
+ ** Copyright (c) 2009-2013 New York University and The University of Iowa
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief Replacement for ffs() for systems without it (like Win32)
+ **
+ ** Replacement for ffs() for systems without it (like Win32).
+ **/
+
+#include "cvc4_private.h"
+
+#include "lib/ffs.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+int ffs(int i) {
+ long mask = 0x1;
+ int pos = 1;
+ while(pos <= sizeof(int) * 8) {
+ if((mask & i) != 0) {
+ return pos;
+ }
+ ++pos;
+ mask <<= 1;
+ }
+ return 0;
+}
+
+#ifdef __cplusplus
+}/* extern "C" */
+#endif /* __cplusplus */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback