1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-30 02:47:35 +00:00

Kernel: More work on the ICMP and IPv4 support.

This commit is contained in:
Andreas Kling 2019-03-12 12:43:30 +01:00
parent 9858be636f
commit 87ecf290f4
9 changed files with 63 additions and 53 deletions

View file

@ -12,6 +12,7 @@ template<typename T>
class Buffer : public Retainable<Buffer<T>> {
public:
static Retained<Buffer> create_uninitialized(ssize_t count);
static Retained<Buffer> create_zeroed(ssize_t count);
static Retained<Buffer> copy(const T*, ssize_t count);
static Retained<Buffer> wrap(T*, ssize_t count);
static Retained<Buffer> adopt(T*, ssize_t count);
@ -110,6 +111,14 @@ inline Retained<Buffer<T>> Buffer<T>::create_uninitialized(ssize_t size)
return ::adopt(*new Buffer<T>(size));
}
template<typename T>
inline Retained<Buffer<T>> Buffer<T>::create_zeroed(ssize_t size)
{
auto buffer = ::adopt(*new Buffer<T>(size));
memset(buffer->pointer(), 0, size);
return buffer;
}
template<typename T>
inline Retained<Buffer<T>> Buffer<T>::copy(const T* elements, ssize_t size)
{

View file

@ -31,6 +31,7 @@ public:
}
static ByteBuffer create_uninitialized(ssize_t size) { return ByteBuffer(Buffer<byte>::create_uninitialized(size)); }
static ByteBuffer create_zeroed(ssize_t size) { return ByteBuffer(Buffer<byte>::create_zeroed(size)); }
static ByteBuffer copy(const byte* data, ssize_t size) { return ByteBuffer(Buffer<byte>::copy(data, size)); }
static ByteBuffer wrap(byte* data, ssize_t size) { return ByteBuffer(Buffer<byte>::wrap(data, size)); }
static ByteBuffer adopt(byte* data, ssize_t size) { return ByteBuffer(Buffer<byte>::adopt(data, size)); }