]> Zhao Yanbai Git Server - minix.git/commitdiff
Move cp_grant_id_t to a more central header file, and uses it more
authorKees van Reeuwijk <reeuwijk@few.vu.nl>
Thu, 4 Mar 2010 16:15:26 +0000 (16:15 +0000)
committerKees van Reeuwijk <reeuwijk@few.vu.nl>
Thu, 4 Mar 2010 16:15:26 +0000 (16:15 +0000)
extensively.
Fix casts that cast the grand id field of some messages to the wrong
type.

drivers/at_wini/at_wini.c
drivers/bios_wini/bios_wini.c
drivers/dec21140A/dec21140A.c
drivers/dpeth/dp.c
drivers/lance/lance.c
include/minix/safecopies.h
include/minix/type.h

index 8c9664c4ccab4f11065f0db2f3faf83cc003fd73..fb26cd917e774ca876c9993ada221fa812fc65cf 100644 (file)
@@ -2334,7 +2334,7 @@ message *m;
                return EINVAL;
 
        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);
 
                if(r != OK)
@@ -2363,7 +2363,8 @@ message *m;
                                        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);
 
                        if(r != OK)
@@ -2375,7 +2376,7 @@ message *m;
                int count;
                if (w_prepare(m->DEVICE) == NIL_DEV) return ENXIO;
                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);
 
                if(r != OK)
index fed01fab9cde093c3ca5c1a1fe3fc631ad6bbf09..fabf06e80ae9fb528ddc996457d57755617626ed 100644 (file)
@@ -525,7 +525,7 @@ PRIVATE int w_other(struct driver *dr, message *m)
                 int count;
                 if (w_prepare(m->DEVICE) == NIL_DEV) return ENXIO;
                 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);
 
                if(r != OK)
index d973e9fe00744c6a314ddaa1d12f668872df3cf1..e53cd3437c459111350a1eaa2762a60f856ed57e 100644 (file)
@@ -481,10 +481,10 @@ PRIVATE void do_vread_s(message * mp, int from_int)
        client layer
     */
     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);
     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;
     size = de_calc_iov_size(&dep->de_read_iovec);
     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,
                      mp->DL_COUNT, iovp->iod_iovec);
     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;
     totalsize = size = de_calc_iov_size(iovp);
     if (size < ETH_MIN_PACK_SIZE || size > ETH_MAX_PACK_SIZE)
index 8cf1c6fb82c0608eaf01233d2586e42703cbf8ff..b6940063f040d90ed5ac41c966ee51a2849ad153 100644 (file)
@@ -416,7 +416,7 @@ static void do_vwrite_s(message * mp)
        get_userdata_s(mp->DL_PROC, mp->DL_GRANT, 0,
               mp->DL_COUNT, dep->de_write_iovec.iod_iovec);
        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;
        size = calc_iovec_size(&dep->de_write_iovec);
        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);
 
        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);
        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;
        size = calc_iovec_size(&dep->de_read_iovec);
        if (size < ETH_MAX_PACK_SIZE) panic(dep->de_name, SizeErrMsg, size);
index 1ca7b41a70462428e34e491de6aaeb886577c3a1..cfffc5fdfd80ef0d683caeb417ad13de08247157 100644 (file)
@@ -1092,7 +1092,7 @@ static void do_vread_s(message *mp)
             "do_vread_s: sys_safecopyfrom failed: %d\n", r);
    ec->read_iovec.iod_iovec_s    = count;
    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->tmp_iovec = ec->read_iovec;
index 477811414afad22a017af7c26310c07636223237..0f237844b50d5925981ecd88dd481991cb3794dd 100644 (file)
@@ -6,8 +6,6 @@
 #include <minix/types.h>
 #include <stdint.h>
 
-typedef int32_t cp_grant_id_t;
-
 typedef struct {
        int cp_flags;   /* CPF_* below */
        union {
index d5a526c3bf9cbd5968e4ee87131fb53ab395d06b..f176632d18c1e65d1322fa166138561166ddfcc2 100644 (file)
@@ -9,12 +9,16 @@
 #include <minix/types.h>
 #endif
 
+#include <stdint.h>
+
 /* Type definitions. */
 typedef unsigned int vir_clicks;       /*  virtual addr/length in clicks */
 typedef unsigned long phys_bytes;      /* physical addr/length in bytes */
 typedef unsigned int phys_clicks;      /* physical addr/length in clicks */
 typedef int endpoint_t;                        /* process identifier */
 
+typedef int32_t cp_grant_id_t;         /* A grant ID. */
+
 #if (_MINIX_CHIP == _CHIP_INTEL)
 typedef long unsigned int vir_bytes;   /* virtual addresses/lengths in bytes */
 #endif
@@ -43,7 +47,7 @@ struct far_mem {
 
 /* Structure for virtual copying by means of a vector with requests. */
 struct vir_addr {
-  int proc_nr_e;
+  endpoint_t proc_nr_e;
   int segment;
   vir_bytes offset;
 };
@@ -61,7 +65,7 @@ typedef struct {
 } iovec_t;
 
 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 */
 } iovec_s_t;