Commit 898541e4 authored by tomas@poseidon.ndb.mysql.com's avatar tomas@poseidon.ndb.mysql.com

Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1

into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
parents eeeb342b 362febbf
This diff is collapsed.
.\" Copyright (c) 1999 Kungliga Tekniska Högskolan
.\" $KTH: getarg.3,v 1.1.4.1 2001/07/26 19:54:45 lha Exp $
.Dd September 24, 1999
.Dt GETARG 3
.Os ROKEN
.Sh NAME
.Nm getarg ,
.Nm arg_printusage
.Nd collect command line options
.Sh SYNOPSIS
.Fd #include <getarg.h>
.Ft int
.Fn getarg "struct getargs *args" "size_t num_args" "int argc" "char **argv" "int *optind"
.Ft void
.Fn arg_printusage "struct getargs *args" "size_t num_args" "const char *progname" "const char *extra_string"
.Sh DESCRIPTION
.Fn getarg
collects any command line options given to a program in an easily used way.
.Fn arg_printusage
pretty-prints the available options, with a short help text.
.Pp
.Fa args
is the option specification to use, and it's an array of
.Fa struct getargs
elements.
.Fa num_args
is the size of
.Fa args
(in elements).
.Fa argc
and
.Fa argv
are the argument count and argument vector to extract option from.
.Fa optind
is a pointer to an integer where the index to the last processed
argument is stored, it must be initialised to the first index (minus
one) to process (normally 0) before the first call.
.Pp
.Fa arg_printusage
take the same
.Fa args
and
.Fa num_args
as getarg;
.Fa progname is the name of the program (to be used in the help text), and
.Fa extra_string
is a string to print after the actual options to indicate more
arguments. The usefulness of this function is realised only be people
who has used programs that has help strings that doesn't match what
the code does.
.Pp
The
.Fa getargs
struct has the following elements.
.Bd -literal
struct getargs{
const char *long_name;
char short_name;
enum { arg_integer,
arg_string,
arg_flag,
arg_negative_flag,
arg_strings,
arg_double,
arg_collect
} type;
void *value;
const char *help;
const char *arg_help;
};
.Ed
.Pp
.Fa long_name
is the long name of the option, it can be
.Dv NULL ,
if you don't want a long name.
.Fa short_name
is the characted to use as short option, it can be zero. If the option
has a value the
.Fa value
field gets filled in with that value interpreted as specified by the
.Fa type
field.
.Fa help
is a longer help string for the option as a whole, if it's
.Dv NULL
the help text for the option is omitted (but it's still displayed in
the synopsis).
.Fa arg_help
is a description of the argument, if
.Dv NULL
a default value will be used, depending on the type of the option:
.Pp
.Bl -hang -width arg_negative_flag
.It arg_integer
the argument is a signed integer, and
.Fa value
should point to an
.Fa int .
.It Fa arg_string
the argument is a string, and
.Fa value
should point to a
.Fa char* .
.It Fa arg_flag
the argument is a flag, and
.Fa value
should point to a
.Fa int .
It gets filled in with either zero or one, depending on how the option
is given, the normal case beeing one. Note that if the option isn't
given, the value isn't altered, so it should be initialised to some
useful default.
.It Fa arg_negative_flag
this is the same as
.Fa arg_flag
but it reverses the meaning of the flag (a given short option clears
the flag), and the synopsis of a long option is negated.
.It Fa arg_strings
the argument can be given multiple times, and the values are collected
in an array;
.Fa value
should be a pointer to a
.Fa struct getarg_strings
structure, which holds a length and a string pointer.
.It Fa arg_double
argument is a double precision floating point value, and
.Fa value
should point to a
.Fa double .
.It Fa arg_collect
allows more fine-grained control of the option parsing process.
.Fa value
should be a pointer to a
.Fa getarg_collect_info
structure:
.Bd -literal
typedef int (*getarg_collect_func)(int short_opt,
int argc,
char **argv,
int *optind,
int *optarg,
void *data);
typedef struct getarg_collect_info {
getarg_collect_func func;
void *data;
} getarg_collect_info;
.Ed
.Pp
With the
.Fa func
member set to a function to call, and
.Fa data
to some application specific data. The parameters to the collect function are:
.Bl -inset
.It Fa short_flag
non-zero if this call is via a short option flag, zero otherwise
.It Fa argc , argv
the whole argument list
.It Fa optind
pointer to the index in argv where the flag is
.It Fa optarg
pointer to the index in argv[*optind] where the flag name starts
.It Fa data
application specific data
.El
.Pp
You can modify
.Fa *optind ,
and
.Fa *optarg ,
but to do this correct you (more or less) have to know about the inner
workings of getarg.
You can skip parts of arguments by increasing
.Fa *optarg
(you could
implement the
.Fl z Ns Ar 3
set of flags from
.Nm gzip
with this), or whole argument strings by increasing
.Fa *optind
(let's say you want a flag
.Fl c Ar x y z
to specify a coordinate); if you also have to set
.Fa *optarg
to a sane value.
.Pp
The collect function should return one of
.Dv ARG_ERR_NO_MATCH , ARG_ERR_BAD_ARG , ARG_ERR_NO_ARG
on error, zero otherwise.
.Pp
For your convenience there is a function,
.Fn getarg_optarg ,
that returns the traditional argument string, and you pass it all
arguments, sans data, that where given to the collection function.
.Pp
Don't use this more this unless you absolutely have to.
.El
.Pp
Option parsing is similar to what
.Xr getopt
uses. Short options without arguments can be compressed
.Pf ( Fl xyz
is the same as
.Fl x y z ) ,
and short
options with arguments take these as either the rest of the
argv-string or as the next option
.Pf ( Fl o Ns Ar foo ,
or
.Fl o Ar foo ) .
.Pp
Long option names are prefixed with -- (double dash), and the value
with a = (equal),
.Fl -foo= Ns Ar bar .
Long option flags can either be specified as they are
.Pf ( Fl -help ) ,
or with an (boolean parsable) option
.Pf ( Fl -help= Ns Ar yes ,
.Fl -help= Ns Ar true ,
or similar), or they can also be negated
.Pf ( Fl -no-help
is the same as
.Fl -help= Ns no ) ,
and if you're really confused you can do it multiple times
.Pf ( Fl -no-no-help= Ns Ar false ,
or even
.Fl -no-no-help= Ns Ar maybe ) .
.Sh EXAMPLE
.Bd -literal
#include <stdio.h>
#include <string.h>
#include <getarg.h>
char *source = "Ouagadougou";
char *destination;
int weight;
int include_catalog = 1;
int help_flag;
struct getargs args[] = {
{ "source", 's', arg_string, &source,
"source of shippment", "city" },
{ "destination", 'd', arg_string, &destination,
"destination of shippment", "city" },
{ "weight", 'w', arg_integer, &weight,
"weight of shippment", "tons" },
{ "catalog", 'c', arg_negative_flag, &include_catalog,
"include product catalog" },
{ "help", 'h', arg_flag, &help_flag }
};
int num_args = sizeof(args) / sizeof(args[0]); /* number of elements in args */
const char *progname = "ship++";
int
main(int argc, char **argv)
{
int optind = 0;
if (getarg(args, num_args, argc, argv, &optind)) {
arg_printusage(args, num_args, progname, "stuff...");
exit (1);
}
if (help_flag) {
arg_printusage(args, num_args, progname, "stuff...");
exit (0);
}
if (destination == NULL) {
fprintf(stderr, "%s: must specify destination\n", progname);
exit(1);
}
if (strcmp(source, destination) == 0) {
fprintf(stderr, "%s: destination must be different from source\n");
exit(1);
}
/* include more stuff here ... */
exit(2);
}
.Ed
.Pp
The output help output from this program looks like this:
.Bd -literal
$ ship++ --help
Usage: ship++ [--source=city] [-s city] [--destination=city] [-d city]
[--weight=tons] [-w tons] [--no-catalog] [-c] [--help] [-h] stuff...
-s city, --source=city source of shippment
-d city, --destination=city destination of shippment
-w tons, --weight=tons weight of shippment
-c, --no-catalog include product catalog
.Ed
.Sh BUGS
It should be more flexible, so it would be possible to use other more
complicated option syntaxes, such as what
.Xr ps 1 ,
and
.Xr tar 1 ,
uses, or the AFS model where you can skip the flag names as long as
the options come in the correct order.
.Pp
Options with multiple arguments should be handled better.
.Pp
Should be integreated with SL.
.Pp
It's very confusing that the struct you pass in is called getargS.
.Sh SEE ALSO
.Xr getopt 3
This diff is collapsed.
This diff is collapsed.
using System.Reflection;
using System.Runtime.CompilerServices;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]
//
// In order to sign your assembly you must specify a key to use. Refer to the
// Microsoft .NET Framework documentation for more information on assembly signing.
//
// Use the attributes below to control which key is used for signing.
//
// Notes:
// (*) If no key is specified, the assembly is not signed.
// (*) KeyName refers to a key that has been installed in the Crypto Service
// Provider (CSP) on your machine. KeyFile refers to a file which contains
// a key.
// (*) If the KeyFile and the KeyName values are both specified, the
// following processing occurs:
// (1) If the KeyName can be found in the CSP, that key is used.
// (2) If the KeyName does not exist and the KeyFile does exist, the key
// in the KeyFile is installed into the CSP and used.
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
// When specifying the KeyFile, the location of the KeyFile should be
// relative to the project output directory which is
// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
// located in the project directory, you would specify the AssemblyKeyFile
// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
// documentation for more information on this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
VERSION 5.00
Begin VB.Form frmSplash
BorderStyle = 3 'Fixed Dialog
ClientHeight = 4710
ClientLeft = 45
ClientTop = 45
ClientWidth = 7455
ControlBox = 0 'False
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 4710
ScaleWidth = 7455
ShowInTaskbar = 0 'False
StartUpPosition = 2 'CenterScreen
Visible = 0 'False
Begin VB.Frame fraMainFrame
Height = 4590
Left = 45
TabIndex = 0
Top = -15
Width = 7380
Begin VB.PictureBox picLogo
Height = 2385
Left = 510
Picture = "frmSplash.frx":0000
ScaleHeight = 2325
ScaleWidth = 1755
TabIndex = 2
Top = 855
Width = 1815
End
Begin VB.Label lblLicenseTo
Alignment = 1 'Right Justify
Caption = "LicenseTo"
Height = 255
Left = 270
TabIndex = 1
Tag = "LicenseTo"
Top = 300
Width = 6855
End
Begin VB.Label lblProductName
AutoSize = -1 'True
Caption = "Product"
BeginProperty Font
Name = "MS Sans Serif"
Size = 29.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 720
Left = 2670
TabIndex = 9
Tag = "Product"
Top = 1200
Width = 2190
End
Begin VB.Label lblCompanyProduct
AutoSize = -1 'True
Caption = "CompanyProduct"
BeginProperty Font
Name = "MS Sans Serif"
Size = 18
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 435
Left = 2505
TabIndex = 8
Tag = "CompanyProduct"
Top = 765
Width = 3000
End
Begin VB.Label lblPlatform
Alignment = 1 'Right Justify
AutoSize = -1 'True
Caption = "Platform"
BeginProperty Font
Name = "MS Sans Serif"
Size = 13.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 360
Left = 5865
TabIndex = 7
Tag = "Platform"
Top = 2400
Width = 1140
End
Begin VB.Label lblVersion
Alignment = 1 'Right Justify
AutoSize = -1 'True
Caption = "Version"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Left = 6075
TabIndex = 6
Tag = "Version"
Top = 2760
Width = 930
End
Begin VB.Label lblWarning
Caption = "Warning"
Height = 195
Left = 300
TabIndex = 3
Tag = "Warning"
Top = 3720
Width = 6855
End
Begin VB.Label lblCompany
Caption = "Company"
Height = 255
Left = 4710
TabIndex = 5
Tag = "Company"
Top = 3330
Width = 2415
End
Begin VB.Label lblCopyright
Caption = "Copyright"
Height = 255
Left = 4710
TabIndex = 4
Tag = "Copyright"
Top = 3120
Width = 2415
End
End
End
Attribute VB_Name = "frmSplash"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Form_Load()
lblVersion.Caption = "Version " & App.Major & "." & App.Minor & "." & App.Revision
lblProductName.Caption = App.Title
End Sub
/* $Id: list.h,v 1.1 2002/12/13 12:17:20 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef _LIST_H
#define _LIST_H
#include "sci_types.h"
typedef struct ListElement *ListElement_t;
typedef struct List *List_t;
struct ListElement {
void *element;
u_vkaddr_t key;
ListElement_t prev,next;
};
void *Get_Element(ListElement_t el);
void Set_Element(ListElement_t el,void *elptr,u_vkaddr_t key);
void Create_Element(ListElement_t *el);
void Destroy_Element(ListElement_t *el);
void Create_List(List_t *list);
void Destroy_List(List_t *list);
void Add_Element(List_t list,ListElement_t el);
void Remove_Element(List_t list,ListElement_t el);
ListElement_t Find_Element(List_t list,u_vkaddr_t key);
scibool List_Empty(List_t);
scibool List_Elements(List_t);
ListElement_t First_Element(List_t list);
ListElement_t Last_Element(List_t list);
ListElement_t Next_Element(ListElement_t el);
#endif /* _LIST_H */
/* $Id: inttypes.h,v 1.1 2002/12/13 12:17:21 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef _SCI_OS_INTTYPES_H_
#define _SCI_OS_INTTYPES_H_
/*
* --------------------------------------------------------------------------------------
* Basic types of various sizes.
* --------------------------------------------------------------------------------------
*/
typedef unsigned char unsigned8;
typedef unsigned short unsigned16;
typedef unsigned int unsigned32;
typedef unsigned long long unsigned64;
typedef signed char signed8;
typedef signed short signed16;
typedef signed int signed32;
typedef signed long long signed64;
#ifdef CPU_WORD_IS_64_BIT
typedef unsigned64 uptr_t;
typedef signed64 iptr_t;
#else
typedef unsigned32 uptr_t;
typedef signed32 iptr_t;
#endif
#endif /* _SCI_OS_INTTYPES_H_ */
This diff is collapsed.
This diff is collapsed.
/* $Id: sci_types.h,v 1.1 2002/12/13 12:17:21 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef _SCI_TYPES_H_
#define _SCI_TYPES_H_
/*
* Remains for the time being for backward compatibility ....
*/
/* #define UNIQUE(type) struct { type x; } * */
#ifndef UNIQUE
#define UNIQUE(type) type
#endif
#include "os/inttypes.h"
#if defined(WIN32)
#if defined(_KERNEL)
#include <ntddk.h>
#else
#include <WTYPES.H>
#endif /* _KERNEL */
#else
#if defined(Linux)
#if defined(__KERNEL__)
#include <linux/types.h>
#else
#include <sys/types.h>
#endif
#else
#include <sys/types.h>
#endif
#ifdef SUNOS5
#include <sys/ddi.h>
#include <sys/sunddi.h>
#endif
#ifdef OS_IS_TRU64
#include <io/common/devdriver.h>
#endif
#ifdef OS_IS_HP_UX11
#if defined(_KERNEL)
#include <../wsio/wsio.h>
#else
#include <sys/wsio.h>
#endif
#endif
#endif
/* See comments about "UNCONFIGURED_ADAPTERS" in config.h */
#define UNCONFIGURED_ADAPTERS 100
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef NULL
#define NULL 0
#endif
#ifndef IN
#define IN
#endif
#ifndef NOT
#define NOT !
#endif
/*
* --------------------------------------------------------------------------------------
* Basic types of various sizes.
* --------------------------------------------------------------------------------------
*/
typedef signed32 scibool;
#ifndef OS_IS_VXWORKS
typedef signed32 BOOL;
#else
/* VXWORKS has already defined BOOL */
#endif
typedef unsigned32 node_t; /* This is the logical nodeid */
typedef unsigned32 sciNodeId_t; /* This is the physical 16 bit SCI nodeid */
/*
* --------------------------------------------------------------------------------------
* Various register types.
* --------------------------------------------------------------------------------------
*/
typedef volatile unsigned32 register32;
/*
Temporary for Windows NT, until we use only the above types.
*/
#ifdef WIN32
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned long u_long;
typedef unsigned int u_int;
typedef char * caddr_t;
typedef long off_t;
typedef unsigned int size_t;
#endif
#ifdef OS_IS_VXWORKS
#include <vxWorks.h>
#endif
/*
* --------------------------------------------------------------------------------------
* Various address types.
*
* We are using a struct * instead of unsigned long (int) inorder to enforce strong
* type checking
*
* --------------------------------------------------------------------------------------
*/
typedef UNIQUE(void *) vkaddr_t; /* Virtual kernel address */
typedef UNIQUE(uptr_t) vuaddr_t; /* Virtual user address */
typedef UNIQUE(unsigned32) remaddr_t; /* Remote IO address (physical address on PCs) */
typedef UNIQUE(unsigned32) sciofs_lo_t; /* Lower 32 bits of an SCI offset. */
typedef UNIQUE(unsigned32) sciofs_hi_t; /* The upper 16 bits of an SCI offset. */
typedef UNIQUE(unsigned32) ioaddr_t; /* Local IO address (physical address on PCs) */
typedef unsigned32 u_ioaddr_t;
typedef unsigned32 iooffset_t;
typedef unsigned32 iosize_t;
typedef uptr_t vkoffset_t;
typedef uptr_t u_vkaddr_t;
typedef uptr_t u_vuaddr_t;
typedef unsigned32 u_sciofs_lo_t;
typedef unsigned32 u_sciofs_hi_t;
typedef unsigned32 u_remaddr_t;
typedef unsigned32 attOffset_t; /* Address displacement from start of ATT entry */
typedef unsigned32 adapterNo_t;
typedef enum {
NO_NODE = 0,
AD_MEM_NODE = 1,
AD_ALT_NODE = 2,
AD_MBX_NODE = 3,
AD_LC_NODE = 4,
AD_LC_PORT_0 = 5,
AD_LC_PORT_1 = 6,
AD_LC_PORT_2 = 7,
PHYS_NODE = 8
} node_type_t;
/*
* Currently we don't support more than 32 bit sizes.
*/
#define SIZEOF(x) ((unsigned32)sizeof(x))
#if defined(_KERNEL)
/*
* --------------------------------------------------------------------------------------
* Some small macros intended to ease the transition to more strongly typed address
* types. The intention is that they in the long run shall be removed ...
* --------------------------------------------------------------------------------------
*/
#define P2SIZE_T(x) ((size_t)((uptr_t)(x))) /* Pointer to size_t */
#define P2U32(x) ((unsigned32)((uptr_t)(x))) /* Pointer to Unsigned 32-bit int */
#ifdef WIN32
#define PHADDR(x) ((ioaddr_t)(x))
#define HASV(x) (x)
#endif
#if 0
static vkaddr_t VKPTR (void * ptr) { return (vkaddr_t)ptr; }
static vkaddr_t VKADDR(volatile void * ptr) { return (vkaddr_t)ptr; }
#else
#define VKPTR(ptr) (vkaddr_t)ptr
#define VKADDR(ptr) (vkaddr_t)ptr
#endif
#ifdef KLOG
#define KLOG_LOG(n,m,v) ts_log((n),(m),(v))
#else
#define KLOG_LOG(n,m,v)
#endif /* KLOG */
/*
* --------------------------------------------------------------------------------------
*
* M E M A R E A T
*
* Memory area descriptor.
*
* paddr -- Physical address (aligned) of memory area
* ual_vaddr -- (Kernel )Virtual address of the unaligned memory area
* vaddr -- (Kernel) Virtual address of memory area
* rsize -- Real (Physical) Size of memory area
* msize -- Mapped (Virtual) Size of memory area (Size of area mapped
* into virtual) memory
*
* --------------------------------------
* | | <----- msize ----->| |
* |<------|------- rsize ------|------>|
* --------------------------------------
* /|\ /|\
* | |
* ual_vaddr vaddr/paddr
*
* --------------------------------------------------------------------------------------
*/
struct _memarea_ {
ioaddr_t ioaddr;
vkaddr_t vaddr;
vkaddr_t ual_vaddr;
size_t rsize;
size_t msize;
char *id;
unsigned32 cookie;
#ifdef SUNOS5
#ifdef _USE_NEW_SOLARIS_DDI_INTERFACE
ddi_acc_handle_t mem_handle;
ddi_dma_handle_t dma_handle;
#else
ddi_dma_handle_t handle;
#endif
#endif
#ifdef OS_IS_TRU64
dma_handle_t dma_handle;
#endif
#if OS_IS_LINUX
unsigned long ph_base_addr;
#endif
#ifdef OS_IS_HP_UX11
struct isc_table_type * isc;
wsio_shmem_attr_t type;
#endif
};
typedef struct _memarea_ memarea_t;
#ifdef SCI_MALLOC_DEBUG
struct _maddr_ {
char *id;
size_t size;
struct _maddr_ *next;
struct _maddr_ **prev;
unsigned32 cookie;
};
typedef struct _maddr_ maddr_t;
#define MALLOC_COOKIE 0xc3c3c3c3
#else
typedef struct { void *p; } *maddr_t;
#endif /* SCI_MALLOC_DEBUG */
typedef struct {
scibool disabled;
unsigned32 disable_cnt;
} disable_info_t;
#endif /* _KERNEL */
#endif /* _SCI_TYPES_H_ */
This diff is collapsed.
This diff is collapsed.
/* $Id: sisci_error.h,v 1.1 2002/12/13 12:17:21 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef _SISCI_ERROR_H_
#define _SISCI_ERROR_H_
/* SCI Error return values always have 30 bit set */
#define SCI_ERR_MASK 0x40000000
#define SCI_ERR_REMOTE_MASK 0x01 /* Remote errors should have bit 0 set */
#define SCI_ERR(u) ((unsigned32)(u)&0x7FFFFFFF )
/* Error codes */
typedef enum {
SCI_ERR_OK = 0x000,
SCI_ERR_BUSY = (0x900 | SCI_ERR_MASK),
SCI_ERR_FLAG_NOT_IMPLEMENTED = (0x901 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_FLAG = (0x902 | SCI_ERR_MASK),
SCI_ERR_NOSPC = (0x904 | SCI_ERR_MASK),
SCI_ERR_API_NOSPC = (0x905 | SCI_ERR_MASK),
SCI_ERR_HW_NOSPC = (0x906 | SCI_ERR_MASK),
SCI_ERR_NOT_IMPLEMENTED = (0x907 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_ADAPTERNO = (0x908 | SCI_ERR_MASK),
SCI_ERR_NO_SUCH_ADAPTERNO = (0x909 | SCI_ERR_MASK),
SCI_ERR_TIMEOUT = (0x90A | SCI_ERR_MASK),
SCI_ERR_OUT_OF_RANGE = (0x90B | SCI_ERR_MASK),
SCI_ERR_NO_SUCH_SEGMENT = (0x90C | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_NODEID = (0x90D | SCI_ERR_MASK),
SCI_ERR_CONNECTION_REFUSED = (0x90E | SCI_ERR_MASK),
SCI_ERR_SEGMENT_NOT_CONNECTED = (0x90F | SCI_ERR_MASK),
SCI_ERR_SIZE_ALIGNMENT = (0x910 | SCI_ERR_MASK),
SCI_ERR_OFFSET_ALIGNMENT = (0x911 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_PARAMETER = (0x912 | SCI_ERR_MASK),
SCI_ERR_MAX_ENTRIES = (0x913 | SCI_ERR_MASK),
SCI_ERR_SEGMENT_NOT_PREPARED = (0x914 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_ADDRESS = (0x915 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_OPERATION = (0x916 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_QUERY = (0x917 | SCI_ERR_MASK),
SCI_ERR_SEGMENTID_USED = (0x918 | SCI_ERR_MASK),
SCI_ERR_SYSTEM = (0x919 | SCI_ERR_MASK),
SCI_ERR_CANCELLED = (0x91A | SCI_ERR_MASK),
SCI_ERR_NOT_CONNECTED = (0x91B | SCI_ERR_MASK),
SCI_ERR_NOT_AVAILABLE = (0x91C | SCI_ERR_MASK),
SCI_ERR_INCONSISTENT_VERSIONS = (0x91D | SCI_ERR_MASK),
SCI_ERR_COND_INT_RACE_PROBLEM = (0x91E | SCI_ERR_MASK),
SCI_ERR_OVERFLOW = (0x91F | SCI_ERR_MASK),
SCI_ERR_NOT_INITIALIZED = (0x920 | SCI_ERR_MASK),
SCI_ERR_ACCESS = (0x921 | SCI_ERR_MASK),
SCI_ERR_NO_SUCH_NODEID = (0xA00 | SCI_ERR_MASK),
SCI_ERR_NODE_NOT_RESPONDING = (0xA02 | SCI_ERR_MASK),
SCI_ERR_NO_REMOTE_LINK_ACCESS = (0xA04 | SCI_ERR_MASK),
SCI_ERR_NO_LINK_ACCESS = (0xA05 | SCI_ERR_MASK),
SCI_ERR_TRANSFER_FAILED = (0xA06 | SCI_ERR_MASK)
} sci_error_t;
#endif /* _SCI_ERROR_H_ */
/* $Id: sisci_types.h,v 1.1 2002/12/13 12:17:21 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef _SISCI_TYPES_H
#define _SISCI_TYPES_H
#include "sisci_error.h"
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
#ifndef IN_OUT
#define IN_OUT
#endif
/* Opaque data types for descriptors/handles */
typedef struct sci_desc *sci_desc_t;
typedef struct sci_local_segment *sci_local_segment_t;
typedef struct sci_remote_segment *sci_remote_segment_t;
typedef struct sci_map *sci_map_t;
typedef struct sci_sequence *sci_sequence_t;
#ifndef KERNEL
typedef struct sci_dma_queue *sci_dma_queue_t;
#endif
typedef struct sci_remote_interrupt *sci_remote_interrupt_t;
typedef struct sci_local_interrupt *sci_local_interrupt_t;
typedef struct sci_block_transfer *sci_block_transfer_t;
/*
* Constants defining reasons for segment callbacks:
*/
typedef enum {
SCI_CB_CONNECT = 1,
SCI_CB_DISCONNECT,
SCI_CB_NOT_OPERATIONAL,
SCI_CB_OPERATIONAL,
SCI_CB_LOST
} sci_segment_cb_reason_t;
#define MAX_CB_REASON SCI_CB_LOST
/* dma_queue_states is identical to the dma_queue_state_t in genif.h, they must be consistent.*/
typedef enum {
SCI_DMAQUEUE_IDLE,
SCI_DMAQUEUE_GATHER,
SCI_DMAQUEUE_POSTED,
SCI_DMAQUEUE_DONE,
SCI_DMAQUEUE_ABORTED,
SCI_DMAQUEUE_ERROR
} sci_dma_queue_state_t;
typedef enum {
SCI_SEQ_OK,
SCI_SEQ_RETRIABLE,
SCI_SEQ_NOT_RETRIABLE,
SCI_SEQ_PENDING
} sci_sequence_status_t;
typedef struct {
unsigned short nodeId; /* SCI Address bit 63 - 48 */
unsigned short offsHi; /* SCI Address bit 47 - 32 */
unsigned int offsLo; /* SCI Address bit 31 - 0 */
} sci_address_t;
typedef unsigned int sci_ioaddr_t;
typedef enum {
SCI_CALLBACK_CANCEL = 1,
SCI_CALLBACK_CONTINUE
} sci_callback_action_t;
#ifndef KERNEL
typedef sci_callback_action_t (*sci_cb_local_segment_t)(void *arg,
sci_local_segment_t segment,
sci_segment_cb_reason_t reason,
unsigned int nodeId,
unsigned int localAdapterNo,
sci_error_t error);
typedef sci_callback_action_t (*sci_cb_remote_segment_t)(void *arg,
sci_remote_segment_t segment,
sci_segment_cb_reason_t reason,
sci_error_t status);
typedef sci_callback_action_t (*sci_cb_dma_t)(void IN *arg,
sci_dma_queue_t queue,
sci_error_t status);
typedef int (*sci_cb_block_transfer_t)(void *arg,
sci_block_transfer_t block,
sci_error_t status);
typedef sci_callback_action_t (*sci_cb_interrupt_t)(void *arg,
sci_local_interrupt_t interrupt,
sci_error_t status);
#endif /* KERNEL */
#endif
/* $Id: sisci_version.h,v 1.1 2002/12/13 12:17:21 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License as published by *
* the Free Software Foundation; either version 2.1 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef SISCI_VERSION_H
#define SISCI_VERSION_H
#define SISCI_API_VER_MAJOR 0x01
#define SISCI_API_VER_MAJORC "1"
#define SISCI_API_VER_MINOR 0x010
#define SISCI_API_VER_MINORC "10"
#define SISCI_API_VER_MICRO 0x005
#define SISCI_API_VER_MICROC "5"
#define SISCI_SIGN_VERSION_MASK 0xfffff000 /* used to mask off API_VER_MICRO */
#define SISCI_API_VERSION (SISCI_API_VER_MAJOR << 24 | SISCI_API_VER_MINOR << 12 | SISCI_API_VER_MICRO)
/* the rules are:
*
* Changes in API_VER_MICRO should be binary compatible, New flags, functions added. No changes to user code
* required if new features is not needed.
*
* Changes in API_VER_MINOR requires recompilation of user code.
*
* Changes in the API_VER_MAJOR will most likely require changes to user code. This should not happen very
* often...
*
*/
#ifndef BUILD_DATE
#define BUILD_DATE __DATE__
#endif
#ifndef BUILD_NAME
#define BUILD_NAME ""
#endif
#define API_VERSION "SISCI API version " SISCI_API_VER_MAJORC "." SISCI_API_VER_MINORC "."SISCI_API_VER_MICROC " ( "BUILD_NAME" "BUILD_DATE" )"
#endif
/* Version info: */
/* */
/* 1.5.2 First SISCI version */
/* 1.5.3 Some bug fixes */
/* 1.5.4 Some bug fixes */
/* 1.5.5 No release */
/* 1.5.6 Lock flag implemented in function SCIConnectSegment */
/* 1.5.7 Expanded query functionality */
/* 1.5.8 Updated error checking (sequence) functionality for D320 */
/* 1.6.0 Updated error checking (sequence) D320 and IRM 1.9 support */
/* 1.9.0 Ported to Solaris_sparc, Solaris_x86 and Linux. IRM 1.9. */
/* 1.9.1 Some bug fixes */
/* 1.9.2 Added more adapter queries */
/* 1.9.3 Bug fix in SCIMapLocalSegment and SCIMapRemoteSegment */
/* 1.9.4 NT Release Developers Kit 2.40 */
/* 1.9.5 Added flush after data transfer in SCIMemCopy() */
/* 1.9.5 NT Release Developers Kit 2.44 */
/* 1.10.0:
* New SCIInitialize(), SCITerminate() functions.
* Support for D330
*
*
*/
#ifndef _VERSION_H
#define _VERSION_H
/*
#define DEMO_VER_MAJOR "1"
#define DEMO_VER_MINOR "5"
#define DEMO_VER_MICRO "0"
*/
#ifndef BUILD_DATE
#define BUILD_DATE __DATE__
#endif
#ifndef BUILD_NAME
#define BUILD_NAME ""
#endif
/*
#define DEMO_VERSION "version " DEMO_VER_MAJOR "." DEMO_VER_MINOR "."DEMO_VER_MICRO " ("BUILD_NAME" "BUILD_DATE" )"
*/
#define DEMO_VERSION " ("BUILD_NAME" "BUILD_DATE" )"
#endif
This diff is collapsed.
/* $Id: sisci_error.h,v 1.1 2002/12/13 12:17:22 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef _SISCI_ERROR_H_
#define _SISCI_ERROR_H_
/* SCI Error return values always have 30 bit set */
#define SCI_ERR_MASK 0x40000000
#define SCI_ERR_REMOTE_MASK 0x01 /* Remote errors should have bit 0 set */
#define SCI_ERR(u) ((unsigned32)(u)&0x7FFFFFFF )
/* Error codes */
typedef enum {
SCI_ERR_OK = 0x000,
SCI_ERR_BUSY = (0x900 | SCI_ERR_MASK),
SCI_ERR_FLAG_NOT_IMPLEMENTED = (0x901 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_FLAG = (0x902 | SCI_ERR_MASK),
SCI_ERR_NOSPC = (0x904 | SCI_ERR_MASK),
SCI_ERR_API_NOSPC = (0x905 | SCI_ERR_MASK),
SCI_ERR_HW_NOSPC = (0x906 | SCI_ERR_MASK),
SCI_ERR_NOT_IMPLEMENTED = (0x907 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_ADAPTERNO = (0x908 | SCI_ERR_MASK),
SCI_ERR_NO_SUCH_ADAPTERNO = (0x909 | SCI_ERR_MASK),
SCI_ERR_TIMEOUT = (0x90A | SCI_ERR_MASK),
SCI_ERR_OUT_OF_RANGE = (0x90B | SCI_ERR_MASK),
SCI_ERR_NO_SUCH_SEGMENT = (0x90C | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_NODEID = (0x90D | SCI_ERR_MASK),
SCI_ERR_CONNECTION_REFUSED = (0x90E | SCI_ERR_MASK),
SCI_ERR_SEGMENT_NOT_CONNECTED = (0x90F | SCI_ERR_MASK),
SCI_ERR_SIZE_ALIGNMENT = (0x910 | SCI_ERR_MASK),
SCI_ERR_OFFSET_ALIGNMENT = (0x911 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_PARAMETER = (0x912 | SCI_ERR_MASK),
SCI_ERR_MAX_ENTRIES = (0x913 | SCI_ERR_MASK),
SCI_ERR_SEGMENT_NOT_PREPARED = (0x914 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_ADDRESS = (0x915 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_OPERATION = (0x916 | SCI_ERR_MASK),
SCI_ERR_ILLEGAL_QUERY = (0x917 | SCI_ERR_MASK),
SCI_ERR_SEGMENTID_USED = (0x918 | SCI_ERR_MASK),
SCI_ERR_SYSTEM = (0x919 | SCI_ERR_MASK),
SCI_ERR_CANCELLED = (0x91A | SCI_ERR_MASK),
SCI_ERR_NOT_CONNECTED = (0x91B | SCI_ERR_MASK),
SCI_ERR_NOT_AVAILABLE = (0x91C | SCI_ERR_MASK),
SCI_ERR_INCONSISTENT_VERSIONS = (0x91D | SCI_ERR_MASK),
SCI_ERR_COND_INT_RACE_PROBLEM = (0x91E | SCI_ERR_MASK),
SCI_ERR_OVERFLOW = (0x91F | SCI_ERR_MASK),
SCI_ERR_NOT_INITIALIZED = (0x920 | SCI_ERR_MASK),
SCI_ERR_ACCESS = (0x921 | SCI_ERR_MASK),
SCI_ERR_NO_SUCH_NODEID = (0xA00 | SCI_ERR_MASK),
SCI_ERR_NODE_NOT_RESPONDING = (0xA02 | SCI_ERR_MASK),
SCI_ERR_NO_REMOTE_LINK_ACCESS = (0xA04 | SCI_ERR_MASK),
SCI_ERR_NO_LINK_ACCESS = (0xA05 | SCI_ERR_MASK),
SCI_ERR_TRANSFER_FAILED = (0xA06 | SCI_ERR_MASK)
} sci_error_t;
#endif /* _SCI_ERROR_H_ */
/* $Id: sisci_types.h,v 1.1 2002/12/13 12:17:22 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef _SISCI_TYPES_H
#define _SISCI_TYPES_H
#include "sisci_error.h"
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
#ifndef IN_OUT
#define IN_OUT
#endif
/* Opaque data types for descriptors/handles */
typedef struct sci_desc *sci_desc_t;
typedef struct sci_local_segment *sci_local_segment_t;
typedef struct sci_remote_segment *sci_remote_segment_t;
typedef struct sci_map *sci_map_t;
typedef struct sci_sequence *sci_sequence_t;
#ifndef KERNEL
typedef struct sci_dma_queue *sci_dma_queue_t;
#endif
typedef struct sci_remote_interrupt *sci_remote_interrupt_t;
typedef struct sci_local_interrupt *sci_local_interrupt_t;
typedef struct sci_block_transfer *sci_block_transfer_t;
/*
* Constants defining reasons for segment callbacks:
*/
typedef enum {
SCI_CB_CONNECT = 1,
SCI_CB_DISCONNECT,
SCI_CB_NOT_OPERATIONAL,
SCI_CB_OPERATIONAL,
SCI_CB_LOST
} sci_segment_cb_reason_t;
#define MAX_CB_REASON SCI_CB_LOST
/* dma_queue_states is identical to the dma_queue_state_t in genif.h, they must be consistent.*/
typedef enum {
SCI_DMAQUEUE_IDLE,
SCI_DMAQUEUE_GATHER,
SCI_DMAQUEUE_POSTED,
SCI_DMAQUEUE_DONE,
SCI_DMAQUEUE_ABORTED,
SCI_DMAQUEUE_ERROR
} sci_dma_queue_state_t;
typedef enum {
SCI_SEQ_OK,
SCI_SEQ_RETRIABLE,
SCI_SEQ_NOT_RETRIABLE,
SCI_SEQ_PENDING
} sci_sequence_status_t;
typedef struct {
unsigned short nodeId; /* SCI Address bit 63 - 48 */
unsigned short offsHi; /* SCI Address bit 47 - 32 */
unsigned int offsLo; /* SCI Address bit 31 - 0 */
} sci_address_t;
typedef unsigned int sci_ioaddr_t;
typedef enum {
SCI_CALLBACK_CANCEL = 1,
SCI_CALLBACK_CONTINUE
} sci_callback_action_t;
#ifndef KERNEL
typedef sci_callback_action_t (*sci_cb_local_segment_t)(void *arg,
sci_local_segment_t segment,
sci_segment_cb_reason_t reason,
unsigned int nodeId,
unsigned int localAdapterNo,
sci_error_t error);
typedef sci_callback_action_t (*sci_cb_remote_segment_t)(void *arg,
sci_remote_segment_t segment,
sci_segment_cb_reason_t reason,
sci_error_t status);
typedef sci_callback_action_t (*sci_cb_dma_t)(void IN *arg,
sci_dma_queue_t queue,
sci_error_t status);
typedef int (*sci_cb_block_transfer_t)(void *arg,
sci_block_transfer_t block,
sci_error_t status);
typedef sci_callback_action_t (*sci_cb_interrupt_t)(void *arg,
sci_local_interrupt_t interrupt,
sci_error_t status);
#endif /* KERNEL */
#endif
/* $Id: sisci_version.h,v 1.1 2002/12/13 12:17:22 hin Exp $ */
/*******************************************************************************
* *
* Copyright (C) 1993 - 2000 *
* Dolphin Interconnect Solutions AS *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License as published by *
* the Free Software Foundation; either version 2.1 of the License, *
* or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
*******************************************************************************/
#ifndef SISCI_VERSION_H
#define SISCI_VERSION_H
#define SISCI_API_VER_MAJOR 1
#define SISCI_API_VER_MAJORC "1"
#define SISCI_API_VER_MINOR 10
#define SISCI_API_VER_MINORC "10"
#define SISCI_API_VER_MICRO 4
#define SISCI_API_VER_MICROC "4"
#define SISCI_SIGN_VERSION_MASK 0xfffff000 /* used to mask off API_VER_MICRO */
#define SISCI_API_VERSION (SISCI_API_VER_MAJOR << 24 | SISCI_API_VER_MINOR << 12 | SISCI_API_VER_MICRO)
/* the rules are:
*
* Changes in API_VER_MICRO should be binary compatible, New flags, functions added. No changes to user code
* required if new features is not needed.
*
* Changes in API_VER_MINOR requires recompilation of user code.
*
* Changes in the API_VER_MAJOR will most likely require changes to user code. This should not happen very
* often...
*
*/
#ifndef BUILD_DATE
#define BUILD_DATE __DATE__
#endif
#ifndef BUILD_NAME
#define BUILD_NAME ""
#endif
#define API_VERSION "SISCI API version " SISCI_API_VER_MAJORC "." SISCI_API_VER_MINORC "."SISCI_API_VER_MICROC " ( "BUILD_NAME" "BUILD_DATE" )"
#endif
/* Version info: */
/* */
/* 1.5.2 First SISCI version */
/* 1.5.3 Some bug fixes */
/* 1.5.4 Some bug fixes */
/* 1.5.5 No release */
/* 1.5.6 Lock flag implemented in function SCIConnectSegment */
/* 1.5.7 Expanded query functionality */
/* 1.5.8 Updated error checking (sequence) functionality for D320 */
/* 1.6.0 Updated error checking (sequence) D320 and IRM 1.9 support */
/* 1.9.0 Ported to Solaris_sparc, Solaris_x86 and Linux. IRM 1.9. */
/* 1.9.1 Some bug fixes */
/* 1.9.2 Added more adapter queries */
/* 1.9.3 Bug fix in SCIMapLocalSegment and SCIMapRemoteSegment */
/* 1.9.4 NT Release Developers Kit 2.40 */
/* 1.9.5 Added flush after data transfer in SCIMemCopy() */
/* 1.9.5 NT Release Developers Kit 2.44 */
/* 1.10.0:
* New SCIInitialize(), SCITerminate() functions.
* Support for D330
*
*
*/
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment