Thanks Martin!
On 4/17/05, J.S. Martin <josmar52789(a)gmail.com> wrote:
> I think you guys are doing a great job with ReactOS. I tried it out
> about a year ago and I thought it was OK, not useful to my needs, but
> a good effort. Then I tried it out yesterday and I was absolutely
> amazed! If you guys keep trying and keep making progress, you will
> certainly make this a great OS and I will definitely be willing to use
> it all the time. Keep up the great work!
> --
> J.S. Martin
>
WARNING: This e-mail has been altered by MIMEDefang. Following this
paragraph are indications of the actual changes made. For more
information about your site's MIMEDefang policy, contact
MIMEDefang Administrator <postmaster(a)deos.tudelft.nl>. For more information about MIMEDefang, see:
http://www.roaringpenguin.com/mimedefang/enduser.php3
An attachment named listdlls.exe was removed from this document as it
constituted a security hazard. If you require this document, please contact
the sender and arrange an alternate means of receiving it.
Hi,
Here is list dlls utility,
James
Hello everybody,
I've uploaded a "patch" to bugzilla that adds support for Swiss German
keyboards (kbdsg.dll) to ReactOS.
http://www.reactos.com/bugzilla/show_bug.cgi?id=509
(The zip-file I uploaded contains the content of .../lib/kbdsg)
I've tested it on qemu and on real hardware and as far as I can tell it
works great. It would be great if it were included into the official
ReactOS sources. If you need any further information (or files) please let
me know.
kind regards
Roman Hoegg
roman.hoegg(a)unisg.ch
romanh(a)unisg.ch
P.S. I'm sorry if you have received this email twice. I tried to send this
information to the mailinglist yesterday but it didn't seem to get
through.
------------------------------------------
Roman Högg
Research Assistant
=mcm institute
for Media and Communications Management
University of St. Gallen, Switzerland
Blumenbergplatz 9, 9000 St. Gallen
Phone +41 (0)71 224 34 39
Mobile +41 (0)79 418 59 13
e-mail roman.hoegg(a)unisg.ch
http://www.mcm.unisg.ch
Hi,
I am experiencing problems building current source as follows
gdi32: [LD] gdi32.nostrip.dll
objects/brush.o(.text+0x52): In function `CreateDIBPatternBrush':
I:/reactos/lib/gdi32/objects/brush.c:41: undefined reference to
`NtGdiCreateDIBBrush@16'
objects/brush.o(.text+0xc7): In function `CreateDIBPatternBrushPt':
I:/reactos/lib/gdi32/objects/brush.c:71: undefined reference to
`NtGdiCreateDIBBrush@16'
collect2: ld returned 1 exit status
make[1]: *** [gdi32.nostrip.dll] Error 1
make: *** [gdi32] Error 2
I have made sure I am fully current with the source and have tried a full
"clean" but to no avail.
Can anyone throw some light onto this problem.
Mike Lerwill
Hi,
I guess that the implementation of strtoull is slightly wrong.
The current function prototype is:
unsigned long
strtoull(const char *nptr, char **endptr, int base)
But (IMHO) it should be:
unsigned long long
strtoull(const char *nptr, char **endptr, int base)
A patch is attached. This patch tries to determine the macro that
defines the maximum value for an unsigned long long and the
corresponding type. It tests for the existance of several macros and
optionally falls back to an unsigned long (you might want to remove this
"feature" - don't know if it's useful). The header file
<internal/file.h> is added to make it compilable without warning. I
changed both strtoull.c files but it seems that neither of them is
compiled/used, therefore I added strtoull.o to the lib/crt/makefile.
The existance of the sources below lib/crtdll/ is very confusing because
these sources arent't compiled at all. What's the cause to keep them in
the repository?
BTW: Where's the definition of strtoll? Is it required? Or was my work
useless at all?
Regards,
Mark
Index: lib/crt/stdlib/strtoull.c
===================================================================
--- lib/crt/stdlib/strtoull.c (revision 14631)
+++ lib/crt/stdlib/strtoull.c (working copy)
@@ -4,21 +4,49 @@
#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
-//#include <msvcrt/unconst.h>
+/* #include <msvcrt/unconst.h> */
+/* required to get prototype for __set_errno() */
+#include <internal/file.h>
+
+#if defined(LONG_LONG_MAX)
+/* GCC-style constant */
+#define ROS_LLONG_MAX LONG_LONG_MAX
+#define ROS_ULLONG_MAX ULONG_LONG_MAX
+typedef long long ros_ll;
+typedef unsigned long long ros_ull;
+#elif defined(_I64_MAX)
+/* MSVC-style constant */
+#define ROS_LLONG_MAX _I64_MAX
+#define ROS_ULLONG_MAX _UI64_MAX
+typedef __int64 ros_ll;
+typedef unsigned __int64 ros_ull;
+#elif defined(LLONG_MAX)
+/* C9x-style constant */
+#define ROS_LLONG_MAX LLONG_MAX
+#define ROS_ULLONG_MAX ULLONG_MAX
+#include <stdint.h>
+typedef int64_t ros_ll;
+typedef uint64_t ros_ull;
+#else
+#define ROS_LLONG_MAX LONG_MAX
+#define ROS_ULLONG_MAX ULONG_MAX
+typedef long ros_ll;
+typedef unsigned long ros_ull;
+#endif
+
/*
* Convert a string to an unsigned long integer.
*
* Ignores `locale' stuff. Assumes that the upper and lower case
* alphabets and digits are each contiguous.
*/
-unsigned long
+ros_ull
strtoull(const char *nptr, char **endptr, int base)
{
const char *s = nptr;
- unsigned long acc;
+ ros_ull acc, cutoff;
int c;
- unsigned long cutoff;
int neg = 0, any, cutlim;
/*
@@ -43,8 +71,8 @@
}
if (base == 0)
base = c == '0' ? 8 : 10;
- cutoff = (unsigned long)ULONG_MAX / base;
- cutlim = (unsigned long)ULONG_MAX % base;
+ cutoff = (ros_ull)ROS_ULLONG_MAX / base;
+ cutlim = (int) ((ros_ull)ROS_ULLONG_MAX % base);
for (acc = 0, any = 0;; c = *s++)
{
if (isdigit(c))
@@ -65,7 +93,7 @@
}
if (any < 0)
{
- acc = ULONG_MAX;
+ acc = ROS_ULLONG_MAX;
__set_errno ( ERANGE );
}
else if (neg)
Index: lib/crt/makefile
===================================================================
--- lib/crt/makefile (revision 14631)
+++ lib/crt/makefile (working copy)
@@ -369,6 +369,7 @@
stdlib/strtod.o \
stdlib/strtol.o \
stdlib/strtoul.o \
+ stdlib/strtoull.o \
stdlib/swab.o \
stdlib/wcstod.o \
stdlib/wcstol.o \
Index: lib/crtdll/stdlib/strtoull.c
===================================================================
--- lib/crtdll/stdlib/strtoull.c (revision 14631)
+++ lib/crtdll/stdlib/strtoull.c (working copy)
@@ -4,21 +4,46 @@
#include <msvcrt/ctype.h>
#include <msvcrt/errno.h>
#include <msvcrt/stdlib.h>
-//#include <msvcrt/unconst.h>
+/* #include <msvcrt/unconst.h> */
+#if defined(LONG_LONG_MAX)
+/* GCC-style constant */
+#define ROS_LLONG_MAX LONG_LONG_MAX
+#define ROS_ULLONG_MAX ULONG_LONG_MAX
+typedef long long ros_ll;
+typedef unsigned long long ros_ull;
+#elif defined(_I64_MAX)
+/* MSVC-style constant */
+#define ROS_LLONG_MAX _I64_MAX
+#define ROS_ULLONG_MAX _UI64_MAX
+typedef __int64 ros_ll;
+typedef unsigned __int64 ros_ull;
+#elif defined(LLONG_MAX)
+/* C9x-style constant */
+#define ROS_LLONG_MAX LLONG_MAX
+#define ROS_ULLONG_MAX ULLONG_MAX
+#include <stdint.h>
+typedef int64_t ros_ll;
+typedef uint64_t ros_ull;
+#else
+#define ROS_LLONG_MAX LONG_MAX
+#define ROS_ULLONG_MAX ULONG_MAX
+typedef long ros_ll;
+typedef unsigned long ros_ull;
+#endif
+
/*
* Convert a string to an unsigned long integer.
*
* Ignores `locale' stuff. Assumes that the upper and lower case
* alphabets and digits are each contiguous.
*/
-unsigned long
+ros_ull
strtoull(const char *nptr, char **endptr, int base)
{
const char *s = nptr;
- unsigned long acc;
+ ros_ull acc, cutoff;
int c;
- unsigned long cutoff;
int neg = 0, any, cutlim;
/*
@@ -43,8 +68,8 @@
}
if (base == 0)
base = c == '0' ? 8 : 10;
- cutoff = (unsigned long)ULONG_MAX / base;
- cutlim = (unsigned long)ULONG_MAX % base;
+ cutoff = (ros_ull)ROS_ULLONG_MAX / base;
+ cutlim = (int) ((ros_ull)ROS_ULLONG_MAX % base);
for (acc = 0, any = 0;; c = *s++)
{
if (isdigit(c))
@@ -65,7 +90,7 @@
}
if (any < 0)
{
- acc = ULONG_MAX;
+ acc = ROS_ULLONG_MAX;
errno = ERANGE;
}
else if (neg)
And you said you were too busy with school...... :p
Ged
-----Original Message-----
From: ion(a)svn.reactos.com [mailto:ion@svn.reactos.com]
Sent: 15 April 2005 07:25
To: ros-svn(a)reactos.com
Subject: [ros-svn] [ion] 14625: Implemented Guarded Mutex, a drop-in
replacement for Fast Mutex (the correct one, not the one ROS incorrectly
implements) on NT 5.2. Not fully tested yet, so nothing switched to it and
probably not usable. Also made KeGetCurrentThre
Implemented Guarded Mutex, a drop-in replacement for Fast Mutex (the correct
one, not the one ROS incorrectly implements) on NT 5.2. Not fully tested
yet, so nothing switched to it and probably not usable. Also made
KeGetCurrentThread/Irql become inlined, since this should create quite a
speed boost. Made KeLeaveCriticalRegion deliver APCs if possible, and made
Crit regions macros usable from outside ntoskrnl thanks to a new NT 5.2 API
(KiCheckForKernelApcDelivery). Guarded Mutex code based on Filip Navara.
Updated files:
trunk/reactos/drivers/storage/diskdump/diskdump.c
trunk/reactos/hal/hal/hal.c
trunk/reactos/hal/halx86/generic/fmutex.c
trunk/reactos/hal/halx86/generic/irql.c
trunk/reactos/include/ddk/kedef.h
trunk/reactos/include/ddk/kefuncs.h
trunk/reactos/include/ddk/ketypes.h
trunk/reactos/ntoskrnl/Makefile
trunk/reactos/ntoskrnl/ex/i386/interlck.c
trunk/reactos/ntoskrnl/include/internal/i386/ke.h
trunk/reactos/ntoskrnl/include/internal/i386/ps.h
trunk/reactos/ntoskrnl/include/internal/ke.h
trunk/reactos/ntoskrnl/include/internal/ps.h
trunk/reactos/ntoskrnl/ke/apc.c
trunk/reactos/ntoskrnl/ke/gmutex.c
trunk/reactos/ntoskrnl/ntoskrnl.def
trunk/reactos/ntoskrnl/ps/thread.c
trunk/reactos/w32api/include/ddk/winddk.h
_______________________________________________
Ros-svn mailing list
Ros-svn(a)reactos.com
http://reactos.com:8080/mailman/listinfo/ros-svn
************************************************************************
The information contained in this message or any of its
attachments is confidential and is intended for the exclusive
use of the addressee. The information may also be legally
privileged. The views expressed may not be company policy,
but the personal views of the originator. If you are not the
addressee, any disclosure, reproduction, distribution or other
dissemination or use of this communication is strictly prohibited.
If you have received this message in error, please contact
postmaster(a)exideuk.co.uk
<mailto:postmaster@exideuk.co.uk> and then delete this message.
Exide Technologies is an industrial and transportation battery
producer and recycler with operations in 89 countries.
Further information can be found at www.exide.com