blob: 79f265cae60b5a91474adcbd5ee9d4a71f6af9e5 [file] [log] [blame] [view]
# Starboard Shared Implementations
`src/starboard/shared` and subdirectories contain all implementation code that
could concievably be shared between platforms.
## Organization
As much code as possible is pushed into the shared directory. Each subdirectory
`foo` means "files in here depend on *foo*."
All source locations are specified relative to `src/starboard/`.
* `shared/iso/` - Implementation files that follow ISO C and C++ standards, but
standards that are either new, or have historically had poor support on a
variety of embedded platforms. Platforms that are ISO-compliant with the
latest standards should be able to use these.
* `shared/libevent/` - libevent-specific implementation files, for platforms
that can build and run libevent. See `shared/libevent/README.md` for more
information.
* `shared/posix/` - POSIX-specific implementation files. Starboard
implementations may pull some or all of this directory to implement Starboard
APIs, if the platform is POSIX-compliant.
* `shared/pthread/` - pthread-specific implementation files, for platforms that
provide a *reasonable* implementation of POSIX threads. This is called out
separately from POSIX, because we've found that there are some platforms that
are fairly POSIX-y, except in their threading APIs.
* `shared/starboard/` - Implementations of Starboard API functions that only
rely on other Starboard API functions. Code in here should be reusable on any
platform that implements the needed APIs.