arch/mips/include/asm/octeon/cvmx.h

Source file repositories/reference/linux-study-clean/arch/mips/include/asm/octeon/cvmx.h

File Facts

System
Linux kernel
Corpus path
arch/mips/include/asm/octeon/cvmx.h
Extension
.h
Size
14187 bytes
Lines
496
Domain
Architecture Layer
Bucket
arch/mips
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

while (1) {						\
			c.u64 = cvmx_read_csr(address);			\
			if ((c.s.field) op(value)) {			\
				result = 0;				\
				break;					\
			} else if (cvmx_get_cycle() > done) {		\
				result = -1;				\
				break;					\
			} else						\
				__delay(100);				\
		}							\
	} while (0);							\
	result;								\
})

/***************************************************************************/

/* Return the number of cores available in the chip */
static inline uint32_t cvmx_octeon_num_cores(void)
{
	u64 ciu_fuse_reg;
	u64 ciu_fuse;

	if (OCTEON_IS_OCTEON3() && !OCTEON_IS_MODEL(OCTEON_CN70XX))
		ciu_fuse_reg = CVMX_CIU3_FUSE;
	else
		ciu_fuse_reg = CVMX_CIU_FUSE;
	ciu_fuse = cvmx_read_csr(ciu_fuse_reg);
	return cvmx_dpop(ciu_fuse);
}

#endif /*  __CVMX_H__  */

Annotation

Implementation Notes