@@ -4,7 +4,7 @@ use std::ffi::CStr;
44use std:: fmt:: { Display , Formatter } ;
55use std:: error:: Error ;
66
7- use libipt_sys:: pt_errstr;
7+ use libipt_sys:: { pt_error_code , pt_errstr} ;
88use libipt_sys:: {
99 pt_error_code_pte_ok,
1010 pt_error_code_pte_internal,
@@ -40,61 +40,61 @@ use libipt_sys::{
4040#[ repr( i32 ) ]
4141pub enum PtErrorCode {
4242 /// No error. Everything is OK
43- Ok = pt_error_code_pte_ok,
43+ Ok = pt_error_code_pte_ok as i32 ,
4444 /// Internal decoder error
45- Internal = pt_error_code_pte_internal,
45+ Internal = pt_error_code_pte_internal as i32 ,
4646 /// Invalid argument
47- Invalid = pt_error_code_pte_invalid,
47+ Invalid = pt_error_code_pte_invalid as i32 ,
4848 /// Decoder out of sync
49- Nosync = pt_error_code_pte_nosync,
49+ Nosync = pt_error_code_pte_nosync as i32 ,
5050 /// Unknown opcode
51- BadOpc = pt_error_code_pte_bad_opc,
51+ BadOpc = pt_error_code_pte_bad_opc as i32 ,
5252 /// Unknown payload
53- BadPacket = pt_error_code_pte_bad_packet,
53+ BadPacket = pt_error_code_pte_bad_packet as i32 ,
5454 /// Unexpected packet context
55- BadContext = pt_error_code_pte_bad_context,
55+ BadContext = pt_error_code_pte_bad_context as i32 ,
5656 /// Decoder reached end of trace stream
57- Eos = pt_error_code_pte_eos,
57+ Eos = pt_error_code_pte_eos as i32 ,
5858 /// No packet matching the query to be found
59- BadQuery = pt_error_code_pte_bad_query,
59+ BadQuery = pt_error_code_pte_bad_query as i32 ,
6060 /// Decoder out of memory
61- Nomem = pt_error_code_pte_nomem,
61+ Nomem = pt_error_code_pte_nomem as i32 ,
6262 /// Bad configuration
63- BadConfig = pt_error_code_pte_bad_config,
63+ BadConfig = pt_error_code_pte_bad_config as i32 ,
6464 /// There is no IP
65- Noip = pt_error_code_pte_noip,
65+ Noip = pt_error_code_pte_noip as i32 ,
6666 /// The IP has been suppressed
67- IpSuppressed = pt_error_code_pte_ip_suppressed,
67+ IpSuppressed = pt_error_code_pte_ip_suppressed as i32 ,
6868 /// There is no memory mapped at the requested address
69- Nomap = pt_error_code_pte_nomap,
69+ Nomap = pt_error_code_pte_nomap as i32 ,
7070 /// An instruction could not be decoded
71- BadInsn = pt_error_code_pte_bad_insn,
71+ BadInsn = pt_error_code_pte_bad_insn as i32 ,
7272 /// No wall-clock time is available
73- NoTime = pt_error_code_pte_no_time,
73+ NoTime = pt_error_code_pte_no_time as i32 ,
7474 /// No core:bus ratio available
75- NoCbr = pt_error_code_pte_no_cbr,
75+ NoCbr = pt_error_code_pte_no_cbr as i32 ,
7676 /// Bad traced image
77- BadImage = pt_error_code_pte_bad_image,
77+ BadImage = pt_error_code_pte_bad_image as i32 ,
7878 /// A locking error
79- BadLock = pt_error_code_pte_bad_lock,
79+ BadLock = pt_error_code_pte_bad_lock as i32 ,
8080 /// The requested feature is not supported
81- NotSupported = pt_error_code_pte_not_supported,
81+ NotSupported = pt_error_code_pte_not_supported as i32 ,
8282 /// The return address stack is empty
83- RetstackEmpty = pt_error_code_pte_retstack_empty,
83+ RetstackEmpty = pt_error_code_pte_retstack_empty as i32 ,
8484 /// A compressed return is not indicated correctly by a taken branch
85- BadRetcomp = pt_error_code_pte_bad_retcomp,
85+ BadRetcomp = pt_error_code_pte_bad_retcomp as i32 ,
8686 /// The current decoder state does not match the state in the trace
87- BadStatusUpdate = pt_error_code_pte_bad_status_update,
87+ BadStatusUpdate = pt_error_code_pte_bad_status_update as i32 ,
8888 /// The trace did not contain an expected enabled event
89- NoEnable = pt_error_code_pte_no_enable,
89+ NoEnable = pt_error_code_pte_no_enable as i32 ,
9090 /// An event was ignored
91- EventIgnored = pt_error_code_pte_event_ignored,
91+ EventIgnored = pt_error_code_pte_event_ignored as i32 ,
9292 /// Something overflowed
93- Overflow = pt_error_code_pte_overflow,
93+ Overflow = pt_error_code_pte_overflow as i32 ,
9494 /// A file handling error
95- BadFile = pt_error_code_pte_bad_file,
95+ BadFile = pt_error_code_pte_bad_file as i32 ,
9696 /// Unknown cpu
97- BadCpu = pt_error_code_pte_bad_cpu,
97+ BadCpu = pt_error_code_pte_bad_cpu as i32 ,
9898
9999 /// No Error Information available
100100 NoInfo = -1
@@ -118,12 +118,12 @@ impl PtError {
118118 /// *error codes not included in the pt_error enum will panic!*
119119 #[ inline]
120120 pub ( crate ) fn from_code ( code : i32 ) -> Self {
121- // panicing here is fine since this should only be called
121+ // panicking here is fine since this should only be called
122122 // for return values of libipt functions
123123 // so invalid returns = bug in libipt or the bindings
124124 PtError :: new (
125125 PtErrorCode :: try_from ( -code) . unwrap ( ) ,
126- unsafe { CStr :: from_ptr ( pt_errstr ( -code) ) . to_str ( ) . unwrap ( ) }
126+ unsafe { CStr :: from_ptr ( pt_errstr ( -code as pt_error_code ) ) . to_str ( ) . unwrap ( ) }
127127 )
128128 }
129129
0 commit comments