From owner-freebsd-hackers@FreeBSD.ORG Thu Mar 17 17:34:07 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AFFE016A4CE for ; Thu, 17 Mar 2005 17:34:07 +0000 (GMT) Received: from wproxy.gmail.com (wproxy.gmail.com [64.233.184.199]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4297843D1F for ; Thu, 17 Mar 2005 17:34:07 +0000 (GMT) (envelope-from opensource.enthousiat@gmail.com) Received: by wproxy.gmail.com with SMTP id 69so238855wri for ; Thu, 17 Mar 2005 09:34:06 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding; b=PMKkOmF4MY6AIvJ/3mFOCSuNOd9QEl6rMmOEwUXiQptSkDY5CG8hhIFgicmlVPI3+Y+Ygyx96/I2Y576XJVipHFNhPrzRlIKvur0u8qxLJklP6CCTYuUJ5CKHseUQjMRYBEbqj9XmypK7dkfE4Ega4tzhWsL6rbpqbsGkwanbF4= Received: by 10.54.57.25 with SMTP id f25mr1888646wra; Thu, 17 Mar 2005 09:34:06 -0800 (PST) Received: by 10.54.49.28 with HTTP; Thu, 17 Mar 2005 09:34:06 -0800 (PST) Message-ID: <37e13166050317093477de8f7a@mail.gmail.com> Date: Thu, 17 Mar 2005 12:34:06 -0500 From: Aziz KEZZOU To: freebsd-hackers@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: How to send a signal from inside the kernel? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Aziz KEZZOU List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Mar 2005 17:34:07 -0000 Hi all, I would like to send a signal (e.g SIGUSR1) to a user process from inside the kernel (kld module). Can any one tell me how to do it ? I tried the following code inspired from sys/kern/kern_sig.c : ============================================================== #include #include int process_pid; struct kill_args { int pid; int signum; }; void send_SIGUSR1() { struct kill_args uap; uap.pid = process_pid; uap.signum = SIGUSR1; kill((struct thread *)0, &uap); } =============================================================== but that causes a page fault in kernel mode (ie. Kernel panic :-) Any help is appreciated, thanks. Aziz