class_open(3) — Subroutines
NAME
class_open − initialize the class scheduling database
SYNOPSIS
#include <apar_types.h>
#include <sys/class.h> class_open(
apar_t part_id,
class_apar_handle_t ∗handle );
LIBRARY
Class Scheduling Library (libclass.a)
This library is not available as a shared library.
PARAMETERS
part_id
Input that describes the unique partition identifier.
handle
Output that displays the descriptor used in calls to reference the partition.
DESCRIPTION
The class_open() function is used to prepare the class database for use as follows:
•Opening the disk file (if required)
•Creating (or attaching to) a shared memory section
•Creating (or attaching to) a semaphore
•Initializing the database if one does not aready exist
Before class scheduling can be used for a partition, its class database must be initialized. At the first call of class_open() since the system last started, the function creates a shared memory segment for the partition’s database and, if it exists on disk, reads it into the shared memory. A semaphore is also created that is used to synchronize potential simultaneous database updates (from class_admin and runclass, for instance). If no database exists for the partition, one will be created with the default name and configuration.
On subsequent calls to class_open(), the function attaches to the shared memory and semaphore for the database most recently loaded into memory for the specified partition.
Note
It is possible for multiple databases to be set up on disk for use with the same partition (to be applied at different times). In this case, the database currently loaded into memory or, if no database is loaded, the default pathname assumed by the class_open() function when a database is loaded from disk might not be appropriate. Therefore, the program must call class_load_database() to specify the target database.
RESTRICTIONS
The caller must have root access rights.
RETURN VALUES
CLASS_SUCCESS
The operation completed successfully.
CLASS_DEFAULT_CONFIGURED
The class_open() succeeded but no database existed. A new database was created with default configuration settings.
CLASS_NOT_SUSER
The calling process is not superuser (root) and permission is denied.
CLASS_MEM_ALLOC_FAILURE
The malloc function failed to get memory for handle.
CLASS_FILE_FAILURE
Failed to access disk file, if it exists.
CLASS_SHARED_MEM_FAILURE
Failed to create or attach to shared memory.
CLASS_SEMAPHORE_FAILURE
Failed to create or attach to semaphore.
SEE ALSO
Commands: runclass(1), class_admin(8)
Functions: class_load_database(3)
Files: class_scheduling(4)
System Administration