Deleted Added
full compact
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 ---