forked from M-Labs/artiq-zynq
Compare commits
No commits in common. "dd32b6fe3fcde2c37e7091325c36c19e0d31aab5" and "6590084a1f9c23c7a1381f0c43e492ea78d983ef" have entirely different histories.
dd32b6fe3f
...
6590084a1f
|
@ -154,7 +154,7 @@ mod remote_coremgmt {
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let mut buffer = Vec::new();
|
let mut buffer = Vec::new();
|
||||||
loop {
|
loop {
|
||||||
let reply = drtio::aux_transact(
|
match drtio::aux_transact(
|
||||||
aux_mutex,
|
aux_mutex,
|
||||||
linkno,
|
linkno,
|
||||||
routing_table,
|
routing_table,
|
||||||
|
@ -164,10 +164,9 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?
|
||||||
|
{
|
||||||
match reply {
|
Packet::CoreMgmtGetLogReply { last, length, data } => {
|
||||||
Ok(Packet::CoreMgmtGetLogReply { last, length, data }) => {
|
|
||||||
buffer.extend(&data[..length as usize]);
|
buffer.extend(&data[..length as usize]);
|
||||||
if last {
|
if last {
|
||||||
write_i8(stream, Reply::LogContent as i8).await?;
|
write_i8(stream, Reply::LogContent as i8).await?;
|
||||||
|
@ -175,16 +174,10 @@ mod remote_coremgmt {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
return Err(drtio::Error::UnexpectedReply.into());
|
return Err(drtio::Error::UnexpectedReply.into());
|
||||||
}
|
}
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
|
||||||
return Err(e.into());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -204,22 +197,16 @@ mod remote_coremgmt {
|
||||||
&Packet::CoreMgmtClearLogRequest { destination },
|
&Packet::CoreMgmtClearLogRequest { destination },
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
match reply {
|
match reply {
|
||||||
Ok(Packet::CoreMgmtAck) => {
|
Packet::CoreMgmtAck => {
|
||||||
write_i8(stream, Reply::Success as i8).await?;
|
write_i8(stream, Reply::Success as i8).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
Err(drtio::Error::UnexpectedReply.into())
|
return Err(drtio::Error::UnexpectedReply.into());
|
||||||
}
|
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
|
||||||
Err(e.into())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -245,7 +232,7 @@ mod remote_coremgmt {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
let reply = drtio::aux_transact(
|
match drtio::aux_transact(
|
||||||
aux_mutex,
|
aux_mutex,
|
||||||
linkno,
|
linkno,
|
||||||
routing_table,
|
routing_table,
|
||||||
|
@ -255,20 +242,13 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await
|
||||||
|
{
|
||||||
match reply {
|
|
||||||
Ok(Packet::CoreMgmtGetLogReply { last: _, length, data }) => {
|
Ok(Packet::CoreMgmtGetLogReply { last: _, length, data }) => {
|
||||||
write_chunk(stream, &data[..length as usize]).await?;
|
write_chunk(stream, &data[..length as usize]).await?;
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
_ => return Err(drtio::Error::UnexpectedReply.into()),
|
||||||
return Err(drtio::Error::UnexpectedReply.into());
|
|
||||||
}
|
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
return Err(e.into());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,22 +274,16 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
match reply {
|
match reply {
|
||||||
Ok(Packet::CoreMgmtAck) => {
|
Packet::CoreMgmtAck => {
|
||||||
write_i8(stream, Reply::Success as i8).await?;
|
write_i8(stream, Reply::Success as i8).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
Err(drtio::Error::UnexpectedReply.into())
|
return Err(drtio::Error::UnexpectedReply.into());
|
||||||
}
|
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
|
||||||
Err(e.into())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -333,22 +307,16 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
match reply {
|
match reply {
|
||||||
Ok(Packet::CoreMgmtAck) => {
|
Packet::CoreMgmtAck => {
|
||||||
write_i8(stream, Reply::Success as i8).await?;
|
write_i8(stream, Reply::Success as i8).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
Err(drtio::Error::UnexpectedReply.into())
|
return Err(drtio::Error::UnexpectedReply.into());
|
||||||
}
|
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
|
||||||
Err(e.into())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -378,12 +346,12 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
let mut buffer = Vec::<u8>::new();
|
let mut buffer = Vec::<u8>::new();
|
||||||
loop {
|
loop {
|
||||||
match reply {
|
match reply {
|
||||||
Ok(Packet::CoreMgmtConfigReadReply { last, length, value }) => {
|
Packet::CoreMgmtConfigReadReply { last, length, value } => {
|
||||||
buffer.extend(&value[..length as usize]);
|
buffer.extend(&value[..length as usize]);
|
||||||
|
|
||||||
if last {
|
if last {
|
||||||
|
@ -401,18 +369,13 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
_ => {
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
return Err(drtio::Error::UnexpectedReply.into());
|
return Err(drtio::Error::UnexpectedReply.into());
|
||||||
}
|
}
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
|
||||||
return Err(e.into());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -446,9 +409,9 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
|reply| match reply {
|
|reply| match reply {
|
||||||
Packet::CoreMgmtAck => Ok(()),
|
Packet::CoreMgmtAck => Ok(()),
|
||||||
packet => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
error!("received unknown packet");
|
||||||
Err(drtio::Error::UnexpectedReply)
|
Err(drtio::Error::UnexpectedReply.into())
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -458,10 +421,9 @@ mod remote_coremgmt {
|
||||||
write_i8(stream, Reply::Success as i8).await?;
|
write_i8(stream, Reply::Success as i8).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Err(e) => {
|
error => {
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
Err(e.into())
|
error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -491,23 +453,17 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
match reply {
|
match reply {
|
||||||
Ok(Packet::CoreMgmtAck) => {
|
Packet::CoreMgmtAck => {
|
||||||
write_i8(stream, Reply::Success as i8).await?;
|
write_i8(stream, Reply::Success as i8).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
Err(drtio::Error::UnexpectedReply.into())
|
Err(drtio::Error::UnexpectedReply.into())
|
||||||
}
|
}
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
|
||||||
Err(e.into())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -528,23 +484,17 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
match reply {
|
match reply {
|
||||||
Ok(Packet::CoreMgmtAck) => {
|
Packet::CoreMgmtAck => {
|
||||||
write_i8(stream, Reply::Success as i8).await?;
|
write_i8(stream, Reply::Success as i8).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
Err(drtio::Error::UnexpectedReply.into())
|
Err(drtio::Error::UnexpectedReply.into())
|
||||||
}
|
}
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
|
||||||
Err(e.into())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -566,23 +516,18 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
match reply {
|
match reply {
|
||||||
Ok(Packet::CoreMgmtAck) => {
|
Packet::CoreMgmtAck => {
|
||||||
write_i8(stream, Reply::RebootImminent as i8).await?;
|
write_i8(stream, Reply::RebootImminent as i8).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
error!("received unknown packet");
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
Err(drtio::Error::UnexpectedReply.into())
|
Err(drtio::Error::UnexpectedReply.into())
|
||||||
}
|
}
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
write_i8(stream, Reply::Error as i8).await?;
|
|
||||||
Err(e.into())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -603,21 +548,18 @@ mod remote_coremgmt {
|
||||||
},
|
},
|
||||||
timer,
|
timer,
|
||||||
)
|
)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
match reply {
|
match reply {
|
||||||
Ok(Packet::CoreMgmtAck) => {
|
Packet::CoreMgmtAck => {
|
||||||
write_i8(stream, Reply::Success as i8).await?;
|
write_i8(stream, Reply::Success as i8).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Ok(packet) => {
|
_ => {
|
||||||
error!("received unexpected aux packet: {:?}", packet);
|
error!("received unknown packet");
|
||||||
|
write_i8(stream, Reply::Error as i8).await?;
|
||||||
Err(drtio::Error::UnexpectedReply.into())
|
Err(drtio::Error::UnexpectedReply.into())
|
||||||
}
|
}
|
||||||
Err(e) => {
|
|
||||||
error!("aux packet error ({})", e);
|
|
||||||
Err(e.into())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -639,7 +581,7 @@ mod local_coremgmt {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn pull_log(stream: &mut TcpStream, pull_id: &Rc<RefCell<u32>>) -> Result<()> {
|
pub async fn pull_log<'a>(stream: &'a mut TcpStream, pull_id: &Rc<RefCell<u32>>) -> Result<()> {
|
||||||
let id = {
|
let id = {
|
||||||
let mut guard = pull_id.borrow_mut();
|
let mut guard = pull_id.borrow_mut();
|
||||||
*guard += 1;
|
*guard += 1;
|
||||||
|
@ -696,7 +638,12 @@ mod local_coremgmt {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn config_write(stream: &mut TcpStream, cfg: &Rc<Config>, key: &String, value: Vec<u8>) -> Result<()> {
|
pub async fn config_write<'a>(
|
||||||
|
stream: &mut TcpStream,
|
||||||
|
cfg: &Rc<Config>,
|
||||||
|
key: &'a String,
|
||||||
|
value: Vec<u8>,
|
||||||
|
) -> Result<()> {
|
||||||
let value = cfg.write(&key, value);
|
let value = cfg.write(&key, value);
|
||||||
if value.is_ok() {
|
if value.is_ok() {
|
||||||
debug!("write success");
|
debug!("write success");
|
||||||
|
@ -709,7 +656,7 @@ mod local_coremgmt {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn config_remove(stream: &mut TcpStream, cfg: &Rc<Config>, key: &String) -> Result<()> {
|
pub async fn config_remove<'a>(stream: &mut TcpStream, cfg: &Rc<Config>, key: &'a String) -> Result<()> {
|
||||||
let value = cfg.remove(&key);
|
let value = cfg.remove(&key);
|
||||||
if value.is_ok() {
|
if value.is_ok() {
|
||||||
debug!("erase success");
|
debug!("erase success");
|
||||||
|
|
Loading…
Reference in New Issue