Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
go
Commits
4bfcfcf8
Commit
4bfcfcf8
authored
Sep 27, 2010
by
Balazs Lecz
Committed by
Russ Cox
Sep 27, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
syscall: add inotify on Linux
R=rsc CC=golang-dev
https://golang.org/cl/2241045
parent
07b56fce
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
250 additions
and
3 deletions
+250
-3
src/pkg/syscall/mkerrors.sh
src/pkg/syscall/mkerrors.sh
+2
-0
src/pkg/syscall/syscall_linux.go
src/pkg/syscall/syscall_linux.go
+4
-3
src/pkg/syscall/types_linux.c
src/pkg/syscall/types_linux.c
+9
-0
src/pkg/syscall/zerrors_linux_386.go
src/pkg/syscall/zerrors_linux_386.go
+37
-0
src/pkg/syscall/zerrors_linux_amd64.go
src/pkg/syscall/zerrors_linux_amd64.go
+37
-0
src/pkg/syscall/zerrors_linux_arm.go
src/pkg/syscall/zerrors_linux_arm.go
+37
-0
src/pkg/syscall/zsyscall_linux_386.go
src/pkg/syscall/zsyscall_linux_386.go
+36
-0
src/pkg/syscall/zsyscall_linux_amd64.go
src/pkg/syscall/zsyscall_linux_amd64.go
+36
-0
src/pkg/syscall/zsyscall_linux_arm.go
src/pkg/syscall/zsyscall_linux_arm.go
+28
-0
src/pkg/syscall/ztypes_linux_386.go
src/pkg/syscall/ztypes_linux_386.go
+8
-0
src/pkg/syscall/ztypes_linux_amd64.go
src/pkg/syscall/ztypes_linux_amd64.go
+8
-0
src/pkg/syscall/ztypes_linux_arm.go
src/pkg/syscall/ztypes_linux_arm.go
+8
-0
No files found.
src/pkg/syscall/mkerrors.sh
View file @
4bfcfcf8
...
...
@@ -23,6 +23,7 @@ includes_Linux='
#include <sys/types.h>
#include <sys/epoll.h>
#include <sys/inotify.h>
#include <linux/ptrace.h>
#include <linux/wait.h>
'
...
...
@@ -84,6 +85,7 @@ done
$2 ~ /^E[A-Z0-9_]+$/ ||
$2 ~ /^SIG[^_]/ ||
$2 ~ /^IN_/ ||
$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|EVFILT|EV|SHUT|PROT|MAP)_/ ||
$2 == "SOMAXCONN" ||
$2 == "NAME_MAX" ||
...
...
src/pkg/syscall/syscall_linux.go
View file @
4bfcfcf8
...
...
@@ -593,6 +593,10 @@ func PtraceDetach(pid int) (errno int) { return ptrace(PTRACE_DETACH, pid, 0, 0)
//sys Getrlimit(resource int, rlim *Rlimit) (errno int)
//sys Getrusage(who int, rusage *Rusage) (errno int)
//sys Gettid() (tid int)
//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, errno int)
//sys InotifyInit() (fd int, errno int)
//sys InotifyInit1(flags int) (fd int, errno int)
//sys InotifyRmWatch(fd int, watchdesc uint32) (success int, errno int)
//sys Kill(pid int, sig int) (errno int)
//sys Klogctl(typ int, buf []byte) (n int, errno int) = SYS_SYSLOG
//sys Link(oldpath string, newpath string) (errno int)
...
...
@@ -675,9 +679,6 @@ func PtraceDetach(pid int) (errno int) { return ptrace(PTRACE_DETACH, pid, 0, 0)
// Getpmsg
// Getpriority
// Getxattr
// InotifyAddWatch
// InotifyInit
// InotifyRmWatch
// IoCancel
// IoDestroy
// IoGetevents
...
...
src/pkg/syscall/types_linux.c
View file @
4bfcfcf8
...
...
@@ -18,6 +18,7 @@ Input to godefs. See also mkerrors.sh and mkall.sh
#include <signal.h>
#include <stdio.h>
#include <sys/epoll.h>
#include <sys/inotify.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/param.h>
...
...
@@ -119,6 +120,14 @@ enum {
};
// Inotify
typedef
struct
inotify_event
$
InotifyEvent
;
enum
{
$
SizeofInotifyEvent
=
sizeof
(
struct
inotify_event
)
};
// Ptrace
// Register structures
...
...
src/pkg/syscall/zerrors_linux_386.go
View file @
4bfcfcf8
...
...
@@ -232,6 +232,43 @@ const (
F_ULOCK
=
0
F_UNLCK
=
0x2
F_WRLCK
=
0x1
IN_ACCESS
=
0x1
IN_ALL_EVENTS
=
0xfff
IN_ATTRIB
=
0x4
IN_CLASSA_HOST
=
0xffffff
IN_CLASSA_MAX
=
0x80
IN_CLASSA_NET
=
0xff000000
IN_CLASSA_NSHIFT
=
0x18
IN_CLASSB_HOST
=
0xffff
IN_CLASSB_MAX
=
0x10000
IN_CLASSB_NET
=
0xffff0000
IN_CLASSB_NSHIFT
=
0x10
IN_CLASSC_HOST
=
0xff
IN_CLASSC_NET
=
0xffffff00
IN_CLASSC_NSHIFT
=
0x8
IN_CLOEXEC
=
0x80000
IN_CLOSE
=
0x18
IN_CLOSE_NOWRITE
=
0x10
IN_CLOSE_WRITE
=
0x8
IN_CREATE
=
0x100
IN_DELETE
=
0x200
IN_DELETE_SELF
=
0x400
IN_DONT_FOLLOW
=
0x2000000
IN_IGNORED
=
0x8000
IN_ISDIR
=
0x40000000
IN_LOOPBACKNET
=
0x7f
IN_MASK_ADD
=
0x20000000
IN_MODIFY
=
0x2
IN_MOVE
=
0xc0
IN_MOVED_FROM
=
0x40
IN_MOVED_TO
=
0x80
IN_MOVE_SELF
=
0x800
IN_NONBLOCK
=
0x800
IN_ONESHOT
=
0x80000000
IN_ONLYDIR
=
0x1000000
IN_OPEN
=
0x20
IN_Q_OVERFLOW
=
0x4000
IN_UNMOUNT
=
0x2000
IPPROTO_AH
=
0x33
IPPROTO_COMP
=
0x6c
IPPROTO_DCCP
=
0x21
...
...
src/pkg/syscall/zerrors_linux_amd64.go
View file @
4bfcfcf8
...
...
@@ -232,6 +232,43 @@ const (
F_ULOCK
=
0
F_UNLCK
=
0x2
F_WRLCK
=
0x1
IN_ACCESS
=
0x1
IN_ALL_EVENTS
=
0xfff
IN_ATTRIB
=
0x4
IN_CLASSA_HOST
=
0xffffff
IN_CLASSA_MAX
=
0x80
IN_CLASSA_NET
=
0xff000000
IN_CLASSA_NSHIFT
=
0x18
IN_CLASSB_HOST
=
0xffff
IN_CLASSB_MAX
=
0x10000
IN_CLASSB_NET
=
0xffff0000
IN_CLASSB_NSHIFT
=
0x10
IN_CLASSC_HOST
=
0xff
IN_CLASSC_NET
=
0xffffff00
IN_CLASSC_NSHIFT
=
0x8
IN_CLOEXEC
=
0x80000
IN_CLOSE
=
0x18
IN_CLOSE_NOWRITE
=
0x10
IN_CLOSE_WRITE
=
0x8
IN_CREATE
=
0x100
IN_DELETE
=
0x200
IN_DELETE_SELF
=
0x400
IN_DONT_FOLLOW
=
0x2000000
IN_IGNORED
=
0x8000
IN_ISDIR
=
0x40000000
IN_LOOPBACKNET
=
0x7f
IN_MASK_ADD
=
0x20000000
IN_MODIFY
=
0x2
IN_MOVE
=
0xc0
IN_MOVED_FROM
=
0x40
IN_MOVED_TO
=
0x80
IN_MOVE_SELF
=
0x800
IN_NONBLOCK
=
0x800
IN_ONESHOT
=
0x80000000
IN_ONLYDIR
=
0x1000000
IN_OPEN
=
0x20
IN_Q_OVERFLOW
=
0x4000
IN_UNMOUNT
=
0x2000
IPPROTO_AH
=
0x33
IPPROTO_COMP
=
0x6c
IPPROTO_DCCP
=
0x21
...
...
src/pkg/syscall/zerrors_linux_arm.go
View file @
4bfcfcf8
...
...
@@ -226,6 +226,43 @@ const (
F_ULOCK
=
0
F_UNLCK
=
0x2
F_WRLCK
=
0x1
IN_ACCESS
=
0x1
IN_ALL_EVENTS
=
0xfff
IN_ATTRIB
=
0x4
IN_CLASSA_HOST
=
0xffffff
IN_CLASSA_MAX
=
0x80
IN_CLASSA_NET
=
0xff000000
IN_CLASSA_NSHIFT
=
0x18
IN_CLASSB_HOST
=
0xffff
IN_CLASSB_MAX
=
0x10000
IN_CLASSB_NET
=
0xffff0000
IN_CLASSB_NSHIFT
=
0x10
IN_CLASSC_HOST
=
0xff
IN_CLASSC_NET
=
0xffffff00
IN_CLASSC_NSHIFT
=
0x8
IN_CLOEXEC
=
0x80000
IN_CLOSE
=
0x18
IN_CLOSE_NOWRITE
=
0x10
IN_CLOSE_WRITE
=
0x8
IN_CREATE
=
0x100
IN_DELETE
=
0x200
IN_DELETE_SELF
=
0x400
IN_DONT_FOLLOW
=
0x2000000
IN_IGNORED
=
0x8000
IN_ISDIR
=
0x40000000
IN_LOOPBACKNET
=
0x7f
IN_MASK_ADD
=
0x20000000
IN_MODIFY
=
0x2
IN_MOVE
=
0xc0
IN_MOVED_FROM
=
0x40
IN_MOVED_TO
=
0x80
IN_MOVE_SELF
=
0x800
IN_NONBLOCK
=
0x800
IN_ONESHOT
=
0x80000000
IN_ONLYDIR
=
0x1000000
IN_OPEN
=
0x20
IN_Q_OVERFLOW
=
0x4000
IN_UNMOUNT
=
0x2000
IPPROTO_AH
=
0x33
IPPROTO_COMP
=
0x6c
IPPROTO_DCCP
=
0x21
...
...
src/pkg/syscall/zsyscall_linux_386.go
View file @
4bfcfcf8
...
...
@@ -351,6 +351,42 @@ func Gettid() (tid int) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
InotifyAddWatch
(
fd
int
,
pathname
string
,
mask
uint32
)
(
watchdesc
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_ADD_WATCH
,
uintptr
(
fd
),
uintptr
(
unsafe
.
Pointer
(
StringBytePtr
(
pathname
))),
uintptr
(
mask
))
watchdesc
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
InotifyInit
()
(
fd
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_INIT
,
0
,
0
,
0
)
fd
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
InotifyInit1
(
flags
int
)
(
fd
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_INIT1
,
uintptr
(
flags
),
0
,
0
)
fd
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
InotifyRmWatch
(
fd
int
,
watchdesc
uint32
)
(
success
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_RM_WATCH
,
uintptr
(
fd
),
uintptr
(
watchdesc
),
0
)
success
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
Kill
(
pid
int
,
sig
int
)
(
errno
int
)
{
_
,
_
,
e1
:=
Syscall
(
SYS_KILL
,
uintptr
(
pid
),
uintptr
(
sig
),
0
)
errno
=
int
(
e1
)
...
...
src/pkg/syscall/zsyscall_linux_amd64.go
View file @
4bfcfcf8
...
...
@@ -351,6 +351,42 @@ func Gettid() (tid int) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
InotifyAddWatch
(
fd
int
,
pathname
string
,
mask
uint32
)
(
watchdesc
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_ADD_WATCH
,
uintptr
(
fd
),
uintptr
(
unsafe
.
Pointer
(
StringBytePtr
(
pathname
))),
uintptr
(
mask
))
watchdesc
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
InotifyInit
()
(
fd
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_INIT
,
0
,
0
,
0
)
fd
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
InotifyInit1
(
flags
int
)
(
fd
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_INIT1
,
uintptr
(
flags
),
0
,
0
)
fd
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
InotifyRmWatch
(
fd
int
,
watchdesc
uint32
)
(
success
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_RM_WATCH
,
uintptr
(
fd
),
uintptr
(
watchdesc
),
0
)
success
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func
Kill
(
pid
int
,
sig
int
)
(
errno
int
)
{
_
,
_
,
e1
:=
Syscall
(
SYS_KILL
,
uintptr
(
pid
),
uintptr
(
sig
),
0
)
errno
=
int
(
e1
)
...
...
src/pkg/syscall/zsyscall_linux_arm.go
View file @
4bfcfcf8
...
...
@@ -269,6 +269,34 @@ func Gettid() (tid int) {
return
}
func
InotifyAddWatch
(
fd
int
,
pathname
string
,
mask
uint32
)
(
watchdesc
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_ADD_WATCH
,
uintptr
(
fd
),
uintptr
(
unsafe
.
Pointer
(
StringBytePtr
(
pathname
))),
uintptr
(
mask
))
watchdesc
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
func
InotifyInit
()
(
fd
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_INIT
,
0
,
0
,
0
)
fd
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
func
InotifyInit1
(
flags
int
)
(
fd
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_INIT1
,
uintptr
(
flags
),
0
,
0
)
fd
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
func
InotifyRmWatch
(
fd
int
,
watchdesc
uint32
)
(
success
int
,
errno
int
)
{
r0
,
_
,
e1
:=
Syscall
(
SYS_INOTIFY_RM_WATCH
,
uintptr
(
fd
),
uintptr
(
watchdesc
),
0
)
success
=
int
(
r0
)
errno
=
int
(
e1
)
return
}
func
Kill
(
pid
int
,
sig
int
)
(
errno
int
)
{
_
,
_
,
e1
:=
Syscall
(
SYS_KILL
,
uintptr
(
pid
),
uintptr
(
sig
),
0
)
errno
=
int
(
e1
)
...
...
src/pkg/syscall/ztypes_linux_386.go
View file @
4bfcfcf8
...
...
@@ -19,6 +19,7 @@ const (
SizeofLinger
=
0x8
SizeofMsghdr
=
0x1c
SizeofCmsghdr
=
0xc
SizeofInotifyEvent
=
0x10
)
// Types
...
...
@@ -217,6 +218,13 @@ type Cmsghdr struct {
Type
int32
}
type
InotifyEvent
struct
{
Wd
int32
Mask
uint32
Cookie
uint32
Len
uint32
}
type
PtraceRegs
struct
{
Ebx
int32
Ecx
int32
...
...
src/pkg/syscall/ztypes_linux_amd64.go
View file @
4bfcfcf8
...
...
@@ -19,6 +19,7 @@ const (
SizeofLinger
=
0x8
SizeofMsghdr
=
0x38
SizeofCmsghdr
=
0x10
SizeofInotifyEvent
=
0x10
)
// Types
...
...
@@ -219,6 +220,13 @@ type Cmsghdr struct {
Type
int32
}
type
InotifyEvent
struct
{
Wd
int32
Mask
uint32
Cookie
uint32
Len
uint32
}
type
PtraceRegs
struct
{
R15
uint64
R14
uint64
...
...
src/pkg/syscall/ztypes_linux_arm.go
View file @
4bfcfcf8
...
...
@@ -19,6 +19,7 @@ const (
SizeofLinger
=
0x8
SizeofMsghdr
=
0x1c
SizeofCmsghdr
=
0xc
SizeofInotifyEvent
=
0x10
)
// Types
...
...
@@ -219,6 +220,13 @@ type Cmsghdr struct {
Type
int32
}
type
InotifyEvent
struct
{
Wd
int32
Mask
uint32
Cookie
uint32
Len
uint32
}
type
PtraceRegs
struct
{}
type
FdSet
struct
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment