mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 18:47:44 +00:00
LibC: Implement __freadptrinc
This commit is contained in:
parent
89ed0649f7
commit
4f706d819a
3 changed files with 16 additions and 0 deletions
|
@ -62,6 +62,7 @@ public:
|
||||||
void reopen(int fd, int mode);
|
void reopen(int fd, int mode);
|
||||||
|
|
||||||
u8 const* readptr(size_t& available_size);
|
u8 const* readptr(size_t& available_size);
|
||||||
|
void readptr_increase(size_t increment);
|
||||||
|
|
||||||
enum Flags : u8 {
|
enum Flags : u8 {
|
||||||
None = 0,
|
None = 0,
|
||||||
|
|
|
@ -374,6 +374,11 @@ u8 const* FILE::readptr(size_t& available_size)
|
||||||
return m_buffer.begin_dequeue(available_size);
|
return m_buffer.begin_dequeue(available_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FILE::readptr_increase(size_t increment)
|
||||||
|
{
|
||||||
|
m_buffer.did_dequeue(increment);
|
||||||
|
}
|
||||||
|
|
||||||
FILE::Buffer::~Buffer()
|
FILE::Buffer::~Buffer()
|
||||||
{
|
{
|
||||||
if (m_data_is_malloced)
|
if (m_data_is_malloced)
|
||||||
|
@ -1355,6 +1360,15 @@ char const* __freadptr(FILE* stream, size_t* sizep)
|
||||||
*sizep = available_size;
|
*sizep = available_size;
|
||||||
return reinterpret_cast<char const*>(ptr);
|
return reinterpret_cast<char const*>(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __freadptrinc(FILE* stream, size_t increment)
|
||||||
|
{
|
||||||
|
VERIFY(stream);
|
||||||
|
|
||||||
|
ScopedFileLock lock(stream);
|
||||||
|
|
||||||
|
stream->readptr_increase(increment);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template bool FILE::gets<u8>(u8*, size_t);
|
template bool FILE::gets<u8>(u8*, size_t);
|
||||||
|
|
|
@ -17,5 +17,6 @@ void __fpurge(FILE*);
|
||||||
|
|
||||||
size_t __freadahead(FILE*);
|
size_t __freadahead(FILE*);
|
||||||
char const* __freadptr(FILE*, size_t*);
|
char const* __freadptr(FILE*, size_t*);
|
||||||
|
void __freadptrinc(FILE*, size_t);
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue