hwpmc_mod.c (225617) | hwpmc_mod.c (226514) |
---|---|
1/*- 2 * Copyright (c) 2003-2008 Joseph Koshy 3 * Copyright (c) 2007 The FreeBSD Foundation 4 * All rights reserved. 5 * 6 * Portions of this software were developed by A. Joseph Koshy under 7 * sponsorship from the FreeBSD Foundation and Google, Inc. 8 * --- 16 unchanged lines hidden (view full) --- 25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28 * SUCH DAMAGE. 29 * 30 */ 31 32#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2003-2008 Joseph Koshy 3 * Copyright (c) 2007 The FreeBSD Foundation 4 * All rights reserved. 5 * 6 * Portions of this software were developed by A. Joseph Koshy under 7 * sponsorship from the FreeBSD Foundation and Google, Inc. 8 * --- 16 unchanged lines hidden (view full) --- 25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28 * SUCH DAMAGE. 29 * 30 */ 31 32#include <sys/cdefs.h> |
33__FBSDID("$FreeBSD: head/sys/dev/hwpmc/hwpmc_mod.c 225617 2011-09-16 13:58:51Z kmacy $"); | 33__FBSDID("$FreeBSD: head/sys/dev/hwpmc/hwpmc_mod.c 226514 2011-10-18 15:25:43Z fabient $"); |
34 35#include <sys/param.h> 36#include <sys/eventhandler.h> 37#include <sys/jail.h> 38#include <sys/kernel.h> 39#include <sys/kthread.h> 40#include <sys/limits.h> 41#include <sys/lock.h> --- 2844 unchanged lines hidden (view full) --- 2886 * de-configure it. 2887 */ 2888 if (cl.pm_logfd >= 0) { 2889 sx_xunlock(&pmc_sx); 2890 is_sx_locked = 0; 2891 error = pmclog_configure_log(md, po, cl.pm_logfd); 2892 } else if (po->po_flags & PMC_PO_OWNS_LOGFILE) { 2893 pmclog_process_closelog(po); | 34 35#include <sys/param.h> 36#include <sys/eventhandler.h> 37#include <sys/jail.h> 38#include <sys/kernel.h> 39#include <sys/kthread.h> 40#include <sys/limits.h> 41#include <sys/lock.h> --- 2844 unchanged lines hidden (view full) --- 2886 * de-configure it. 2887 */ 2888 if (cl.pm_logfd >= 0) { 2889 sx_xunlock(&pmc_sx); 2890 is_sx_locked = 0; 2891 error = pmclog_configure_log(md, po, cl.pm_logfd); 2892 } else if (po->po_flags & PMC_PO_OWNS_LOGFILE) { 2893 pmclog_process_closelog(po); |
2894 error = pmclog_flush(po); | 2894 error = pmclog_close(po); |
2895 if (error == 0) { 2896 LIST_FOREACH(pm, &po->po_pmcs, pm_next) 2897 if (pm->pm_flags & PMC_F_NEEDS_LOGFILE && 2898 pm->pm_state == PMC_STATE_RUNNING) 2899 pmc_stop(pm); 2900 error = pmclog_deconfigure_log(po); 2901 } 2902 } else 2903 error = EINVAL; 2904 2905 if (error) 2906 break; 2907 } 2908 break; 2909 | 2895 if (error == 0) { 2896 LIST_FOREACH(pm, &po->po_pmcs, pm_next) 2897 if (pm->pm_flags & PMC_F_NEEDS_LOGFILE && 2898 pm->pm_state == PMC_STATE_RUNNING) 2899 pmc_stop(pm); 2900 error = pmclog_deconfigure_log(po); 2901 } 2902 } else 2903 error = EINVAL; 2904 2905 if (error) 2906 break; 2907 } 2908 break; 2909 |
2910 | |
2911 /* 2912 * Flush a log file. 2913 */ 2914 2915 case PMC_OP_FLUSHLOG: 2916 { 2917 struct pmc_owner *po; 2918 --- 4 unchanged lines hidden (view full) --- 2923 break; 2924 } 2925 2926 error = pmclog_flush(po); 2927 } 2928 break; 2929 2930 /* | 2910 /* 2911 * Flush a log file. 2912 */ 2913 2914 case PMC_OP_FLUSHLOG: 2915 { 2916 struct pmc_owner *po; 2917 --- 4 unchanged lines hidden (view full) --- 2922 break; 2923 } 2924 2925 error = pmclog_flush(po); 2926 } 2927 break; 2928 2929 /* |
2930 * Close a log file. 2931 */ 2932 2933 case PMC_OP_CLOSELOG: 2934 { 2935 struct pmc_owner *po; 2936 2937 sx_assert(&pmc_sx, SX_XLOCKED); 2938 2939 if ((po = pmc_find_owner_descriptor(td->td_proc)) == NULL) { 2940 error = EINVAL; 2941 break; 2942 } 2943 2944 error = pmclog_close(po); 2945 } 2946 break; 2947 2948 /* |
|
2931 * Retrieve hardware configuration. 2932 */ 2933 2934 case PMC_OP_GETCPUINFO: /* CPU information */ 2935 { 2936 struct pmc_op_getcpuinfo gci; 2937 struct pmc_classinfo *pci; 2938 struct pmc_classdep *pcd; --- 2011 unchanged lines hidden --- | 2949 * Retrieve hardware configuration. 2950 */ 2951 2952 case PMC_OP_GETCPUINFO: /* CPU information */ 2953 { 2954 struct pmc_op_getcpuinfo gci; 2955 struct pmc_classinfo *pci; 2956 struct pmc_classdep *pcd; --- 2011 unchanged lines hidden --- |