MCPcopy Create free account
hub / github.com/F-Stack/f-stack / freebsd2linux_fcntl

Function freebsd2linux_fcntl

lib/ff_syscall_wrapper.c:350–412  ·  view source on GitHub ↗

* convert freebsd flags to linux flags. * cmd has been converted to freebsd mode. */

Source from the content-addressed store, hash-verified

348 * cmd has been converted to freebsd mode.
349 */
350static inline int
351freebsd2linux_fcntl(int cmd, int flags)
352{
353 switch(cmd) {
354 case F_DUPFD:
355 return flags;
356 case F_GETFD:
357 if (flags & O_CLOEXEC) {
358 //clear freebsd O_DIRECT, set linux O_DIRECT.
359 flags &= ~O_CLOEXEC;
360 flags |= LINUX_O_CLOEXEC;
361 }
362 return flags;
363 case F_SETFD:
364 return flags;
365 case F_GETFL:
366 if (flags & O_NONBLOCK) {
367 //clear linux O_NONBLOCK, set freebsd O_NONBLOCK.
368 flags &= ~O_NONBLOCK;
369 flags |= LINUX_O_NONBLOCK;
370 }
371
372 if (flags & O_APPEND) {
373 //clear linux O_APPEND, set freebsd O_APPEND.
374 flags &= ~O_APPEND;
375 flags |= LINUX_O_APPEND;
376 }
377
378 if (flags & O_ASYNC) {
379 //clear linux O_ASYNC, set freebsd O_ASYNC.
380 flags &= ~O_ASYNC;
381 flags |= LINUX_O_ASYNC;
382 }
383
384 if (flags & O_DIRECT) {
385 //clear linux O_DIRECT, set freebsd O_DIRECT.
386 flags &= ~O_DIRECT;
387 flags |= LINUX_O_DIRECT;
388 }
389
390 return flags;
391 case LINUX_F_SETFL:
392 return flags;
393 case F_GETLK:
394 return flags;
395 case F_SETLK:
396 return flags;
397 case F_SETLKW:
398 return flags;
399 case F_SETOWN:
400 return flags;
401 case F_GETOWN:
402 return flags;
403 case F_OGETLK:
404 return flags;
405 case F_OSETLK:
406 return flags;
407 case F_OSETLKW:

Callers 1

ff_fcntlFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected