OS.h File Reference

#include <BeBuild.h>
#include <be_prim.h>
#include <fcntl.h>
#include <sys/param.h>

Go to the source code of this file.

Classes

struct  area_info
struct  port_info
struct  sem_info
struct  thread_info
struct  team_usage_info
struct  team_info
struct  cpu_info
struct  system_info

Defines

#define B_OS_NAME_LENGTH   32
#define B_PAGE_SIZE   4096
#define B_INFINITE_TIMEOUT   (9223372036854775807LL)
#define B_NO_LOCK   0
#define B_LAZY_LOCK   1
#define B_FULL_LOCK   2
#define B_CONTIGUOUS   3
#define B_LOMEM   4
#define B_ANY_ADDRESS   0
#define B_EXACT_ADDRESS   1
#define B_BASE_ADDRESS   2
#define B_CLONE_ADDRESS   3
#define B_ANY_KERNEL_ADDRESS   4
#define B_READ_AREA   1
#define B_WRITE_AREA   2
#define get_area_info(id, ainfo)   _get_area_info((id), (ainfo),sizeof(*(ainfo)))
#define get_next_area_info(team, cookie, ainfo)   _get_next_area_info((team), (cookie), (ainfo), sizeof(*(ainfo)))
#define get_port_info(port, info)   _get_port_info((port), (info), sizeof(*(info)))
#define get_next_port_info(team, cookie, info)   _get_next_port_info((team), (cookie), (info), sizeof(*(info)))
#define get_sem_info(sem, info)   _get_sem_info((sem), (info), sizeof(*(info)))
#define get_next_sem_info(team, cookie, info)   _get_next_sem_info((team), (cookie), (info), sizeof(*(info)))
#define B_LOW_PRIORITY   5
#define B_NORMAL_PRIORITY   10
#define B_DISPLAY_PRIORITY   15
#define B_URGENT_DISPLAY_PRIORITY   20
#define B_REAL_TIME_DISPLAY_PRIORITY   100
#define B_URGENT_PRIORITY   110
#define B_REAL_TIME_PRIORITY   120
#define thread_entry   thread_func
#define get_thread_info(thread, info)   _get_thread_info((thread), (info), sizeof(*(info)))
#define get_next_thread_info(tmid, cookie, info)   _get_next_thread_info((tmid), (cookie), (info), sizeof(*(info)))
#define get_team_usage_info(tmid, who, info)   _get_team_usage_info((tmid), (who), (info), sizeof(*(info)))
#define B_SYSTEM_TIMEBASE   (0)
#define B_SYSTEM_TEAM   2
#define get_team_info(team, info)   _get_team_info((team), (info), sizeof(*(info)))
#define get_next_team_info(cookie, info)   _get_next_team_info((cookie), (info), sizeof(*(info)))
#define B_CPU_X86_VENDOR_MASK   0x1F00
#define get_system_info(info)   _get_system_info((info), sizeof(*(info)))

Typedefs

typedef int32 area_id
typedef int32 port_id
typedef int32 sem_id
typedef int32 thread_id
typedef int32 team_id
typedef area_info area_info
typedef port_info port_info
typedef sem_info sem_info
typedef int32(* thread_func )(void *)
typedef enum cpu_vendors cpu_vendor
typedef enum cpu_types cpu_type
typedef enum platform_types platform_type
typedef int32 machine_id [2]

Enumerations

enum  {
  B_CAN_INTERRUPT = 1, B_DO_NOT_RESCHEDULE = 2, B_CHECK_PERMISSION = 4, B_TIMEOUT = 8,
  B_RELATIVE_TIMEOUT = 8, B_ABSOLUTE_TIMEOUT = 16, B_USE_REAL_TIME = 32, B_WAKE_ON_TIMEOUT = 64
}
enum  { B_ONE_SHOT_ABSOLUTE_ALARM = 1, B_ONE_SHOT_RELATIVE_ALARM = 2, B_PERIODIC_ALARM = 3 }
enum  thread_state {
  B_THREAD_RUNNING = 1, B_THREAD_READY, B_THREAD_RECEIVING, B_THREAD_ASLEEP,
  B_THREAD_SUSPENDED, B_THREAD_WAITING
}
enum  cpu_vendors {
  B_CPU_VENDOR_UNKNOWN = 0, B_CPU_VENDOR_INTEL, B_CPU_VENDOR_AMD, B_CPU_VENDOR_UMC,
  B_CPU_VENDOR_CYRIX, B_CPU_VENDOR_NEXTGEN, B_CPU_VENDOR_CENTAUR, B_CPU_VENDOR_RISE,
  B_CPU_VENDOR_SIS, B_CPU_VENDOR_TRANSMETA, B_CPU_VENDOR_NATIONAL
}
enum  cpu_types {
  B_CPU_PPC_601 = 1, B_CPU_PPC_603 = 2, B_CPU_PPC_603e = 3, B_CPU_PPC_604 = 4,
  B_CPU_PPC_604e = 5, B_CPU_PPC_750 = 6, B_CPU_PPC_686 = 13, B_CPU_AMD_29K,
  B_CPU_X86, B_CPU_MC6502, B_CPU_Z80, B_CPU_ALPHA,
  B_CPU_MIPS, B_CPU_HPPA, B_CPU_M68K, B_CPU_ARM,
  B_CPU_SH, B_CPU_SPARC, B_CPU_INTEL_X86 = 0x1000, B_CPU_INTEL_486_DX25 = 0x1040,
  B_CPU_INTEL_486_DX50, B_CPU_INTEL_486_SX, B_CPU_INTEL_486_DX2, B_CPU_INTEL_486_SL,
  B_CPU_INTEL_486_SX2, B_CPU_INTEL_486_DX2_WB = 0x1047, B_CPU_INTEL_486_DX4, B_CPU_INTEL_486_DX4_WB,
  B_CPU_INTEL_PENTIUM_ASTEP = 0x1050, B_CPU_INTEL_PENTIUM, B_CPU_INTEL_PENTIUM75, B_CPU_INTEL_PENTIUM_486_OVERDRIVE,
  B_CPU_INTEL_PENTIUM_MMX, B_CPU_INTEL_PENTIUM_MMX_MODEL_4 = B_CPU_INTEL_PENTIUM_MMX, B_CPU_INTEL_PENTIUM_M75 = 0x1057, B_CPU_INTEL_PENTIUM_MMX_MOBILE,
  B_CPU_INTEL_PENTIUM_MMX_MODEL_8 = B_CPU_INTEL_PENTIUM_MMX_MOBILE, B_CPU_INTEL_PENTIUM75_486_OVERDRIVE, B_CPU_INTEL_PENTIUM_PRO_ASTEP = 0x1060, B_CPU_INTEL_PENTIUM_PRO = 0x1061,
  B_CPU_INTEL_PENTIUM_II = 0x1063, B_CPU_INTEL_PENTIUM_II_MODEL_3 = 0x1063, B_CPU_INTEL_PENTIUM_II_MODEL_5 = 0x1065, B_CPU_INTEL_CELERON,
  B_CPU_INTEL_PENTIUM_III, B_CPU_INTEL_PENTIUM_III_MODEL_8, B_CPU_INTEL_PENTIUM_III_MOBILE, B_CPU_INTEL_PENTIUM_CENTRINO_A = B_CPU_INTEL_PENTIUM_III_MOBILE,
  B_CPU_INTEL_PENTIUM_III_XEON, B_CPU_INTEL_PENTIUM_III_MODEL_11, B_CPU_INTEL_PENTIUM_III_MODEL_B = B_CPU_INTEL_PENTIUM_III_MODEL_11, B_CPU_INTEL_PENTIUM_CENTRINO_B = 0x106d,
  B_CPU_INTEL_PENTIUM_IA64 = 0x1070, B_CPU_INTEL_PENTIUM_IV = 0x10f0, B_CPU_INTEL_PENTIUM_IV_MODEL1, B_CPU_INTEL_PENTIUM_IV_MODEL2,
  B_CPU_INTEL_PENTIUM_IV_MODEL3, B_CPU_INTEL_PENTIUM_IV_XEON = 0x0F27, B_CPU_AMD_X86 = 0x1100, B_CPU_AMD_486_DX2 = 0x1143,
  B_CPU_AMD_486_DX2_WB = 0x1147, B_CPU_AMD_486_DX4 = 0x1148, B_CPU_AMD_486_DX4_WB = 0x1149, B_CPU_AMD_586_WT = 0x114e,
  B_CPU_AMD_586_WB = 0x114f, B_CPU_AMD_K5 = 0x1150, B_CPU_AMD_K5_MODEL0 = 0x1150, B_CPU_AMD_K5_MODEL1,
  B_CPU_AMD_K5_MODEL2, B_CPU_AMD_K5_MODEL3, B_CPU_AMD_K6 = 0x1156, B_CPU_AMD_K6_MODEL6 = 0x1156,
  B_CPU_AMD_K6_MODEL7 = 0x1157, B_CPU_AMD_K6_MODEL8 = 0x1158, B_CPU_AMD_K6_2 = 0x1158, B_CPU_AMD_K6_MODEL9 = 0x1159,
  B_CPU_AMD_K6_III = 0x1159, B_CPU_AMD_K6_III_MODEL2 = 0x115D, B_CPU_AMD_ATHLON_MODEL0 = 0x1160, B_CPU_AMD_ATHLON_MODEL1 = 0x1161,
  B_CPU_AMD_ATHLON_MODEL2 = 0x1162, B_CPU_AMD_DURON = 0x1163, B_CPU_AMD_ATHLON_THUNDERBIRD = 0x1164, B_CPU_AMD_ATHLON_XP = 0x1166,
  B_CPU_AMD_ATHLON_XP_MODEL2, B_CPU_AMD_ATHLON_XP_MODEL3, B_CPU_AMD_ATHLON_XP_MODEL_BARTON = 0x116A, B_CPU_AMD_ATHLON_XP64 = 0x11F4,
  B_CPU_AMD_ATHLON_XP64_FX = 0x11F5, B_CPU_AMD_ATHLON_64 = 0x0F48, B_CPU_AMD_ATHLON_64_OPTERON = 0x0F51, B_CPU_AMD_ATHLON_64_FX = 0x0F58,
  B_CPU_AMD_ATHLON_64_754 = 0x0F4A, B_CPU_AMD_ATHLON_64_FX939 = 0x0F7A, B_CPU_AMD_ATHLON_64_FX940 = 0x0F5A, B_CPU_AMD_ATHLON_64_754_2 = 0x0FC0,
  B_CPU_AMD_ATHLON_64_754_3 = 0x0FE0, B_CPU_AMD_ATHLON_64_939 = 0x0FF0, B_CPU_AMD_ATHLON_64_754_4 = 0x0F82, B_CPU_AMD_ATHLON_64_939_2 = 0x0FB2,
  B_CPU_AMD_ATHLON_64_939_3 = 0x11FF, B_CPU_AMD_ATHLON_64_939_4 = 0x11FC, B_CPU_CYRIX_X86 = 0x1200, B_CPU_CYRIX_MediaGX = 0x1244,
  B_CPU_CYRIX_6x86 = 0x1252, B_CPU_CYRIX_GXm = 0x1254, B_CPU_CYRIX_6x86MX = 0x1260, B_CPU_CYRIX_VIA_M2 = 0x1265,
  B_CPU_CYRIX_WINCHIP_C5A, B_CPU_CYRIX_WINCHIP_C5B, B_CPU_CYRIX_WINCHIP_C5N, B_CPU_CYRIX_WINCHIP_C5XL,
  B_CPU_VIA_ANTAUR = 0x1369, B_CPU_IDT_X86 = 0x1300, B_CPU_IDT_WINCHIP_C6 = 0x1354, B_CPU_IDT_WINCHIP_2 = 0x1358,
  B_CPU_IDT_WINCHIP_3 = 0x1359, B_CPU_RISE_X86 = 0x1400, B_CPU_RISE_mP6 = 0x1450, B_CPU_NATIONAL_X86 = 0x1500,
  B_CPU_NATIONAL_GEODE_GX1 = 0x1554, B_CPU_NATIONAL_GEODE_GX2 = 0x1555, B_CPU_NEXGEN_X86 = 0x1600, B_CPU_NEXGEN_Nx586 = 0x1650,
  B_CPU_SIS_X86 = 0x1700, B_CPU_SIS_55x = 0x1750, B_CPU_TRANSMETA_X86 = 0x1800, B_CPU_TRANSMETA_CRUSOE = 0x1854,
  B_CPU_UMC_X86 = 0x1900, B_CPU_UMC_U5D = 0x1941, B_CPU_UMC_U5S = 0x1942
}
enum  platform_types {
  B_BEBOX_PLATFORM = 0, B_MAC_PLATFORM, B_AT_CLONE_PLATFORM, B_ENIAC_PLATFORM,
  B_APPLE_II_PLATFORM, B_CRAY_PLATFORM, B_LISA_PLATFORM, B_TI_994A_PLATFORM,
  B_TIMEX_SINCLAIR_PLATFORM, B_ORAC_1_PLATFORM, B_HAL_PLATFORM, B_BESM_6_PLATFORM,
  B_MK_61_PLATFORM, B_NINTENDO_64_PLATFORM, B_ARM_PLATFORM
}

Functions

area_id create_area (const char *name, void **start_addr, uint32 addr_spec, size_t size, uint32 lock, uint32 protection)
area_id clone_area (const char *name, void **dest_addr, uint32 addr_spec, uint32 protection, area_id source)
area_id find_area (const char *name)
area_id area_for (void *addr)
status_t delete_area (area_id id)
status_t resize_area (area_id id, size_t new_size)
status_t set_area_protection (area_id id, uint32 new_protection)
status_t _get_area_info (area_id id, area_info *ainfo, size_t size)
status_t _get_next_area_info (team_id team, int32 *cookie, area_info *ainfo, size_t size)
port_id create_port (int32 capacity, const char *name)
port_id find_port (const char *name)
status_t write_port (port_id port, int32 code, const void *buf, size_t buf_size)
status_t read_port (port_id port, int32 *code, void *buf, size_t buf_size)
status_t write_port_etc (port_id port, int32 code, const void *buf, size_t buf_size, uint32 flags, bigtime_t timeout)
status_t read_port_etc (port_id port, int32 *code, void *buf, size_t buf_size, uint32 flags, bigtime_t timeout)
ssize_t port_buffer_size (port_id port)
ssize_t port_buffer_size_etc (port_id port, uint32 flags, bigtime_t timeout)
ssize_t port_count (port_id port)
status_t set_port_owner (port_id port, team_id team)
status_t close_port (port_id port)
status_t delete_port (port_id port)
status_t _get_port_info (port_id port, port_info *info, size_t size)
status_t _get_next_port_info (team_id team, int32 *cookie, port_info *info, size_t size)
sem_id create_sem (int32 count, const char *name)
status_t delete_sem (sem_id sem)
status_t acquire_sem (sem_id sem)
status_t acquire_sem_etc (sem_id sem, int32 count, uint32 flags, bigtime_t microsecond_timeout)
status_t release_sem (sem_id sem)
status_t release_sem_etc (sem_id sem, int32 count, uint32 flags)
status_t get_sem_count (sem_id sem, int32 *count)
status_t set_sem_owner (sem_id sem, team_id team)
status_t _get_sem_info (sem_id sem, sem_info *info, size_t size)
status_t _get_next_sem_info (team_id team, int32 *cookie, sem_info *info, size_t size)
bigtime_t set_alarm (bigtime_t when, uint32 flags)
thread_id spawn_thread (thread_func function_name, const char *thread_name, int32 priority, void *arg)
status_t kill_thread (thread_id thread)
status_t resume_thread (thread_id thread)
status_t suspend_thread (thread_id thread)
status_t rename_thread (thread_id thread, const char *new_name)
status_t set_thread_priority (thread_id thread, int32 new_priority)
void exit_thread (status_t status)
status_t wait_for_thread (thread_id thread, status_t *thread_return_value)
status_t on_exit_thread (void(*callback)(void *), void *data)
status_t _get_thread_info (thread_id thread, thread_info *info, size_t size)
status_t _get_next_thread_info (team_id tmid, int32 *cookie, thread_info *info, size_t size)
status_t _get_team_usage_info (team_id tmid, int32 who, team_usage_info *ti, size_t size)
thread_id find_thread (const char *name)
status_t send_data (thread_id thread, int32 code, const void *buf, size_t buffer_size)
status_t receive_data (thread_id *sender, void *buf, size_t buffer_size)
bool has_data (thread_id thread)
status_t snooze (bigtime_t microseconds)
status_t snooze_until (bigtime_t when, int timebase)
status_t snooze_etc (bigtime_t usecs, int timebase, uint32 flags)
status_t kill_team (team_id team)
status_t _get_team_info (team_id team, team_info *info, size_t size)
status_t _get_next_team_info (int32 *cookie, team_info *info, size_t size)
status_t _get_system_info (system_info *returned_info, size_t size)
int32 is_computer_on (void)
double is_computer_on_fire (void)
uint32 real_time_clock (void)
void set_real_time_clock (int32 secs_since_jan1_1970)
bigtime_t real_time_clock_usecs (void)
status_t set_timezone (char *str)
bigtime_t system_time (void)
bigtime_t system_real_time (void)
void debugger (const char *message)
const int disable_debugger (int state)


Define Documentation

#define B_ANY_ADDRESS   0
 

#define B_ANY_KERNEL_ADDRESS   4
 

#define B_BASE_ADDRESS   2
 

#define B_CLONE_ADDRESS   3
 

#define B_CONTIGUOUS   3
 

#define B_CPU_X86_VENDOR_MASK   0x1F00
 

#define B_DISPLAY_PRIORITY   15
 

#define B_EXACT_ADDRESS   1
 

#define B_FULL_LOCK   2
 

#define B_INFINITE_TIMEOUT   (9223372036854775807LL)
 

#define B_LAZY_LOCK   1
 

#define B_LOMEM   4
 

#define B_LOW_PRIORITY   5
 

#define B_NO_LOCK   0
 

#define B_NORMAL_PRIORITY   10
 

#define B_OS_NAME_LENGTH   32
 

#define B_PAGE_SIZE   4096
 

#define B_READ_AREA   1
 

#define B_REAL_TIME_DISPLAY_PRIORITY   100
 

#define B_REAL_TIME_PRIORITY   120
 

#define B_SYSTEM_TEAM   2
 

#define B_SYSTEM_TIMEBASE   (0)
 

#define B_URGENT_DISPLAY_PRIORITY   20
 

#define B_URGENT_PRIORITY   110
 

#define B_WRITE_AREA   2
 

#define get_area_info id,
ainfo   )     _get_area_info((id), (ainfo),sizeof(*(ainfo)))
 

#define get_next_area_info team,
cookie,
ainfo   )     _get_next_area_info((team), (cookie), (ainfo), sizeof(*(ainfo)))
 

#define get_next_port_info team,
cookie,
info   )     _get_next_port_info((team), (cookie), (info), sizeof(*(info)))
 

#define get_next_sem_info team,
cookie,
info   )     _get_next_sem_info((team), (cookie), (info), sizeof(*(info)))
 

#define get_next_team_info cookie,
info   )     _get_next_team_info((cookie), (info), sizeof(*(info)))
 

#define get_next_thread_info tmid,
cookie,
info   )     _get_next_thread_info((tmid), (cookie), (info), sizeof(*(info)))
 

#define get_port_info port,
info   )     _get_port_info((port), (info), sizeof(*(info)))
 

#define get_sem_info sem,
info   )     _get_sem_info((sem), (info), sizeof(*(info)))
 

#define get_system_info info   )     _get_system_info((info), sizeof(*(info)))
 

#define get_team_info team,
info   )     _get_team_info((team), (info), sizeof(*(info)))
 

#define get_team_usage_info tmid,
who,
info   )     _get_team_usage_info((tmid), (who), (info), sizeof(*(info)))
 

#define get_thread_info thread,
info   )     _get_thread_info((thread), (info), sizeof(*(info)))
 

#define thread_entry   thread_func
 


Typedef Documentation

typedef int32 area_id
 

typedef struct area_info area_info
 

typedef enum cpu_types cpu_type
 

typedef enum cpu_vendors cpu_vendor
 

typedef int32 machine_id[2]
 

typedef enum platform_types platform_type
 

typedef int32 port_id
 

typedef struct port_info port_info
 

typedef int32 sem_id
 

typedef struct sem_info sem_info
 

typedef int32 team_id
 

typedef int32(* thread_func)(void *)
 

typedef int32 thread_id
 


Enumeration Type Documentation

anonymous enum
 

Enumerator:
B_CAN_INTERRUPT 
B_DO_NOT_RESCHEDULE 
B_CHECK_PERMISSION 
B_TIMEOUT 
B_RELATIVE_TIMEOUT 
B_ABSOLUTE_TIMEOUT 
B_USE_REAL_TIME 
B_WAKE_ON_TIMEOUT 

anonymous enum
 

Enumerator:
B_ONE_SHOT_ABSOLUTE_ALARM 
B_ONE_SHOT_RELATIVE_ALARM 
B_PERIODIC_ALARM 

enum cpu_types
 

Enumerator:
B_CPU_PPC_601 
B_CPU_PPC_603 
B_CPU_PPC_603e 
B_CPU_PPC_604 
B_CPU_PPC_604e 
B_CPU_PPC_750 
B_CPU_PPC_686 
B_CPU_AMD_29K 
B_CPU_X86 
B_CPU_MC6502 
B_CPU_Z80 
B_CPU_ALPHA 
B_CPU_MIPS 
B_CPU_HPPA 
B_CPU_M68K 
B_CPU_ARM 
B_CPU_SH 
B_CPU_SPARC 
B_CPU_INTEL_X86 
B_CPU_INTEL_486_DX25 
B_CPU_INTEL_486_DX50 
B_CPU_INTEL_486_SX 
B_CPU_INTEL_486_DX2 
B_CPU_INTEL_486_SL 
B_CPU_INTEL_486_SX2 
B_CPU_INTEL_486_DX2_WB 
B_CPU_INTEL_486_DX4 
B_CPU_INTEL_486_DX4_WB 
B_CPU_INTEL_PENTIUM_ASTEP 
B_CPU_INTEL_PENTIUM 
B_CPU_INTEL_PENTIUM75 
B_CPU_INTEL_PENTIUM_486_OVERDRIVE 
B_CPU_INTEL_PENTIUM_MMX 
B_CPU_INTEL_PENTIUM_MMX_MODEL_4 
B_CPU_INTEL_PENTIUM_M75 
B_CPU_INTEL_PENTIUM_MMX_MOBILE 
B_CPU_INTEL_PENTIUM_MMX_MODEL_8 
B_CPU_INTEL_PENTIUM75_486_OVERDRIVE 
B_CPU_INTEL_PENTIUM_PRO_ASTEP 
B_CPU_INTEL_PENTIUM_PRO 
B_CPU_INTEL_PENTIUM_II 
B_CPU_INTEL_PENTIUM_II_MODEL_3 
B_CPU_INTEL_PENTIUM_II_MODEL_5 
B_CPU_INTEL_CELERON 
B_CPU_INTEL_PENTIUM_III 
B_CPU_INTEL_PENTIUM_III_MODEL_8 
B_CPU_INTEL_PENTIUM_III_MOBILE 
B_CPU_INTEL_PENTIUM_CENTRINO_A 
B_CPU_INTEL_PENTIUM_III_XEON 
B_CPU_INTEL_PENTIUM_III_MODEL_11 
B_CPU_INTEL_PENTIUM_III_MODEL_B 
B_CPU_INTEL_PENTIUM_CENTRINO_B 
B_CPU_INTEL_PENTIUM_IA64 
B_CPU_INTEL_PENTIUM_IV 
B_CPU_INTEL_PENTIUM_IV_MODEL1 
B_CPU_INTEL_PENTIUM_IV_MODEL2 
B_CPU_INTEL_PENTIUM_IV_MODEL3 
B_CPU_INTEL_PENTIUM_IV_XEON 
B_CPU_AMD_X86 
B_CPU_AMD_486_DX2 
B_CPU_AMD_486_DX2_WB 
B_CPU_AMD_486_DX4 
B_CPU_AMD_486_DX4_WB 
B_CPU_AMD_586_WT 
B_CPU_AMD_586_WB 
B_CPU_AMD_K5 
B_CPU_AMD_K5_MODEL0 
B_CPU_AMD_K5_MODEL1 
B_CPU_AMD_K5_MODEL2 
B_CPU_AMD_K5_MODEL3 
B_CPU_AMD_K6