Use one message type for all BDEV request.
There are missing field assignements, and/or messsages being re-used without re-initializations, which allows for fields to be implicitly forwarded. This prevents me from creating per request message types, as I can't spend currently any more time debugging this issue.
This commit is contained in:
@@ -926,17 +926,6 @@
|
||||
/* Message types for block device responses. */
|
||||
#define BDEV_REPLY (BDEV_RS_BASE + 0) /* general reply code */
|
||||
|
||||
/* Field names for block device messages. */
|
||||
#define BDEV_MINOR m10_i1 /* minor device number */
|
||||
#define BDEV_ACCESS m10_i2 /* access bits for open requests */
|
||||
#define BDEV_COUNT m10_i2 /* number of bytes or elements in transfer */
|
||||
#define BDEV_GRANT m10_i3 /* grant ID of buffer or vector */
|
||||
#define BDEV_FLAGS m10_i4 /* transfer flags */
|
||||
#define BDEV_USER m10_i4 /* user endpoint requesting I/O control */
|
||||
#define BDEV_ID m10_l1 /* opaque request ID */
|
||||
#define BDEV_REQUEST m10_l2 /* I/O control request */
|
||||
#define BDEV_POS m10_ull1 /* transfer position */
|
||||
|
||||
/* Bits in 'BDEV_ACCESS' field of block device open requests. */
|
||||
# define BDEV_R_BIT 0x01 /* open with read access */
|
||||
# define BDEV_W_BIT 0x02 /* open with write access */
|
||||
|
||||
@@ -124,6 +124,24 @@ typedef struct {
|
||||
} mess_lsys_krn_readbios;
|
||||
_ASSERT_MSG_SIZE(mess_lsys_krn_readbios);
|
||||
|
||||
typedef struct {
|
||||
off_t pos;
|
||||
|
||||
int minor;
|
||||
int id;
|
||||
int access;
|
||||
|
||||
int count;
|
||||
cp_grant_id_t grant;
|
||||
int flags;
|
||||
|
||||
endpoint_t user;
|
||||
int request;
|
||||
|
||||
uint8_t padding[16];
|
||||
} mess_lbdev_lblockdriver_msg;
|
||||
_ASSERT_MSG_SIZE(mess_lbdev_lblockdriver_msg);
|
||||
|
||||
typedef struct {
|
||||
int status;
|
||||
int id;
|
||||
@@ -2040,6 +2058,7 @@ typedef struct {
|
||||
mess_notify m_notify;
|
||||
mess_sigcalls m_sigcalls;
|
||||
|
||||
mess_lbdev_lblockdriver_msg m_lbdev_lblockdriver_msg;
|
||||
mess_lblockdriver_lbdev_reply m_lblockdriver_lbdev_reply;
|
||||
mess_lc_pm_cprof m_lc_pm_cprof;
|
||||
mess_lc_pm_sprof m_lc_pm_sprof;
|
||||
|
||||
Reference in New Issue
Block a user