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