// SDB-CGEN V2.6.2
#include <ctype.h>
#include <stdio.h>
#include <string.h>

struct kv { const char *name; const char *value; };
static const struct kv kvs[] = {
// gcc -DMAIN=1 linux_sparc_32.c ; ./a.out > linux_sparc_32.h
	{"_", "0x10"},
	{"access", "0x10,33,2,zx filename mode"},
	{"0x10.33", "access"},
	{"brk", "0x10,45,1,x brk"},
	{"0x10.45", "brk"},
	{"chdir", "0x10,12,1,z filename"},
	{"0x10.12", "chdir"},
	{"clone", "0x10,120,4,iiii arg0 arg1 arg2 arg3"},
	{"0x10.120", "clone"},
	{"close", "0x10,6,1,i fd"},
	{"0x10.6", "close"},
	{"creat", "0x10,8,2,zx pathname mode"},
	{"0x10.8", "creat"},
	{"dup", "0x10,41,1,i fildes"},
	{"0x10.41", "dup"},
	{"execve", "0x10,11,3,zzz filename argv envp"},
	{"0x10.11", "execve"},
	{"exit", "0x10,1,1,i error_code"},
	{"0x10.1", "exit"},
	{"fork", "0x10,2,0,"},
	{"0x10.2", "fork"},
	{"getpid", "0x10,20,0,"},
	{"0x10.20", "getpid"},
	{"getuid", "0x10,24,0,"},
	{"0x10.24", "getuid"},
	{"ioctl", "0x10,54,3,ixi fd cmd arg"},
	{"0x10.54", "ioctl"},
	{"kill", "0x10,37,2,ii pid sig"},
	{"0x10.37", "kill"},
	{"link", "0x10,9,2,zz oldname newname"},
	{"0x10.9", "link"},
	{"mmap", "0x10,90,6,xixxii addr len prot flags fd pgoff"},
	{"0x10.90", "mmap"},
	{"mmap2", "0x10,192,6,xixxii addr len prot flags fd pgoff"},
	{"0x10.192", "mmap2"},
	{"mprotect", "0x10,125,3,xix start len prot"},
	{"0x10.125", "mprotect"},
	{"munmap", "0x10,91,2,xi addr len"},
	{"0x10.91", "munmap"},
	{"open", "0x10,5,3,zxx filename flags mode"},
	{"0x10.5", "open"},
	{"ptrace", "0x10,26,4,xixi request pid addr data"},
	{"0x10.26", "ptrace"},
	{"read", "0x10,3,3,ipi fd buf count"},
	{"0x10.3", "read"},
	{"rt_sigaction", "0x10,174,4,ippi sig act oact sigsetsize"},
	{"0x10.174", "rt_sigaction"},
	{"rt_sigprocmask", "0x10,175,4,xppi how set oset sigsetsize"},
	{"0x10.175", "rt_sigprocmask"},
	{"setuid", "0x10,23,1,i uid"},
	{"0x10.23", "setuid"},
	{"signal", "0x10,48,2,ii sig handler"},
	{"0x10.48", "signal"},
	{"sigreturn", "0x10,119,1,i arg0"},
	{"0x10.119", "sigreturn"},
	{"socketcall", "0x10,102,2,ip call args"},
	{"0x10.102", "socketcall"},
	{"sysctl", "0x10,149,1,p args"},
	{"0x10.149", "sysctl"},
	{"unlink", "0x10,10,1,z pathname"},
	{"0x10.10", "unlink"},
	{"utime", "0x10,30,2,zp filename times"},
	{"0x10.30", "utime"},
	{"waitpid", "0x10,7,3,ipx pid stat_addr options"},
	{"0x10.7", "waitpid"},
	{"write", "0x10,4,3,izi fd buf count"},
	{"0x10.4", "write"},
  {NULL, NULL}
};
typedef int (*GperfForeachCallback)(void *user, const char *k, const char *v);
int gperf_linux_sparc_32_foreach(GperfForeachCallback cb, void *user) {
  int i = 0; while (kvs[i].name) {
  cb (user, kvs[i].name, kvs[i].value);
  i++;}
  return 0;
}
const char *gperf_linux_sparc_32_get(const char *s) {
  int i = 0; while (kvs[i].name) {
  if (!strcmp (s, kvs[i].name)) return kvs[i].value;
  i++;}
  return NULL;
}
#define sdb_hash_c_linux_sparc_32(x,y) gperf_linux_sparc_32_hash(x)
const unsigned int gperf_linux_sparc_32_hash(const char *s) {
  int sum = strlen (s);
  while (*s) { sum += *s; s++; }
  return sum;
}
struct {const char *name;void *get;void *hash;void *foreach;} gperf_linux_sparc_32 = {
  .name = "linux-sparc-32",
  .get = &gperf_linux_sparc_32_get,
  .hash = &gperf_linux_sparc_32_hash,
  .foreach = &gperf_linux_sparc_32_foreach
};

#if MAIN
int main () {
	const char *s = ((char*(*)(char*))gperf_linux_sparc_32.get)("foo");
	printf ("%s\n", s);
}
#endif
