Changeset 6d4c549 in mainline


Ignore:
Timestamp:
2009-09-25T15:01:03Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bbf88db
Parents:
2e37308
Message:

streamline the behavior protocols
add support for initialization and finalization phase of protocols in ADL

Location:
contrib
Files:
12 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • contrib/arch/hadlbppp.py

    r2e37308 r6d4c549  
    3636INC, POST_INC, BLOCK_COMMENT, LINE_COMMENT, SYSTEM, ARCH, HEAD, BODY, NULL, \
    3737        INST, VAR, FIN, BIND, TO, SUBSUME, DELEGATE, IFACE, EXTENDS, PRE_BODY, \
    38         PROTOTYPE, PAR_LEFT, PAR_RIGHT, SIGNATURE, PROTOCOL, FRAME, PROVIDES, \
    39         REQUIRES = range(27)
     38        PROTOTYPE, PAR_LEFT, PAR_RIGHT, SIGNATURE, PROTOCOL, INITIALIZATION, \
     39        FINALIZATION, FRAME, PROVIDES, REQUIRES = range(29)
    4040
    4141def usage(prname):
    4242        "Print usage syntax"
    4343       
    44         print "%s <OUTPUT>" % prname
     44        print "%s <--dumpbp|--dumpadl|--noop>+ <OUTPUT>" % prname
    4545
    4646def tabs(cnt):
     
    246246        "Convert interface Behavior Protocol to generic protocol"
    247247       
    248         result = ["("]
     248        result = []
    249249        i = 0
    250250       
     
    266266                i += 1
    267267       
    268         result.append(")")
    269         result.append("*")
    270        
    271268        return result
    272269
    273 def merge_bp(protocols):
     270def merge_bp(initialization, finalization, protocols):
    274271        "Merge several Behavior Protocols"
    275272       
     273        indep = []
     274       
    276275        if (len(protocols) > 1):
    277                 result = []
    278276                first = True
    279277               
     
    282280                                first = False
    283281                        else:
    284                                 result.append("|")
    285                        
    286                         result.append("(")
    287                         result.extend(protocol)
    288                         result.append(")")
    289                
    290                 return result
    291        
    292         if (len(protocols) == 1):
    293                 return protocols[0]
    294        
    295         return []
     282                                indep.append("|")
     283                       
     284                        indep.append("(")
     285                        indep.extend(protocol)
     286                        indep.append(")")
     287        elif (len(protocols) == 1):
     288                indep = protocols[0]
     289       
     290        inited = []
     291       
     292        if (initialization != None):
     293                if (len(indep) > 0):
     294                        inited.append("(")
     295                        inited.extend(initialization)
     296                        inited.append(")")
     297                        inited.append(";")
     298                        inited.append("(")
     299                        inited.extend(indep)
     300                        inited.append(")")
     301                else:
     302                        inited = initialization
     303        else:
     304                inited = indep
     305       
     306        finited = []
     307       
     308        if (finalization != None):
     309                if (len(inited) > 0):
     310                        finited.append("(")
     311                        finited.extend(inited)
     312                        finited.append(")")
     313                        finited.append(";")
     314                        finited.append("(")
     315                        finited.extend(finalization)
     316                        finited.append(")")
     317                else:
     318                        finited = finalization
     319        else:
     320                finited = inited
     321       
     322        return finited
    296323
    297324def parse_bp(name, tokens, base_indent):
     
    373400        "Dump Behavior Protocol of a given frame"
    374401       
     402        global opt_bp
     403       
    375404        fname = "%s.bp" % frame['name']
    376405       
    377         archf.write("instantiate %s from \"%s\"\n" % (var, fname))
     406        if (archf != None):
     407                archf.write("instantiate %s from \"%s\"\n" % (var, fname))
     408       
    378409        outname = os.path.join(outdir, fname)
    379410       
     
    381412        if ('protocol' in frame):
    382413                protocols.append(frame['protocol'])
     414       
     415        if ('initialization' in frame):
     416                initialization = frame['initialization']
     417        else:
     418                initialization = None
     419       
     420        if ('finalization' in frame):
     421                finalization = frame['finalization']
     422        else:
     423                finalization = None
    383424       
    384425        if ('provides' in frame):
     
    393434                                print "%s: Provided interface '%s' is undefined" % (frame['name'], provides['iface'])
    394435       
    395         outf = file(outname, "w")
    396         outf.write(parse_bp(outname, merge_bp(protocols), 0))
    397         outf.close()
     436       
     437        if (opt_bp):
     438                outf = file(outname, "w")
     439                outf.write(parse_bp(outname, merge_bp(initialization, finalization, protocols), 0))
     440                outf.close()
    398441
    399442def get_system_arch():
     
    431474        "Create null frame protocol"
    432475       
    433         archf.write("frame \"%s\"\n" % fname)
     476        global opt_bp
     477       
     478        if (archf != None):
     479                archf.write("frame \"%s\"\n" % fname)
     480       
    434481        outname = os.path.join(outdir, fname)
    435482       
    436         outf = file(outname, "w")
    437         outf.write("NULL")
    438         outf.close()
     483        if (opt_bp):
     484                outf = file(outname, "w")
     485                outf.write("NULL")
     486                outf.close()
    439487
    440488def flatten_binds(binds, delegates, subsumes):
     
    521569        "Dump system architecture Behavior Protocol"
    522570       
     571        global opt_bp
     572       
    523573        arch = get_system_arch()
    524574       
     
    562612                        break
    563613       
     614       
    564615        outname = os.path.join(outdir, "%s.archbp" % arch['name'])
    565         outf = file(outname, "w")
     616        if (opt_bp):
     617                outf = file(outname, "w")
     618        else:
     619                outf = None
    566620       
    567621        create_null_bp("null.bp", outdir, outf)
     
    573627       
    574628        for dst, src in directed_binds.items():
    575                 outf.write("bind %s to %s\n" % (", ".join(src), dst))
    576        
    577         outf.close()
     629                if (outf != None):
     630                        outf.write("bind %s to %s\n" % (", ".join(src), dst))
     631       
     632        if (outf != None):
     633                outf.close()
    578634
    579635def preproc_adl(raw, inarg):
     
    591647        global frame
    592648        global protocol
     649        global initialization
     650        global finalization
    593651       
    594652        global iface_properties
     
    689747                       
    690748                        if (BODY in context):
     749                                if (FINALIZATION in context):
     750                                        if (token == "{"):
     751                                                indent += 1
     752                                        elif (token == "}"):
     753                                                indent -= 1
     754                                       
     755                                        if (((token[-1] == ":") and (indent == 0)) or (indent == -1)):
     756                                                bp = split_bp(finalization)
     757                                                finalization = None
     758                                               
     759                                                if (not frame in frame_properties):
     760                                                        frame_properties[frame] = {}
     761                                               
     762                                                if ('finalization' in frame_properties[frame]):
     763                                                        print "%s: Finalization protocol for frame '%s' already defined" % (inname, frame)
     764                                                else:
     765                                                        frame_properties[frame]['finalization'] = bp
     766                                               
     767                                                output += "\n%s" % tabs(2)
     768                                                output += parse_bp(inname, bp, 2)
     769                                               
     770                                                context.remove(FINALIZATION)
     771                                                if (indent == -1):
     772                                                        output += "\n%s" % token
     773                                                        context.remove(BODY)
     774                                                        context.add(NULL)
     775                                                        indent = 0
     776                                                        continue
     777                                                else:
     778                                                        indent = 2
     779                                        else:
     780                                                finalization += token
     781                                                continue
     782                               
     783                                if (INITIALIZATION in context):
     784                                        if (token == "{"):
     785                                                indent += 1
     786                                        elif (token == "}"):
     787                                                indent -= 1
     788                                       
     789                                        if (((token[-1] == ":") and (indent == 0)) or (indent == -1)):
     790                                                bp = split_bp(initialization)
     791                                                initialization = None
     792                                               
     793                                                if (not frame in frame_properties):
     794                                                        frame_properties[frame] = {}
     795                                               
     796                                                if ('initialization' in frame_properties[frame]):
     797                                                        print "%s: Initialization protocol for frame '%s' already defined" % (inname, frame)
     798                                                else:
     799                                                        frame_properties[frame]['initialization'] = bp
     800                                               
     801                                                output += "\n%s" % tabs(2)
     802                                                output += parse_bp(inname, bp, 2)
     803                                               
     804                                                context.remove(INITIALIZATION)
     805                                                if (indent == -1):
     806                                                        output += "\n%s" % token
     807                                                        context.remove(BODY)
     808                                                        context.add(NULL)
     809                                                        indent = 0
     810                                                        continue
     811                                                else:
     812                                                        indent = 2
     813                                        else:
     814                                                initialization += token
     815                                                continue
     816                               
    691817                                if (PROTOCOL in context):
    692818                                        if (token == "{"):
     
    695821                                                indent -= 1
    696822                                       
    697                                         if (indent == -1):
     823                                        if (((token[-1] == ":") and (indent == 0)) or (indent == -1)):
    698824                                                bp = split_bp(protocol)
    699825                                                protocol = None
     
    709835                                                output += "\n%s" % tabs(2)
    710836                                                output += parse_bp(inname, bp, 2)
    711                                                 output += "\n%s" % token
    712                                                 indent = 0
    713837                                               
    714838                                                context.remove(PROTOCOL)
    715                                                 context.remove(BODY)
    716                                                 context.add(NULL)
     839                                                if (indent == -1):
     840                                                        output += "\n%s" % token
     841                                                        context.remove(BODY)
     842                                                        context.add(NULL)
     843                                                        indent = 0
     844                                                        continue
     845                                                else:
     846                                                        indent = 2
    717847                                        else:
    718848                                                protocol += token
    719                                        
    720                                         continue
     849                                                continue
    721850                               
    722851                                if (REQUIRES in context):
     
    816945                                        output += "\n%s%s" % (tabs(indent - 1), token)
    817946                                        context.add(PROVIDES)
    818                                         protocol = ""
    819947                                        continue
    820948                               
     
    822950                                        output += "\n%s%s" % (tabs(indent - 1), token)
    823951                                        context.add(REQUIRES)
    824                                         protocol = ""
     952                                        continue
     953                               
     954                                if (token == "initialization:"):
     955                                        output += "\n%s%s" % (tabs(indent - 1), token)
     956                                        indent = 0
     957                                        context.add(INITIALIZATION)
     958                                        initialization = ""
     959                                        continue
     960                               
     961                                if (token == "finalization:"):
     962                                        output += "\n%s%s" % (tabs(indent - 1), token)
     963                                        indent = 0
     964                                        context.add(FINALIZATION)
     965                                        finalization = ""
    825966                                        continue
    826967                               
     
    10121153                                                print "%s: Expected inherited interface name in interface head '%s'" % (inname, interface)
    10131154                                        else:
    1014                                                 output += " %s" % token
     1155                                                output += "%s " % token
    10151156                                                if (not interface in iface_properties):
    10161157                                                        iface_properties[interface] = {}
     
    10231164                               
    10241165                                if (token == "extends"):
    1025                                         output += " %s" % token
     1166                                        output += "%s " % token
    10261167                                        context.add(EXTENDS)
    10271168                                        continue
     
    13761517        global frame
    13771518        global protocol
     1519        global initialization
     1520        global finalization
    13781521       
    13791522        global arg0
     1523       
     1524        global opt_adl
    13801525       
    13811526        output = ""
     
    13851530        frame = None
    13861531        protocol = None
     1532        initialization = None
     1533        finalization = None
    13871534        arg0 = None
    13881535       
     
    13901537        output = output.strip()
    13911538       
    1392         if (output != ""):
     1539        if ((output != "") and (opt_adl)):
    13931540                outf = file(outname, "w")
    13941541                outf.write(output)
     
    14161563        global frame_properties
    14171564        global arch_properties
    1418        
    1419         if (len(sys.argv) < 2):
     1565        global opt_bp
     1566        global opt_adl
     1567       
     1568        if (len(sys.argv) < 3):
    14201569                usage(sys.argv[0])
    14211570                return
    14221571       
    1423         path = os.path.abspath(sys.argv[1])
     1572        opt_bp = False
     1573        opt_adl = False
     1574       
     1575        for arg in sys.argv[1:(len(sys.argv) - 1)]:
     1576                if (arg == "--dumpbp"):
     1577                        opt_bp = True
     1578                elif (arg == "--dumpadl"):
     1579                        opt_adl = True
     1580                elif (arg == "--noop"):
     1581                        pass
     1582                else:
     1583                        print "Error: Unknown command line option '%s'" % arg
     1584                        return
     1585       
     1586        path = os.path.abspath(sys.argv[-1])
    14241587        if (not os.path.isdir(path)):
    14251588                print "Error: <OUTPUT> is not a directory"
  • contrib/arch/kernel/kernel.adl

    r2e37308 r6d4c549  
    77                unative_t sys_klog(int fd, const void *buf, size_t size);
    88        protocol:
    9                 ?sys_klog
     9                ?sys_klog*
    1010};
    1111
     
    1717                unative_t sys_debug_disable_console(void);
    1818        protocol:
    19                 ?sys_debug_enable_console +
    20                 ?sys_debug_disable_console
     19                (
     20                        ?sys_debug_enable_console +
     21                        ?sys_debug_disable_console
     22                )*
    2123};
    2224
     
    2527                unative_t sys_tls_set(unative_t addr);
    2628        protocol:
    27                 ?sys_tls_set
     29                ?sys_tls_set*
    2830};
    2931
     
    3840                unative_t sys_thread_get_id(thread_id_t *uspace_thread_id);
    3941        protocol:
    40                 ?sys_thread_create +
    41                 ?sys_thread_get_id +
    42                 ?sys_thread_exit
     42                (
     43                        ?sys_thread_create +
     44                        ?sys_thread_get_id +
     45                        ?sys_thread_exit
     46                )*
    4347};
    4448
     
    5054                unative_t sys_task_get_id(task_id_t *uspace_task_id);
    5155        protocol:
    52                 ?sys_task_set_name +
    53                 ?sys_task_get_id
     56                (
     57                        ?sys_task_set_name +
     58                        ?sys_task_get_id
     59                )*
    5460};
    5561
     
    5864                unative_t sys_program_spawn_loader(char *uspace_name, size_t name_len);
    5965        protocol:
    60                 ?sys_program_spawn_loader
     66                ?sys_program_spawn_loader*
    6167};
    6268
     
    6874                unative_t sys_futex_wakeup(uintptr_t uaddr);
    6975        protocol:
    70                 ?sys_futex_sleep_timeout +
    71                 ?sys_futex_wakeup
     76                (
     77                        ?sys_futex_sleep_timeout +
     78                        ?sys_futex_wakeup
     79                )*
    7280};
    7381
     
    7684                unative_t sys_smc_coherence(uintptr_t va, size_t size);
    7785        protocol:
    78                 ?sys_smc_coherence
     86                ?sys_smc_coherence*
    7987};
    8088
     
    92100                unative_t sys_as_area_destroy(uintptr_t address);
    93101        protocol:
    94                 ?sys_as_area_create +
    95                 ?sys_as_area_resize +
    96                 ?sys_as_area_change_flags +
    97                 ?sys_as_area_destroy
     102                (
     103                        ?sys_as_area_create +
     104                        ?sys_as_area_resize +
     105                        ?sys_as_area_change_flags +
     106                        ?sys_as_area_destroy
     107                )*
    98108};
    99109
     
    132142                unative_t sys_ipc_poke(void);
    133143        protocol:
    134                 ?sys_ipc_call_sync_fast +
    135                 ?sys_ipc_call_sync_slow +
    136                 ?sys_ipc_call_async_fast +
    137                 ?sys_ipc_call_async_slow +
    138                 ?sys_ipc_forward_fast +
    139                 ?sys_ipc_forward_slow +
    140                 ?sys_ipc_answer_fast +
    141                 ?sys_ipc_answer_slow +
    142                 ?sys_ipc_hangup +
    143                 ?sys_ipc_wait_for_call +
    144                 ?sys_ipc_poke
     144                (
     145                        ?sys_ipc_call_sync_fast +
     146                        ?sys_ipc_call_sync_slow +
     147                        ?sys_ipc_call_async_fast +
     148                        ?sys_ipc_call_async_slow +
     149                        ?sys_ipc_forward_fast +
     150                        ?sys_ipc_forward_slow +
     151                        ?sys_ipc_answer_fast +
     152                        ?sys_ipc_answer_slow +
     153                        ?sys_ipc_hangup +
     154                        ?sys_ipc_wait_for_call +
     155                        ?sys_ipc_poke
     156                )*
    145157};
    146158
     
    149161                unative_t sys_event_subscribe(unative_t evno, unative_t method);
    150162        protocol:
    151                 ?sys_event_subscribe
     163                ?sys_event_subscribe*
    152164};
    153165
     
    159171                unative_t sys_cap_revoke(sysarg64_t *uspace_taskid_arg, cap_t caps);
    160172        protocol:
    161                 ?sys_cap_grant +
    162                 ?sys_cap_rewoke
     173                (
     174                        ?sys_cap_grant +
     175                        ?sys_cap_rewoke
     176                )*
    163177};
    164178
     
    182196                unative_t sys_ipc_unregister_irq(inr_t inr, devno_t devno);
    183197        protocol:
    184                 ?sys_enable_iospace +
    185                 ?sys_physmem_map +
    186                 ?sys_device_assign_devno +
    187                 ?sys_preempt_control +
    188                 ?sys_ipc_register_irq +
    189                 ?sys_ipc_unregister_irq
     198                (
     199                        ?sys_enable_iospace +
     200                        ?sys_physmem_map +
     201                        ?sys_device_assign_devno +
     202                        ?sys_preempt_control +
     203                        ?sys_ipc_register_irq +
     204                        ?sys_ipc_unregister_irq
     205                )*
    190206};
    191207
     
    197213                unative_t sys_sysinfo_value(unatice_t ptr, unative_t len);
    198214        protocol:
    199                 ?sys_sysinfo_valid +
    200                 ?sys_sysinfo_value
     215                (
     216                        ?sys_sysinfo_valid +
     217                        ?sys_sysinfo_value
     218                )*
    201219};
    202220
     
    205223                unative_t sys_ipc_connect_kbox(sysarg64_t *uspace_taskid_arg);
    206224        protocol:
    207                 ?sys_ipc_connect_kbox
     225                ?sys_ipc_connect_kbox*
    208226};
    209227
  • contrib/arch/uspace/app/klog/klog.adl

    r2e37308 r6d4c549  
    33                naming_service ns;
    44                [/uspace/lib/libc/requires]
     5        initialization:
     6                !ns.ipc_m_share_in /* SERVICE_MEM_KLOG */
    57        protocol:
    6                 [/uspace/lib/libc/protocol] |
    7                 [klog.bp]
     8                [/uspace/lib/libc/protocol]
    89};
  • contrib/arch/uspace/srv/bd/rd/rd.adl

    r2e37308 r6d4c549  
    88                ns ns;
    99                devmap_driver devmap_driver;
     10        initialization:
     11                [/uspace/lib/libc/fnc.devmap_driver_register] ;
     12                [/uspace/lib/libc/fnc.devmap_device_register]
    1013        protocol:
    11                 [/uspace/lib/libc/protocol] |
    12                 [rd.bp]
     14                [/uspace/lib/libc/protocol]
    1315};
  • contrib/arch/uspace/srv/console/console.adl

    r2e37308 r6d4c549  
    5252                ns ns;
    5353                sys_console sys_console;
     54        initialization:
     55                !ns.ipc_m_connect_me_to /* kbd */ ;
     56                !kbd.ipc_m_connect_to_me ;
     57                !ns.ipc_m_connect_me_to /* fb */ ;
     58                [/uspace/lib/libc/fnc.devmap_driver_register] ;
     59                !fb.get_resolution ;
     60                (
     61                        [fnc.vp_create] +
     62                        [fnc.vp_switch]
     63                )* ;
     64                [fnc.make_pixmap]* ;
     65                [fnc.make_anim] ;
     66                [fnc.vp_switch] ;
     67                !fb.flush ;
     68                !fb.get_csize ;
     69                !fb.get_color_cap ;
     70                !fb.ipc_m_share_out ;
     71                [/uspace/lib/libc/fnc.devmap_device_register]* ;
     72                !sys_console.sys_disable_console ;
     73                [fnc.gcons_redraw_console] ;
     74                [fnc.set_rgb_color] ;
     75                [fnc.screen_clear] ;
     76                [fnc.curs_goto] ;
     77                [fnc.curs_visibility]
    5478        protocol:
    55                 [/uspace/lib/libc/protocol] |
    56                 [console_server.bp]
     79                [/uspace/lib/libc/protocol]
    5780};
    5881
  • contrib/arch/uspace/srv/devmap/devmap.adl

    r2e37308 r6d4c549  
    6363                [/uspace/lib/libc/requires]
    6464                ns ns;
     65        initialization:
     66                !ns.ipc_m_connect_to_me /* devmap */
    6567        protocol:
    66                 [/uspace/lib/libc/protocol] |
    67                 [devmap_server.bp]
     68                [/uspace/lib/libc/protocol]
    6869};
  • contrib/arch/uspace/srv/fb/fb.adl

    r2e37308 r6d4c549  
    105105                [/uspace/lib/libc/requires]
    106106                ns ns;
     107        initialization:
     108                !ns.ipc_m_connect_to_me /* fb */
    107109        protocol:
    108                 [/uspace/lib/libc/protocol] |
    109                 [fb_server.bp]
     110                [/uspace/lib/libc/protocol]
    110111};
  • contrib/arch/uspace/srv/fs/devfs/devfs.adl

    r2e37308 r6d4c549  
    1313                devmap_client devmap_client;
    1414                service device;
     15        initialization:
     16                [/uspace/lib/libc/fnc.devmap_get_phone] ;
     17                !ns.ipc_m_connect_me_to /* vfs */ ;
     18                [/uspace/lib/libfs/fnc.fs_register]
    1519        protocol:
    16                 [/uspace/lib/libc/protocol] |
    17                 [devfs_server.bp]
     20                [/uspace/lib/libc/protocol]
    1821};
  • contrib/arch/uspace/srv/fs/fat/fat.adl

    r2e37308 r6d4c549  
    1212                ns ns;
    1313                rd rd;
     14        initialization:
     15                !ns.ipc_m_connect_me_to /* vfs */ ;
     16                [/uspace/lib/libfs/fnc.fs_register]
    1417        protocol:
    15                 [/uspace/lib/libc/protocol] |
    16                 [fat_server.bp]
     18                [/uspace/lib/libc/protocol]
    1719};
  • contrib/arch/uspace/srv/fs/tmpfs/tmpfs.adl

    r2e37308 r6d4c549  
    1212                ns ns;
    1313                rd rd;
     14        initialization:
     15                !ns.ipc_m_connect_me_to /* vfs */ ;
     16                [/uspace/lib/libfs/fnc.fs_register]
    1417        protocol:
    15                 [/uspace/lib/libc/protocol] |
    16                 [tmpfs_server.bp]
     18                [/uspace/lib/libc/protocol]
    1719};
  • contrib/arch/uspace/srv/kbd/kbd.adl

    r2e37308 r6d4c549  
    2626                event event;
    2727                ns ns;
     28        initialization:
     29                !ns.ipc_m_connect_to_me /* kbd */ ;
     30                !event.event*
    2831        protocol:
    29                 [/uspace/lib/libc/protocol] |
    30                 [kbd_server.bp]
     32                [/uspace/lib/libc/protocol]
    3133};
  • contrib/arch/uspace/srv/loader/loader.adl

    r2e37308 r6d4c549  
    2727                [/uspace/lib/libc/requires]
    2828                ns ns;
     29        initialization:
     30                !ns.id_intro ;
     31                !ns.ipc_m_connect_to_me /* loader */
    2932        protocol:
    30                 [/uspace/lib/libc/protocol] |
    31                 [loader_server.bp]
     33                [/uspace/lib/libc/protocol]
    3234};
  • contrib/arch/uspace/srv/pci/pci.adl

    r2e37308 r6d4c549  
    1010                [/uspace/lib/libc/requires]
    1111                ns ns;
     12        initialization:
     13                !ns.ipc_m_connect_to_me /* pci */
    1214        protocol:
    13                 [/uspace/lib/libc/protocol] |
    14                 [pci_server.bp]
     15                [/uspace/lib/libc/protocol]
    1516};
  • contrib/arch/uspace/srv/vfs/vfs.adl

    r2e37308 r6d4c549  
    9292                devfs devfs;
    9393                ns ns;
     94        initialization:
     95                !ns.ipc_m_connect_to_me /* vfs */
    9496        protocol:
    95                 [/uspace/lib/libc/protocol] |
    96                 [vfs_server.bp]
     97                [/uspace/lib/libc/protocol]
    9798};
    9899
  • contrib/highlight/adl.syntax

    r2e37308 r6d4c549  
    2828       
    2929        keyword whole protocol yellow
     30        keyword whole initialization yellow
     31        keyword whole finalization yellow
    3032        keyword whole provides yellow
    3133        keyword whole requires yellow
Note: See TracChangeset for help on using the changeset viewer.