#define SCP_SEG_OBSOLETE m2_i2 /* my own segment */
#define SCP_GID m2_i3 /* grant id */
#define SCP_OFFSET m2_l1 /* offset within grant */
-#define SCP_ADDRESS m2_p1 /* my own address */
-#define SCP_BYTES m2_l2 /* bytes from offset */
+#define SCP_ADDRESS m2_p1 /* my own address */
+#define SCP_BYTES m2_l2 /* bytes from offset */
/* SYS_SAFEMEMSET */
#define SMS_DST m2_i1 /* dst endpoint */
#define SMS_GID m2_i3 /* grant id */
#define SMS_OFFSET m2_l1 /* offset within grant */
-#define SMS_BYTES m2_l2 /* bytes from offset */
-#define SMS_PATTERN m2_i2 /* memset() pattern */
+#define SMS_BYTES m2_l2 /* bytes from offset */
+#define SMS_PATTERN m2_i2 /* memset() pattern */
/* Field names for SYS_VSAFECOPY* */
#define VSCP_VEC_ADDR m2_p1 /* start of vector */
grant_offset, vir_bytes my_address, size_t bytes);
int sys_vsafecopy(struct vscp_vec *copyvec, int elements);
+int sys_safememset(endpoint_t source, cp_grant_id_t grant, vir_bytes
+ grant_offset, int pattern, size_t bytes);
+
int sys_memset(endpoint_t who, unsigned long pattern,
phys_bytes base, phys_bytes bytes);
sys_runctl.c \
sys_safecopy.c \
sys_safemap.c \
+ sys_safememset.c \
sys_schedctl.c \
sys_schedule.c \
sys_setalarm.c \
--- /dev/null
+#include "syslib.h"
+
+#include <minix/safecopies.h>
+
+int sys_safememset(endpoint_t dst_e, cp_grant_id_t gr_id,
+ vir_bytes offset, int pattern, size_t len)
+{
+/* memset() a block of data using pattern */
+
+ message copy_mess;
+
+ copy_mess.SMS_DST = dst_e;
+ copy_mess.SMS_GID = gr_id;
+ copy_mess.SMS_OFFSET = (long) offset;
+ copy_mess.SMS_PATTERN = pattern;
+ copy_mess.SMS_BYTES = (long) len;
+
+ return(_kernel_call(SYS_SAFEMEMSET, ©_mess));
+}