Kernel: Make ioctl take unsigned long instead of int
this is what linux does :D also fix one or two `return ioctl` instead of `return ioctl_impl`
This commit is contained in:
@@ -38,7 +38,7 @@ namespace Kernel
|
|||||||
|
|
||||||
BAN::ErrorOr<size_t> write_impl(off_t, BAN::ConstByteSpan) override;
|
BAN::ErrorOr<size_t> write_impl(off_t, BAN::ConstByteSpan) override;
|
||||||
|
|
||||||
BAN::ErrorOr<long> ioctl_impl(int cmd, void* arg) override;
|
BAN::ErrorOr<long> ioctl_impl(unsigned long request, void* arg) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ThreadBlocker m_sample_data_blocker;
|
ThreadBlocker m_sample_data_blocker;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace Kernel
|
|||||||
virtual BAN::ErrorOr<size_t> read_impl(off_t, BAN::ByteSpan) override;
|
virtual BAN::ErrorOr<size_t> read_impl(off_t, BAN::ByteSpan) override;
|
||||||
virtual BAN::ErrorOr<size_t> write_impl(off_t, BAN::ConstByteSpan) override;
|
virtual BAN::ErrorOr<size_t> write_impl(off_t, BAN::ConstByteSpan) override;
|
||||||
|
|
||||||
BAN::ErrorOr<long> ioctl_impl(int cmd, void* arg) override;
|
BAN::ErrorOr<long> ioctl_impl(unsigned long request, void* arg) override;
|
||||||
|
|
||||||
virtual bool can_read_impl() const override { return true; }
|
virtual bool can_read_impl() const override { return true; }
|
||||||
virtual bool can_write_impl() const override { return true; }
|
virtual bool can_write_impl() const override { return true; }
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ namespace Kernel
|
|||||||
bool has_error() const { return has_error_impl(); }
|
bool has_error() const { return has_error_impl(); }
|
||||||
bool has_hungup() const { return has_hungup_impl(); }
|
bool has_hungup() const { return has_hungup_impl(); }
|
||||||
|
|
||||||
BAN::ErrorOr<long> ioctl(int request, void* arg);
|
BAN::ErrorOr<long> ioctl(unsigned long request, void* arg);
|
||||||
|
|
||||||
BAN::ErrorOr<void> add_epoll(class Epoll*);
|
BAN::ErrorOr<void> add_epoll(class Epoll*);
|
||||||
void del_epoll(class Epoll*);
|
void del_epoll(class Epoll*);
|
||||||
@@ -199,7 +199,7 @@ namespace Kernel
|
|||||||
virtual bool has_error_impl() const = 0;
|
virtual bool has_error_impl() const = 0;
|
||||||
virtual bool has_hungup_impl() const = 0;
|
virtual bool has_hungup_impl() const = 0;
|
||||||
|
|
||||||
virtual BAN::ErrorOr<long> ioctl_impl(int, void*) { return BAN::Error::from_errno(ENOTSUP); }
|
virtual BAN::ErrorOr<long> ioctl_impl(unsigned long, void*) { return BAN::Error::from_errno(ENOTSUP); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// TODO: this is supposed to be const I guess?
|
// TODO: this is supposed to be const I guess?
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ namespace Kernel
|
|||||||
virtual BAN::ErrorOr<void> send_raw_bytes(BAN::Span<const BAN::ConstByteSpan> buffers) = 0;
|
virtual BAN::ErrorOr<void> send_raw_bytes(BAN::Span<const BAN::ConstByteSpan> buffers) = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BAN::ErrorOr<long> ioctl_impl(int, void*) override;
|
BAN::ErrorOr<long> ioctl_impl(unsigned long, void*) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const Type m_type;
|
const Type m_type;
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ namespace Kernel
|
|||||||
protected:
|
protected:
|
||||||
NetworkSocket(NetworkLayer&, const Socket::Info&);
|
NetworkSocket(NetworkLayer&, const Socket::Info&);
|
||||||
|
|
||||||
virtual BAN::ErrorOr<long> ioctl_impl(int request, void* arg) override;
|
virtual BAN::ErrorOr<long> ioctl_impl(unsigned long request, void* arg) override;
|
||||||
virtual BAN::ErrorOr<void> getsockname_impl(sockaddr*, socklen_t*) override;
|
virtual BAN::ErrorOr<void> getsockname_impl(sockaddr*, socklen_t*) override;
|
||||||
virtual BAN::ErrorOr<void> getpeername_impl(sockaddr*, socklen_t*) override = 0;
|
virtual BAN::ErrorOr<void> getpeername_impl(sockaddr*, socklen_t*) override = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace Kernel
|
|||||||
BAN::ErrorOr<void> getsockopt_impl(int, int, void*, socklen_t*) override;
|
BAN::ErrorOr<void> getsockopt_impl(int, int, void*, socklen_t*) override;
|
||||||
BAN::ErrorOr<void> setsockopt_impl(int, int, const void*, socklen_t) override;
|
BAN::ErrorOr<void> setsockopt_impl(int, int, const void*, socklen_t) override;
|
||||||
|
|
||||||
BAN::ErrorOr<long> ioctl_impl(int, void*) override;
|
BAN::ErrorOr<long> ioctl_impl(unsigned long, void*) override;
|
||||||
|
|
||||||
void receive_packet(BAN::ConstByteSpan, const sockaddr* sender, socklen_t sender_len, uint32_t validated_cksums) override;
|
void receive_packet(BAN::ConstByteSpan, const sockaddr* sender, socklen_t sender_len, uint32_t validated_cksums) override;
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace Kernel
|
|||||||
BAN::ErrorOr<void> getsockopt_impl(int, int, void*, socklen_t*) override;
|
BAN::ErrorOr<void> getsockopt_impl(int, int, void*, socklen_t*) override;
|
||||||
BAN::ErrorOr<void> setsockopt_impl(int, int, const void*, socklen_t) override;
|
BAN::ErrorOr<void> setsockopt_impl(int, int, const void*, socklen_t) override;
|
||||||
|
|
||||||
BAN::ErrorOr<long> ioctl_impl(int, void*) override;
|
BAN::ErrorOr<long> ioctl_impl(unsigned long, void*) override;
|
||||||
|
|
||||||
bool can_read_impl() const override { return !m_packets.empty(); }
|
bool can_read_impl() const override { return !m_packets.empty(); }
|
||||||
bool can_write_impl() const override { return true; }
|
bool can_write_impl() const override { return true; }
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ namespace Kernel
|
|||||||
BAN::ErrorOr<long> sys_recvmsg(int socket, msghdr* message, int flags);
|
BAN::ErrorOr<long> sys_recvmsg(int socket, msghdr* message, int flags);
|
||||||
BAN::ErrorOr<long> sys_sendmsg(int socket, const msghdr* message, int flags);
|
BAN::ErrorOr<long> sys_sendmsg(int socket, const msghdr* message, int flags);
|
||||||
|
|
||||||
BAN::ErrorOr<long> sys_ioctl(int fildes, int request, void* arg);
|
BAN::ErrorOr<long> sys_ioctl(int fildes, unsigned long request, void* arg);
|
||||||
|
|
||||||
BAN::ErrorOr<long> sys_pselect(sys_pselect_t* arguments);
|
BAN::ErrorOr<long> sys_pselect(sys_pselect_t* arguments);
|
||||||
BAN::ErrorOr<long> sys_ppoll(pollfd* fds, nfds_t nfds, const timespec* tmp_p, const sigset_t* sigmask);
|
BAN::ErrorOr<long> sys_ppoll(pollfd* fds, nfds_t nfds, const timespec* tmp_p, const sigset_t* sigmask);
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace Kernel
|
|||||||
|
|
||||||
void on_close(int) override;
|
void on_close(int) override;
|
||||||
|
|
||||||
BAN::ErrorOr<long> ioctl_impl(int, void*) override;
|
BAN::ErrorOr<long> ioctl_impl(unsigned long, void*) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PseudoTerminalMaster(BAN::UniqPtr<VirtualRange>, mode_t, uid_t, gid_t);
|
PseudoTerminalMaster(BAN::UniqPtr<VirtualRange>, mode_t, uid_t, gid_t);
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ namespace Kernel
|
|||||||
virtual bool has_error_impl() const override { return false; }
|
virtual bool has_error_impl() const override { return false; }
|
||||||
virtual bool has_hungup_impl() const override { return false; }
|
virtual bool has_hungup_impl() const override { return false; }
|
||||||
|
|
||||||
virtual BAN::ErrorOr<long> ioctl_impl(int, void*) override;
|
virtual BAN::ErrorOr<long> ioctl_impl(unsigned long, void*) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool putchar(uint8_t ch);
|
bool putchar(uint8_t ch);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ namespace Kernel
|
|||||||
BAN::ErrorOr<size_t> read_impl(off_t, BAN::ByteSpan) override;
|
BAN::ErrorOr<size_t> read_impl(off_t, BAN::ByteSpan) override;
|
||||||
bool can_read_impl() const override { return true; }
|
bool can_read_impl() const override { return true; }
|
||||||
|
|
||||||
BAN::ErrorOr<long> ioctl_impl(int request, void* arg) override;
|
BAN::ErrorOr<long> ioctl_impl(unsigned long request, void* arg) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
USBJoystick(USBHIDDriver&);
|
USBJoystick(USBHIDDriver&);
|
||||||
|
|||||||
@@ -77,9 +77,9 @@ namespace Kernel
|
|||||||
return to_copy;
|
return to_copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> AudioController::ioctl_impl(int cmd, void* arg)
|
BAN::ErrorOr<long> AudioController::ioctl_impl(unsigned long request, void* arg)
|
||||||
{
|
{
|
||||||
switch (cmd)
|
switch (request)
|
||||||
{
|
{
|
||||||
case SND_GET_CHANNELS:
|
case SND_GET_CHANNELS:
|
||||||
*static_cast<uint32_t*>(arg) = get_channels();
|
*static_cast<uint32_t*>(arg) = get_channels();
|
||||||
@@ -92,7 +92,7 @@ namespace Kernel
|
|||||||
{
|
{
|
||||||
SpinLockGuard _(m_spinlock);
|
SpinLockGuard _(m_spinlock);
|
||||||
*static_cast<uint32_t*>(arg) = m_sample_data->size();
|
*static_cast<uint32_t*>(arg) = m_sample_data->size();
|
||||||
if (cmd == SND_RESET_BUFFER)
|
if (request == SND_RESET_BUFFER)
|
||||||
m_sample_data->pop(m_sample_data->size());
|
m_sample_data->pop(m_sample_data->size());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -113,7 +113,7 @@ namespace Kernel
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return CharacterDevice::ioctl_impl(cmd, arg);
|
return CharacterDevice::ioctl_impl(request, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,9 +135,9 @@ namespace Kernel
|
|||||||
return bytes_to_copy;
|
return bytes_to_copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> FramebufferDevice::ioctl_impl(int cmd, void* arg)
|
BAN::ErrorOr<long> FramebufferDevice::ioctl_impl(unsigned long request, void* arg)
|
||||||
{
|
{
|
||||||
switch (cmd)
|
switch (request)
|
||||||
{
|
{
|
||||||
case FB_MSYNC_RECTANGLE:
|
case FB_MSYNC_RECTANGLE:
|
||||||
{
|
{
|
||||||
@@ -152,7 +152,7 @@ namespace Kernel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return CharacterDevice::ioctl(cmd, arg);
|
return CharacterDevice::ioctl_impl(request, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t FramebufferDevice::get_pixel(uint32_t x, uint32_t y) const
|
uint32_t FramebufferDevice::get_pixel(uint32_t x, uint32_t y) const
|
||||||
|
|||||||
@@ -316,7 +316,7 @@ namespace Kernel
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> Inode::ioctl(int request, void* arg)
|
BAN::ErrorOr<long> Inode::ioctl(unsigned long request, void* arg)
|
||||||
{
|
{
|
||||||
auto ret = ioctl_impl(request, arg);
|
auto ret = ioctl_impl(request, arg);
|
||||||
if (!ret.is_error() || ret.error().get_error_code() != ENOTSUP)
|
if (!ret.is_error() || ret.error().get_error_code() != ENOTSUP)
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace Kernel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> NetworkInterface::ioctl_impl(int request, void* arg)
|
BAN::ErrorOr<long> NetworkInterface::ioctl_impl(unsigned long request, void* arg)
|
||||||
{
|
{
|
||||||
if (arg == nullptr)
|
if (arg == nullptr)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ namespace Kernel
|
|||||||
m_address_len = addr_len;
|
m_address_len = addr_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> NetworkSocket::ioctl_impl(int request, void* arg)
|
BAN::ErrorOr<long> NetworkSocket::ioctl_impl(unsigned long request, void* arg)
|
||||||
{
|
{
|
||||||
switch (request)
|
switch (request)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ namespace Kernel
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> TCPSocket::ioctl_impl(int request, void* argument)
|
BAN::ErrorOr<long> TCPSocket::ioctl_impl(unsigned long request, void* argument)
|
||||||
{
|
{
|
||||||
switch (request)
|
switch (request)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -336,7 +336,7 @@ namespace Kernel
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> UDPSocket::ioctl_impl(int request, void* argument)
|
BAN::ErrorOr<long> UDPSocket::ioctl_impl(unsigned long request, void* argument)
|
||||||
{
|
{
|
||||||
switch (request)
|
switch (request)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2043,7 +2043,7 @@ namespace Kernel
|
|||||||
return TRY(m_open_file_descriptors.sendmsg(socket, message, flags));
|
return TRY(m_open_file_descriptors.sendmsg(socket, message, flags));
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> Process::sys_ioctl(int fildes, int request, void* arg)
|
BAN::ErrorOr<long> Process::sys_ioctl(int fildes, unsigned long request, void* arg)
|
||||||
{
|
{
|
||||||
auto inode = TRY(m_open_file_descriptors.inode_of(fildes));
|
auto inode = TRY(m_open_file_descriptors.inode_of(fildes));
|
||||||
return TRY(inode->ioctl(request, arg));
|
return TRY(inode->ioctl(request, arg));
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ namespace Kernel
|
|||||||
slave->m_write_blocker.unblock();
|
slave->m_write_blocker.unblock();
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> PseudoTerminalMaster::ioctl_impl(int request, void* argument)
|
BAN::ErrorOr<long> PseudoTerminalMaster::ioctl_impl(unsigned long request, void* argument)
|
||||||
{
|
{
|
||||||
switch (request)
|
switch (request)
|
||||||
{
|
{
|
||||||
@@ -174,7 +174,7 @@ namespace Kernel
|
|||||||
return BAN::Error::from_errno(ENODEV);
|
return BAN::Error::from_errno(ENODEV);
|
||||||
}
|
}
|
||||||
|
|
||||||
return CharacterDevice::ioctl(request, argument);
|
return CharacterDevice::ioctl_impl(request, argument);
|
||||||
}
|
}
|
||||||
|
|
||||||
PseudoTerminalSlave::PseudoTerminalSlave(BAN::String&& name, uint32_t number, mode_t mode, uid_t uid, gid_t gid)
|
PseudoTerminalSlave::PseudoTerminalSlave(BAN::String&& name, uint32_t number, mode_t mode, uid_t uid, gid_t gid)
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ namespace Kernel
|
|||||||
(void)Process::kill(-m_foreground_pgrp, SIGWINCH);
|
(void)Process::kill(-m_foreground_pgrp, SIGWINCH);
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> TTY::ioctl_impl(int request, void* argument)
|
BAN::ErrorOr<long> TTY::ioctl_impl(unsigned long request, void* argument)
|
||||||
{
|
{
|
||||||
switch (request)
|
switch (request)
|
||||||
{
|
{
|
||||||
@@ -204,7 +204,7 @@ namespace Kernel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return CharacterDevice::ioctl(request, argument);
|
return CharacterDevice::ioctl_impl(request, argument);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTY::on_key_event(LibInput::RawKeyEvent event)
|
void TTY::on_key_event(LibInput::RawKeyEvent event)
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ namespace Kernel
|
|||||||
return to_copy;
|
return to_copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
BAN::ErrorOr<long> USBJoystick::ioctl_impl(int request, void* arg)
|
BAN::ErrorOr<long> USBJoystick::ioctl_impl(unsigned long request, void* arg)
|
||||||
{
|
{
|
||||||
switch (request)
|
switch (request)
|
||||||
{
|
{
|
||||||
@@ -217,7 +217,7 @@ namespace Kernel
|
|||||||
ASSERT_NOT_REACHED();
|
ASSERT_NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
|
||||||
return USBHIDDevice::ioctl(request, arg);
|
return USBHIDDevice::ioctl_impl(request, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void USBJoystick::update()
|
void USBJoystick::update()
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ struct fb_msync_region
|
|||||||
};
|
};
|
||||||
#define FB_MSYNC_RECTANGLE 90 /* msync a rectangular area in mmap'd framebuffer device */
|
#define FB_MSYNC_RECTANGLE 90 /* msync a rectangular area in mmap'd framebuffer device */
|
||||||
|
|
||||||
int ioctl(int, int, ...);
|
int ioctl(int, unsigned long, ...);
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
int ioctl(int fildes, int request, ...)
|
int ioctl(int fildes, unsigned long request, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, request);
|
va_start(args, request);
|
||||||
|
|||||||
Reference in New Issue
Block a user