-#define MODE_INVALID (struct mode_change *) 0
-#define MODE_MEMORY_EXHAUSTED (struct mode_change *) 1
-
-#ifndef __P
-# if defined (__GNUC__) || (defined (__STDC__) && __STDC__)
-# define __P(Args) Args
-# else
-# define __P(Args) ()
-# endif /* GCC. */
-#endif /* Not __P. */
-
-struct mode_change *mode_compile __P ((const char *, unsigned));
-unsigned short mode_adjust __P ((unsigned, const struct mode_change *));
-void mode_free __P ((struct mode_change *));
+# define MODE_INVALID (struct mode_change *) 0
+# define MODE_MEMORY_EXHAUSTED (struct mode_change *) 1
+# define MODE_BAD_REFERENCE (struct mode_change *) 2
+
+# ifndef PARAMS
+# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
+# define PARAMS(Args) Args
+# else
+# define PARAMS(Args) ()
+# endif
+# endif
+
+struct mode_change *mode_compile PARAMS ((const char *, unsigned));
+struct mode_change *mode_create_from_ref PARAMS ((const char *));
+mode_t mode_adjust PARAMS ((mode_t, const struct mode_change *));
+void mode_free PARAMS ((struct mode_change *));
+
+#endif