Move cp_grant_id_t to a more central header file, and uses it more
extensively. Fix casts that cast the grand id field of some messages to the wrong type.
This commit is contained in:
parent
adf0b6fb26
commit
851dc95566
7 changed files with 18 additions and 15 deletions
|
@ -2334,7 +2334,7 @@ message *m;
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
|
|
||||||
if (m->REQUEST == DIOCTIMEOUT) {
|
if (m->REQUEST == DIOCTIMEOUT) {
|
||||||
r= sys_safecopyfrom(m->IO_ENDPT, (vir_bytes) m->IO_GRANT,
|
r= sys_safecopyfrom(m->IO_ENDPT, (cp_grant_id_t) m->IO_GRANT,
|
||||||
0, (vir_bytes)&timeout, sizeof(timeout), D);
|
0, (vir_bytes)&timeout, sizeof(timeout), D);
|
||||||
|
|
||||||
if(r != OK)
|
if(r != OK)
|
||||||
|
@ -2363,7 +2363,8 @@ message *m;
|
||||||
timeout_ticks = timeout;
|
timeout_ticks = timeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
r= sys_safecopyto(m->IO_ENDPT, (vir_bytes) m->IO_GRANT,
|
r= sys_safecopyto(m->IO_ENDPT,
|
||||||
|
(cp_grant_id_t) m->IO_GRANT,
|
||||||
0, (vir_bytes)&prev, sizeof(prev), D);
|
0, (vir_bytes)&prev, sizeof(prev), D);
|
||||||
|
|
||||||
if(r != OK)
|
if(r != OK)
|
||||||
|
@ -2375,7 +2376,7 @@ message *m;
|
||||||
int count;
|
int count;
|
||||||
if (w_prepare(m->DEVICE) == NIL_DEV) return ENXIO;
|
if (w_prepare(m->DEVICE) == NIL_DEV) return ENXIO;
|
||||||
count = w_wn->open_ct;
|
count = w_wn->open_ct;
|
||||||
r= sys_safecopyto(m->IO_ENDPT, (vir_bytes) m->IO_GRANT,
|
r= sys_safecopyto(m->IO_ENDPT, (cp_grant_id_t) m->IO_GRANT,
|
||||||
0, (vir_bytes)&count, sizeof(count), D);
|
0, (vir_bytes)&count, sizeof(count), D);
|
||||||
|
|
||||||
if(r != OK)
|
if(r != OK)
|
||||||
|
|
|
@ -525,7 +525,7 @@ PRIVATE int w_other(struct driver *dr, message *m)
|
||||||
int count;
|
int count;
|
||||||
if (w_prepare(m->DEVICE) == NIL_DEV) return ENXIO;
|
if (w_prepare(m->DEVICE) == NIL_DEV) return ENXIO;
|
||||||
count = w_wn->open_ct;
|
count = w_wn->open_ct;
|
||||||
r=sys_safecopyto(m->IO_ENDPT, (vir_bytes)m->IO_GRANT,
|
r=sys_safecopyto(m->IO_ENDPT, (cp_grant_id_t)m->IO_GRANT,
|
||||||
0, (vir_bytes)&count, sizeof(count), D);
|
0, (vir_bytes)&count, sizeof(count), D);
|
||||||
|
|
||||||
if(r != OK)
|
if(r != OK)
|
||||||
|
|
|
@ -481,10 +481,10 @@ PRIVATE void do_vread_s(message * mp, int from_int)
|
||||||
client layer
|
client layer
|
||||||
*/
|
*/
|
||||||
dep->de_read_iovec.iod_proc_nr = mp->DL_PROC;
|
dep->de_read_iovec.iod_proc_nr = mp->DL_PROC;
|
||||||
de_get_userdata_s(mp->DL_PROC, (vir_bytes) mp->DL_GRANT, 0,
|
de_get_userdata_s(mp->DL_PROC, (cp_grant_id_t) mp->DL_GRANT, 0,
|
||||||
mp->DL_COUNT, dep->de_read_iovec.iod_iovec);
|
mp->DL_COUNT, dep->de_read_iovec.iod_iovec);
|
||||||
dep->de_read_iovec.iod_iovec_s = mp->DL_COUNT;
|
dep->de_read_iovec.iod_iovec_s = mp->DL_COUNT;
|
||||||
dep->de_read_iovec.iod_grant = (vir_bytes) mp->DL_GRANT;
|
dep->de_read_iovec.iod_grant = (cp_grant_id_t) mp->DL_GRANT;
|
||||||
dep->de_read_iovec.iod_iovec_offset = 0;
|
dep->de_read_iovec.iod_iovec_offset = 0;
|
||||||
size = de_calc_iov_size(&dep->de_read_iovec);
|
size = de_calc_iov_size(&dep->de_read_iovec);
|
||||||
if (size < ETH_MAX_PACK_SIZE)
|
if (size < ETH_MAX_PACK_SIZE)
|
||||||
|
@ -841,7 +841,7 @@ PRIVATE void do_vwrite_s(message * mp, int from_int){
|
||||||
de_get_userdata_s(mp->DL_PROC, mp->DL_GRANT, 0,
|
de_get_userdata_s(mp->DL_PROC, mp->DL_GRANT, 0,
|
||||||
mp->DL_COUNT, iovp->iod_iovec);
|
mp->DL_COUNT, iovp->iod_iovec);
|
||||||
iovp->iod_iovec_s = mp->DL_COUNT;
|
iovp->iod_iovec_s = mp->DL_COUNT;
|
||||||
iovp->iod_grant = (vir_bytes) mp->DL_GRANT;
|
iovp->iod_grant = (cp_grant_id_t) mp->DL_GRANT;
|
||||||
iovp->iod_iovec_offset = 0;
|
iovp->iod_iovec_offset = 0;
|
||||||
totalsize = size = de_calc_iov_size(iovp);
|
totalsize = size = de_calc_iov_size(iovp);
|
||||||
if (size < ETH_MIN_PACK_SIZE || size > ETH_MAX_PACK_SIZE)
|
if (size < ETH_MIN_PACK_SIZE || size > ETH_MAX_PACK_SIZE)
|
||||||
|
|
|
@ -416,7 +416,7 @@ static void do_vwrite_s(message * mp)
|
||||||
get_userdata_s(mp->DL_PROC, mp->DL_GRANT, 0,
|
get_userdata_s(mp->DL_PROC, mp->DL_GRANT, 0,
|
||||||
mp->DL_COUNT, dep->de_write_iovec.iod_iovec);
|
mp->DL_COUNT, dep->de_write_iovec.iod_iovec);
|
||||||
dep->de_write_iovec.iod_iovec_s = mp->DL_COUNT;
|
dep->de_write_iovec.iod_iovec_s = mp->DL_COUNT;
|
||||||
dep->de_write_iovec.iod_grant = (vir_bytes) mp->DL_GRANT;
|
dep->de_write_iovec.iod_grant = (cp_grant_id_t) mp->DL_GRANT;
|
||||||
dep->de_write_iovec.iod_iovec_offset = 0;
|
dep->de_write_iovec.iod_iovec_offset = 0;
|
||||||
size = calc_iovec_size(&dep->de_write_iovec);
|
size = calc_iovec_size(&dep->de_write_iovec);
|
||||||
if (size < ETH_MIN_PACK_SIZE || size > ETH_MAX_PACK_SIZE)
|
if (size < ETH_MIN_PACK_SIZE || size > ETH_MAX_PACK_SIZE)
|
||||||
|
@ -454,10 +454,10 @@ static void do_vread_s(message * mp)
|
||||||
panic(dep->de_name, "read already in progress", NO_NUM);
|
panic(dep->de_name, "read already in progress", NO_NUM);
|
||||||
|
|
||||||
dep->de_read_iovec.iod_proc_nr = mp->DL_PROC;
|
dep->de_read_iovec.iod_proc_nr = mp->DL_PROC;
|
||||||
get_userdata_s(mp->DL_PROC, (vir_bytes) mp->DL_GRANT, 0,
|
get_userdata_s(mp->DL_PROC, (cp_grant_id_t) mp->DL_GRANT, 0,
|
||||||
mp->DL_COUNT, dep->de_read_iovec.iod_iovec);
|
mp->DL_COUNT, dep->de_read_iovec.iod_iovec);
|
||||||
dep->de_read_iovec.iod_iovec_s = mp->DL_COUNT;
|
dep->de_read_iovec.iod_iovec_s = mp->DL_COUNT;
|
||||||
dep->de_read_iovec.iod_grant = (vir_bytes) mp->DL_GRANT;
|
dep->de_read_iovec.iod_grant = (cp_grant_id_t) mp->DL_GRANT;
|
||||||
dep->de_read_iovec.iod_iovec_offset = 0;
|
dep->de_read_iovec.iod_iovec_offset = 0;
|
||||||
size = calc_iovec_size(&dep->de_read_iovec);
|
size = calc_iovec_size(&dep->de_read_iovec);
|
||||||
if (size < ETH_MAX_PACK_SIZE) panic(dep->de_name, SizeErrMsg, size);
|
if (size < ETH_MAX_PACK_SIZE) panic(dep->de_name, SizeErrMsg, size);
|
||||||
|
|
|
@ -1092,7 +1092,7 @@ static void do_vread_s(message *mp)
|
||||||
"do_vread_s: sys_safecopyfrom failed: %d\n", r);
|
"do_vread_s: sys_safecopyfrom failed: %d\n", r);
|
||||||
ec->read_iovec.iod_iovec_s = count;
|
ec->read_iovec.iod_iovec_s = count;
|
||||||
ec->read_iovec.iod_proc_nr = mp->DL_PROC;
|
ec->read_iovec.iod_proc_nr = mp->DL_PROC;
|
||||||
ec->read_iovec.iod_grant = (vir_bytes) mp->DL_GRANT;
|
ec->read_iovec.iod_grant = (cp_grant_id_t) mp->DL_GRANT;
|
||||||
ec->read_iovec.iod_iovec_offset = 0;
|
ec->read_iovec.iod_iovec_offset = 0;
|
||||||
|
|
||||||
ec->tmp_iovec = ec->read_iovec;
|
ec->tmp_iovec = ec->read_iovec;
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
#include <minix/types.h>
|
#include <minix/types.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
typedef int32_t cp_grant_id_t;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int cp_flags; /* CPF_* below */
|
int cp_flags; /* CPF_* below */
|
||||||
union {
|
union {
|
||||||
|
|
|
@ -9,12 +9,16 @@
|
||||||
#include <minix/types.h>
|
#include <minix/types.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
/* Type definitions. */
|
/* Type definitions. */
|
||||||
typedef unsigned int vir_clicks; /* virtual addr/length in clicks */
|
typedef unsigned int vir_clicks; /* virtual addr/length in clicks */
|
||||||
typedef unsigned long phys_bytes; /* physical addr/length in bytes */
|
typedef unsigned long phys_bytes; /* physical addr/length in bytes */
|
||||||
typedef unsigned int phys_clicks; /* physical addr/length in clicks */
|
typedef unsigned int phys_clicks; /* physical addr/length in clicks */
|
||||||
typedef int endpoint_t; /* process identifier */
|
typedef int endpoint_t; /* process identifier */
|
||||||
|
|
||||||
|
typedef int32_t cp_grant_id_t; /* A grant ID. */
|
||||||
|
|
||||||
#if (_MINIX_CHIP == _CHIP_INTEL)
|
#if (_MINIX_CHIP == _CHIP_INTEL)
|
||||||
typedef long unsigned int vir_bytes; /* virtual addresses/lengths in bytes */
|
typedef long unsigned int vir_bytes; /* virtual addresses/lengths in bytes */
|
||||||
#endif
|
#endif
|
||||||
|
@ -43,7 +47,7 @@ struct far_mem {
|
||||||
|
|
||||||
/* Structure for virtual copying by means of a vector with requests. */
|
/* Structure for virtual copying by means of a vector with requests. */
|
||||||
struct vir_addr {
|
struct vir_addr {
|
||||||
int proc_nr_e;
|
endpoint_t proc_nr_e;
|
||||||
int segment;
|
int segment;
|
||||||
vir_bytes offset;
|
vir_bytes offset;
|
||||||
};
|
};
|
||||||
|
@ -61,7 +65,7 @@ typedef struct {
|
||||||
} iovec_t;
|
} iovec_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int iov_grant; /* grant ID of an I/O buffer */
|
cp_grant_id_t iov_grant; /* grant ID of an I/O buffer */
|
||||||
vir_bytes iov_size; /* sizeof an I/O buffer */
|
vir_bytes iov_size; /* sizeof an I/O buffer */
|
||||||
} iovec_s_t;
|
} iovec_s_t;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue