亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sys_loopback_pl_2_in_rx.uc

?? 開發Inetl IXP2400平臺所必須的硬件診斷和測試程序。該軟件包支持的功能包括CPU基本功能檢測
?? UC
字號:
/* line_rate_bw_in_rx.uc
 *
 *
 *
 * NOTE: THIS IS NOT A PERFORMANCE BENCHMARK!!!! IT IS JUST TO CHECK IF THE
 *       HARDWARE IS ABLE TO HANDLE DATA AT THE LINERATE THAT IS BEING
 *       PUMPED INTO THE SYSTEM
 *
 *---------------------------------------------------------------------------
 *                                                                      
 *                  I N T E L   P R O P R I E T A R Y                   
 *                                                                      
 *     COPYRIGHT (c)  2002 BY  INTEL  CORPORATION.  ALL RIGHTS          
 *     RESERVED.   NO  PART  OF THIS PROGRAM  OR  PUBLICATION  MAY      
 *     BE  REPRODUCED,   TRANSMITTED,   TRANSCRIBED,   STORED  IN  A    
 *     RETRIEVAL SYSTEM, OR TRANSLATED INTO ANY LANGUAGE OR COMPUTER    
 *     LANGUAGE IN ANY FORM OR BY ANY MEANS, ELECTRONIC, MECHANICAL,    
 *     MAGNETIC,  OPTICAL,  CHEMICAL, MANUAL, OR OTHERWISE,  WITHOUT    
 *     THE PRIOR WRITTEN PERMISSION OF :                                
 *                                                                      
 *                        INTEL  CORPORATION                            
 *                                                                     
 *                     2200 MISSION COLLEGE BLVD                        
 *                                                                      
 *               SANTA  CLARA,  CALIFORNIA  95052-8119                  
 *                                                                      
 *---------------------------------------------------------------------------
 *
 *
 *  system: IXDP2400
 *  subsystem: DIAG
 *  author: dalsraja, November 11, 2002
 *  revisions:
 * 
 * 
 * --------------------------------------------------------------------------
 */


#include "common_uc.h"
#include "sys_loopback_pl_2.h"

#define RX_TRANSFER_THREAD				&$TransferReg00
#define RX_SIGNAL						&rx_sig

#define NEXT_CTX_SIGNAL_NUM				IN_SAME_ME_SIG_NUM
#define NEXT_CTX_SIG_DATA				((1 << 7) | (NEXT_CTX_SIGNAL_NUM << 3))

.reg cur_me cur_ctx
.reg same_me_sig_info
.reg sram_channel_number t0
.reg ring
.reg RxConfigData
.reg $TransferReg00 $TransferReg01
.reg RBuf_Base Rbuf_Elem_Done Rx_Thd_Freelist
.reg null elem bytecnt rx_port_num
//.reg error sopbit eopbit
.reg $sr0
.reg $ring_data
.reg @sramDescBase @dramPacketBase
.reg $rbuf_data @sequence_data seq_update_addr

.sig rx_sig same_me_sig inter_me_sig
.sig scratch_sig sram_sig dram_sig msf_sig scratch_seq_sig

.xfer_order $TransferReg00 $TransferReg01

.set $TransferReg00

.set_sig inter_me_sig

.addr same_me_sig IN_SAME_ME_SIG_NUM
.addr inter_me_sig IN_INTER_ME_SIG_NUM


// *****************************************
// Get current ME and ctx info
// *****************************************
.begin
	.reg temp
	local_csr_rd[ACTIVE_CTX_STS]
	immed[temp, 0]
	alu[cur_me, 0x1F, AND, temp, >>3]	// Extract the current ME number
	alu[cur_ctx, 0x7, AND, temp]		// Extract the current context number
.end

	.if (cur_me == 0)
		immed[Rx_Thd_Freelist, RX_THREAD_FREELIST_0]
	.elif (cur_me == 1)
		immed[Rx_Thd_Freelist, RX_THREAD_FREELIST_1]
	.elif (cur_me == 2)
		immed[Rx_Thd_Freelist, RX_THREAD_FREELIST_2]
	.else
		immed[Rx_Thd_Freelist, RX_THREAD_FREELIST_3]
	.endif

freelist_addr_done#:
	immed[ring, (RING_0 << 2)]			// ring number in a register
	immed[seq_update_addr, SEQ_UPDATE_BASE]
	alu[seq_update_addr, seq_update_addr, OR, cur_me, <<2]

	alu[sram_channel_number, --, B, CHAN_NUMBER, <<SRAM_CHANNEL_NUMBER_FIELD]
	alu[t0, sram_channel_number, OR, Q_NUMBER, <<SRAM_Q_ARRAY_NUMBER_FIELD]

	immed[RBuf_Base, RBUF_TBUF ]
	immed[Rbuf_Elem_Done, RBUF_ELEMENT_DONE]

//	immed[same_me_sig_info, NEXT_CTX_SIG_DATA]
	.if (cur_ctx == 0)
		immed[same_me_sig_info, (1 | (NEXT_CTX_SIGNAL_NUM << 3))]
//	.elif (cur_ctx == 1)
//		immed[same_me_sig_info, (0 | (NEXT_CTX_SIGNAL_NUM << 3))]
	.else
//		immed[same_me_sig_info, 0]		// Just to avoid warning
		ctx_arb[kill]
	.endif

.begin
	.reg RxThreadList
	immed[RxThreadList, (RX_SIGNAL << 12)]
	alu[RxThreadList, RxThreadList, OR, cur_me, <<7]
	alu[RxThreadList, RxThreadList, OR, cur_ctx, <<4]
	alu[RxConfigData, RxThreadList,  OR , RX_TRANSFER_THREAD]
	alu[RxConfigData, --,  B, RxConfigData, <<16]		// Shift 16 for msf[fast_wr...]
.end

	ctx_arb[voluntary]			// Swap out and let next ctx complete the init
	br!=ctx[0, init_done#]


// *****************************************
// Initialisation by ctx 0 of each ME
// *****************************************
init_thread0_only#:
	immed[@sramDescBase, (IN_SRAM_DESC_BASE & MASK_16BIT)]
	immed_w1[@sramDescBase, ((IN_SRAM_DESC_BASE >> 16) & MASK_16BIT)]

	immed[@dramPacketBase, (IN_DRAM_PCKT_BASE & MASK_16BIT)]
	immed_w1[@dramPacketBase, ((IN_DRAM_PCKT_BASE >> 16) & MASK_16BIT)]

wait_for_inter_me_sig#:
	br_!signal[inter_me_sig, wait_for_inter_me_sig#]

init_done#:
	.set_sig same_me_sig
	br=ctx[0, StartReceive#]	// If ctx 0, branch to label to start start receiving
	ctx_arb[same_me_sig]
	
StartReceive#:
ReceiveNextPacket#:
	.set_sig rx_sig same_me_sig
//	local_csr_wr[SAME_ME_SIGNAL, same_me_sig_info]
	msf[fast_wr, --, Rx_Thd_Freelist, RxConfigData] // add thread to freelist
//	ctx_arb[rx_sig, same_me_sig]
	ctx_arb[rx_sig]


// RSW should be in xfer register
// Transfer RBUF data to sram_in transfer registers
//***************************************
// Extract RSW
//***************************************
RSW#:
	alu[null, 0x1, AND, $TransferReg00, >>9]		// Extract null
	bne[NULL#]										// If null=1, result=0

//	alu[error, 0x1, AND, $TransferReg00, >>13]		// Extract error	

	.set_sig same_me_sig
//	local_csr_wr[SAME_ME_SIGNAL, same_me_sig_info]

	sram[dequeue, $sr0, t0, 0], sig_done[sram_sig]	// Get a buffer from the queue

	alu[elem, --, B, $TransferReg00, >>24]			// RBUF element number
//	alu[sopbit, 0x1, AND, $TransferReg00, >>15]		// Check SOP
//	alu[eopbit, 0x1, AND, $TransferReg00, >>14]		// Check EOP
	alu[bytecnt, 0xFF, AND, $TransferReg00, >>16]	// Extract byte count
	alu[rx_port_num, 0xF, AND, $TransferReg00]		// Extract channel info

.begin
	.reg refcnt ind_ref_data $msf_data RBufOffset
	
	alu[RBufOffset, --, B, elem, <<IN_RBUF_ADDR_SHF]
	alu[ind_ref_data, RBuf_Base, +, RBufOffset]

	msf[read, $msf_data, RBuf_Base, RBufOffset, 1], sig_done[msf_sig]

//****************************************************
// Calculate the reference count for dram[rbuf_rd...]
//****************************************************
	alu[refcnt, --, B, bytecnt, >>3]
	alu[--, bytecnt, AND, 0x7]
	bne[set_refcnt_overwrite_bit#]
	alu[refcnt, refcnt, -, 1]
set_refcnt_overwrite_bit#:
	alu[refcnt, refcnt, OR, 1, <<4]		// Set the overwrite bit for refcnt

//	ctx_arb[sram_sig, same_me_sig], defer[1]
	ctx_arb[sram_sig, msf_sig], defer[1]
	alu[ind_ref_data, (1 << 4), OR, ind_ref_data, <<5]		// shift rbuf addr and set the overwrite bit

	.set_sig same_me_sig
//	local_csr_wr[SAME_ME_SIGNAL, same_me_sig_info]


.local pkt_buff_addr rel freebuffer bdptr ring_data $sram_data $seq_num
//*************************************************************
// Calculate packet buffer address where packet will be stored
//*************************************************************
	alu[freebuffer, --, B, $sr0, <<2]		// Shift 2 as address obtained is longword address
	alu[rel, freebuffer, -, @sramDescBase]
	alu[rel, --, B, rel, <<5]
	alu[pkt_buff_addr, @dramPacketBase, +, rel]	


//****************************************************
// Move from RBUF to DRAM
//****************************************************
	alu[ind_ref_data, ind_ref_data, OR, refcnt, <<21]	// shift refcnt and add for indirect ref
	dram[rbuf_rd, --, pkt_buff_addr, 0, 8], indirect_ref, sig_done[dram_sig]


//****************************************************
// Put packet info in SRAM
//****************************************************
	alu[$sram_data, rx_port_num, OR, bytecnt, <<4]
	sram[write, $sram_data, freebuffer, sram_channel_number, 1], sig_done[sram_sig]

//****************************************************
// Put buffer address in scratch ring
//****************************************************
	alu[$ring_data, --, B, freebuffer]
check_ring_full#:
	br_inp_state[SCR_Ring0_Full, check_ring_full#]
	scratch[put, $ring_data, ring, 0, 1], sig_done[scratch_sig]

	alu[$seq_num, --, B, $msf_data, >>24]
	scratch[write, $seq_num, seq_update_addr, 0, 1], sig_done[scratch_seq_sig]
//	ctx_arb[sram_sig, dram_sig, scratch_sig, same_me_sig]//, defer[1]
	ctx_arb[sram_sig, dram_sig, scratch_sig, scratch_seq_sig]
.endlocal		// pkt_buff_addr
.end


//	.set_sig same_me_sig
//	local_csr_wr[SAME_ME_SIGNAL, same_me_sig_info]


//**************************************************************
//  Free up Element by writing to RBUF_Element_Done
//**************************************************************
.begin
	.reg rbuf_elem_done_data
	alu[rbuf_elem_done_data, --, B, elem, <<16]
	msf[fast_wr, --, rbuf_elem_done_data, RBUF_ELEMENT_DONE]
.end

//	ctx_arb[scratch_sig, same_me_sig]

NULL#:
next_packet#:
	br[ReceiveNextPacket#]			// loop around and wait for next packet

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米影视一区二区三区小说| 亚洲高清免费观看| 精品视频资源站| 国产一区啦啦啦在线观看| 一区精品在线播放| 日韩欧美中文字幕一区| 不卡一区在线观看| 欧美日本视频在线| 欧美mv日韩mv亚洲| 色欧美乱欧美15图片| 国产一二精品视频| 日本不卡在线视频| 亚洲成人av在线电影| 久久五月婷婷丁香社区| 欧美日韩一区在线观看| 成人午夜av电影| 成人午夜激情视频| 国产精品夜夜爽| 国产成人三级在线观看| 老司机精品视频导航| 亚洲欧美日韩中文字幕一区二区三区| 亚洲色欲色欲www在线观看| 91麻豆精品国产91| 欧美一区二区三区免费大片| 欧美美女一区二区| 69p69国产精品| 日韩无一区二区| 精品剧情在线观看| 久久老女人爱爱| 日韩午夜在线观看视频| 日韩欧美高清一区| 精品99一区二区| 日本一区二区三区高清不卡| 国产精品久久久久久久久久免费看| 久久久综合视频| 久久99在线观看| 成人综合在线观看| 色悠悠亚洲一区二区| 欧美日韩一区不卡| 欧美人牲a欧美精品| 欧美日韩在线播放一区| 日韩免费看的电影| 中文字幕不卡三区| 午夜精品视频在线观看| 国产一区二区精品在线观看| 成人av影视在线观看| 欧美色老头old∨ideo| 欧美久久久影院| 国产日韩高清在线| 亚洲电影一区二区| 成人性视频免费网站| 欧美日韩情趣电影| 国产精品久久免费看| 青青草91视频| 日韩三级在线观看| 国产精品热久久久久夜色精品三区| 国产精品国产三级国产普通话蜜臀 | 99re视频这里只有精品| 欧美日韩你懂得| 亚洲女同一区二区| 粉嫩高潮美女一区二区三区 | 精品一区二区三区免费播放| 岛国精品一区二区| 日韩一区二区三区观看| 欧美韩国日本不卡| 精品亚洲porn| 日韩视频国产视频| 三级久久三级久久久| 欧美视频一区二区三区在线观看| 国产亚洲欧美一区在线观看| 麻豆成人av在线| 欧美精品粉嫩高潮一区二区| 亚洲欧美福利一区二区| 成人午夜伦理影院| 国产精品美女久久久久久久久| 欧美性做爰猛烈叫床潮| 中文字幕中文乱码欧美一区二区| 国产麻豆日韩欧美久久| 久久午夜电影网| 强制捆绑调教一区二区| 欧美一区三区四区| 卡一卡二国产精品 | 日本麻豆一区二区三区视频| 一本色道综合亚洲| 亚洲一卡二卡三卡四卡| 欧美高清视频一二三区 | 国产一本一道久久香蕉| 亚洲精品在线电影| 福利一区二区在线观看| 亚洲精品中文在线影院| 欧美日韩精品免费| 国产中文字幕一区| 精品国产一区二区三区忘忧草 | 大桥未久av一区二区三区中文| 国产片一区二区| 欧美在线一区二区三区| 美腿丝袜在线亚洲一区 | 日韩激情一二三区| 精品不卡在线视频| 91在线码无精品| 亚洲精品久久久久久国产精华液| 欧美理论在线播放| 国产成人精品在线看| 亚洲成av人片一区二区三区| 精品国产免费一区二区三区四区 | 午夜视频在线观看一区| 日韩av网站免费在线| 国产精品久久三| 精品国产123| 欧美午夜片在线看| 国产成人av电影在线| 奇米色一区二区三区四区| 亚洲视频狠狠干| 国产精品国产三级国产普通话99 | 精品国产乱码久久久久久图片| 色偷偷一区二区三区| 中文字幕一区在线观看| 欧美—级在线免费片| 精品久久一区二区| 精品国产露脸精彩对白| 欧美变态凌虐bdsm| 久久嫩草精品久久久精品| 久久综合九色综合97_久久久| 精品日韩欧美在线| 久久久亚洲综合| 日韩一区在线免费观看| 亚洲欧美成aⅴ人在线观看| 亚洲一区在线观看免费| 亚洲va欧美va国产va天堂影院| 亚洲香蕉伊在人在线观| 日产国产欧美视频一区精品| 蜜臀va亚洲va欧美va天堂| 国产乱子轮精品视频| 99久久精品免费看| 欧美性做爰猛烈叫床潮| 欧美一区二区高清| 久久精品一区蜜桃臀影院| 中文一区在线播放| 亚洲一区二区三区中文字幕| 99免费精品在线| 3d成人动漫网站| 国产精品热久久久久夜色精品三区| 中文字幕一区二区三区在线观看| 一区二区三区久久| 国内精品视频666| 欧美日韩一二三区| 久久精品一区四区| 视频一区二区不卡| 91在线国产福利| 久久久久久久精| 婷婷六月综合亚洲| 在线一区二区三区做爰视频网站| 欧美mv日韩mv国产网站| 亚洲图片欧美综合| 99久久精品国产一区二区三区| a4yy欧美一区二区三区| 亚洲激情自拍视频| ●精品国产综合乱码久久久久 | 国产成人午夜精品5599| 欧美一区二区三区小说| 亚洲第一综合色| 91啪在线观看| 亚洲丝袜另类动漫二区| 国产乱码精品一品二品| 精品日韩成人av| 青青草97国产精品免费观看 | 国产精品久久久久久久午夜片| 韩国三级在线一区| 精品99久久久久久| 国产一区二区三区高清播放| 日韩一区二区不卡| 国产成人免费网站| 久久夜色精品一区| 黄色日韩三级电影| 国产日本欧美一区二区| 福利视频网站一区二区三区| 国产精品理论片在线观看| 色综合久久天天| 亚洲成人精品一区| 欧美大片顶级少妇| 国产黑丝在线一区二区三区| 国产精品短视频| 一本久道中文字幕精品亚洲嫩| 亚洲综合色噜噜狠狠| 欧美丰满嫩嫩电影| 国产乱码精品1区2区3区| 国产精品国产三级国产aⅴ入口| 日本精品视频一区二区| 美日韩一区二区三区| 亚洲在线观看免费视频| 91精品国产91综合久久蜜臀| 激情六月婷婷久久| 亚洲人成网站色在线观看| 欧美一级日韩一级| 91在线精品秘密一区二区| 日韩精品福利网| 亚洲男人电影天堂| 久久精品在线观看| 欧美男男青年gay1069videost| 国产寡妇亲子伦一区二区|