unix: expose solaris types needed for Event Ports

This work is in support of a cleanup of fsnotify/fsnotify#263

Change-Id: I2bc50036087a038c2aa8b6178687d1a870b9d1fd
Reviewed-on: https://go-review.googlesource.com/c/sys/+/324629
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
Nahum Shalman
2021-06-03 01:35:01 +00:00
committed by Tobias Klauser
parent 13f9c583af
commit fefb4affbe
2 changed files with 71 additions and 0 deletions

View File

@@ -34,6 +34,7 @@ package unix
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/param.h>
#include <sys/port.h>
#include <sys/resource.h>
#include <sys/select.h>
#include <sys/signal.h>
@@ -269,3 +270,33 @@ const (
POLLWRBAND = C.POLLWRBAND
POLLWRNORM = C.POLLWRNORM
)
// Event Ports
type fileObj C.struct_file_obj
type portEvent C.struct_port_event
const (
PORT_SOURCE_AIO = C.PORT_SOURCE_AIO
PORT_SOURCE_TIMER = C.PORT_SOURCE_TIMER
PORT_SOURCE_USER = C.PORT_SOURCE_USER
PORT_SOURCE_FD = C.PORT_SOURCE_FD
PORT_SOURCE_ALERT = C.PORT_SOURCE_ALERT
PORT_SOURCE_MQ = C.PORT_SOURCE_MQ
PORT_SOURCE_FILE = C.PORT_SOURCE_FILE
PORT_ALERT_SET = C.PORT_ALERT_SET
PORT_ALERT_UPDATE = C.PORT_ALERT_UPDATE
PORT_ALERT_INVALID = C.PORT_ALERT_INVALID
FILE_ACCESS = C.FILE_ACCESS
FILE_MODIFIED = C.FILE_MODIFIED
FILE_ATTRIB = C.FILE_ATTRIB
FILE_TRUNC = C.FILE_TRUNC
FILE_NOFOLLOW = C.FILE_NOFOLLOW
FILE_DELETE = C.FILE_DELETE
FILE_RENAME_TO = C.FILE_RENAME_TO
FILE_RENAME_FROM = C.FILE_RENAME_FROM
UNMOUNTED = C.UNMOUNTED
MOUNTEDOVER = C.MOUNTEDOVER
FILE_EXCEPTION = C.FILE_EXCEPTION
)

View File

@@ -440,3 +440,43 @@ const (
POLLWRBAND = 0x100
POLLWRNORM = 0x4
)
type fileObj struct {
Atim Timespec
Mtim Timespec
Ctim Timespec
Pad [3]uint64
Name *int8
}
type portEvent struct {
Events int32
Source uint16
Pad uint16
Object uint64
User *byte
}
const (
PORT_SOURCE_AIO = 0x1
PORT_SOURCE_TIMER = 0x2
PORT_SOURCE_USER = 0x3
PORT_SOURCE_FD = 0x4
PORT_SOURCE_ALERT = 0x5
PORT_SOURCE_MQ = 0x6
PORT_SOURCE_FILE = 0x7
PORT_ALERT_SET = 0x1
PORT_ALERT_UPDATE = 0x2
PORT_ALERT_INVALID = 0x3
FILE_ACCESS = 0x1
FILE_MODIFIED = 0x2
FILE_ATTRIB = 0x4
FILE_TRUNC = 0x100000
FILE_NOFOLLOW = 0x10000000
FILE_DELETE = 0x10
FILE_RENAME_TO = 0x20
FILE_RENAME_FROM = 0x40
UNMOUNTED = 0x20000000
MOUNTEDOVER = 0x40000000
FILE_EXCEPTION = 0x60000070
)