|
Packit |
b1f7ae |
/*
|
|
Packit |
b1f7ae |
* Copyright (c) 2014-2017, Intel Corporation
|
|
Packit |
b1f7ae |
*
|
|
Packit |
b1f7ae |
* Redistribution and use in source and binary forms, with or without
|
|
Packit |
b1f7ae |
* modification, are permitted provided that the following conditions are met:
|
|
Packit |
b1f7ae |
*
|
|
Packit |
b1f7ae |
* * Redistributions of source code must retain the above copyright notice,
|
|
Packit |
b1f7ae |
* this list of conditions and the following disclaimer.
|
|
Packit |
b1f7ae |
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
Packit |
b1f7ae |
* this list of conditions and the following disclaimer in the documentation
|
|
Packit |
b1f7ae |
* and/or other materials provided with the distribution.
|
|
Packit |
b1f7ae |
* * Neither the name of Intel Corporation nor the names of its contributors
|
|
Packit |
b1f7ae |
* may be used to endorse or promote products derived from this software
|
|
Packit |
b1f7ae |
* without specific prior written permission.
|
|
Packit |
b1f7ae |
*
|
|
Packit |
b1f7ae |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
Packit |
b1f7ae |
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
Packit |
b1f7ae |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
Packit |
b1f7ae |
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
Packit |
b1f7ae |
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
Packit |
b1f7ae |
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
Packit |
b1f7ae |
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
Packit |
b1f7ae |
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
Packit |
b1f7ae |
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
Packit |
b1f7ae |
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
Packit |
b1f7ae |
* POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
b1f7ae |
*/
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
#include "ptunit.h"
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
#include "pt_decoder_function.h"
|
|
Packit |
b1f7ae |
#include "pt_encoder.h"
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
#include "intel-pt.h"
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
/* A test fixture for decoder function fetch tests. */
|
|
Packit |
b1f7ae |
struct fetch_fixture {
|
|
Packit |
b1f7ae |
/* The trace buffer. */
|
|
Packit |
b1f7ae |
uint8_t buffer[1024];
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
/* A trace configuration. */
|
|
Packit |
b1f7ae |
struct pt_config config;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
/* A trace encoder. */
|
|
Packit |
b1f7ae |
struct pt_encoder encoder;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
/* The test fixture initialization and finalization functions. */
|
|
Packit |
b1f7ae |
struct ptunit_result (*init)(struct fetch_fixture *);
|
|
Packit |
b1f7ae |
struct ptunit_result (*fini)(struct fetch_fixture *);
|
|
Packit |
b1f7ae |
};
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result ffix_init(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
memset(ffix->buffer, pt_opc_bad, sizeof(ffix->buffer));
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
memset(&ffix->config, 0, sizeof(ffix->config));
|
|
Packit |
b1f7ae |
ffix->config.size = sizeof(ffix->config);
|
|
Packit |
b1f7ae |
ffix->config.begin = ffix->buffer;
|
|
Packit |
b1f7ae |
ffix->config.end = ffix->buffer + sizeof(ffix->buffer);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
pt_encoder_init(&ffix->encoder, &ffix->config);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result ffix_fini(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
pt_encoder_fini(&ffix->encoder);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_null(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
const struct pt_decoder_function *dfun;
|
|
Packit |
b1f7ae |
int errcode;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_df_fetch(NULL, ffix->config.begin, &ffix->config);
|
|
Packit |
b1f7ae |
ptu_int_eq(errcode, -pte_internal);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_df_fetch(&dfun, NULL, &ffix->config);
|
|
Packit |
b1f7ae |
ptu_int_eq(errcode, -pte_nosync);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_df_fetch(&dfun, ffix->config.begin, NULL);
|
|
Packit |
b1f7ae |
ptu_int_eq(errcode, -pte_internal);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_empty(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
const struct pt_decoder_function *dfun;
|
|
Packit |
b1f7ae |
int errcode;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_df_fetch(&dfun, ffix->config.end, &ffix->config);
|
|
Packit |
b1f7ae |
ptu_int_eq(errcode, -pte_eos);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_unknown(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
const struct pt_decoder_function *dfun;
|
|
Packit |
b1f7ae |
int errcode;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ffix->config.begin[0] = pt_opc_bad;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_df_fetch(&dfun, ffix->config.begin, &ffix->config);
|
|
Packit |
b1f7ae |
ptu_int_eq(errcode, 0);
|
|
Packit |
b1f7ae |
ptu_ptr_eq(dfun, &pt_decode_unknown);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_unknown_ext(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
const struct pt_decoder_function *dfun;
|
|
Packit |
b1f7ae |
int errcode;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ffix->config.begin[0] = pt_opc_ext;
|
|
Packit |
b1f7ae |
ffix->config.begin[1] = pt_ext_bad;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_df_fetch(&dfun, ffix->config.begin, &ffix->config);
|
|
Packit |
b1f7ae |
ptu_int_eq(errcode, 0);
|
|
Packit |
b1f7ae |
ptu_ptr_eq(dfun, &pt_decode_unknown);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_unknown_ext2(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
const struct pt_decoder_function *dfun;
|
|
Packit |
b1f7ae |
int errcode;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ffix->config.begin[0] = pt_opc_ext;
|
|
Packit |
b1f7ae |
ffix->config.begin[1] = pt_ext_ext2;
|
|
Packit |
b1f7ae |
ffix->config.begin[2] = pt_ext2_bad;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_df_fetch(&dfun, ffix->config.begin, &ffix->config);
|
|
Packit |
b1f7ae |
ptu_int_eq(errcode, 0);
|
|
Packit |
b1f7ae |
ptu_ptr_eq(dfun, &pt_decode_unknown);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_packet(struct fetch_fixture *ffix,
|
|
Packit |
b1f7ae |
const struct pt_packet *packet,
|
|
Packit |
b1f7ae |
const struct pt_decoder_function *df)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
const struct pt_decoder_function *dfun;
|
|
Packit |
b1f7ae |
int errcode;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_enc_next(&ffix->encoder, packet);
|
|
Packit |
b1f7ae |
ptu_int_ge(errcode, 0);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
errcode = pt_df_fetch(&dfun, ffix->config.begin, &ffix->config);
|
|
Packit |
b1f7ae |
ptu_int_eq(errcode, 0);
|
|
Packit |
b1f7ae |
ptu_ptr_eq(dfun, df);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_type(struct fetch_fixture *ffix,
|
|
Packit |
b1f7ae |
enum pt_packet_type type,
|
|
Packit |
b1f7ae |
const struct pt_decoder_function *dfun)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
struct pt_packet packet;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
memset(&packet, 0, sizeof(packet));
|
|
Packit |
b1f7ae |
packet.type = type;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptu_test(fetch_packet, ffix, &packet, dfun);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_tnt_8(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
struct pt_packet packet;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
memset(&packet, 0, sizeof(packet));
|
|
Packit |
b1f7ae |
packet.type = ppt_tnt_8;
|
|
Packit |
b1f7ae |
packet.payload.tnt.bit_size = 1;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptu_test(fetch_packet, ffix, &packet, &pt_decode_tnt_8);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_mode_exec(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
struct pt_packet packet;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
memset(&packet, 0, sizeof(packet));
|
|
Packit |
b1f7ae |
packet.type = ppt_mode;
|
|
Packit |
b1f7ae |
packet.payload.mode.leaf = pt_mol_exec;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptu_test(fetch_packet, ffix, &packet, &pt_decode_mode);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
static struct ptunit_result fetch_mode_tsx(struct fetch_fixture *ffix)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
struct pt_packet packet;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
memset(&packet, 0, sizeof(packet));
|
|
Packit |
b1f7ae |
packet.type = ppt_mode;
|
|
Packit |
b1f7ae |
packet.payload.mode.leaf = pt_mol_tsx;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptu_test(fetch_packet, ffix, &packet, &pt_decode_mode);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return ptu_passed();
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int main(int argc, char **argv)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
struct fetch_fixture ffix;
|
|
Packit |
b1f7ae |
struct ptunit_suite suite;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ffix.init = ffix_init;
|
|
Packit |
b1f7ae |
ffix.fini = ffix_fini;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
suite = ptunit_mk_suite(argc, argv);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptu_run_f(suite, fetch_null, ffix);
|
|
Packit |
b1f7ae |
ptu_run_f(suite, fetch_empty, ffix);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptu_run_f(suite, fetch_unknown, ffix);
|
|
Packit |
b1f7ae |
ptu_run_f(suite, fetch_unknown_ext, ffix);
|
|
Packit |
b1f7ae |
ptu_run_f(suite, fetch_unknown_ext2, ffix);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_pad, &pt_decode_pad);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_psb, &pt_decode_psb);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_tip, &pt_decode_tip);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_tnt_64, &pt_decode_tnt_64);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_tip_pge, &pt_decode_tip_pge);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_tip_pgd, &pt_decode_tip_pgd);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_fup, &pt_decode_fup);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_pip, &pt_decode_pip);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_ovf, &pt_decode_ovf);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_psbend, &pt_decode_psbend);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_tsc, &pt_decode_tsc);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_cbr, &pt_decode_cbr);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_tma, &pt_decode_tma);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_mtc, &pt_decode_mtc);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_cyc, &pt_decode_cyc);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_stop, &pt_decode_stop);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_vmcs, &pt_decode_vmcs);
|
|
Packit |
b1f7ae |
ptu_run_fp(suite, fetch_type, ffix, ppt_mnt, &pt_decode_mnt);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptu_run_f(suite, fetch_tnt_8, ffix);
|
|
Packit |
b1f7ae |
ptu_run_f(suite, fetch_mode_exec, ffix);
|
|
Packit |
b1f7ae |
ptu_run_f(suite, fetch_mode_tsx, ffix);
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
ptunit_report(&suite);
|
|
Packit |
b1f7ae |
return suite.nr_fails;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
/* Dummy decode functions to satisfy link dependencies.
|
|
Packit |
b1f7ae |
*
|
|
Packit |
b1f7ae |
* As a nice side-effect, we will know if we need to add more tests when
|
|
Packit |
b1f7ae |
* adding new decoder functions.
|
|
Packit |
b1f7ae |
*/
|
|
Packit |
b1f7ae |
int pt_pkt_decode_unknown(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_unknown(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_pad(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_pad(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_psb(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_psb(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_tip(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_tip(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_tnt_8(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_tnt_8(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_tnt_64(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_tnt_64(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_tip_pge(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_tip_pge(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_tip_pgd(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_tip_pgd(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_fup(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_fup(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_header_fup(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_pip(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_pip(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_header_pip(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_ovf(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_ovf(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_mode(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_mode(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_header_mode(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_psbend(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_psbend(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_tsc(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_tsc(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_header_tsc(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_cbr(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_cbr(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_header_cbr(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_tma(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_tma(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_mtc(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_mtc(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_cyc(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_cyc(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_stop(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_stop(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_vmcs(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_vmcs(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_header_vmcs(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
int pt_pkt_decode_mnt(struct pt_packet_decoder *d, struct pt_packet *p)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
(void) p;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|
|
Packit |
b1f7ae |
int pt_qry_decode_mnt(struct pt_query_decoder *d)
|
|
Packit |
b1f7ae |
{
|
|
Packit |
b1f7ae |
(void) d;
|
|
Packit |
b1f7ae |
|
|
Packit |
b1f7ae |
return -pte_internal;
|
|
Packit |
b1f7ae |
}
|