This is the mail archive of the elix@sources.redhat.com mailing list for the Elix project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: subset of EL/IX for DSPs


Hello,

Further to the recent posting on EL/IX for DSPs, I have prepared
a profile statement as attached. If people have problems reading it,
please visit "http://www.jhrose.dial.pipex.com/dsp_Kelx.htm".
The aim is to ask people what they think more than to speak with
authority :-)

cheers
julian

Title: dsp_K EL/IX profile

dsp_K EL/IX compatibility

16 August, 2000

Copyright Notice
Copyright (C) Julian Rose, Sussex, U.K. The software and corresponding documents are distributed under license.

Overview | General | Kernel | Build Time | Run Time | License

0. Overview

This document is part of the "digital signal processor kernel" family (dsp_K) software distribution and a licensed DSP_K DESCRIPTION document. It describes the intended EL/IX (and POSIX) compatibility that the dsp_K software shall target. EL/IX is a draft API specification proposed by Cygnus that aims to support development of embedded applications using Linux. The API is strongly based on a subset of both the POSIX.1 and ISO C libraries, but enriched with a few non-standard Linux and GNU extensions.

The specification is arranged into levels and options in order to form profiles, so that an implementation might make a profile statement about EL/IX compatibility. The target dsp_K EL/IX profile is given herein (which shall be regularly reviewed as implementation progresses) and a detailed description of dsp_K can be found in the FAQ.

0.1 Version

This document addresses the EL/IX base API specification draft 1.1 and dsp_K software version 0.6.

1. Levels and Options

1.1 Levels

Levels 1 through 3 are of interest but level 4 is not.

1.2 Options

The following option categories are currently considered of interest for dsp_K (but not all functions are wanted):
  • o some options are taken at any particular level
  • m some reduction in semantics are allowed
  • s signal handling
  • r real-time support
  • c compatibility functions
  • ' ' some non-option functions are desirable

  •  

     

    Some small part of the following categories are currently considered interesting (but most functions are considered too expensive):

  • f all file system support and its sub-options (a RAM disk would significantly increase the weight of this option)
  • l library-only functions (most should be provided outside the kernel, e.g. VDSP libraries)

  •  

     

    Currently the following options are not considered of interest:

  • n network support
  • t terminal support
  • M memory management and all its sub-options (malloc & free are covered in option l)
  • 2. POSIX profile

    Generally dsp_K shall target a minimal profile to include EL/IX level 1 with some of the signal and compatibility functions. In all cases dsp_K is fully configurable through the application configuration file (dsp_Kcfg.h) such that only those functions required by an application are brought in.

    Current thinking shows functions "shall likely" be provided, "might" be provided, or "none" shall be provided.

    2.1 Process primitives

    2.1.1 Creation and Execution
    none
    2.1.2 Process termination
    none
    2.1.3 Signals
    The following shall likely be provided:
  • signal masks
  • notification mechanisms
  • real-time signals
  • kill
  • sigemptyset
  • sigfillset
  • sigaddset
  • sigdelset
  • sigismember
  • sigaction
  • pthread_sigmask
  • sigprocmask
  • sigpending
  • sigsuspend
  • sigwait
  • sigwaitinfo
  • sigtimedwait
  • sigqueue
  • pthread_kill
  • 2.1.4 Timer operations
    The following shall likely be provided:
  • alarm
  • pause
  • sleep
  • 2.2 Process Envrionment

    2.2.1 Process identification
    The following shall likely be provided:
  • getpid

  •  

     

    The following might be provided:

  • getppid (but as a wrapper since exec shall not be provided)
  • 2.2.2 User identification
    none
    2.2.3 Process groups
    none
    2.2.4 System identification
    The following shall likely be provided:
  • uname
  • 2.2.5 Time
    The following shall likely be provided:
  • time
  • times (in limited form)
  • 2.2.6 Environment variables
    The following shall likely be provided:
  • getenv
  • 2.2.7 Terminal identification
    none
    2.2.8 Configurable system variables
    none

    2.3 Files and Directories

    none

    2.4 Input and Output Primitives

    2.4.1 Pipes
    The following shall likely be provided:
  • pipe
  • 2.4.2 File descriptor manipulation
    none
    2.4.3 Input and Output
    The following shall likely be provided:
  • read
  • write
  • 2.4.4 Control operations on files
    none
    2.4.5 File synchronisation
    none
    2.4.6 Asynchronous input and output
    The following might be provided:
  • aio_read
  • aio_write
  • aio_listen
  • aio_error
  • aio_return
  • aio_cancel
  • aio_suspend
  • aio_fsync
  • 2.5 Device and Class-specific functions

    none

    2.6 C Language Services

    none

    2.7 System databases

    none

    2.8 Data Interchange Format

    none

    2.9 Synchronisation

    2.9.1 Semaphore functions
    The following shall likely be provided:
  • sem_init
  • sem_destroy (in modified form)
  • sem_wait
  • sem_trywait
  • sem_post
  • sem_getvalue

  •  

     

    The following might be provided:

  • sem_open
  • sem_close
  • sem_unlink
  • 2.9.2 Mutexes
    The following might be provided:
  • pthread_mutexattr_init
  • pthread_mutexattr_destroy
  • pthread_mutexattr_getpshared
  • pthread_mutexattr_setpshared
  • pthread_mutex_init
  • pthread_mutex_destroy
  • pthread_mutex_lock
  • pthread_mutex_trylock
  • pthread_mutex_unlock
  • 2.9.3 Condition variables
    The following might be provided:
  • pthread_condattr_init
  • pthread_condattr_destroy
  • pthread_condattr_getpshared
  • pthread_condattr_setpshared
  • pthread_cond_init
  • pthread_cond_destroy
  • pthread_cond_signal
  • pthread_cond_broadcast
  • pthread_cond_wait
  • pthread_cond_timedwait
  • 2.10 Memory management

    none (malloc & free are provided elsewhere)

    2.11 Execution scheduling

    2.11.1 Process scheduling functions
    The following shall likely be provided:
  • sched_setparam
  • sched_getparam
  • sched_setscheduler
  • sched_getscheduler
  • sched_yield
  • sched_get_priority_max
  • sched_get_priority_min
  • sched_rr_get_intervale
  • 2.11.2 Thread scheduling
    The following might be provided:
  • pthread_attr_setscope
  • pthread_attr_getscope
  • pthread_attr_setinheritsched
  • pthread_attr_getinheritsched
  • pthread_attr_setschedpolicy
  • pthread_attr_getschedpolicy
  • pthread_attr_setschedparam
  • pthread_attr_getschedparam
  • pthread_setschedparam
  • pthread_getschedparam
  • 2.11.3 Synchronisation scheduling
    none

    2.12 Clocks and Timers

    The following shall likely be provided:
  • clock_settime
  • clock_gettime
  • clock_getres
  • timer_create
  • timer_delete
  • timer_settime
  • timer_gettime
  • timer_getoverrun
  • nanosleep
  • 2.13 Message Passing

    The following shall likely be provided:
  • mq_send
  • mq_receive
  • mq_notify
  • mq_setattr
  • mq_getattr

  •  

     

    The following might be provided:

  • mq_open
  • mq_close
  • mq_unlink
  • 2.14 Thread Management

    The following might be provided:
  • pthread_attr_init
  • pthread_attr_destroy
  • pthread_attr_setstacksize
  • pthread_attr_getstacksize
  • pthread_attr_setstackaddr
  • pthread_attr_getstackaddr
  • pthread_attr_setdetachstate
  • pthread_attr_getdetachstate
  • pthread_create
  • pthread_join
  • pthread_detach
  • pthread_exit
  • pthread_self
  • pthread_equal
  • pthread_once
  • 2.15 Thread Specific

    none

    2.16 Thread Cancellation

    none

    3. C Library Compatibility

    3.1 Error Reporting

    none

    3.2 Memory Allocation

    The following (ISO C) shall likely be provided:
  • malloc
  • free
  • realloc
  • calloc
  • 3.3 Character Handling

    none (all these should be provided by a compiler suite)

    3.4 String and Array Utilities

    none (all these should be provided by a compiler suite)

    3.5 Character Set Handling

    none (all these should be provided by a compiler suite)

    3.6 Locales

    none (all these should be provided by a compiler suite)

    3.7 Message Translation

    none (all these should be provided by a compiler suite)

    3.8 Searching and Sorting

    none (all these should be provided by a compiler suite)

    3.9 Pattern Matching

    none (all these should be provided by a compiler suite)

    3.10 Stream I/O

    none (all these should be provided by a compiler suite)

    3.11 Low Level I/O

    3.11.1 General I/O
    The following shall likely be provided:
  • select
  • ioctl
  • 3.11.2 Asynchronous I/O
    none (refer to the POSIX versions)
    3.12 File System Interface
    none

    3.13 Pipes and FIFOs

    The following might be provided:
  • popen
  • pclose
  • 3.14 Sockets

    none

    3.15 Low Level Terminal Interface

    none

    3.16 Mathematics

    none (all these should be provided by a compiler suite or third party DSP libraries)

    3.17 Arithmetic

    none (all these should be provided by a compiler suite or third party DSP libraries)

    3.18 Date and Time

    The following might be provided:
  • clock
  • difftime
  • gettimeofday
  • settimeofday
  • adjtime
  • localtime
  • gmtime
  • mktime
  • asctime
  • ctime
  • strftime
  • strptime
  • 3.19 Resource Usage and Limits

    none

    3.20 Non-Local Exits

    none

    3.21 Signal Handling

    The following might be provided:
  • signal (as a wrapper for the POSIX sigaction)
  • raise
  • 3.22 Program Startup and Termination

    3.22.1 Program arguments
    none
    3.22.2 Environment variables
    The following shall likely be provided:
  • putenv
  • getenv
  • 3.22.3 Program Termination
    none

    3.23 Processes

    The following might be provided:
  • getpriority
  • setpriority
  • nice
  • 3.24 Users and Groups

    none

    3.25 System Information

    The following shall likely be provided
  • uname
  • 3.26 System Configuration

    none

    3.27 Cryptographic Functions

    none

    3.28 POSIX threads (Linux extensions)

    none



    Copyright (C) 2000 Julian Rose, Sussex, U.K. This page is maintained by jhrose@dial.pipex.com.
    Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
    Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]