t9660srv: dynamically init fcalls - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit f134aa3cff690cfd93baf716a2782980507841a2
 (DIR) parent 13c28c2c13b03e17817c9094ca159b424d1b947f
 (HTM) Author: Albert Lee <trisk@acm.jhu.edu>
       Date:   Mon,  1 Dec 2008 19:22:35 -0500
       
       9660srv: dynamically init fcalls
       
       Diffstat:
         M src/cmd/9660srv/main.c              |      35 ++++++++++++++++++-------------
       
       1 file changed, 20 insertions(+), 15 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/9660srv/main.c b/src/cmd/9660srv/main.c
       t@@ -53,21 +53,25 @@ int        nojoliet;
        int        noplan9;
        int norock;
        
       -void        (*fcalls[])(void) = {
       -        [Tversion]        rversion,
       -        [Tflush]        rflush,
       -        [Tauth]        rauth,
       -        [Tattach]        rattach,
       -        [Twalk]                rwalk,
       -        [Topen]                ropen,
       -        [Tcreate]        rcreate,
       -        [Tread]                rread,
       -        [Twrite]        rwrite,
       -        [Tclunk]        rclunk,
       -        [Tremove]        rremove,
       -        [Tstat]                rstat,
       -        [Twstat]        rwstat,
       -};
       +void    (*fcalls[Tmax])(void);
       +
       +static void
       +initfcalls(void)
       +{
       +        fcalls[Tversion]=        rversion;
       +        fcalls[Tflush]=        rflush;
       +        fcalls[Tauth]=        rauth;
       +        fcalls[Tattach]=        rattach;
       +        fcalls[Twalk]=                rwalk;
       +        fcalls[Topen]=                ropen;
       +        fcalls[Tcreate]=        rcreate;
       +        fcalls[Tread]=                rread;
       +        fcalls[Twrite]=        rwrite;
       +        fcalls[Tclunk]=        rclunk;
       +        fcalls[Tremove]=        rremove;
       +        fcalls[Tstat]=                rstat;
       +        fcalls[Twstat]=        rwstat;
       +}
        
        void
        main(int argc, char **argv)
       t@@ -76,6 +80,7 @@ main(int argc, char **argv)
                Xfsub **xs;
                char *mtpt;
        
       +        initfcalls();
                stdio = 0;
                mtpt = nil;
                ARGBEGIN {