fn measureSSection(elr: u64, sStoragePaddr_page: u64, scb: &mut SCB) {
	// elr points to a user space memory (vaddr)
	let elr_paddr = memutil::userVaddr2PaddrEx(elr, false /*not a page addr*/);
	// ymh_log(&format!("USER VADDR(0x{:X}) PADDR(0x{:X})\n\0", elr, elr_paddr));
	/*ymh_log_str("USER VADDR PADDR:\0");
	ymh_log_hex(elr);
	ymh_log_hex(elr_paddr);
	ymh_log_nl();*/

	let tempAddr = memutil::tempMap(elr);
	/*ymh_log_str("TEMPMAP() is done. Occupied temp-table count:\0");
	ymh_log_hex( memutil::getOccupiedTableCount());
	ymh_log_nl();*/

	// do the measurement!
	/*let k = unsafe {*(tempAddr as *const u32)};
	ymh_log_str("CODE_MEASURING:\0");
	ymh_log_hex( k as u64);
	ymh_log_nl();*/
	let mut node = SS_node::new();
	SHA1(tempAddr as *const u8, 20, &mut node.m_hashCal);
	// SHA1(tempAddr as *const u8, 4096, &mut node.m_hashCal);
	// rsHexdump(node.m_hashCal.as_ptr(), 20);
	scb.m_slist.push(node);

	memutil::tempUnmap(tempAddr);
	/*ymh_log_str("measurement is done. Occupied temp-table count:\0");
	ymh_log_hex( memutil::getOccupiedTableCount());
	ymh_log_nl();*/
}
/*
 * measureSSection() is called on every S-Section
 * e.g., if a S-Section contains a function call,
 *		measureSSection() is called two times: one for the root S-Section; the other for the function
 * Each time measureSSection() is called, measureSSection() adds a new SS_note instance containing starting and ending addresses and SHA1
 * With the Assumption_0, we assume that we know how manay SS_nodes should be added and their internal values (addresses and SHA1).
 *
 * 1. Does code measurement 
 * 2. Saves the value in an arbitrary location in sStoragePaddr_page
 * 3. Points the location using scb.sStoragePaddr
 */
measureSSection() is called on every S-Section
e.g., if a S-Section contains a function call,
measureSSection() is called two times: one for the root S-Section; the other for the function
Each time measureSSection() is called, measureSSection() adds a new SS_note instance containing starting and ending addresses and SHA1
With the Assumption_0, we assume that we know how manay SS_nodes should be added and their internal values (addresses and SHA1).

1. Does code measurement
2. Saves the value in an arbitrary location in sStoragePaddr_page
3. Points the location using scb.sStoragePaddr
measureSSection () is called on every S - Section e . g . if a S - Section contains a function call measureSSection () is called two times : one for the root S - Section ; the other for the function Each time measureSSection () is called measureSSection () adds a new SS_note instance containing starting and ending addresses and SHA1 With the Assumption_0 we assume that we know how manay SS_nodes should be added and their internal values ( addresses and SHA1 ) . 1 . Does code measurement 2 . Saves the value in an arbitrary location in sStoragePaddr_page 3 . Points the location using scb . sStoragePaddr
fn measureSSection(elr: u64, sStoragePaddr_page: u64, scb: &mut SCB) {
	// elr points to a user space memory (vaddr)
	let elr_paddr = memutil::userVaddr2PaddrEx(elr, false /*not a page addr*/);
	// ymh_log(&format!("USER VADDR(0x{:X}) PADDR(0x{:X})\n\0", elr, elr_paddr));
	/*ymh_log_str("USER VADDR PADDR:\0");
	ymh_log_hex(elr);
	ymh_log_hex(elr_paddr);
	ymh_log_nl();*/
	let tempAddr = memutil::tempMap(elr);
	/*ymh_log_str("TEMPMAP() is done. Occupied temp-table count:\0");
	ymh_log_hex( memutil::getOccupiedTableCount());
	ymh_log_nl();*/
	// do the measurement!
	/*let k = unsafe {*(tempAddr as *const u32)};
	ymh_log_str("CODE_MEASURING:\0");
	ymh_log_hex( k as u64);
	ymh_log_nl();*/
	let mut node = SS_node::new();
	SHA1(tempAddr as *const u8, 20, &mut node.m_hashCal);
	// SHA1(tempAddr as *const u8, 4096, &mut node.m_hashCal);
	// rsHexdump(node.m_hashCal.as_ptr(), 20);
	scb.m_slist.push(node);
	memutil::tempUnmap(tempAddr);
	/*ymh_log_str("measurement is done. Occupied temp-table count:\0");
	ymh_log_hex( memutil::getOccupiedTableCount());
	ymh_log_nl();*/
}
fn measureSSection ( elr : u64 , sStoragePaddr_page : u64 , scb : & mut SCB ) { // elr points to a user space memory (vaddr) let elr_paddr = memutil :: userVaddr2PaddrEx ( elr , false /*not a page addr*/ ) ; // ymh_log(&format!("USER VADDR(0x{:X}) PADDR(0x{:X})\n\0", elr, elr_paddr)); /*ymh_log_str("USER VADDR PADDR:\0");
	ymh_log_hex(elr);
	ymh_log_hex(elr_paddr);
	ymh_log_nl();*/ let tempAddr = memutil :: tempMap ( elr ) ; /*ymh_log_str("TEMPMAP() is done. Occupied temp-table count:\0");
	ymh_log_hex( memutil::getOccupiedTableCount());
	ymh_log_nl();*/ // do the measurement! /*let k = unsafe {*(tempAddr as *const u32)};
	ymh_log_str("CODE_MEASURING:\0");
	ymh_log_hex( k as u64);
	ymh_log_nl();*/ let mut node = SS_node :: new ( ) ; SHA1 ( tempAddr as * const u8 , 20 , & mut node . m_hashCal ) ; // SHA1(tempAddr as *const u8, 4096, &mut node.m_hashCal); // rsHexdump(node.m_hashCal.as_ptr(), 20); scb . m_slist . push ( node ) ; memutil :: tempUnmap ( tempAddr ) ; /*ymh_log_str("measurement is done. Occupied temp-table count:\0");
	ymh_log_hex( memutil::getOccupiedTableCount());
	ymh_log_nl();*/ }
measureSSection() is called on every S-Section
 e.g., if a S-Section contains a function call,
              measureSSection() is called two times: one for the root S-Section; the other for the function
 Each time measureSSection() is called, measureSSection() adds a new SS_note instance containing starting and ending addresses and SHA1
 With the Assumption_0, we assume that we know how manay SS_nodes should be added and their internal values (addresses and SHA1).
measureSSection () is called on every S - Section e . g . if a S - Section contains a function call measureSSection () is called two times : one for the root S - Section ; the other for the function Each time measureSSection () is called measureSSection () adds a new SS_note instance containing starting and ending addresses and SHA1 With the Assumption_0 we assume that we know how manay SS_nodes should be added and their internal values ( addresses and SHA1 ) .
elr
u64
sStoragePaddr_page
u64
scb
&mut SCB
elr
u64
sStoragePaddr_page
u64
scb
&mut SCB