- (let ((errno (sb-posix:syscall-errno c)))
- (format s "System call error ~A (~A)"
- errno (sb-int:strerror errno))))))
-
-(defun syscall-error ()
- (error 'sb-posix:syscall-error :errno (get-errno)))
+ (let ((errno (sb-posix:syscall-errno c))
+ (name (sb-posix:syscall-name c)))
+ (if name
+ (format s "Error in ~S: ~A (~A)"
+ name
+ (sb-int:strerror errno)
+ errno)
+ (format s "Error in syscall: ~A (~A)"
+ (sb-int:strerror errno)
+ errno))))))
+
+(declaim (ftype (function (&optional symbol) nil) syscall-error))
+(defun syscall-error (&optional name)
+ (error 'sb-posix:syscall-error
+ :name name
+ :errno (get-errno)))