hrev54072 adds 3 changesets to branch 'master'
old head: ffc770c1f4edc67f6668fc78b99940df6a3bc499
new head: 04ff1cfaef5441437c07d65577634cd2f4d7891e
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=04ff1cfaef54+%5Effc770c1f4ed
----------------------------------------------------------------------------
9219768a974a: scsi: add device names
Change-Id: Ifca8911a095ee93daf1b4976a037dbd7c016e923
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2494
Reviewed-by: Jérôme Duval <jerome.duval@xxxxxxxxx>
b29db8ebbb67: AutoDeleter: add Get method for FileDescriptorCloser
This allows to use FileDescriptorCloser as unique pointer for file descriptor.
Change-Id: I4c768fafba6ed35658b2fdb075b9b547f53bc8da
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2495
Reviewed-by: Jérôme Duval <jerome.duval@xxxxxxxxx>
04ff1cfaef54: i2c bus_raw: fix passing cmdBuffer, handle large buffer size
Change-Id: Ia2965d465899d087f0cbf8f7b07a7a326ed305db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2496
Reviewed-by: Jérôme Duval <jerome.duval@xxxxxxxxx>
[ X512 <danger_mail@xxxxxxx> ]
----------------------------------------------------------------------------
4 files changed, 26 insertions(+), 5 deletions(-)
headers/private/shared/AutoDeleter.h | 5 +++++
src/add-ons/kernel/bus_managers/i2c/bus_raw.cpp | 22 +++++++++++++++-----
.../kernel/bus_managers/scsi/sim_interface.cpp | 3 +++
.../drivers/disk/scsi/scsi_disk/scsi_disk.cpp | 1 +
############################################################################
Commit: 9219768a974ab8dfef2cc24fb34f9ad8a7d7095a
URL: https://git.haiku-os.org/haiku/commit/?id=9219768a974a
Author: X512 <danger_mail@xxxxxxx>
Date: Thu Apr 16 08:36:17 2020 UTC
Committer: Jérôme Duval <jerome.duval@xxxxxxxxx>
Commit-Date: Mon Apr 20 14:56:16 2020 UTC
scsi: add device names
Change-Id: Ifca8911a095ee93daf1b4976a037dbd7c016e923
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2494
Reviewed-by: Jérôme Duval <jerome.duval@xxxxxxxxx>
----------------------------------------------------------------------------
diff --git a/src/add-ons/kernel/bus_managers/scsi/sim_interface.cpp
b/src/add-ons/kernel/bus_managers/scsi/sim_interface.cpp
index 30b3fcc7fd..af6a519be4 100644
--- a/src/add-ons/kernel/bus_managers/scsi/sim_interface.cpp
+++ b/src/add-ons/kernel/bus_managers/scsi/sim_interface.cpp
@@ -46,6 +46,9 @@ scsi_controller_added(device_node *parent)
{
device_attr attrs[] = {
+ { B_DEVICE_PRETTY_NAME, B_STRING_TYPE,
+ { string: "SCSI Controller" }},
+
// remember who we are
// (could use the controller name, but probably some
software would choke)
// TODO create_id() generates a 32 bit ranged integer
but we need only 8 bits
diff --git a/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.cpp
b/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.cpp
index 5d6e0619ad..05246eb063 100644
--- a/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.cpp
+++ b/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.cpp
@@ -556,6 +556,7 @@ das_register_device(device_node *node)
// ready to register
device_attr attrs[] = {
+ { B_DEVICE_PRETTY_NAME, B_STRING_TYPE, { string: "SCSI Disk" }},
// tell block_io whether the device is removable
{"removable", B_UINT8_TYPE, {ui8:
deviceInquiry->removable_medium}},
// impose own max block restriction
############################################################################
Commit: b29db8ebbb678e8ae8f9b6e0e35030841be78052
URL: https://git.haiku-os.org/haiku/commit/?id=b29db8ebbb67
Author: X512 <danger_mail@xxxxxxx>
Date: Sat Apr 18 11:49:19 2020 UTC
Committer: Jérôme Duval <jerome.duval@xxxxxxxxx>
Commit-Date: Mon Apr 20 14:56:16 2020 UTC
AutoDeleter: add Get method for FileDescriptorCloser
This allows to use FileDescriptorCloser as unique pointer for file descriptor.
Change-Id: I4c768fafba6ed35658b2fdb075b9b547f53bc8da
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2495
Reviewed-by: Jérôme Duval <jerome.duval@xxxxxxxxx>
----------------------------------------------------------------------------
diff --git a/headers/private/shared/AutoDeleter.h
b/headers/private/shared/AutoDeleter.h
index a508fefd9b..78966ba319 100644
--- a/headers/private/shared/AutoDeleter.h
+++ b/headers/private/shared/AutoDeleter.h
@@ -254,6 +254,11 @@ struct FileDescriptorCloser {
SetTo(-1);
}
+ inline int Get()
+ {
+ return fDescriptor;
+ }
+
inline int Detach()
{
int descriptor = fDescriptor;
############################################################################
Revision: hrev54072
Commit: 04ff1cfaef5441437c07d65577634cd2f4d7891e
URL: https://git.haiku-os.org/haiku/commit/?id=04ff1cfaef54
Author: X512 <danger_mail@xxxxxxx>
Date: Fri Apr 17 19:02:42 2020 UTC
Committer: Jérôme Duval <jerome.duval@xxxxxxxxx>
Commit-Date: Mon Apr 20 14:56:16 2020 UTC
i2c bus_raw: fix passing cmdBuffer, handle large buffer size
Change-Id: Ia2965d465899d087f0cbf8f7b07a7a326ed305db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2496
Reviewed-by: Jérôme Duval <jerome.duval@xxxxxxxxx>
----------------------------------------------------------------------------
diff --git a/src/add-ons/kernel/bus_managers/i2c/bus_raw.cpp
b/src/add-ons/kernel/bus_managers/i2c/bus_raw.cpp
index dfe3af8674..885d4edc8f 100644
--- a/src/add-ons/kernel/bus_managers/i2c/bus_raw.cpp
+++ b/src/add-ons/kernel/bus_managers/i2c/bus_raw.cpp
@@ -6,6 +6,8 @@
#include "I2CPrivate.h"
+#include <StackOrHeapArray.h>
+
static status_t
i2c_bus_raw_init(void* driverCookie, void **_cookie)
@@ -64,14 +66,23 @@ i2c_bus_raw_control(void *_cookie, uint32 op, void *data,
size_t length)
case I2CEXEC:
{
i2c_ioctl_exec exec;
- uint8 cmdBuffer[32];
- uint8 buffer[32];
const void* userCmdBuffer = NULL;
void* userBuffer = NULL;
if (user_memcpy(&exec, data, sizeof(i2c_ioctl_exec)) !=
B_OK)
return B_BAD_ADDRESS;
+
+ if (exec.cmdBuffer == NULL)
+ exec.cmdLength = 0;
+ if (exec.buffer == NULL)
+ exec.bufferLength = 0;
+ BStackOrHeapArray<uint8, 32> cmdBuffer(exec.cmdLength);
+ BStackOrHeapArray<uint8, 32> buffer(exec.bufferLength);
+ if (!cmdBuffer.IsValid() || !buffer.IsValid())
+ return B_NO_MEMORY;
+
if (exec.cmdBuffer != NULL) {
- if (user_memcpy(cmdBuffer, exec.cmdBuffer,
exec.cmdLength)
+ if (!IS_USER_ADDRESS(exec.cmdBuffer)
+ || user_memcpy(cmdBuffer,
exec.cmdBuffer, exec.cmdLength)
!= B_OK) {
return B_BAD_ADDRESS;
}
@@ -79,7 +90,8 @@ i2c_bus_raw_control(void *_cookie, uint32 op, void *data,
size_t length)
exec.cmdBuffer = cmdBuffer;
}
if (exec.buffer != NULL) {
- if (user_memcpy(buffer, exec.buffer,
exec.bufferLength)
+ if (!IS_USER_ADDRESS(exec.buffer)
+ || user_memcpy(buffer, exec.buffer,
exec.bufferLength)
!= B_OK) {
return B_BAD_ADDRESS;
}
@@ -92,7 +104,7 @@ i2c_bus_raw_control(void *_cookie, uint32 op, void *data,
size_t length)
return status;
status = bus->ExecCommand(exec.op, exec.addr,
- &exec.cmdBuffer, exec.cmdLength, exec.buffer,
+ exec.cmdBuffer, exec.cmdLength, exec.buffer,
exec.bufferLength);
bus->ReleaseBus();