⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hublb.h

📁 该文件是rt_linux
💻 H
📖 第 1 页 / 共 4 页
字号:
/************************************************************************ *                                                                      * *  These registers are scratch registers that are not reset. At a      * * register's normal address, it is a simple storage location. At a     * * register's Write-If-Zero address, it accepts a new value from a      * * write operation only if the current value is zero.                   * *                                                                      * ************************************************************************/typedef union lb_scratch_reg1_wz_u {	bdrkreg_t	lb_scratch_reg1_wz_regval;	struct  {		bdrkreg_t	srw_scratch_bits          :	64;	} lb_scratch_reg1_wz_fld_s;} lb_scratch_reg1_wz_u_t;/************************************************************************ *                                                                      * *  These registers are scratch registers that are not reset. At a      * * register's normal address, it is a simple storage location. At a     * * register's Write-If-Zero address, it accepts a new value from a      * * write operation only if the current value is zero.                   * *                                                                      * ************************************************************************/typedef union lb_scratch_reg2_wz_u {	bdrkreg_t	lb_scratch_reg2_wz_regval;	struct  {		bdrkreg_t	srw_scratch_bits          :	64;	} lb_scratch_reg2_wz_fld_s;} lb_scratch_reg2_wz_u_t;/************************************************************************ *                                                                      * *  These one-bit registers are scratch registers. At a register's      * * normal address, it is a simple storage location. At a register's     * * Read-Set-If-Zero address, it returns the original contents and       * * sets the bit if the original value is zero.                          * *                                                                      * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union lb_scratch_reg3_rz_u {	bdrkreg_t	lb_scratch_reg3_rz_regval;	struct  {		bdrkreg_t	srr_scratch_bit           :	 1;		bdrkreg_t       srr_reserved              :     63;	} lb_scratch_reg3_rz_fld_s;} lb_scratch_reg3_rz_u_t;#elsetypedef union lb_scratch_reg3_rz_u {	bdrkreg_t	lb_scratch_reg3_rz_regval;	struct	{		bdrkreg_t	srr_reserved		  :	63;		bdrkreg_t	srr_scratch_bit		  :	 1;	} lb_scratch_reg3_rz_fld_s;} lb_scratch_reg3_rz_u_t;#endif/************************************************************************ *                                                                      * *  These one-bit registers are scratch registers. At a register's      * * normal address, it is a simple storage location. At a register's     * * Read-Set-If-Zero address, it returns the original contents and       * * sets the bit if the original value is zero.                          * *                                                                      * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union lb_scratch_reg4_rz_u {	bdrkreg_t	lb_scratch_reg4_rz_regval;	struct  {		bdrkreg_t	srr_scratch_bit           :	 1;		bdrkreg_t       srr_reserved              :     63;	} lb_scratch_reg4_rz_fld_s;} lb_scratch_reg4_rz_u_t;#elsetypedef union lb_scratch_reg4_rz_u {	bdrkreg_t	lb_scratch_reg4_rz_regval;	struct	{		bdrkreg_t	srr_reserved		  :	63;		bdrkreg_t	srr_scratch_bit		  :	 1;	} lb_scratch_reg4_rz_fld_s;} lb_scratch_reg4_rz_u_t;#endif/************************************************************************ *                                                                      * * Description:  This register contains vector PIO parameters. A        * * write to this register triggers the LB to send out a vector PIO      * * request packet. Immediately after servicing a write request to the   * * LB_VECTOR_PARMS register, the LB sends back a reply (i.e., the LB    * * doesn't wait for the vector PIO operation to finish first). Three    * * LB registers provide the contents for an outgoing vector PIO         * * request packet. Software should wait until the BUSY bit in           * * LB_VECTOR_PARMS is clear and then initialize all three of these      * * registers before initiating a vector PIO operation. The three        * * vector PIO registers are:                                            * * LB_VECTOR_ROUTE                                                      * * LB_VECTOR_DATA                                                       * * LB_VECTOR_PARMS (should be written last)                             * *                                                                      * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union lb_vector_parms_u {	bdrkreg_t	lb_vector_parms_regval;	struct  {		bdrkreg_t	vp_type                   :	 1;		bdrkreg_t       vp_reserved_2             :      2;		bdrkreg_t       vp_address                :     21;		bdrkreg_t       vp_reserved_1             :      8;		bdrkreg_t       vp_write_id               :      8;		bdrkreg_t       vp_pio_id                 :     11;		bdrkreg_t       vp_reserved               :     12;		bdrkreg_t       vp_busy                   :      1;	} lb_vector_parms_fld_s;} lb_vector_parms_u_t;#elsetypedef union lb_vector_parms_u {	bdrkreg_t	lb_vector_parms_regval;	struct	{		bdrkreg_t	vp_busy			  :	 1;		bdrkreg_t	vp_reserved		  :	12;		bdrkreg_t	vp_pio_id		  :	11;		bdrkreg_t	vp_write_id		  :	 8;		bdrkreg_t	vp_reserved_1		  :	 8;		bdrkreg_t	vp_address		  :	21;		bdrkreg_t	vp_reserved_2		  :	 2;		bdrkreg_t	vp_type			  :	 1;	} lb_vector_parms_fld_s;} lb_vector_parms_u_t;#endif/************************************************************************ *                                                                      * *  This register contains the vector PIO route. This is one of the 3   * * vector PIO control registers.                                        * *                                                                      * ************************************************************************/typedef union lb_vector_route_u {	bdrkreg_t	lb_vector_route_regval;	struct  {		bdrkreg_t	vr_vector                 :	64;	} lb_vector_route_fld_s;} lb_vector_route_u_t;/************************************************************************ *                                                                      * *  This register contains the vector PIO write data. This is one of    * * the 3 vector PIO control registers. The contents of this register    * * also provide the data value to be sent in outgoing vector PIO read   * * requests and vector PIO write replies.                               * *                                                                      * ************************************************************************/typedef union lb_vector_data_u {	bdrkreg_t	lb_vector_data_regval;	struct  {		bdrkreg_t	vd_write_data             :	64;	} lb_vector_data_fld_s;} lb_vector_data_u_t;/************************************************************************ *                                                                      * * Description:  This register contains the vector PIO return status.   * * Software should clear this register before launching a vector PIO    * * request from the LB. The LB will not modify this register's value    * * if an incoming reply packet encounters any kind of error. If an      * * incoming reply packet does not encounter an error but the            * * STATUS_VALID bit is already set, then the LB sets the OVERRUN bit    * * and leaves the other fields unchanged. The LB updates the values     * * of the SOURCE, PIO_ID, WRITE_ID, ADDRESS and TYPE fields only if     * * an incoming vector PIO reply packet does not encounter an error      * * and the STATUS_VALID bit is clear; at the same time, the LB sets     * * the STATUS_VALID bit and will also update the LB_VECTOR_RETURN and   * * LB_VECTOR_READ_DATA registers.                                       * *                                                                      * *                                                                      * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union lb_vector_status_u {	bdrkreg_t	lb_vector_status_regval;	struct  {		bdrkreg_t	vs_type                   :	 3;		bdrkreg_t       vs_address                :     21;		bdrkreg_t       vs_reserved               :      8;		bdrkreg_t       vs_write_id               :      8;		bdrkreg_t       vs_pio_id                 :     11;		bdrkreg_t       vs_source                 :     11;		bdrkreg_t       vs_overrun                :      1;		bdrkreg_t       vs_status_valid           :      1;	} lb_vector_status_fld_s;} lb_vector_status_u_t;#elsetypedef union lb_vector_status_u {	bdrkreg_t	lb_vector_status_regval;	struct	{		bdrkreg_t	vs_status_valid		  :	 1;		bdrkreg_t	vs_overrun		  :	 1;		bdrkreg_t	vs_source		  :	11;		bdrkreg_t	vs_pio_id		  :	11;		bdrkreg_t	vs_write_id		  :	 8;		bdrkreg_t	vs_reserved		  :	 8;		bdrkreg_t	vs_address		  :	21;		bdrkreg_t	vs_type			  :	 3;	} lb_vector_status_fld_s;} lb_vector_status_u_t;#endif/************************************************************************ *                                                                      * *  This register contains the return vector PIO route. The LB will     * * not modify this register's value if an incoming reply packet         * * encounters any kind of error. The LB also will not modify this       * * register's value if the STATUS_VALID bit in the LB_VECTOR_STATUS     * * register is set when it receives an incoming vector PIO reply. The   * * LB stores an incoming vector PIO reply packet's vector route flit    * * in this register only if the packet does not encounter an error      * * and the STATUS_VALID bit is clear.                                   * *                                                                      * ************************************************************************/typedef union lb_vector_return_u {	bdrkreg_t	lb_vector_return_regval;	struct  {		bdrkreg_t	vr_return_vector          :	64;	} lb_vector_return_fld_s;} lb_vector_return_u_t;/************************************************************************ *                                                                      * *  This register contains the vector PIO read data, if any. The LB     * * will not modify this register's value if an incoming reply packet    * * encounters any kind of error. The LB also will not modify this       * * register's value if the STATUS_VALID bit in the LB_VECTOR_STATUS     * * register is set when it receives an incoming vector PIO reply. The   * * LB stores an incoming vector PIO reply packet's data flit in this    * * register only if the packet does not encounter an error and the      * * STATUS_VALID bit is clear.                                           * *                                                                      * ************************************************************************/typedef union lb_vector_read_data_u {	bdrkreg_t	lb_vector_read_data_regval;	struct  {		bdrkreg_t	vrd_read_data             :	64;	} lb_vector_read_data_fld_s;} lb_vector_read_data_u_t;/************************************************************************ *                                                                      * * Description:  This register contains the vector PIO return status.   * * Software should clear this register before launching a vector PIO    * * request from the LB. The LB will not modify this register's value    * * if an incoming reply packet encounters any kind of error. If an      * * incoming reply packet does not encounter an error but the            * * STATUS_VALID bit is already set, then the LB sets the OVERRUN bit    * * and leaves the other fields unchanged. The LB updates the values     * * of the SOURCE, PIO_ID, WRITE_ID, ADDRESS and TYPE fields only if     * * an incoming vector PIO reply packet does not encounter an error      * * and the STATUS_VALID bit is clear; at the same time, the LB sets     * * the STATUS_VALID bit and will also update the LB_VECTOR_RETURN and   * * LB_VECTOR_READ_DATA registers.                                       * *                                                                      * *                                                                      * ************************************************************************/#ifdef LITTLE_ENDIANtypedef union lb_vector_status_clear_u {	bdrkreg_t	lb_vector_status_clear_regval;	struct  {		bdrkreg_t	vsc_type                  :	 3;		bdrkreg_t       vsc_address               :     21;		bdrkreg_t       vsc_reserved              :      8;		bdrkreg_t       vsc_write_id              :      8;		bdrkreg_t       vsc_pio_id                :     11;		bdrkreg_t       vsc_source                :     11;		bdrkreg_t       vsc_overrun               :      1;		bdrkreg_t       vsc_status_valid          :      1;	} lb_vector_status_clear_fld_s;} lb_vector_status_clear_u_t;#elsetypedef union lb_vector_status_clear_u {	bdrkreg_t	lb_vector_status_clear_regval;	struct	{		bdrkreg_t	vsc_status_valid	  :	 1;		bdrkreg_t	vsc_overrun		  :	 1;		bdrkreg_t	vsc_source		  :	11;		bdrkreg_t	vsc_pio_id		  :	11;		bdrkreg_t	vsc_write_id		  :	 8;		bdrkreg_t	vsc_reserved		  :	 8;		bdrkreg_t	vsc_address		  :	21;		bdrkreg_t	vsc_type		  :	 3;	} lb_vector_status_clear_fld_s;} lb_vector_status_clear_u_t;#endif#endif /* __ASSEMBLY__ *//************************************************************************ *                                                                      * *               MAKE ALL ADDITIONS AFTER THIS LINE                     * *                                                                      * ************************************************************************/#endif /* _ASM_IA64_SN_SN1_HUBLB_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -