cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/***********************************************************
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncAUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync******************************************************************/
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef DIX_REGISTRY_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define DIX_REGISTRY_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Result returned from any unsuccessful lookup
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define XREGISTRY_UNKNOWN "<unknown>"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef XREGISTRY
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "resource.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "extnsionst.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* Internal string registry - for auditing, debugging, security, etc. */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Registration functions. The name string is not copied, so it must
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * not be a stack variable.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void RegisterResourceName(RESTYPE type, char *name);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void RegisterExtensionNames(ExtensionEntry *ext);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Lookup functions. The returned string must not be modified or freed.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT const char *LookupMajorName(int major);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT const char *LookupRequestName(int major, int minor);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT const char *LookupEventName(int event);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT const char *LookupErrorName(int error);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT const char *LookupResourceName(RESTYPE rtype);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Setup and teardown
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void dixResetRegistry(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#else /* XREGISTRY */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* Define calls away when the registry is not being built. */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define RegisterResourceName(a, b) { ; }
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define RegisterExtensionNames(a) { ; }
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define LookupMajorName(a) XREGISTRY_UNKNOWN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define LookupRequestName(a, b) XREGISTRY_UNKNOWN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define LookupEventName(a) XREGISTRY_UNKNOWN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define LookupErrorName(a) XREGISTRY_UNKNOWN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define LookupResourceName(a) XREGISTRY_UNKNOWN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define dixResetRegistry() { ; }
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* XREGISTRY */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* DIX_REGISTRY_H */