Changes in / [1633e04:d30e3eb]


Ignore:
Files:
1 added
9 edited

Legend:

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

    r1633e04 rd30e3eb  
    295295                                // make sure the target hasn't stopped existing since last time
    296296                                HELP: if(target < ctxs_count) {
    297                                         // calculate it's age and how young it could be before we give up on helping
     297                                        // calculate it's age and how young it could be before we give ip on helping
    298298                                        const __readyQ_avg_t cutoff = calc_cutoff(ctsc, ctx->cq.id, ctxs_count, io.data, io.tscs, __shard_factor.io, false);
    299299                                        const __readyQ_avg_t age = moving_average(ctsc, io.tscs[target].t.tv, io.tscs[target].t.ma, false);
  • libcfa/src/concurrency/io/call.cfa.in

    r1633e04 rd30e3eb  
    8989#if defined(CFA_HAVE_PREADV2)
    9090        struct iovec;
    91         extern ssize_t preadv2 (int fd, const struct iovec * iov, int iovcnt, off_t offset, int flags);
     91        extern ssize_t preadv2 (int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags);
    9292#endif
    9393#if defined(CFA_HAVE_PWRITEV2)
    9494        struct iovec;
    95         extern ssize_t pwritev2(int fd, const struct iovec * iov, int iovcnt, off_t offset, int flags);
     95        extern ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags);
    9696#endif
    9797
     
    108108        struct msghdr;
    109109        struct sockaddr;
    110         extern ssize_t sendmsg(int sockfd, const struct msghdr * msg, int flags);
    111         extern ssize_t recvmsg(int sockfd, struct msghdr * msg, int flags);
    112         extern ssize_t send(int sockfd, const void * buf, size_t len, int flags);
    113         extern ssize_t recv(int sockfd, void * buf, size_t len, int flags);
     110        extern ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);
     111        extern ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);
     112        extern ssize_t send(int sockfd, const void *buf, size_t len, int flags);
     113        extern ssize_t recv(int sockfd, void *buf, size_t len, int flags);
    114114
    115115        extern int fallocate(int fd, int mode, off_t offset, off_t len);
    116116        extern int posix_fadvise(int fd, off_t offset, off_t len, int advice);
    117         extern int madvise(void * addr, size_t length, int advice);
    118 
    119         extern int openat(int dirfd, const char * pathname, int flags, mode_t mode);
     117        extern int madvise(void *addr, size_t length, int advice);
     118
     119        extern int openat(int dirfd, const char *pathname, int flags, mode_t mode);
    120120        extern int close(int fd);
    121121
    122         extern ssize_t read (int fd, void * buf, size_t count);
     122        extern ssize_t read (int fd, void *buf, size_t count);
    123123
    124124        struct epoll_event;
    125         extern int epoll_ctl(int epfd, int op, int fd, struct epoll_event * event);
    126 
    127         extern ssize_t splice(int fd_in, __off64_t * off_in, int fd_out, __off64_t * off_out, size_t len, unsigned int flags);
     125        extern int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
     126
     127        extern ssize_t splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags);
    128128        extern ssize_t tee(int fd_in, int fd_out, size_t len, unsigned int flags);
    129129}
     
    224224calls = [
    225225        # CFA_HAVE_IORING_OP_READV
    226         Call('READV', 'ssize_t preadv2(int fd, const struct iovec * iov, int iovcnt, off_t offset, int flags)', {
     226        Call('READV', 'ssize_t preadv2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags)', {
    227227                'fd'  : 'fd',
    228                 'addr': '(typeof(sqe->addr))iov',
     228                'off' : 'offset',
     229                'addr': '(uintptr_t)iov',
    229230                'len' : 'iovcnt',
    230                 'off' : 'offset',
    231                 'rw_flags' : 'flags'
    232231        }, define = 'CFA_HAVE_PREADV2'),
    233232        # CFA_HAVE_IORING_OP_WRITEV
    234         Call('WRITEV', 'ssize_t pwritev2(int fd, const struct iovec * iov, int iovcnt, off_t offset, int flags)', {
     233        Call('WRITEV', 'ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags)', {
    235234                'fd'  : 'fd',
    236                 'addr': '(typeof(sqe->addr))iov',
    237                 'len' : 'iovcnt',
    238235                'off' : 'offset',
    239                 'rw_flags' : 'flags'
     236                'addr': '(uintptr_t)iov',
     237                'len' : 'iovcnt'
    240238        }, define = 'CFA_HAVE_PWRITEV2'),
    241239        # CFA_HAVE_IORING_OP_FSYNC
     
    244242        }),
    245243        # CFA_HAVE_IORING_OP_EPOLL_CTL
    246         Call('EPOLL_CTL', 'int epoll_ctl(int epfd, int op, int fd, struct epoll_event * event)', {
     244        Call('EPOLL_CTL', 'int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)', {
    247245                'fd': 'epfd',
     246                'addr': 'fd',
    248247                'len': 'op',
    249                 'addr': 'fd',
    250                 'off': '(typeof(sqe->off))event'
     248                'off': '(uintptr_t)event'
    251249        }),
    252250        # CFA_HAVE_IORING_OP_SYNC_FILE_RANGE
     
    258256        }),
    259257        # CFA_HAVE_IORING_OP_SENDMSG
    260         Call('SENDMSG', 'ssize_t sendmsg(int sockfd, const struct msghdr * msg, int flags)', {
    261                 'fd': 'sockfd',
    262                 'addr': '(typeof(sqe->addr))(struct msghdr *)msg',
     258        Call('SENDMSG', 'ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags)', {
     259                'fd': 'sockfd',
     260                'addr': '(uintptr_t)(struct msghdr *)msg',
    263261                'len': '1',
    264262                'msg_flags': 'flags'
    265263        }),
    266264        # CFA_HAVE_IORING_OP_RECVMSG
    267         Call('RECVMSG', 'ssize_t recvmsg(int sockfd, struct msghdr * msg, int flags)', {
    268                 'fd': 'sockfd',
    269                 'addr': '(typeof(sqe->addr))(struct msghdr *)msg',
     265        Call('RECVMSG', 'ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags)', {
     266                'fd': 'sockfd',
     267                'addr': '(uintptr_t)(struct msghdr *)msg',
    270268                'len': '1',
    271269                'msg_flags': 'flags'
    272270        }),
    273271        # CFA_HAVE_IORING_OP_SEND
    274         Call('SEND', 'ssize_t send(int sockfd, const void * buf, size_t len, int flags)', {
    275                 'fd': 'sockfd',
    276                 'addr': '(typeof(sqe->addr))buf',
     272        Call('SEND', 'ssize_t send(int sockfd, const void *buf, size_t len, int flags)', {
     273                'fd': 'sockfd',
     274                'addr': '(uintptr_t)buf',
    277275                'len': 'len',
    278276                'msg_flags': 'flags'
    279277        }),
    280278        # CFA_HAVE_IORING_OP_RECV
    281         Call('RECV', 'ssize_t recv(int sockfd, void * buf, size_t len, int flags)', {
    282                 'fd': 'sockfd',
    283                 'addr': '(typeof(sqe->addr))buf',
     279        Call('RECV', 'ssize_t recv(int sockfd, void *buf, size_t len, int flags)', {
     280                'fd': 'sockfd',
     281                'addr': '(uintptr_t)buf',
    284282                'len': 'len',
    285283                'msg_flags': 'flags'
     
    288286        Call('ACCEPT', 'int accept4(int sockfd, __SOCKADDR_ARG addr, socklen_t * restrict addrlen, int flags)', {
    289287                'fd': 'sockfd',
    290                 'addr': '(typeof(sqe->addr))&addr',
    291                 'addr2': '(typeof(sqe->addr2))addrlen',
     288                'addr': '(uintptr_t)&addr',
     289                'addr2': '(uintptr_t)addrlen',
    292290                'accept_flags': 'flags'
    293291        }),
     
    295293        Call('CONNECT', 'int connect(int sockfd, __CONST_SOCKADDR_ARG addr, socklen_t addrlen)', {
    296294                'fd': 'sockfd',
    297                 'addr': '(typeof(sqe->addr))&addr',
     295                'addr': '(uintptr_t)&addr',
    298296                'off': 'addrlen'
    299297        }),
     
    301299        Call('FALLOCATE', 'int fallocate(int fd, int mode, off_t offset, off_t len)', {
    302300                'fd': 'fd',
     301                'addr': '(uintptr_t)len',
    303302                'len': 'mode',
    304                 'off': 'offset',
    305                 'addr': 'len'
     303                'off': 'offset'
    306304        }),
    307305        # CFA_HAVE_IORING_OP_FADVISE
     
    313311        }),
    314312        # CFA_HAVE_IORING_OP_MADVISE
    315         Call('MADVISE', 'int madvise(void * addr, size_t length, int advice)', {
    316                 'addr': '(typeof(sqe->addr))addr',
     313        Call('MADVISE', 'int madvise(void *addr, size_t length, int advice)', {
     314                'addr': '(uintptr_t)addr',
    317315                'len': 'length',
    318316                'fadvise_advice': 'advice'
    319317        }),
    320318        # CFA_HAVE_IORING_OP_OPENAT
    321         Call('OPENAT', 'int openat(int dirfd, const char * pathname, int flags, mode_t mode)', {
     319        Call('OPENAT', 'int openat(int dirfd, const char *pathname, int flags, mode_t mode)', {
    322320                'fd': 'dirfd',
    323                 'addr': '(typeof(sqe->addr))pathname',
    324                 'open_flags': 'flags;',
    325                 'len': 'mode'
     321                'addr': '(uintptr_t)pathname',
     322                'len': 'mode',
     323                'open_flags': 'flags;'
    326324        }),
    327325        # CFA_HAVE_IORING_OP_OPENAT2
    328         Call('OPENAT2', 'int openat2(int dirfd, const char * pathname, struct open_how * how, size_t size)', {
     326        Call('OPENAT2', 'int openat2(int dirfd, const char *pathname, struct open_how * how, size_t size)', {
    329327                'fd': 'dirfd',
    330                 'addr': '(typeof(sqe->addr))pathname',
    331                 'off': '(typeof(sqe->off))how',
    332                 'len': 'sizeof(*how)'
     328                'addr': 'pathname',
     329                'len': 'sizeof(*how)',
     330                'off': '(uintptr_t)how',
    333331        }, define = 'CFA_HAVE_OPENAT2'),
    334332        # CFA_HAVE_IORING_OP_CLOSE
     
    337335        }),
    338336        # CFA_HAVE_IORING_OP_STATX
    339         Call('STATX', 'int statx(int dirfd, const char * pathname, int flags, unsigned int mask, struct statx * statxbuf)', {
     337        Call('STATX', 'int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf)', {
    340338                'fd': 'dirfd',
    341                 'addr': '(typeof(sqe->addr))pathname',
    342                 'statx_flags': 'flags',
     339                'off': '(uintptr_t)statxbuf',
     340                'addr': 'pathname',
    343341                'len': 'mask',
    344                 'off': '(typeof(sqe->off))statxbuf'
     342                'statx_flags': 'flags'
    345343        }, define = 'CFA_HAVE_STATX'),
    346344        # CFA_HAVE_IORING_OP_READ
    347345        Call('READ', 'ssize_t read(int fd, void * buf, size_t count)', {
    348346                'fd': 'fd',
    349                 'addr': '(typeof(sqe->addr))buf',
     347                'addr': '(uintptr_t)buf',
    350348                'len': 'count'
    351349        }),
     
    353351        Call('WRITE', 'ssize_t write(int fd, void * buf, size_t count)', {
    354352                'fd': 'fd',
    355                 'addr': '(typeof(sqe->addr))buf',
     353                'addr': '(uintptr_t)buf',
    356354                'len': 'count'
    357355        }),
    358356        # CFA_HAVE_IORING_OP_SPLICE
    359         Call('SPLICE', 'ssize_t splice(int fd_in, __off64_t * off_in, int fd_out, __off64_t * off_out, size_t len, unsigned int flags)', {
     357        Call('SPLICE', 'ssize_t splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags)', {
    360358                'splice_fd_in': 'fd_in',
    361                 'splice_off_in': 'off_in ? (typeof(sqe->splice_off_in))*off_in : (typeof(sqe->splice_off_in))-1',
     359                'splice_off_in': 'off_in ? (__u64)*off_in : (__u64)-1',
    362360                'fd': 'fd_out',
    363                 'off': 'off_out ? (typeof(sqe->off))*off_out : (typeof(sqe->off))-1',
     361                'off': 'off_out ? (__u64)*off_out : (__u64)-1',
    364362                'len': 'len',
    365363                'splice_flags': 'flags'
  • src/AST/Print.cpp

    r1633e04 rd30e3eb  
    369369                                --indent;
    370370                        }
    371                 }
    372 
    373                 if ( ! node->withExprs.empty() ) {
    374                         // Not with a clause, but the 'with clause'.
    375                         ++indent;
    376                         os << " with clause" << endl << indent;
    377                         printAll( node->withExprs );
    378                         --indent;
    379371                }
    380372
  • src/Common/module.mk

    r1633e04 rd30e3eb  
    2020        Common/CodeLocationTools.hpp \
    2121        Common/CodeLocationTools.cpp \
     22        Common/Debug.h \
    2223        Common/DeclStats.hpp \
    2324        Common/DeclStats.cpp \
  • src/Common/utility.h

    r1633e04 rd30e3eb  
    190190}
    191191
     192template< typename... Params >
     193void warn( const Params & ... params ) {
     194        std::cerr << "Warning: ";
     195        toString_single( std::cerr, params... );
     196        std::cerr << std::endl;
     197}
     198
    192199// determines if pref is a prefix of str
    193200static inline bool isPrefix( const std::string & str, const std::string & pref, unsigned int start = 0 ) {
  • src/InitTweak/FixInit.cc

    r1633e04 rd30e3eb  
    12331233                }
    12341234
     1235                template< typename Visitor, typename... Params >
     1236                void error( Visitor & v, CodeLocation loc, const Params &... params ) {
     1237                        SemanticErrorException err( loc, toString( params... ) );
     1238                        v.errors.append( err );
     1239                }
     1240
    12351241                template< typename... Params >
    12361242                void GenStructMemberCalls::emit( CodeLocation loc, const Params &... params ) {
    1237                         SemanticErrorException err( loc, toString( params... ) );
    1238                         errors.append( err );
     1243                        // toggle warnings vs. errors here.
     1244                        // warn( params... );
     1245                        error( *this, loc, params... );
    12391246                }
    12401247
  • src/InitTweak/FixInitNew.cpp

    r1633e04 rd30e3eb  
    13031303        }
    13041304
     1305        template< typename Visitor, typename... Params >
     1306        void error( Visitor & v, CodeLocation loc, const Params &... params ) {
     1307                SemanticErrorException err( loc, toString( params... ) );
     1308                v.errors.append( err );
     1309        }
     1310
    13051311        template< typename... Params >
    13061312        void GenStructMemberCalls::emit( CodeLocation loc, const Params &... params ) {
    1307                 SemanticErrorException err( loc, toString( params... ) );
    1308                 errors.append( err );
     1313                // toggle warnings vs. errors here.
     1314                // warn( params... );
     1315                error( *this, loc, params... );
    13091316        }
    13101317
  • src/Parser/parser.yy

    r1633e04 rd30e3eb  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Mar 22 21:26:01 2023
    13 // Update Count     : 6002
     12// Last Modified On : Tue Mar 21 19:01:00 2023
     13// Update Count     : 5990
    1414//
    1515
     
    270270        SemanticError( yylloc, ::toString( "Identifier \"", identifier, "\" cannot appear before a ", kind, ".\n"
    271271                                   "Possible cause is misspelled storage/CV qualifier, misspelled typename, or missing generic parameter." ) );
    272 } // IdentifierBeforeType
    273 
    274 static bool TypedefForall( DeclarationNode * decl ) {
    275         if ( decl->type->forall || (decl->type->kind == TypeData::Aggregate && decl->type->aggregate.params) ) {
    276                 SemanticError( yylloc, "forall qualifier in typedef is currently unimplemented." );
    277                 return true;
    278         } // if
    279         return false;
    280272} // IdentifierBeforeType
    281273
     
    19661958        TYPEDEF type_specifier declarator
    19671959                {
     1960                        // if type_specifier is an anon aggregate => name
    19681961                        typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "4" );
    1969                         if ( TypedefForall( $2 ) ) $$ = nullptr;
    1970                         else $$ = $3->addType( $2 )->addTypedef();              // watchout frees $2 and $3
     1962                        $$ = $3->addType( $2 )->addTypedef();           // watchout frees $2 and $3
    19711963                }
    19721964        | typedef_declaration pop ',' push declarator
     
    19781970                {
    19791971                        typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname, "6" );
    1980                         if ( TypedefForall( $1 ) ) $$ = nullptr;
    1981                         else $$ = $4->addQualifiers( $1 )->addType( $3 )->addTypedef();
     1972                        $$ = $4->addQualifiers( $1 )->addType( $3 )->addTypedef();
    19821973                }
    19831974        | type_specifier TYPEDEF declarator
    19841975                {
    19851976                        typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "7" );
    1986                         if ( TypedefForall( $1 ) ) $$ = nullptr;
    1987                         else $$ = $3->addType( $1 )->addTypedef();
     1977                        $$ = $3->addType( $1 )->addTypedef();
    19881978                }
    19891979        | type_specifier TYPEDEF type_qualifier_list declarator
    19901980                {
    19911981                        typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname, "8" );
    1992                         if ( TypedefForall( $3 ) ) $$ = nullptr;
    1993                         else $$ = $4->addQualifiers( $1 )->addType( $1 )->addTypedef();
     1982                        $$ = $4->addQualifiers( $1 )->addType( $1 )->addTypedef();
    19941983                }
    19951984        ;
  • src/SynTree/FunctionDecl.cc

    r1633e04 rd30e3eb  
    8787        } // if
    8888
    89         if ( !withExprs.empty() ) {
    90                 os << indent << "... with clause" << std::endl;
    91                 os << indent + 1;
    92                 printAll( withExprs, os, indent + 1 );
    93         }
    94 
    9589        if ( statements ) {
    9690                os << indent << "... with body" << endl << indent+1;
Note: See TracChangeset for help on using the changeset viewer.