ftp.nice.ch/pub/next/unix/music/cm.sd.tar.gz#/midi/sgi/semaphores.h

This is semaphores.h in view mode; [Download] [Up]

#pragma once

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <signal.h>

extern void semdec(int semid, ushort semnr, char* errorstr, struct sembuf *ops);
extern void seminc(int semid, ushort semnr, char* errorstr, struct sembuf *ops); 

#define wait_request_1(type,ops) semdec(semid,type,"Sender request check",ops)
#define lock_1(object,ops) semdec(semid,object,"Lock",ops)
#define request_1(type,ops) seminc(semid,type,"Sender request",ops)
#define unlock_1(object,ops) seminc(semid,object,"Unlock",ops)

#define wait_request(type) wait_request_1(type,my->semops)
#define lock(object)       lock_1(object,my->semops) 
#define request(type)      request_1(type,my->semops)
#define unlock(object)     unlock_1(object,my->semops)

#define mutex_lock   lock
#define mutex_unlock unlock

/*
       Semaphore 0 : Nr. of outstanding MIDI send requests
       Semaphore 1 : Nr. of outstanding MIDI messages received
       Semaphore 2 : MIDI printout stream busy;
       
*/

#define SEND_MIDI        0
#define RECEIVE_MIDI     1
#define PRINTMIDI        2

extern int	semid;
extern int	procgroup;

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.