The macros _PR_FILEDESC_OPEN, _PR_FILEDESC_CLOSED, and _PR_FILEDESC_FREED are defined in private/pprio.h, which is exported. However, these three macros are only used as the values of the fd->secret->state field, which is in an internal structure (PRFilePrivate) defined in primpl.h. We should move the definitions of these three macros to primpl.h, next to the definition of struct PRFilePrivate.
Yes, this is a good change to make, for 3.5, and should be announced, in advance, to nspr20 clients.
I checked in the fix to the internal cvs repository. /m/src/ns/nspr20/pr/include/private/pprio.h, revision 2.11 /m/src/ns/nspr20/pr/include/private/primpl.h, revision 2.62
The fix has been merged to cvs.mozilla.org.