pub fn sidr_connect<'a>(
        &mut self,
        path: sa_path_rec,
        service_id: u64,
        qd_hint: u64,
    ) -> KernelResult<EndPoint> {
        self.done.init();
        let mut req: ib_cm_sidr_req_param = Default::default();

        let mut s_path = path.clone();
        req.path = &mut s_path as *mut sa_path_rec;
        req.service_id = unsafe { bd__builtin_bswap64(service_id as u64) };
        req.timeout_ms = 20;
        req.max_cm_retries = 3;

        self.cm.send_sidr(req, conn::Request::new(qd_hint))?;
        self.done.wait(crate::consts::CONNECT_TIME_OUT_MS as _)?;
        // extract out the result
        // not exist
        if !self.end_point.valid() {
            println!("remote side not exist!");
            return Err(Error::EINVAL);
        }
        Ok(self.end_point.transfer())
    }
/// Sidr connect to get the remote message
Sidr connect to get the remote message
Sidr connect to get the remote message
pub fn sidr_connect<'a>(
        &mut self,
        path: sa_path_rec,
        service_id: u64,
        qd_hint: u64,
    ) -> KernelResult<EndPoint> {
        self.done.init();
        let mut req: ib_cm_sidr_req_param = Default::default();
        let mut s_path = path.clone();
        req.path = &mut s_path as *mut sa_path_rec;
        req.service_id = unsafe { bd__builtin_bswap64(service_id as u64) };
        req.timeout_ms = 20;
        req.max_cm_retries = 3;
        self.cm.send_sidr(req, conn::Request::new(qd_hint))?;
        self.done.wait(crate::consts::CONNECT_TIME_OUT_MS as _)?;
        // extract out the result
        // not exist
        if !self.end_point.valid() {
            println!("remote side not exist!");
            return Err(Error::EINVAL);
        }
        Ok(self.end_point.transfer())
    }
pub fn sidr_connect < ' a > ( & mut self , path : sa_path_rec , service_id : u64 , qd_hint : u64 , ) -> KernelResult < EndPoint > { self . done . init ( ) ; let mut req : ib_cm_sidr_req_param = Default :: default ( ) ; let mut s_path = path . clone ( ) ; req . path = & mut s_path as * mut sa_path_rec ; req . service_id = unsafe { bd__builtin_bswap64 ( service_id as u64 ) } ; req . timeout_ms = 20 ; req . max_cm_retries = 3 ; self . cm . send_sidr ( req , conn :: Request :: new ( qd_hint ) ) ? ; self . done . wait ( crate :: consts :: CONNECT_TIME_OUT_MS as _ ) ? ; // extract out the result // not exist if ! self . end_point . valid ( ) { println ! ( " " ) ; return Err ( Error :: EINVAL ) ; } Ok ( self . end_point . transfer ( ) ) }
Sidr connect to get the remote message
Sidr connect to get the remote message
&mut self
path
sa_path_rec
service_id
u64
qd_hint
u64