Ignore:
Timestamp:
Aug 4, 2020, 5:10:04 PM (16 months ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
arm-eh, jacob/cs343-translation, master, new-ast, new-ast-unique-expr
Children:
53ee27e
Parents:
7288c00
Message:

Fixed pointer conversion in IO call

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/iocall.cfa

    r7288c00 r3f850d7  
    252252
    253253                (*sqe){ IORING_OP_ACCEPT, sockfd };
    254                 sqe->addr = addr;
    255                 sqe->addr2 = addrlen;
     254                sqe->addr = (uint64_t)(uintptr_t)addr;
     255                sqe->addr2 = (uint64_t)(uintptr_t)addrlen;
    256256                sqe->accept_flags = flags;
    257257
     
    267267
    268268                (*sqe){ IORING_OP_CONNECT, sockfd };
    269                 sqe->addr = (uint64_t)addr;
    270                 sqe->off = addrlen;
     269                sqe->addr = (uint64_t)(uintptr_t)addr;
     270                sqe->off  = (uint64_t)(uintptr_t)addrlen;
    271271
    272272                __submit_wait
     
    280280                __submit_prelude
    281281
     282                #warning FALLOCATE documentation for linux 5.7 is incorrect, and doesn't handle mode
     283
    282284                (*sqe){ IORING_OP_FALLOCATE, fd };
    283285                sqe->off = offset;
    284                 sqe->len = length;
    285                 sqe->mode = mode;
     286                sqe->len = mode;
     287                sqe->addr = len;
    286288
    287289                __submit_wait
     
    297299                (*sqe){ IORING_OP_FADVISE, fd };
    298300                sqe->off = (uint64_t)offset;
    299                 sqe->len = length;
     301                sqe->len = len;
    300302                sqe->fadvise_advice = advice;
    301303
     
    328330                sqe->addr = (uint64_t)pathname;
    329331                sqe->open_flags = flags;
    330                 sqe->mode = mode;
     332                sqe->len = mode;
    331333
    332334                __submit_wait
     
    396398                __submit_prelude
    397399
    398                 (*sqe){ IORING_OP_SPLICE, fd_out, 0p, len, off_out };
     400                (*sqe){ IORING_OP_SPLICE, fd_out };
     401                if( off_out ) {
     402                        sqe->off = *off_out;
     403                }
     404                else {
     405                        sqe->off = (uint64_t)-1;
     406                }
     407                sqe->len = len;
    399408                sqe->splice_fd_in  = fd_in;
    400                 sqe->splice_off_in = off_in;
     409                if( off_in ) {
     410                        sqe->splice_off_in = *off_in;
     411                }
     412                else {
     413                        sqe->splice_off_in = (uint64_t)-1;
     414                }
    401415                sqe->splice_flags  = flags;
    402416
     
    411425                __submit_prelude
    412426
    413                 (*sqe){ IORING_OP_SPLICE, fd_out, 0p, len, off_out };
     427                (*sqe){ IORING_OP_SPLICE, fd_out };
     428                if( off_out ) {
     429                        sqe->off = *off_out;
     430                }
     431                else {
     432                        sqe->off = (uint64_t)-1;
     433                }
     434                sqe->len = len;
    414435                sqe->splice_fd_in  = fd_in;
    415                 sqe->splice_off_in = off_in;
     436                if( off_in ) {
     437                        sqe->splice_off_in = *off_in;
     438                }
     439                else {
     440                        sqe->splice_off_in = (uint64_t)-1;
     441                }
    416442                sqe->splice_flags  = flags | out_flags;
    417443                sqe->flags = in_flags;
Note: See TracChangeset for help on using the changeset viewer.