diff options
Diffstat (limited to 'xorg-server/hw/xfree86/dummylib/xalloc.c')
-rw-r--r-- | xorg-server/hw/xfree86/dummylib/xalloc.c | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/xorg-server/hw/xfree86/dummylib/xalloc.c b/xorg-server/hw/xfree86/dummylib/xalloc.c new file mode 100644 index 000000000..b671d4dde --- /dev/null +++ b/xorg-server/hw/xfree86/dummylib/xalloc.c @@ -0,0 +1,111 @@ + +#ifdef HAVE_XORG_CONFIG_H +#include <xorg-config.h> +#endif + +#include <X11/X.h> +#include "os.h" +#include "xf86.h" +#include "xf86Priv.h" + +/* + * Utility functions required by libxf86_os. + */ + +_X_EXPORT pointer +Xalloc(unsigned long n) +{ + if (!n) + n = 1; + return malloc(n); +} + +_X_EXPORT pointer +Xrealloc(pointer p, unsigned long n) +{ + if (!n) + n = 1; + return realloc(p, n); +} + +_X_EXPORT pointer +Xcalloc(unsigned long n) +{ + pointer r; + + r = Xalloc(n); + memset(r, 0, n); + return r; +} + +_X_EXPORT pointer +XNFalloc(unsigned long n) +{ + pointer r; + + r = Xalloc(n); + if (!r) + FatalError("XNFalloc failed\n"); + return r; + +} + +_X_EXPORT pointer +XNFrealloc(pointer p, unsigned long n) +{ + pointer r; + + r = Xrealloc(p, n); + if (!r) + FatalError("XNFrealloc failed\n"); + return r; + +} + +_X_EXPORT pointer +XNFcalloc(unsigned long n) +{ + pointer r; + + r = Xcalloc(n); + if (!r) + FatalError("XNFcalloc failed\n"); + return r; + +} + +_X_EXPORT void +Xfree(pointer p) +{ + free(p); +} + +_X_EXPORT char * +Xstrdup(const char *s) +{ + char *sd; + + if (s == NULL) + return NULL; + + sd = (char *)Xalloc(strlen(s) + 1); + if (sd != NULL) + strcpy(sd, s); + return sd; +} + +char * +XNFstrdup(const char *s) +{ + char *sd; + size_t len; + + if (s == NULL) + return NULL; + + len = strlen(s) + 1; + sd = (char *)XNFalloc(len); + strlcpy(sd, s, len); + return sd; +} + |