Add a declaration
[sbcl.git] / src / code / misc-aliens.lisp
blobd01104927811795269a2a251313ffb3686c1d700
1 ;;;; assorted alien definitions
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.
12 (in-package "SB!IMPL")
14 (declaim (inline memmove))
15 (define-alien-routine ("memmove" memmove) void
16 (dest (* char))
17 (src (* char))
18 (n unsigned-int))
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\".")
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))
30 #!+win32
31 (defun strerror (&optional (errno (sb!win32:get-last-error)))
32 (sb!win32:format-system-message errno))