cacheflush(2) - wariua/manpages-ko GitHub Wiki
cacheflush - μΈμ€νΈλμ μΊμ λ°/λλ λ°μ΄ν° μΊμμ λ΄μ©λ¬Ό λΉμ°κΈ°
#include <asm/cachectl.h>
int cacheflush(char *addr, int nbytes, int cache);cacheflush()λ addrμμ (addr+nbytes-1)κΉμ§ λ²μμ λν΄ νμν μΊμ(λ€)μ λ΄μ©λ¬Όμ λΉμ΄λ€. cacheλ λ€μ μ€ νλμΌ μ μλ€.
ICACHE- μΈμ€νΈλμ μΊμλ₯Ό λΉμ΄λ€.
DCACHE- λ³κ²½μ λ©λͺ¨λ¦¬λ‘ κΈ°λ‘νκ³ μν₯ λ°λ μ ν¨ν μΊμ λΌμΈλ€μ 무ν¨ννλ€.
BCACHE-
(ICACHE|DCACHE)μ κ°λ€.
cacheflush()λ μ±κ³΅ μ 0μ λ°ννκ±°λ μ€λ₯ μ -1μ λ°ννλ€. μ€λ₯λ₯Ό νμ§ν κ²½μ° errnoκ° μ€λ₯λ₯Ό λνλ΄κ² λλ€.
EFAULT-
addrμμ(addr+nbytes-1)κΉμ§μ μ£Όμ λ²μ μΌλΆ λ΄μ§ μ λΆκ° μ κ·Ό κ°λ₯νμ§ μλ€. EINVAL-
cacheκ°ICACHE,DCACHE,BCACHEμ€ νλκ° μλλ€. (νμ§λ§ BUGS μ°Έκ³ .)
μμ¬μ μΌλ‘ μ΄ μμ€ν νΈμΆμ RISC/os, IRIX, Ultrix, NetBSD, OpenBSD, FreeBSDλ₯Ό ν¬ν¨ν λͺ¨λ MIPS μ λμ€ λ³μ’ λ€μμ (κ·Έλ¦¬κ³ μΌλΆ λΉμ λμ€ MIPS μ΄μ 체μ λ€μμλ) μ¬μ© κ°λ₯νλ€. κ·Έλμ MIPS μ΄μ 체μ λ€μμλ μ΄ νΈμΆμ μ‘΄μ¬κ° μ¬μ€μ νμ€μ΄λ€.
μ΄μ κ°λ₯ν΄μΌ νλ νλ‘κ·Έλ¨μμλ cacheflush()λ₯Ό μ¬μ©νμ§ λ§μμΌ νλ€. 리λ
μ€μμ μ΄ νΈμΆμ MIPS μν€ν
μ²μμ μ²μ λ±μ₯νλ€. μμ¦μ μΌλΆ λ€λ₯Έ μν€ν
μ²λ€μμλ cacheflush() μμ€ν
νΈμΆμ μ 곡νμ§λ§ μΈμκ° λ€λ₯΄λ€.
2.6.11λ³΄λ€ μ€λλ 리λ
μ€ μ»€λμμλ addrκ³Ό nbytes μΈμλ₯Ό 무μνλ©°, κ·Έλμ μ΄ ν¨μ λΉμ©μ΄ κ½€ λΉμΈμ§λ€. κ·Έ λλ¬Έμ νμ μΊμ μ 체λ₯Ό λΉμ΄λ€.
μ΄ ν¨μλ νμ cache μΈμλ‘ BCACHEλ₯Ό μ λ¬λ°μ κ²μ²λΌ λμνλ©° cache μΈμμ λν΄ μ΄λ€ μ€λ₯ κ²μ¬λ νμ§ μλλ€.
2017-09-15