@@ -26,7 +26,6 @@ pub unsafe trait ExceptionNumber: Copy {
2626 fn number ( self ) -> usize ;
2727
2828 /// Tries to convert a number to a valid exception.
29- /// If the conversion fails, it returns an error with the number back.
3029 fn from_number ( value : usize ) -> Result < Self > ;
3130}
3231
@@ -51,8 +50,7 @@ pub unsafe trait InterruptNumber: Copy {
5150 /// Converts an interrupt source to its corresponding number.
5251 fn number ( self ) -> usize ;
5352
54- /// Tries to convert a number to a valid interrupt source.
55- /// If the conversion fails, it returns an error with the number back.
53+ /// Tries to convert a number to a valid interrupt.
5654 fn from_number ( value : usize ) -> Result < Self > ;
5755}
5856
@@ -83,7 +81,7 @@ pub unsafe trait ExternalInterruptNumber: InterruptNumber {}
8381/// Trait for enums of priority levels.
8482///
8583/// This trait should be implemented by a peripheral access crate (PAC) on its enum of available
86- /// priority numbers for a specific device. Each variant must convert to a `u8 ` of its priority level.
84+ /// priority numbers for a specific device. Each variant must convert to a `usize ` of its priority level.
8785///
8886/// # Safety
8987///
@@ -95,20 +93,19 @@ pub unsafe trait ExternalInterruptNumber: InterruptNumber {}
9593/// * `MAX_PRIORITY_NUMBER` must coincide with the highest allowed priority number.
9694pub unsafe trait PriorityNumber : Copy {
9795 /// Number assigned to the highest priority level.
98- const MAX_PRIORITY_NUMBER : u8 ;
96+ const MAX_PRIORITY_NUMBER : usize ;
9997
10098 /// Converts a priority level to its corresponding number.
101- fn number ( self ) -> u8 ;
99+ fn number ( self ) -> usize ;
102100
103101 /// Tries to convert a number to a valid priority level.
104- /// If the conversion fails, it returns an error with the number back.
105- fn from_number ( value : u8 ) -> Result < Self > ;
102+ fn from_number ( value : usize ) -> Result < Self > ;
106103}
107104
108105/// Trait for enums of HART identifiers.
109106///
110107/// This trait should be implemented by a peripheral access crate (PAC) on its enum of available
111- /// HARTs for a specific device. Each variant must convert to a `u16 ` of its HART ID number.
108+ /// HARTs for a specific device. Each variant must convert to a `usize ` of its HART ID number.
112109///
113110/// # Safety
114111///
@@ -120,14 +117,13 @@ pub unsafe trait PriorityNumber: Copy {
120117/// * `MAX_HART_ID_NUMBER` must coincide with the highest allowed HART ID number.
121118pub unsafe trait HartIdNumber : Copy {
122119 /// Highest number assigned to a context.
123- const MAX_HART_ID_NUMBER : u16 ;
120+ const MAX_HART_ID_NUMBER : usize ;
124121
125122 /// Converts a HART ID to its corresponding number.
126- fn number ( self ) -> u16 ;
123+ fn number ( self ) -> usize ;
127124
128125 /// Tries to convert a number to a valid HART ID.
129- /// If the conversion fails, it returns an error with the number back.
130- fn from_number ( value : u16 ) -> Result < Self > ;
126+ fn from_number ( value : usize ) -> Result < Self > ;
131127}
132128
133129#[ cfg( test) ]
@@ -201,40 +197,40 @@ mod test {
201197 }
202198
203199 unsafe impl PriorityNumber for Priority {
204- const MAX_PRIORITY_NUMBER : u8 = Self :: P3 as u8 ;
200+ const MAX_PRIORITY_NUMBER : usize = Self :: P3 as usize ;
205201
206202 #[ inline]
207- fn number ( self ) -> u8 {
203+ fn number ( self ) -> usize {
208204 self as _
209205 }
210206
211207 #[ inline]
212- fn from_number ( number : u8 ) -> Result < Self > {
208+ fn from_number ( number : usize ) -> Result < Self > {
213209 match number {
214210 0 => Ok ( Priority :: P0 ) ,
215211 1 => Ok ( Priority :: P1 ) ,
216212 2 => Ok ( Priority :: P2 ) ,
217213 3 => Ok ( Priority :: P3 ) ,
218- _ => Err ( Error :: InvalidVariant ( number as _ ) ) ,
214+ _ => Err ( Error :: InvalidVariant ( number) ) ,
219215 }
220216 }
221217 }
222218
223219 unsafe impl HartIdNumber for HartId {
224- const MAX_HART_ID_NUMBER : u16 = Self :: H2 as u16 ;
220+ const MAX_HART_ID_NUMBER : usize = Self :: H2 as usize ;
225221
226222 #[ inline]
227- fn number ( self ) -> u16 {
223+ fn number ( self ) -> usize {
228224 self as _
229225 }
230226
231227 #[ inline]
232- fn from_number ( number : u16 ) -> Result < Self > {
228+ fn from_number ( number : usize ) -> Result < Self > {
233229 match number {
234230 0 => Ok ( HartId :: H0 ) ,
235231 1 => Ok ( HartId :: H1 ) ,
236232 2 => Ok ( HartId :: H2 ) ,
237- _ => Err ( Error :: InvalidVariant ( number as _ ) ) ,
233+ _ => Err ( Error :: InvalidVariant ( number) ) ,
238234 }
239235 }
240236 }
0 commit comments