Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 #include "cacheline.h"
0003 #include <unistd.h>
0004 
0005 #ifdef _SC_LEVEL1_DCACHE_LINESIZE
0006 #define cache_line_size(cacheline_sizep) *cacheline_sizep = sysconf(_SC_LEVEL1_DCACHE_LINESIZE)
0007 #else
0008 #include <api/fs/fs.h>
0009 #include "debug.h"
0010 static void cache_line_size(int *cacheline_sizep)
0011 {
0012     if (sysfs__read_int("devices/system/cpu/cpu0/cache/index0/coherency_line_size", cacheline_sizep))
0013         pr_debug("cannot determine cache line size");
0014 }
0015 #endif
0016 
0017 int cacheline_size(void)
0018 {
0019     static int size;
0020 
0021     if (!size)
0022         cache_line_size(&size);
0023 
0024     return size;
0025 }