]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - kernel/orb/invoke.cc
Random stuff.
[polintos/scott/priv.git] / kernel / orb / invoke.cc
index 8d4f3eb96370a03fab278e4edbd06eb29b49e9bb..abfe23792d231e5ed1f49693bee8c47aba4ed502 100644 (file)
@@ -57,7 +57,7 @@ namespace ORB {
        {
                // FIXME: refcounting
                ObjTableEntry *ote = table.lookup(id);
-               if (!ote || !ote->hdr.Valid)
+               if (!ote || ote->hdr.id == invalid_id)
                        return NULL;
                
                if (ote->hdr.Pointer)
@@ -116,7 +116,7 @@ namespace ORB {
                        size_t len = round_up(spib->segments[i].len, 3);
 
                        if (len + copied > bufsize || len + copied < copied)
-                               throw_idl(InvalidArgument, 0, countarray("copy_data: bad size"));
+                               throw_idl(InvalidArgument, 0, countarray<ORBMM>("copy_data: bad size"));
                        
                        dpib->segments[i].ptr = vaddr;
                        dpib->segments[i].len = len;
@@ -158,16 +158,16 @@ namespace ORB {
                printf("invoke_method: pib %p\n", user_pib);
        
                ParamInfoBlock pib = Arch::copyin(user_pib);
-               printf("objlist len %lu\n", pib.objlist_len);
+               printf("objlist len %u\n", pib.objlist_len);
                
                if (pib.objlist_len == 0)
-                       throw_idl(InvalidArgument, 0, countarray("no objects"));
+                       throw_idl(InvalidArgument, 0, countarray<ORBMM>("no objects"));
                
                // FIXME: declare constants somewhere
                if (pib.num_segments > 64)
-                       throw_idl(InvalidArgument, 0, countarray("too many segments"));
+                       throw_idl(InvalidArgument, 0, countarray<ORBMM>("too many segments"));
                if (pib.objlist_len > 4096)
-                       throw_idl(InvalidArgument, 0, countarray("too many objects"));
+                       throw_idl(InvalidArgument, 0, countarray<ORBMM>("too many objects"));
                
                printf("&pib.objlist[0] %p\n", &pib.objlist[0]);
                
@@ -190,11 +190,11 @@ namespace ORB {
                        buflen += sizeof(ParamInfoBlock);
                        buflen += pib.num_segments * sizeof(ParamInfoBlock::Segment);
                        
-                       u8 *args = new(orbmm) u8[buflen];
-                       u8 *copy = new(orbmm) u8[pib.copy_size];
+                       u8 *args = new(ORBMM()) u8[buflen];
+                       u8 *copy = new(ORBMM()) u8[pib.copy_size];
                        ParamInfoBlock *dpib = reinterpret_cast<ParamInfoBlock *>
                                               (args + piboff);
-                       dpib->objlist = reinterpret_cast<uintptr_t *>(args + datalen);
+                       dpib->objlist = reinterpret_cast<ID *>(args + datalen);
                        
                        copy_ids_to_kern(dpib, &pib, ids);
                        copy_data(args, args, pib.buffer_size, dpib, &pib, ~0U, Segment::In);