14edb46e9SPaul Traina /* 24644f044SBill Fenner * Copyright (c) 1996, 1997 34edb46e9SPaul Traina * The Regents of the University of California. All rights reserved. 44edb46e9SPaul Traina * 54edb46e9SPaul Traina * Redistribution and use in source and binary forms, with or without 64edb46e9SPaul Traina * modification, are permitted provided that: (1) source code distributions 74edb46e9SPaul Traina * retain the above copyright notice and this paragraph in its entirety, (2) 84edb46e9SPaul Traina * distributions including binary code include the above copyright notice and 94edb46e9SPaul Traina * this paragraph in its entirety in the documentation or other materials 104edb46e9SPaul Traina * provided with the distribution, and (3) all advertising materials mentioning 114edb46e9SPaul Traina * features or use of this software display the following acknowledgement: 124edb46e9SPaul Traina * ``This product includes software developed by the University of California, 134edb46e9SPaul Traina * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 144edb46e9SPaul Traina * the University nor the names of its contributors may be used to endorse 154edb46e9SPaul Traina * or promote products derived from this software without specific prior 164edb46e9SPaul Traina * written permission. 174edb46e9SPaul Traina * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 184edb46e9SPaul Traina * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 194edb46e9SPaul Traina * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 204edb46e9SPaul Traina */ 214edb46e9SPaul Traina 224edb46e9SPaul Traina #ifndef lint 234de76e31SBill Fenner static const char rcsid[] = 24a90e161bSBill Fenner "@(#) $Header: /tcpdump/master/tcpdump/machdep.c,v 1.7 2001/06/27 05:42:04 guy Exp $ (LBL)"; 25b0453382SBill Fenner #endif 26b0453382SBill Fenner 27b0453382SBill Fenner #ifdef HAVE_CONFIG_H 28b0453382SBill Fenner #include "config.h" 294edb46e9SPaul Traina #endif 304edb46e9SPaul Traina 314edb46e9SPaul Traina #include <sys/types.h> 324edb46e9SPaul Traina #ifdef __osf__ 334edb46e9SPaul Traina #include <sys/sysinfo.h> 344edb46e9SPaul Traina #include <sys/proc.h> 35a90e161bSBill Fenner 36a90e161bSBill Fenner #if !defined(HAVE_SNPRINTF) 37a90e161bSBill Fenner #ifndef HAVE___ATTRIBUTE__ 38a90e161bSBill Fenner #define __attribute__(x) 39a90e161bSBill Fenner #endif /* HAVE___ATTRIBUTE__ */ 40a90e161bSBill Fenner 41a90e161bSBill Fenner int snprintf(char *, size_t, const char *, ...) 42a90e161bSBill Fenner __attribute__((format(printf, 3, 4))); 43a90e161bSBill Fenner #endif /* !defined(HAVE_SNPRINTF) */ 44a90e161bSBill Fenner #endif /* __osf__ */ 454edb46e9SPaul Traina 464edb46e9SPaul Traina #include "machdep.h" 474edb46e9SPaul Traina 484edb46e9SPaul Traina int 49685295f4SBill Fenner abort_on_misalignment(char *ebuf, size_t ebufsiz) 504edb46e9SPaul Traina { 514edb46e9SPaul Traina #ifdef __osf__ 524edb46e9SPaul Traina static int buf[2] = { SSIN_UACPROC, UAC_SIGBUS }; 534edb46e9SPaul Traina 544edb46e9SPaul Traina if (setsysinfo(SSI_NVPAIRS, (caddr_t)buf, 1, 0, 0) < 0) { 55685295f4SBill Fenner (void)snprintf(ebuf, ebufsiz, "setsysinfo: errno %d", errno); 564edb46e9SPaul Traina return (-1); 574edb46e9SPaul Traina } 584edb46e9SPaul Traina #endif 594edb46e9SPaul Traina return (0); 604edb46e9SPaul Traina } 61