/usr/include/platform_sm.h is in libion-dev 3.2.1+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | /*
platform_sm.h: more platform-dependent porting adaptations.
Copyright (c) 2001, California Institute of Technology.
ALL RIGHTS RESERVED. U.S. Government Sponsorship
acknowledged.
*/
/* Author: Alan Schlutsmeyer, Jet Propulsion Laboratory */
/* */
#ifndef _PLATFORM_SM_H_
#define _PLATFORM_SM_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
int wmKey;
long wmSize;
char *wmAddress;
char *wmName;
} sm_WmParms;
typedef int sm_SemId;
#define SM_SEM_NONE (-1)
#define SM_SEM_FIFO 0
#define SM_SEM_PRIORITY 1
#define SM_NO_KEY (-1)
#define ICI_PRIORITY 250
#if defined (bionic) || defined (uClibc)
extern int sm_BeginPthread(pthread_t *threadId,
const pthread_attr_t *attr,
void *(*function)(void *), void *arg);
#define pthread_begin(w,x,y,z) sm_BeginPthread(w, x, y, z)
extern void sm_EndPthread(pthread_t threadId);
#define pthread_end(x) sm_EndPthread(x)
#else
#define pthread_begin(w,x,y,z) pthread_create(w, x, y, z)
#define pthread_end(x) pthread_cancel(x)
#endif
/* IPC services access control */
extern int sm_ipc_init();
extern void sm_ipc_stop();
extern int sm_GetUniqueKey();
/* Portable semaphore management routines. */
extern sm_SemId sm_SemCreate(int key, int semType);
extern int sm_SemTake(sm_SemId semId);
extern void sm_SemGive(sm_SemId semId);
extern int sm_SemUnwedge(sm_SemId semId, int timeoutSeconds);
extern void sm_SemDelete(sm_SemId semId);
extern void sm_SemEnd(sm_SemId semId);
extern int sm_SemEnded(sm_SemId semId);
extern void sm_SemUnend(sm_SemId semId);
extern sm_SemId sm_GetTaskSemaphore(int taskId);
/* Portable shared-memory region access routines. */
extern int sm_ShmAttach(int key, int size, char **shmPtr, int *id);
extern void sm_ShmDetach(char *shmPtr);
extern void sm_ShmDestroy(int id);
/* Portable task (process) management routines. */
extern int sm_TaskIdSelf();
extern int sm_TaskExists(int taskId);
extern void *sm_TaskVar(void **arg);
extern void sm_TaskSuspend();
extern void sm_TaskDelay(int seconds);
extern void sm_TaskYield();
extern int sm_TaskSpawn(char *name, char *arg1, char *arg2,
char *arg3, char *arg4, char *arg5, char *arg6,
char *arg7, char *arg8, char *arg9, char *arg10,
int priority, int stackSize);
#ifdef RTEMS
extern void sm_TaskForget();
#endif
extern void sm_TaskKill(int taskId, int sigNbr);
extern void sm_TaskDelete(int taskId);
extern void sm_Abort();
#ifdef mingw
extern void sm_WaitForWakeup(int seconds);
extern void sm_Wakeup(DWORD);
#endif
extern void sm_ConfigurePthread(pthread_attr_t *attr,
size_t stackSize);
extern int pseudoshell(char *commandLine);
#ifdef __cplusplus
}
#endif
#endif /* _PLATFORM_SM_H_ */
|