Skip to content

Commit 00fa147

Browse files
committed
[kernel] map write combine buffers
1 parent 79960d2 commit 00fa147

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

lib/nacs-kernel/devctl.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ NACS_EXPORT() void *allocOCMBuffer(size_t len)
4848
return mapFile(getFD(), page_size, len);
4949
}
5050

51+
NACS_EXPORT() void *allocOCMBuffer(size_t len, bool writecombine)
52+
{
53+
return mapFile(getFD(), writecombine ? page_size * 3 : page_size, len);
54+
}
55+
5156
NACS_EXPORT() void freeOCMBuffer(void *buff, size_t old_size)
5257
{
5358
munmap(buff, old_size);
@@ -58,6 +63,11 @@ NACS_EXPORT() void *allocDMABuffer(size_t len)
5863
return mapFile(getFD(), page_size * 2, len);
5964
}
6065

66+
NACS_EXPORT() void *allocDMABuffer(size_t len, bool writecombine)
67+
{
68+
return mapFile(getFD(), writecombine ? page_size * 4 : page_size * 2, len);
69+
}
70+
6171
NACS_EXPORT() void freeDMABuffer(void *buff, size_t old_size)
6272
{
6373
munmap(buff, old_size);

lib/nacs-kernel/devctl.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ knacs_version_t getDriverVersion();
2929
void *mapPulseCtrl();
3030

3131
void *allocOCMBuffer(size_t);
32+
void *allocOCMBuffer(size_t, bool);
3233
void freeOCMBuffer(void*, size_t);
3334

3435
void *allocDMABuffer(size_t);
36+
void *allocDMABuffer(size_t, bool);
3537
void freeDMABuffer(void*, size_t);
3638

3739
void *bufferPhyAddr(void*);

0 commit comments

Comments
 (0)