En réponse à Axel Dörfler <axeld@xxxxxxxxxxxxxxxx>: > "Ingo Weinhold" <bonefish@xxxxxxxxxxxxxxx> wrote: > > Node locking was one of the missing things. _k[un]lock_node_() were > > brought up on bedevtalk some time ago. I wonder if their return value > > > is int (+ errno) though. Node locking is still not implemented, but > > it's not really a pressing issue. > > Exactly, it's sufficient when we do this with the real kernel > interface. > FWIW: 00157e40 <Lock__5BNode>: 157e40: 55 push %ebp 157e41: 89 e5 mov %esp,%ebp 157e43: 53 push %ebx 157e44: e8 00 00 00 00 call 157e49 <Lock__5BNode+0x9> 157e49: 5b pop %ebx 157e4a: 81 c3 af 67 08 00 add $0x867af,%ebx 157e50: 8b 45 08 mov 0x8(%ebp),%eax 157e53: 8b 40 24 mov 0x24(%eax),%eax 157e56: 50 push %eax 157e57: e8 e8 f2 f1 ff call 77144 <._init+0x61f> 157e5c: 8b 5d fc mov 0xfffffffc(%ebp),%ebx 157e5f: 89 ec mov %ebp,%esp 157e61: 5d pop %ebp 157e62: c3 ret BNode::Lock() does just that: { return _klock_node_(this->fFd); } and same for Unlock. so the syscall here just return the same thing the BeBook documents on BNode::Lock(). > > running a separate application), which is going to go away soon, > > anyway. Don't know about the app server, though. > So as for app_server, I know it uses a system call to send back the framebuffer config to the kernel which has symbol name curscreen IIRC, and looks like this: struct kfb_info { void *fb; uint32 width; uint32 height; uint32 bytes_per_row; // ? uint32 unknown1; uint32 bits_per_pixel; // ? uint32 unknown2; }; app_server exports this func (from C++): 0004d300 T set_kdebug_framebuffer(void *, long, long, long, long) which supposedly calls the kernel. I don't think it uses that more undocumented calls. François.