Lines Matching refs:interface

32 typically occur as libraries are evolved, and shows how interface
36 1. Make interface additions to an existing library
37 - add a Public interface
38 - add a Private interface
39 2. Update an interface in an existing library
40 - remove an existing interface
41 - promote a Private interface to Public
42 - scope a Private interface to local
43 - move an interface from one library to another
88 for only two purposes: to specify externally-visible interface names while
102 SYMBOL_VERSION ILLUMOS_0.2 { # Second interface change in illumos
107 SYMBOL_VERSION ILLUMOS_0.1 { # First interface change in illumos
139 library must always describe the same interface such that applications may
157 introducing one version per interface change. In illumos, unlike Solaris,
167 So, for example, to add a new interface to libwombat in illumos one would add:
235 4.0 Making interface additions to an existing library
237 4.1 Adding a Public interface
241 this is the first Public interface in the shared object, a new ILLUMOS_0.1
245 made to an interface. This could be the case if an API changes so
255 4.2 Adding a Private interface
258 introducing a Public interface, a new entry is simply added to the
261 If this interface happens to be the first Private interface introduced into
269 version name to version the new interface. There is no need to introduce a
279 link-editor, the public interface to which is provided by the ld
280 command. When making a modification to the interface of such a library, you
286 interface versions were handled as they interacted with update releases of
353 Thus when adding a new Public interface to an update release, both the mapfiles
362 5.0 How to update an interface in an existing library
364 5.1 Removing an existing interface
366 5.1.1 Moving a Public interface
369 break all existing consumers of that interface.
371 To move an interface from one library to (say) libc, the code has to be
373 library has to have the interface's entry changed from:
380 Follow the rules for adding a new interface for the necessary changes
381 to libc's mapfile to accommodate the moved interface, including creating a
394 5.1.2 Removing a Private interface
397 it should first be established that the interface is not being used.
398 To remove a Private interface, simply delete the corresponding entry
404 5.2 Promoting a Private interface to Public
406 This is similar to what's done when adding a Public interface. Promoting an
407 existing Private interface to a Public one only requires a change to the
408 existing interface definition. Private interfaces have the symbol version
410 interface a Public one, the interface must be added as if it were a new
417 interface to Public, or to introduce a new Public interface, this (next
421 5.3 Scoping a Private interface local
428 outside the library. To move an interface from Private to local scope, simply
429 remove the Private interface from the mapfile-vers file and the header file
431 interface into a library-private header file. Scope reduction of Public
434 For the interface to be used in more than one file within the library, it
436 that uses the interface. For example:
458 new subdirectory of usr/src/lib. The interface definition discipline is to