17c478bdstevel@tonic-gate/*
27c478bdstevel@tonic-gate * CDDL HEADER START
37c478bdstevel@tonic-gate *
47c478bdstevel@tonic-gate * The contents of this file are subject to the terms of the
57c478bdstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only
67c478bdstevel@tonic-gate * (the "License").  You may not use this file except in compliance
77c478bdstevel@tonic-gate * with the License.
87c478bdstevel@tonic-gate *
97c478bdstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bdstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
117c478bdstevel@tonic-gate * See the License for the specific language governing permissions
127c478bdstevel@tonic-gate * and limitations under the License.
137c478bdstevel@tonic-gate *
147c478bdstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
157c478bdstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bdstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
177c478bdstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
187c478bdstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bdstevel@tonic-gate *
207c478bdstevel@tonic-gate * CDDL HEADER END
217c478bdstevel@tonic-gate */
227c478bdstevel@tonic-gate/*
235363f09arutz * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
247c478bdstevel@tonic-gate * Use is subject to license terms.
257c478bdstevel@tonic-gate */
267c478bdstevel@tonic-gate
277c478bdstevel@tonic-gate#pragma ident	"%Z%%M%	%I%	%E% SMI"
287c478bdstevel@tonic-gate
297c478bdstevel@tonic-gate
307c478bdstevel@tonic-gate#include	<stdio.h>
317c478bdstevel@tonic-gate#include	<stdlib.h>
327c478bdstevel@tonic-gate#include	<stdarg.h>
337c478bdstevel@tonic-gate#include	<unistd.h>
347c478bdstevel@tonic-gate#include	<time.h>
357c478bdstevel@tonic-gate#include	<syslog.h>
367c478bdstevel@tonic-gate#include	<errno.h>
377c478bdstevel@tonic-gate#include	<string.h>
387c478bdstevel@tonic-gate#include	<sys/types.h>
397c478bdstevel@tonic-gate#include	<sys/stat.h>
407c478bdstevel@tonic-gate#include	<sys/smedia.h>
417c478bdstevel@tonic-gate#include	"smserver.h"
427c478bdstevel@tonic-gate
437c478bdstevel@tonic-gate#define	DEBUGMSG	"Level[%d]: %s"
447c478bdstevel@tonic-gate
457c478bdstevel@tonic-gatevoid
467c478bdstevel@tonic-gatefatal(const char *fmt, ...)
477c478bdstevel@tonic-gate{
487c478bdstevel@tonic-gate	va_list		ap;
497c478bdstevel@tonic-gate
507c478bdstevel@tonic-gate	va_start(ap, fmt);
517c478bdstevel@tonic-gate	(void) vsyslog(LOG_DAEMON|LOG_CRIT, fmt, ap);
527c478bdstevel@tonic-gate	va_end(ap);
537c478bdstevel@tonic-gate
547c478bdstevel@tonic-gate	exit(-1);
557c478bdstevel@tonic-gate}
567c478bdstevel@tonic-gate
577c478bdstevel@tonic-gatevoid
587c478bdstevel@tonic-gatequit(const char *fmt, ...)
597c478bdstevel@tonic-gate{
607c478bdstevel@tonic-gate	va_list		ap;
617c478bdstevel@tonic-gate
627c478bdstevel@tonic-gate	va_start(ap, fmt);
637c478bdstevel@tonic-gate	(void) vsyslog(LOG_DAEMON|LOG_ERR, fmt, ap);
647c478bdstevel@tonic-gate	va_end(ap);
657c478bdstevel@tonic-gate
667c478bdstevel@tonic-gate	exit(0);
677c478bdstevel@tonic-gate}
687c478bdstevel@tonic-gate
697c478bdstevel@tonic-gate
707c478bdstevel@tonic-gatevoid
717c478bdstevel@tonic-gatenoise(const char *fmt, ...)
727c478bdstevel@tonic-gate{
737c478bdstevel@tonic-gate	va_list		ap;
747c478bdstevel@tonic-gate
757c478bdstevel@tonic-gate	va_start(ap, fmt);
767c478bdstevel@tonic-gate	(void) vsyslog(LOG_DAEMON|LOG_WARNING, fmt, ap);
777c478bdstevel@tonic-gate	va_end(ap);
787c478bdstevel@tonic-gate}
797c478bdstevel@tonic-gate
807c478bdstevel@tonic-gatevoid
817c478bdstevel@tonic-gatewarning(const char *fmt, ...)
827c478bdstevel@tonic-gate{
837c478bdstevel@tonic-gate	va_list		ap;
847c478bdstevel@tonic-gate
857c478bdstevel@tonic-gate	va_start(ap, fmt);
867c478bdstevel@tonic-gate	(void) vsyslog(LOG_DAEMON|LOG_WARNING, fmt, ap);
877c478bdstevel@tonic-gate	va_end(ap);
887c478bdstevel@tonic-gate}
897c478bdstevel@tonic-gate
907c478bdstevel@tonic-gate
917c478bdstevel@tonic-gatevoid
927c478bdstevel@tonic-gateinfo(const char *fmt, ...)
937c478bdstevel@tonic-gate{
947c478bdstevel@tonic-gate	extern int	verbose;
957c478bdstevel@tonic-gate	va_list		ap;
967c478bdstevel@tonic-gate
977c478bdstevel@tonic-gate	if (verbose == 0) {
987c478bdstevel@tonic-gate		return;
997c478bdstevel@tonic-gate	}
1007c478bdstevel@tonic-gate
1017c478bdstevel@tonic-gate	va_start(ap, fmt);
1027c478bdstevel@tonic-gate	(void) vsyslog(LOG_DAEMON|LOG_INFO, fmt, ap);
1037c478bdstevel@tonic-gate	va_end(ap);
1047c478bdstevel@tonic-gate}
1057c478bdstevel@tonic-gate
1067c478bdstevel@tonic-gate/*PRINTFLIKE2*/
1077c478bdstevel@tonic-gatevoid
1087c478bdstevel@tonic-gatedebug(uint_t level, const char *fmt, ...)
1097c478bdstevel@tonic-gate{
1107c478bdstevel@tonic-gate	extern int	debug_level;
1117c478bdstevel@tonic-gate	va_list		ap;
1127c478bdstevel@tonic-gate	char		dbgmsg[BUFSIZ];
1137c478bdstevel@tonic-gate
1147c478bdstevel@tonic-gate	if (level > debug_level) {
1157c478bdstevel@tonic-gate		return;
1167c478bdstevel@tonic-gate	}
1177c478bdstevel@tonic-gate
1187c478bdstevel@tonic-gate	(void) snprintf(dbgmsg, sizeof (dbgmsg), DEBUGMSG, level, fmt);
1197c478bdstevel@tonic-gate	va_start(ap, fmt);
1207c478bdstevel@tonic-gate	(void) vsyslog(LOG_DAEMON|LOG_DEBUG, dbgmsg, ap);
1217c478bdstevel@tonic-gate	va_end(ap);
1227c478bdstevel@tonic-gate}
123