From owner-p4-projects@FreeBSD.ORG Mon Sep 24 21:51:56 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5CF8416A473; Mon, 24 Sep 2007 21:51:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1FFB016A46C for ; Mon, 24 Sep 2007 21:51:55 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1158C13C49D for ; Mon, 24 Sep 2007 21:51:55 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l8OLpt6E024158 for ; Mon, 24 Sep 2007 21:51:55 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l8OLpsJx024155 for perforce@freebsd.org; Mon, 24 Sep 2007 21:51:54 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 24 Sep 2007 21:51:54 GMT Message-Id: <200709242151.l8OLpsJx024155@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 126792 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Sep 2007 21:51:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=126792 Change 126792 by kmacy@kmacy_home:ethng on 2007/09/24 21:51:45 add stack utility functions for creating LIFO cache Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_osdep.h#9 edit .. //depot/projects/ethng/src/sys/dev/cxgb/sys/cxgb_support.c#1 add Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_osdep.h#9 (text+ko) ==== @@ -100,7 +100,6 @@ return (m); } - static __inline struct mbuf * mbuf_ring_peek(struct mbuf_ring *mr) { @@ -118,6 +117,31 @@ return (m); } +struct buf_stack { + caddr_t *bs_stack; + volatile int bs_head; + int bs_size; +}; + +static __inline int +buf_push(struct buf_stack *bs, caddr_t buf) +{ + if (bs->bs_head + 1 >= bs->bs_size) + return (1); + + bs->bs_stack[++(bs->bs_head)] = buf; + return (0); +} + +static __inline caddr_t +buf_pop(struct buf_stack *bs) +{ + if (bs->bs_head < 0) + return (NULL); + + return (bs->bs_stack[(bs->bs_head)--]); +} + #define PANIC_IF(exp) do { \ if (exp) \ panic("BUG: %s", exp); \