From owner-p4-projects@FreeBSD.ORG Mon Apr 28 18:12:47 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1255337B404; Mon, 28 Apr 2003 18:12:47 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BE0E837B401 for ; Mon, 28 Apr 2003 18:12:46 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 690CC43F85 for ; Mon, 28 Apr 2003 18:12:46 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h3T1Ck0U073240 for ; Mon, 28 Apr 2003 18:12:46 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h3T1CjTa073232 for perforce@freebsd.org; Mon, 28 Apr 2003 18:12:45 -0700 (PDT) Date: Mon, 28 Apr 2003 18:12:45 -0700 (PDT) Message-Id: <200304290112.h3T1CjTa073232@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 30016 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Apr 2003 01:12:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=30016 Change 30016 by jmallett@jmallett_dalek on 2003/04/28 18:12:09 Real clockframe. Affected files ... .. //depot/projects/mips/sys/mips/include/cpu.h#9 edit Differences ... ==== //depot/projects/mips/sys/mips/include/cpu.h#9 (text+ko) ==== @@ -31,8 +31,26 @@ #include -#define CLKF_USERMODE(cfp) (0) -#define CLKF_PC(cfp) (0) +/* + * Arguments to hardclock and gatherstats encapsulate the previous + * machine state in an opaque clockframe. + */ +struct clockframe { + int pc; /* program counter at time of interrupt */ + int sr; /* status register at time of interrupt */ + int ppl; /* previous priority level at time of interrupt */ +}; + +#define CLKF_USERMODE(framep) ((framep)->sr & MIPS_SR_KSU_USER) +#define CLKF_BASEPRI(framep) \ + ((~(framep)->sr & (MIPS_INT_MASK | MIPS_SR_INT_IE)) == 0) + +#ifdef IPL_ICU_MASK +#define ICU_CLKF_BASEPRI(framep) ((framep)->ppl == 0) +#endif + +#define CLKF_PC(framep) ((framep)->pc) +#define CLKF_INTR(framep) (0) #define TRAPF_PC(tframe) ((tframe)->tf_regs[TF_EPC])