fb3f38da2a
From-SVN: r193254
40 lines
786 B
C
40 lines
786 B
C
/* signame.c -- get the name of a signal
|
|
|
|
Copyright 2012 The Go Authors. All rights reserved.
|
|
Use of this source code is governed by a BSD-style
|
|
license that can be found in the LICENSE file. */
|
|
|
|
#include <string.h>
|
|
|
|
#include "runtime.h"
|
|
#include "arch.h"
|
|
#include "malloc.h"
|
|
|
|
String Signame (intgo sig) asm ("syscall.Signame");
|
|
|
|
String
|
|
Signame (intgo sig)
|
|
{
|
|
const char* s = NULL;
|
|
char buf[100];
|
|
size_t len;
|
|
byte *data;
|
|
String ret;
|
|
|
|
#if defined(HAVE_STRSIGNAL)
|
|
s = strsignal (sig);
|
|
#endif
|
|
|
|
if (s == NULL)
|
|
{
|
|
snprintf(buf, sizeof buf, "signal %ld", (long) sig);
|
|
s = buf;
|
|
}
|
|
len = __builtin_strlen (s);
|
|
data = runtime_mallocgc (len, FlagNoPointers, 0, 0);
|
|
__builtin_memcpy (data, s, len);
|
|
ret.str = data;
|
|
ret.len = len;
|
|
return ret;
|
|
}
|