--- /dev/null
+/* $Id: safeobj.c,v 1.4 2002/10/29 04:45:33 rex Exp $
+ */
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS POSIX+ Subsystem
+ * FILE: subsys/psx/lib/psxdll/misc/safeobj.c
+ * PURPOSE: safe checking of user-provided objects
+ * PROGRAMMER: KJK::Hyperion <noog@libero.it>
+ * UPDATE HISTORY:
+ * 09/01/2002: Created
+ */
+
+#include <psx/safeobj.h>
+#include <psx/debug.h>
+
+int __safeobj_validate(void *obj, __magic_t refsignature)
+{
+ if(obj == 0)
+ return (0);
+ else
+ {
+ /* cast the object to a magic number */
+ __magic_t mSignature = *((__magic_t *)obj);
+
+ ERRIF
+ (
+ mSignature != refsignature,
+ "invalid object at %X: signature is \"%c%c%c%c\", should be \"%c%c%c%c\"",
+ obj,
+ MAGIC_DECOMPOSE(refsignature),
+ MAGIC_DECOMPOSE(mSignature)
+ );
+
+ if(mSignature == refsignature)
+ /* signatures match: ok */
+ return (-1);
+ else
+ /* signatures mismatch: fail */
+ return (0);
+
+ }
+}
+
+/* EOF */
+