Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
cmucl
cmucl
Commits
088e156b
Commit
088e156b
authored
Oct 25, 2014
by
Raymond Toy
Browse files
Support 64-bit time-t on NetBSD.
Fixes from Robert Swindells.
parent
9829658f
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/code/time.lisp
View file @
088e156b
...
...
@@ -105,7 +105,7 @@
;;; - T if daylight savings is in effect, NIL if not.
;;;
(
alien:def-alien-routine
get-timezone
c-call:void
(
when
c-call:long
:in
)
(
when
unix:time-t
:in
)
(
minutes-west
c-call:int
:out
)
(
daylight-savings-p
alien:boolean
:out
))
...
...
src/code/unix.lisp
View file @
088e156b
...
...
@@ -215,7 +215,8 @@
(
def-alien-type
caddr-t
(
*
char
))
(
def-alien-type
ino-t
#-
alpha
unsigned-long
#+
(
or
linux
(
and
bsd
(
not
netbsd
)))
unsigned-long
#+
netbsd
u-int64-t
#+
alpha
unsigned-int
)
(
def-alien-type
swblk-t
long
)
...
...
@@ -228,14 +229,16 @@
(
def-alien-type
time-t
#-
(
or
bsd
linux
alpha
)
unsigned-long
#+
linux
long
#+
bsd
long
#+
(
and
bsd
(
not
netbsd
))
long
#+
(
and
bsd
netbsd
)
int64-t
#+
alpha
unsigned-int
)
(
def-alien-type
dev-t
#-
(
or
alpha
svr4
bsd
linux
)
short
#+
linux
unsigned-short
#+
netbsd
u-int64-t
#+
alpha
int
#+
(
and
(
not
linux
)
(
or
bsd
svr4
))
unsigned-long
)
#+
(
and
(
not
linux
)
(
not
netbsd
)
(
or
bsd
svr4
))
unsigned-long
)
#-
BSD
(
progn
...
...
@@ -286,7 +289,8 @@
#+
svr4
unsigned-long
)
(
def-alien-type
nlink-t
#-
svr4
unsigned-short
#-
(
or
svr4
netbsd
)
unsigned-short
#+
netbsd
unsigned-long
#+
svr4
unsigned-long
)
(
defconstant
FD-SETSIZE
...
...
@@ -335,7 +339,7 @@
(
def-alien-type
nil
(
struct
timeval
(
tv-sec
#-
linux
time-t
#+
linux
int
)
; seconds
(
tv-usec
#-
linux
time-t
#+
linux
int
)))
; and microseconds
(
tv-usec
int
)))
; and microseconds
(
def-alien-type
nil
(
struct
timezone
...
...
@@ -359,7 +363,7 @@
#+
(
or
linux
BSD
)
(
def-alien-type
nil
(
struct
timespec-t
(
ts-sec
long
)
(
ts-sec
time-t
)
(
ts-nsec
long
)))
;;; From ioctl.h
...
...
@@ -466,7 +470,7 @@
(
d-namlen
unsigned-short
)
; length of string in d-name
(
d-name
(
array
char
256
))))
; name must be no longer than this
#+
bsd
#+
(
and
bsd
(
not
netbsd
))
(
def-alien-type
nil
(
struct
direct
(
d-fileno
unsigned-long
)
...
...
@@ -475,6 +479,15 @@
(
d-namlen
unsigned-char
)
; length of string in d-name
(
d-name
(
array
char
256
))))
; name must be no longer than this
#+
netbsd
(
def-alien-type
nil
(
struct
direct
(
d-fileno
ino-t
)
(
d-reclen
unsigned-short
)
(
d-namlen
unsigned-short
)
(
d-type
unsigned-char
)
(
d-name
(
array
char
512
))))
;;; The 64-bit version of struct dirent.
#+
solaris
(
def-alien-type
nil
...
...
@@ -509,7 +522,7 @@
(
st-blocks
#-
alpha
long
#+
alpha
int
)
(
st-spare4
(
array
long
2
))))
#+
bsd
#+
(
and
bsd
(
not
netbsd
))
(
def-alien-type
nil
(
struct
stat
(
st-dev
dev-t
)
...
...
@@ -530,6 +543,27 @@
(
st-lspare
long
)
(
st-qspare
(
array
long
4
))))
#+
netbsd
(
def-alien-type
nil
(
struct
stat
(
st-dev
dev-t
)
(
st-mode
mode-t
)
(
st-ino
ino-t
)
(
st-nlink
nlink-t
)
(
st-uid
uid-t
)
(
st-gid
gid-t
)
(
st-rdev
dev-t
)
(
st-atime
(
struct
timespec-t
))
(
st-mtime
(
struct
timespec-t
))
(
st-ctime
(
struct
timespec-t
))
(
st-birthtime
(
struct
timespec-t
))
(
st-size
off-t
)
(
st-blocks
off-t
)
(
st-blksize
long
)
(
st-flags
unsigned-long
)
(
st-gen
unsigned-long
)
(
st-spare
(
array
unsigned-long
2
))))
#+
(
or
linux
svr4
)
(
def-alien-type
nil
(
struct
stat
...
...
@@ -1597,7 +1631,7 @@
(
when
timeout-secs
(
setf
(
slot
tv
'tv-sec
)
timeout-secs
)
(
setf
(
slot
tv
'tv-usec
)
,
timeout-usecs
))
(
int-syscall
(
"select
"
int
(
*
(
struct
fd-set
))
(
*
(
struct
fd-set
))
(
int-syscall
(
#-
netbsd
"select"
#+
netbsd
"__select50
"
int
(
*
(
struct
fd-set
))
(
*
(
struct
fd-set
))
(
*
(
struct
fd-set
))
(
*
(
struct
timeval
)))
,
num-descriptors
,
read-fds
,
write-fds
,
exception-fds
(
if
timeout-secs
(
alien-sap
(
addr
tv
))
(
int-sap
0
))))))
...
...
@@ -1647,7 +1681,7 @@
`
(
if
(
zerop
,
lispvar
)
(
int-sap
0
)
(
alien-sap
(
addr
,
alienvar
)))))
(
syscall
(
"select
"
int
(
*
(
struct
fd-set
))
(
*
(
struct
fd-set
))
(
syscall
(
#-
netbsd
"select"
#+
netbsd
"__select50
"
int
(
*
(
struct
fd-set
))
(
*
(
struct
fd-set
))
(
*
(
struct
fd-set
))
(
*
(
struct
timeval
)))
(
values
result
(
fd-set-to-num
nfds
rdf
)
...
...
@@ -2137,6 +2171,7 @@
#-
(
or
svr4
BSD
)
(
slot
,
buf
'st-ctime
)
#+
svr4
(
slot
(
slot
,
buf
'st-ctime
)
'tv-sec
)
#+
BSD
(
slot
(
slot
,
buf
'st-ctime
)
'ts-sec
)
#+
netbsd
(
slot
(
slot
,
buf
'st-birthtime
)
'ts-sec
)
(
slot
,
buf
'st-blksize
)
(
slot
,
buf
'st-blocks
)))
...
...
@@ -2152,7 +2187,7 @@
(
when
(
string=
name
""
)
(
setf
name
"."
))
(
with-alien
((
buf
(
struct
stat
)))
(
syscall
(
"stat
"
c-string
(
*
(
struct
stat
)))
(
syscall
(
#-
netbsd
"stat"
#+
netbsd
"__stat50
"
c-string
(
*
(
struct
stat
)))
(
extract-stat-results
buf
)
(
%name->file
name
)
(
addr
buf
))))
...
...
@@ -2161,7 +2196,7 @@
file must be a symbolic link."
(
declare
(
type
unix-pathname
name
))
(
with-alien
((
buf
(
struct
stat
)))
(
syscall
(
"lstat
"
c-string
(
*
(
struct
stat
)))
(
syscall
(
#-
netbsd
"lstat"
#+
netbsd
"__lstat50
"
c-string
(
*
(
struct
stat
)))
(
extract-stat-results
buf
)
(
%name->file
name
)
(
addr
buf
))))
...
...
@@ -2170,7 +2205,7 @@
by the file descriptor fd."
(
declare
(
type
unix-fd
fd
))
(
with-alien
((
buf
(
struct
stat
)))
(
syscall
(
"fstat
"
int
(
*
(
struct
stat
)))
(
syscall
(
#-
netbsd
"fstat"
#+
netbsd
"__fstat50
"
int
(
*
(
struct
stat
)))
(
extract-stat-results
buf
)
fd
(
addr
buf
))))
)
...
...
@@ -2223,7 +2258,7 @@
(
unsigned-byte
31
)
(
mod
1000000
)
(
unsigned-byte
31
)
(
mod
1000000
)))
(
with-alien
((
usage
(
struct
rusage
)))
(
syscall*
(
"getrusage"
int
(
*
(
struct
rusage
)))
(
syscall*
(
#-
netbsd
"getrusage"
#+
netbsd
"__getrusage50"
int
(
*
(
struct
rusage
)))
(
values
t
(
slot
(
slot
usage
'ru-utime
)
'tv-sec
)
(
slot
(
slot
usage
'ru-utime
)
'tv-usec
)
...
...
@@ -2238,7 +2273,7 @@
child processes (rusage_children). NIL and an error number
is returned if the call fails."
(
with-alien
((
usage
(
struct
rusage
)))
(
syscall
(
"getrusage"
int
(
*
(
struct
rusage
)))
(
syscall
(
#-
netbsd
"getrusage"
#+
netbsd
"__getrusage50"
int
(
*
(
struct
rusage
)))
(
values
t
(
+
(
*
(
slot
(
slot
usage
'ru-utime
)
'tv-sec
)
1000000
)
(
slot
(
slot
usage
'ru-utime
)
'tv-usec
))
...
...
@@ -2327,18 +2362,18 @@
of Greenwich), and a daylight-savings flag. If it doesn't work, it
returns NIL and the errno."
(
with-alien
((
tv
(
struct
timeval
))
#-
svr4
(
tz
(
struct
timezone
)))
(
syscall*
(
"gettimeofday
"
(
*
(
struct
timeval
))
#-
svr4
(
*
(
struct
timezone
)))
#-
(
or
svr4
netbsd
)
(
tz
(
struct
timezone
)))
(
syscall*
(
#+
netbsd
#-
netbsd
"gettimeofday"
"__gettimeofday50
"
(
*
(
struct
timeval
))
#-
svr4
(
*
(
struct
timezone
)))
(
values
T
(
slot
tv
'tv-sec
)
(
slot
tv
'tv-usec
)
#-
svr4
(
slot
tz
'tz-minuteswest
)
#-
(
or
svr4
netbsd
)
(
slot
tz
'tz-minuteswest
)
#+
svr4
(
unix-get-minutes-west
(
slot
tv
'tv-sec
))
#-
svr4
(
slot
tz
'tz-dsttime
)
#-
(
or
svr4
netbsd
)
(
slot
tz
'tz-dsttime
)
#+
svr4
(
unix-get-timezone
(
slot
tv
'tv-sec
))
)
(
addr
tv
)
#-
svr4
(
addr
tz
))))
#-
(
or
svr4
netbsd
)
(
addr
tz
)
#+
netbsd
nil
)))
;;; Unix-utimes changes the accessed and updated times on UNIX
;;; files. The first argument is the filename (a string) and
...
...
@@ -2359,7 +2394,7 @@
(
setf
(
slot
(
deref
tvp
0
)
'tv-usec
)
atime-usec
)
(
setf
(
slot
(
deref
tvp
1
)
'tv-sec
)
mtime-sec
)
(
setf
(
slot
(
deref
tvp
1
)
'tv-usec
)
mtime-usec
)
(
void-syscall
(
"utimes
"
c-string
(
*
(
struct
timeval
)))
(
void-syscall
(
#-
netbsd
"utimes"
#+
netbsd
"__utimes50
"
c-string
(
*
(
struct
timeval
)))
file
(
cast
tvp
(
*
(
struct
timeval
))))))
...
...
@@ -2592,8 +2627,8 @@
(
with-alien
((
direct
(
*
(
struct
direct
))
daddr
))
(
let
((
nlen
(
slot
direct
'd-namlen
))
(
fino
(
slot
direct
'd-fileno
)))
(
declare
(
type
(
unsigned-byte
8
)
nlen
)
(
type
(
unsigned-byte
32
)
fino
))
(
declare
(
type
(
unsigned-byte
#+
netbsd
16
#-
netbsd
8
)
nlen
)
(
type
(
unsigned-byte
#+
netbsd
64
#-
netbsd
32
)
fino
))
(
let
((
string
(
make-string
nlen
)))
#-
unicode
(
kernel:copy-from-system-area
...
...
@@ -3089,14 +3124,16 @@
T, it-interval-secs, it-interval-usec, it-value-secs, it-value-usec."
(
declare
(
type
(
member
:real
:virtual
:profile
)
which
)
(
values
t
(
unsigned-byte
29
)(
mod
1000000
)
(
unsigned-byte
29
)(
mod
1000000
)))
#+
netbsd
(
unsigned-byte
63
)
#-
netbsd
(
unsigned-byte
29
)
(
mod
1000000
)
#+
netbsd
(
unsigned-byte
63
)
#-
netbsd
(
unsigned-byte
29
)
(
mod
1000000
)))
(
let
((
which
(
ecase
which
(
:real
ITIMER-REAL
)
(
:virtual
ITIMER-VIRTUAL
)
(
:profile
ITIMER-PROF
))))
(
with-alien
((
itv
(
struct
itimerval
)))
(
syscall*
(
"getitimer"
int
(
*
(
struct
itimerval
)))
(
syscall*
(
#-
netbsd
"getitimer"
#+
netbsd
"__getitimer50"
int
(
*
(
struct
itimerval
)))
(
values
T
(
slot
(
slot
itv
'it-interval
)
'tv-sec
)
(
slot
(
slot
itv
'it-interval
)
'tv-usec
)
...
...
@@ -3117,8 +3154,10 @@
(
type
(
unsigned-byte
29
)
int-secs
val-secs
)
(
type
(
integer
0
(
1000000
))
int-usec
val-usec
)
(
values
t
(
unsigned-byte
29
)(
mod
1000000
)
(
unsigned-byte
29
)(
mod
1000000
)))
(
unsigned-byte
29
)
(
mod
1000000
)
(
unsigned-byte
29
)
(
mod
1000000
)))
(
let
((
which
(
ecase
which
(
:real
ITIMER-REAL
)
(
:virtual
ITIMER-VIRTUAL
)
...
...
@@ -3129,7 +3168,7 @@
(
slot
(
slot
itvn
'it-interval
)
'tv-usec
)
int-usec
(
slot
(
slot
itvn
'it-value
)
'tv-sec
)
val-secs
(
slot
(
slot
itvn
'it-value
)
'tv-usec
)
val-usec
)
(
syscall*
(
"setitimer"
int
(
*
(
struct
timeval
))(
*
(
struct
timeval
)))
(
syscall*
(
#-
netbsd
"setitimer"
#+
netbsd
"__setitimer50"
int
(
*
(
struct
timeval
))(
*
(
struct
timeval
)))
(
values
T
(
slot
(
slot
itvo
'it-interval
)
'tv-sec
)
(
slot
(
slot
itvo
'it-interval
)
'tv-usec
)
...
...
src/lisp/NetBSD-os.c
View file @
088e156b
...
...
@@ -21,8 +21,12 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/file.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
#include <errno.h>
#include "os.h"
#include "arch.h"
#include "globals.h"
...
...
@@ -30,12 +34,8 @@
#include "lispregs.h"
#include "internals.h"
#include <sys/types.h>
#include <signal.h>
/* #include <sys/sysinfo.h> */
#include <sys/proc.h>
#include <dlfcn.h>
#include <sys/sysctl.h>
#include "validate.h"
size_t
os_vm_page_size
;
...
...
@@ -94,7 +94,7 @@ os_sigcontext_fpu_reg(ucontext_t *scp, int index)
unsigned
char
*
reg
=
NULL
;
DPRINTF
(
0
,
(
stderr
,
"fpu reg index = %d
\n
"
,
index
));
if
(
scp
->
uc_flags
&
_UC_FPU
)
{
if
(
scp
->
uc_flags
&
_UC_FXSAVE
)
{
/*
...
...
src/lisp/NetBSD-os.h
View file @
088e156b
...
...
@@ -12,6 +12,7 @@
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/signal.h>
#include <sys/stat.h>
#include <ucontext.h>
#include <string.h>
#include <unistd.h>
...
...
src/motif/server/Config.NetBSD
View file @
088e156b
CFLAGS = -O2 -I/usr/pkg/include -I/usr/X11R7/include -I. -I$(VPATH)
LDFLAGS = -R/usr/X11R7/lib -L/usr/X11R7/lib -R/usr/pkg/lib -L/usr/pkg/lib
LIBS = -lXm -lXt -lXext -lX11 -lSM -lICE
-lXp
LIBS = -lXm -lXt -lXext -lX11 -lSM -lICE
# This def assumes you are building in the same or parallel
# tree to the CVS souce layout. Sites may need to customize
# this path.
...
...
src/motif/server/main.c
View file @
088e156b
...
...
@@ -12,6 +12,7 @@
#include <ctype.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/select.h>
#include <sys/un.h>
#include <netinet/in.h>
#include <netdb.h>
...
...
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