the smallest yet worst typo i've done so far
This commit is contained in:
		
							parent
							
								
									046ca01923
								
							
						
					
					
						commit
						8035172bdb
					
				
					 2 changed files with 2 additions and 42 deletions
				
			
		
							
								
								
									
										42
									
								
								src/lib.rs
									
										
									
									
									
								
							
							
						
						
									
										42
									
								
								src/lib.rs
									
										
									
									
									
								
							| 
						 | 
					@ -63,24 +63,11 @@ mod tests;
 | 
				
			||||||
pub struct Args {
 | 
					pub struct Args {
 | 
				
			||||||
    pub service: NTSTR,
 | 
					    pub service: NTSTR,
 | 
				
			||||||
    // ieee 1275, 2.4.1 General conventions: "All numbers on the stack are signed integers, _32 bits[...]"
 | 
					    // ieee 1275, 2.4.1 General conventions: "All numbers on the stack are signed integers, _32 bits[...]"
 | 
				
			||||||
    pub nrets: i32,
 | 
					 | 
				
			||||||
    pub nargs: i32,
 | 
					    pub nargs: i32,
 | 
				
			||||||
 | 
					    pub nrets: i32,
 | 
				
			||||||
    // inheriting structs will continue from here
 | 
					    // inheriting structs will continue from here
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// # ServiceResult
 | 
					 | 
				
			||||||
/// a generic structure for accessing the results of a service call
 | 
					 | 
				
			||||||
#[allow(dead_code)]
 | 
					 | 
				
			||||||
pub struct ServiceResult<'a> {
 | 
					 | 
				
			||||||
    /// whether or not the service call was successful
 | 
					 | 
				
			||||||
    pub success: bool,
 | 
					 | 
				
			||||||
    /// a buffer for storing the arguments and return values of the service call
 | 
					 | 
				
			||||||
    /// should not be used directly
 | 
					 | 
				
			||||||
    pub buf: &'a mut [i32],
 | 
					 | 
				
			||||||
    /// a slice of the buffer containing the return values of the service call
 | 
					 | 
				
			||||||
    pub rets: &'a [i32],
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/// # call!
 | 
					/// # call!
 | 
				
			||||||
/// a macro for calling OpenFirmware services
 | 
					/// a macro for calling OpenFirmware services
 | 
				
			||||||
/// ## example
 | 
					/// ## example
 | 
				
			||||||
| 
						 | 
					@ -126,9 +113,6 @@ macro_rules! call {
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
/// let entry_fn: EntryFunction = unimplemented!("get the entry function from somewhere");
 | 
					/// let entry_fn: EntryFunction = unimplemented!("get the entry function from somewhere");
 | 
				
			||||||
/// let package_instance: i32 = unimplemented!("get the package instance from somewhere");
 | 
					/// let package_instance: i32 = unimplemented!("get the package instance from somewhere");
 | 
				
			||||||
/// // note the usage of the `method_service_result!` macro instead of `service_result!`
 | 
					 | 
				
			||||||
/// // this is required as the `call_method!` macro requires a
 | 
					 | 
				
			||||||
/// // slightly different ServiceResult struct configuration
 | 
					 | 
				
			||||||
/// // <entry function>, <package instance>, <method name>, <# of args>, <# of rets>, <args...>
 | 
					/// // <entry function>, <package instance>, <method name>, <# of args>, <# of rets>, <args...>
 | 
				
			||||||
/// let (success, returns): (bool, [i32; 1]) = call_method!(entry_fn, package_instance, ntstr!("seek"), 2, 1, 0, 0);
 | 
					/// let (success, returns): (bool, [i32; 1]) = call_method!(entry_fn, package_instance, ntstr!("seek"), 2, 1, 0, 0);
 | 
				
			||||||
/// if success {
 | 
					/// if success {
 | 
				
			||||||
| 
						 | 
					@ -158,30 +142,6 @@ macro_rules! call_method {
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// # service_result!
 | 
					 | 
				
			||||||
/// a macro for creating a ServiceResult struct, used with the `call!` macro
 | 
					 | 
				
			||||||
#[macro_export]
 | 
					 | 
				
			||||||
macro_rules! service_result {
 | 
					 | 
				
			||||||
    ($nargs:expr, $nrets:expr) => { $crate::ServiceResult {
 | 
					 | 
				
			||||||
        success: false,
 | 
					 | 
				
			||||||
        buf: &mut [0; $nargs + $nrets],
 | 
					 | 
				
			||||||
        rets: &[],
 | 
					 | 
				
			||||||
    }};
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/// # method_service_result!
 | 
					 | 
				
			||||||
/// a macro for creating a ServiceResult struct, used with the `call_method!` macro
 | 
					 | 
				
			||||||
#[macro_export]
 | 
					 | 
				
			||||||
macro_rules! method_service_result {
 | 
					 | 
				
			||||||
    ($nargs:expr, $nrets:expr) => {
 | 
					 | 
				
			||||||
        $crate::ServiceResult {
 | 
					 | 
				
			||||||
            success: false,
 | 
					 | 
				
			||||||
            buf: &mut [0; $nargs + $nrets + 1],
 | 
					 | 
				
			||||||
            rets: &[],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/// # ofw_call
 | 
					/// # ofw_call
 | 
				
			||||||
/// a function to call any OpenFirmware-provided service
 | 
					/// a function to call any OpenFirmware-provided service
 | 
				
			||||||
/// usage of the macro `call!` is preferred, but this function can be used directly
 | 
					/// usage of the macro `call!` is preferred, but this function can be used directly
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@ fn call_ofw() {
 | 
				
			||||||
    let entry_fn: EntryFunction = test_entry_function;
 | 
					    let entry_fn: EntryFunction = test_entry_function;
 | 
				
			||||||
    let (success, results) = call!(entry_fn, ntstr!("test"), 1, 1, ntstr!("test"));
 | 
					    let (success, results) = call!(entry_fn, ntstr!("test"), 1, 1, ntstr!("test"));
 | 
				
			||||||
    assert!(success);
 | 
					    assert!(success);
 | 
				
			||||||
    assert_eq!(results[0], 0);
 | 
					    assert_eq!(results[0], OFW_FALSE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue