1;;;; assorted alien definitions
2
3;;;; This software is part of the SBCL system. See the README file for
4;;;; more information.
5;;;;
6;;;; This software is derived from the CMU CL system, which was
7;;;; written at Carnegie Mellon University and released into the
8;;;; public domain. The software is in the public domain and is
9;;;; provided with absolutely no warranty. See the COPYING and CREDITS
10;;;; files for more information.
11
12(in-package "SB!IMPL")
13
14(declaim (inline memmove))
15(define-alien-routine ("memmove" memmove) void
16  (dest (* char))
17  (src (* char))
18  (n unsigned-int))
19
20(define-alien-routine ("os_get_errno" get-errno) integer)
21#!+sb-doc
22(setf (fdocumentation 'get-errno 'function)
23      "Return the value of the C library pseudo-variable named \"errno\".")
24
25;;; Decode errno into a string.
26#!-win32
27(defun strerror (&optional (errno (get-errno)))
28  (alien-funcall (extern-alien "strerror" (function c-string int)) errno))
29
30#!+win32
31(defun strerror (&optional (errno (sb!win32:get-last-error)))
32  (sb!win32:format-system-message errno))
33